diff --git a/app_backup.jsx b/app_backup.jsx
new file mode 100644
index 0000000..fc9efd2
--- /dev/null
+++ b/app_backup.jsx
@@ -0,0 +1,509 @@
+/*
+Copyright (C) 2025 QuantumNous
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+
+For commercial licensing, please contact support@quantumnous.com
+*/
+
+import React, { lazy, Suspense, useContext, useMemo } from 'react';
+import { Route, Routes, useLocation, useParams } from 'react-router-dom';
+import Loading from './components/common/ui/Loading';
+import User from './pages/User';
+import { AuthRedirect, PrivateRoute, AdminRoute } from './helpers';
+import RegisterForm from './components/auth/RegisterForm';
+import LoginForm from './components/auth/LoginForm';
+import NotFound from './pages/NotFound';
+import Forbidden from './pages/Forbidden';
+import Setting from './pages/Setting';
+import { StatusContext } from './context/Status';
+
+import PasswordResetForm from './components/auth/PasswordResetForm';
+import PasswordResetConfirm from './components/auth/PasswordResetConfirm';
+import Channel from './pages/Channel';
+import Token from './pages/Token';
+import Redemption from './pages/Redemption';
+import TopUp from './pages/TopUp';
+import Log from './pages/Log';
+import Chat from './pages/Chat';
+import Chat2Link from './pages/Chat2Link';
+import Midjourney from './pages/Midjourney';
+import Pricing from './pages/Pricing';
+import Task from './pages/Task';
+import ModelPage from './pages/Model';
+import ModelDeploymentPage from './pages/ModelDeployment';
+import ModelHeatPage from './pages/ModelHeat';
+import Playground from './pages/Playground';
+import Subscription from './pages/Subscription';
+import OAuth2Callback from './components/auth/OAuth2Callback';
+import PersonalSetting from './components/settings/PersonalSetting';
+import SupplierApplyPage from './pages/Supplier/Apply';
+import SupplierChannelPage from './pages/Supplier/Channel';
+import PricingSettingsPage from './pages/Supplier/PricingSettings';
+import SupplierDashboardPage from './pages/Supplier/Dashboard';
+import SupplierApplication from './pages/SupplierAdmin/application';
+import Suppliers from './pages/SupplierAdmin/list';
+import Setup from './pages/Setup';
+import SetupCheck from './components/layout/SetupCheck';
+import OperationLog from './pages/OperationLog';
+
+const Home = lazy(() => import('./pages/Home'));
+const Dashboard = lazy(() => import('./pages/Dashboard'));
+const DistributorApply = lazy(() => import('./pages/DistributorApply'));
+const DistributorCenter = lazy(() => import('./pages/DistributorCenter'));
+const DistributorAdmin = lazy(() => import('./pages/DistributorAdmin'));
+const InviteRedirect = lazy(() => import('./pages/InviteRedirect'));
+const About = lazy(() => import('./pages/About'));
+const UserAgreement = lazy(() => import('./pages/UserAgreement'));
+const PrivacyPolicy = lazy(() => import('./pages/PrivacyPolicy'));
+
+function DynamicOAuth2Callback() {
+ const { provider } = useParams();
+ return ;
+}
+
+function App() {
+ const location = useLocation();
+ const [statusState] = useContext(StatusContext);
+
+ // 获取模型广场权限配置
+ const pricingRequireAuth = useMemo(() => {
+ const headerNavModulesConfig = statusState?.status?.HeaderNavModules;
+ if (headerNavModulesConfig) {
+ try {
+ const modules = JSON.parse(headerNavModulesConfig);
+
+ // 处理向后兼容性:如果pricing是boolean,默认不需要登录
+ if (typeof modules.pricing === 'boolean') {
+ return false; // 默认不需要登录鉴权
+ }
+
+ // 如果是对象格式,使用requireAuth配置
+ return modules.pricing?.requireAuth === true;
+ } catch (error) {
+ console.error('解析顶栏模块配置失败:', error);
+ return false; // 默认不需要登录
+ }
+ }
+ return false; // 默认不需要登录
+ }, [statusState?.status?.HeaderNavModules]);
+
+ return (
+
+
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ }>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+
+ }
+ key={location.pathname}
+ >
+
+
+
+ ) : (
+ } key={location.pathname}>
+
+
+ )
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ } key={location.pathname}>
+
+
+ }
+ />
+ {/* 方便使用chat2link直接跳转聊天... */}
+
+ } key={location.pathname}>
+
+
+
+ }
+ />
+ } />
+
+
+ );
+}
+
+export default App;
+
diff --git a/backups/token-factory-backup-20260612_094331.sql b/backups/token-factory-backup-20260612_094331.sql
new file mode 100644
index 0000000..4c2eecd
Binary files /dev/null and b/backups/token-factory-backup-20260612_094331.sql differ
diff --git a/backups/token-factory-schema-only-20260612_094414.sql b/backups/token-factory-schema-only-20260612_094414.sql
new file mode 100644
index 0000000..65745ee
Binary files /dev/null and b/backups/token-factory-schema-only-20260612_094414.sql differ
diff --git a/backups/token-factory-seed-data-20260612_094407.sql b/backups/token-factory-seed-data-20260612_094407.sql
new file mode 100644
index 0000000..f44c2ea
Binary files /dev/null and b/backups/token-factory-seed-data-20260612_094407.sql differ
diff --git a/create_pages.py b/create_pages.py
new file mode 100644
index 0000000..31fd3bf
--- /dev/null
+++ b/create_pages.py
@@ -0,0 +1,2 @@
+import sys
+print(" hello\)
\ No newline at end of file
diff --git a/fix2.py b/fix2.py
new file mode 100644
index 0000000..02c7c2c
--- /dev/null
+++ b/fix2.py
@@ -0,0 +1,4 @@
+import sys
+c=open(sys.argv[1,'r',encoding='utf-8').read()
+o=c
+print(len(c))
\ No newline at end of file
diff --git a/fix3.py b/fix3.py
new file mode 100644
index 0000000..1131518
--- /dev/null
+++ b/fix3.py
@@ -0,0 +1,14 @@
+import sys, re
+c = open(sys.argv[1], chr(39)+chr(114)+chr(39)+chr(44)+chr(101)+chr(110)+chr(99)+chr(111)+chr(100)+chr(105)+chr(110)+chr(103)+chr(61)+chr(39)+chr(117)+chr(116)+chr(102)+chr(45)+chr(56)+chr(39)+chr(41)+chr(46)+chr(114)+chr(101)+chr(97)+chr(100)+chr(40)+chr(41)
+o = c
+c = c.replace(chr(60)+chr(100)+chr(105)+chr(118)+chr(32)+chr(99)+chr(108)+chr(97)+chr(115)+chr(115)+chr(78)+chr(97)+chr(109)+chr(101)+chr(61)+chr(34)+chr(103)+chr(114)+chr(105)+chr(100)+chr(32)+chr(109)+chr(100)+chr(58)+chr(103)+chr(114)+chr(105)+chr(100)+chr(45)+chr(99)+chr(111)+chr(108)+chr(115)+chr(45)+chr(51)+chr(32)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(32)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(45)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(34)+chr(62), chr(60)+chr(100)+chr(105)+chr(118)+chr(32)+chr(99)+chr(108)+chr(97)+chr(115)+chr(115)+chr(78)+chr(97)+chr(109)+chr(101)+chr(61)+chr(34)+chr(103)+chr(114)+chr(105)+chr(100)+chr(32)+chr(115)+chr(109)+chr(58)+chr(103)+chr(114)+chr(105)+chr(100)+chr(45)+chr(99)+chr(111)+chr(108)+chr(115)+chr(45)+chr(50)+chr(32)+chr(108)+chr(103)+chr(58)+chr(103)+chr(114)+chr(105)+chr(100)+chr(45)+chr(99)+chr(111)+chr(108)+chr(115)+chr(45)+chr(51)+chr(34)+chr(62))
+c = c.replace(chr(116)+chr(114)+chr(97)+chr(110)+chr(115)+chr(105)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(99)+chr(111)+chr(108)+chr(111)+chr(114)+chr(115)+chr(32)+chr(100)+chr(117)+chr(114)+chr(97)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(49)+chr(48)+chr(48)+chr(32)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(98)+chr(103)+chr(45)+chr(102)+chr(111)+chr(114)+chr(101)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(98)+chr(97)+chr(99)+chr(107)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100), chr(116)+chr(114)+chr(97)+chr(110)+chr(115)+chr(105)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(97)+chr(108)+chr(108)+chr(32)+chr(100)+chr(117)+chr(114)+chr(97)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(50)+chr(48)+chr(48)+chr(32)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(98)+chr(103)+chr(45)+chr(102)+chr(111)+chr(114)+chr(101)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(98)+chr(97)+chr(99)+chr(107)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(45)+chr(98)+chr(32)+chr(115)+chr(109)+chr(58)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(45)+chr(114)+chr(32)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(45)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114))
+c = c.replace(chr(98)+chr(103)+chr(45)+chr(109)+chr(117)+chr(116)+chr(101)+chr(100)+chr(32)+chr(112)+chr(120)+chr(45)+chr(50)+chr(32)+chr(112)+chr(121)+chr(45)+chr(49)+chr(32)+chr(119)+chr(45)+chr(102)+chr(105)+chr(116)+chr(32)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(45)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(98)+chr(103)+chr(45)+chr(119)+chr(104)+chr(105)+chr(116)+chr(101)+chr(47)+chr(49)+chr(48)+chr(32)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(45)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(98)+chr(97)+chr(99)+chr(107)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(116)+chr(114)+chr(97)+chr(110)+chr(115)+chr(105)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(99)+chr(111)+chr(108)+chr(111)+chr(114)+chr(115)+chr(32)+chr(100)+chr(117)+chr(114)+chr(97)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(49)+chr(48)+chr(48), chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(32)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(45)+chr(102)+chr(111)+chr(114)+chr(101)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(47)+chr(49)+chr(48)+chr(32)+chr(112)+chr(120)+chr(45)+chr(50)+chr(32)+chr(112)+chr(121)+chr(45)+chr(49)+chr(32)+chr(119)+chr(45)+chr(102)+chr(105)+chr(116)+chr(32)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(45)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(98)+chr(111)+chr(114)+chr(100)+chr(101)+chr(114)+chr(45)+chr(98)+chr(97)+chr(99)+chr(107)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(47)+chr(51)+chr(48)+chr(32)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(45)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(98)+chr(97)+chr(99)+chr(107)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(116)+chr(114)+chr(97)+chr(110)+chr(115)+chr(105)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(97)+chr(108)+chr(108)+chr(32)+chr(100)+chr(117)+chr(114)+chr(97)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(50)+chr(48)+chr(48))
+c = c.replace(chr(116)+chr(114)+chr(97)+chr(110)+chr(115)+chr(105)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(99)+chr(111)+chr(108)+chr(111)+chr(114)+chr(115)+chr(32)+chr(100)+chr(117)+chr(114)+chr(97)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(49)+chr(48)+chr(48), chr(116)+chr(114)+chr(97)+chr(110)+chr(115)+chr(105)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(97)+chr(108)+chr(108)+chr(32)+chr(100)+chr(117)+chr(114)+chr(97)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(50)+chr(48)+chr(48))
+c = c.replace(chr(102)+chr(111)+chr(110)+chr(116)+chr(45)+chr(104)+chr(101)+chr(97)+chr(100)+chr(105)+chr(110)+chr(103)+chr(32)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(108)+chr(103)+chr(32)+chr(102)+chr(111)+chr(110)+chr(116)+chr(45)+chr(98)+chr(111)+chr(108)+chr(100)+chr(32)+chr(109)+chr(98)+chr(45)+chr(50)+chr(32)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(102)+chr(111)+chr(114)+chr(101)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(45)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(98)+chr(97)+chr(99)+chr(107)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100), chr(102)+chr(111)+chr(110)+chr(116)+chr(45)+chr(104)+chr(101)+chr(97)+chr(100)+chr(105)+chr(110)+chr(103)+chr(32)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(108)+chr(103)+chr(32)+chr(102)+chr(111)+chr(110)+chr(116)+chr(45)+chr(98)+chr(111)+chr(108)+chr(100)+chr(32)+chr(109)+chr(98)+chr(45)+chr(50)+chr(32)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(102)+chr(111)+chr(114)+chr(101)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(45)+chr(104)+chr(111)+chr(118)+chr(101)+chr(114)+chr(58)+chr(116)+chr(101)+chr(120)+chr(116)+chr(45)+chr(98)+chr(97)+chr(99)+chr(107)+chr(103)+chr(114)+chr(111)+chr(117)+chr(110)+chr(100)+chr(32)+chr(116)+chr(114)+chr(97)+chr(110)+chr(115)+chr(105)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(97)+chr(108)+chr(108)+chr(32)+chr(100)+chr(117)+chr(114)+chr(97)+chr(116)+chr(105)+chr(111)+chr(110)+chr(45)+chr(50)+chr(48)+chr(48))
+import re
+c = re.sub(chr(92)+chr(36)+chr(92)+chr(123)+chr(91)+chr(94)+chr(125)+chr(93)+chr(43)+chr(92)+chr(125), '', c)
+c = c.replace(chr(99)+chr(108)+chr(97)+chr(115)+chr(115)+chr(78)+chr(97)+chr(109)+chr(101)+chr(61)+chr(96)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(32), chr(99)+chr(108)+chr(97)+chr(115)+chr(115)+chr(78)+chr(97)+chr(109)+chr(101)+chr(61)+chr(34)+chr(103)+chr(114)+chr(111)+chr(117)+chr(112)+chr(32))
+print(chr(67)+chr(72)+chr(65)+chr(78)+chr(71)+chr(69)+chr(68) if c != o else chr(78)+chr(79)+chr(67)+chr(72)+chr(65)+chr(78)+chr(71)+chr(69))
+if c != o:
+ open(sys.argv[1], chr(119)+chr(44)+chr(101)+chr(110)+chr(99)+chr(111)+chr(100)+chr(105)+chr(110)+chr(103)+chr(61)+chr(39)+chr(117)+chr(116)+chr(102)+chr(45)+chr(56)+chr(39)+chr(41)+chr(46)+chr(119)+chr(114)+chr(105)+chr(116)+chr(101)+chr(40)+chr(99)
diff --git a/fix_all.py b/fix_all.py
new file mode 100644
index 0000000..61cfd0e
--- /dev/null
+++ b/fix_all.py
@@ -0,0 +1 @@
+print(" not using template\)
\ No newline at end of file
diff --git a/fix_hero.py b/fix_hero.py
new file mode 100644
index 0000000..4287ca8
--- /dev/null
+++ b/fix_hero.py
@@ -0,0 +1 @@
+#
\ No newline at end of file
diff --git a/fix_home.py b/fix_home.py
new file mode 100644
index 0000000..00bcb6e
--- /dev/null
+++ b/fix_home.py
@@ -0,0 +1 @@
+# test
\ No newline at end of file
diff --git a/heroscreenshot.png b/heroscreenshot.png
new file mode 100644
index 0000000..f05b726
Binary files /dev/null and b/heroscreenshot.png differ
diff --git a/idx2.py b/idx2.py
new file mode 100644
index 0000000..30d74d2
--- /dev/null
+++ b/idx2.py
@@ -0,0 +1 @@
+test
\ No newline at end of file
diff --git a/script.b64 b/script.b64
new file mode 100644
index 0000000..4306499
--- /dev/null
+++ b/script.b64
@@ -0,0 +1 @@
+aW1wb3J0IHN5cwpwcmludCgndGVzdCcp
diff --git a/setting/rankings_setting/benchmark_setting.go b/setting/rankings_setting/benchmark_setting.go
new file mode 100644
index 0000000..a68a8dd
--- /dev/null
+++ b/setting/rankings_setting/benchmark_setting.go
@@ -0,0 +1,56 @@
+package rankings_setting
+
+import "github.com/QuantumNous/new-api/setting/config"
+
+// ModelBenchmark 单个模型的评测数据
+type ModelBenchmark struct {
+ Name string `json:"name"`
+ Provider string `json:"provider"`
+ Intelligence float64 `json:"intelligence"` // 智能指数
+ Speed float64 `json:"speed"` // 输出速度 (tokens/s)
+ Price float64 `json:"price"` // 每百万 token 价格 ($)
+ Latency float64 `json:"latency"` // 首 token 延迟 (秒)
+ ContextWindow string `json:"context_window"` // 上下文窗口大小描述
+ Type string `json:"type"` // reasoning / non-reasoning
+ Openness string `json:"openness"` // proprietary / open-weights
+ Category string `json:"category"` // language / image / video
+}
+
+// BenchmarkSetting 评测数据配置
+type BenchmarkSetting struct {
+ Models []ModelBenchmark `json:"models"`
+}
+
+// 默认评测数据
+var benchmarkSetting = BenchmarkSetting{
+ Models: []ModelBenchmark{
+ {Name: "Claude Fable 5", Provider: "Anthropic", Intelligence: 60, Speed: 42.0, Price: 15.00, Latency: 0.45, ContextWindow: "200K", Type: "reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "Claude Opus 4.8", Provider: "Anthropic", Intelligence: 56, Speed: 38.0, Price: 15.00, Latency: 0.50, ContextWindow: "200K", Type: "reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "GPT-5.5", Provider: "OpenAI", Intelligence: 55, Speed: 85.0, Price: 10.00, Latency: 0.35, ContextWindow: "128K", Type: "reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "Claude Opus 4.7", Provider: "Anthropic", Intelligence: 54, Speed: 40.0, Price: 15.00, Latency: 0.48, ContextWindow: "200K", Type: "reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "MiniMax-M3", Provider: "MiniMax", Intelligence: 44, Speed: 120.0, Price: 2.00, Latency: 0.30, ContextWindow: "128K", Type: "reasoning", Openness: "open-weights", Category: "language"},
+ {Name: "DeepSeek V4 Pro", Provider: "DeepSeek", Intelligence: 44, Speed: 95.0, Price: 1.50, Latency: 0.32, ContextWindow: "128K", Type: "reasoning", Openness: "open-weights", Category: "language"},
+ {Name: "Kimi K2.6", Provider: "Kimi", Intelligence: 43, Speed: 88.0, Price: 2.50, Latency: 0.38, ContextWindow: "128K", Type: "reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "Qwen3.5 0.8B", Provider: "Alibaba", Intelligence: 18, Speed: 250.0, Price: 0.01, Latency: 0.25, ContextWindow: "32K", Type: "non-reasoning", Openness: "open-weights", Category: "language"},
+ {Name: "Gemini 2.5 Flash", Provider: "Google", Intelligence: 38, Speed: 180.0, Price: 0.15, Latency: 0.37, ContextWindow: "1M", Type: "non-reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "Llama 4 Scout", Provider: "Meta", Intelligence: 35, Speed: 150.0, Price: 0.10, Latency: 0.40, ContextWindow: "10M", Type: "non-reasoning", Openness: "open-weights", Category: "language"},
+ {Name: "Mercury 2", Provider: "Inception Labs", Intelligence: 22, Speed: 839.3, Price: 0.50, Latency: 0.28, ContextWindow: "32K", Type: "non-reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "GPT-4.1", Provider: "OpenAI", Intelligence: 42, Speed: 72.0, Price: 2.00, Latency: 0.42, ContextWindow: "128K", Type: "non-reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "Claude Sonnet 4.6", Provider: "Anthropic", Intelligence: 45, Speed: 68.0, Price: 3.00, Latency: 0.44, ContextWindow: "200K", Type: "non-reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "Gemma 3n E4B", Provider: "Google", Intelligence: 20, Speed: 300.0, Price: 0.02, Latency: 0.22, ContextWindow: "32K", Type: "non-reasoning", Openness: "open-weights", Category: "language"},
+ {Name: "Command A+", Provider: "Cohere", Intelligence: 32, Speed: 130.0, Price: 0.80, Latency: 0.39, ContextWindow: "128K", Type: "non-reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "Grok 4", Provider: "xAI", Intelligence: 46, Speed: 75.0, Price: 5.00, Latency: 0.40, ContextWindow: "128K", Type: "reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "North Mini Code", Provider: "North AI", Intelligence: 28, Speed: 200.0, Price: 0.25, Latency: 0.31, ContextWindow: "64K", Type: "non-reasoning", Openness: "proprietary", Category: "language"},
+ {Name: "LFM2 1.2B", Provider: "Liquid", Intelligence: 10, Speed: 542.6, Price: 0.05, Latency: 0.18, ContextWindow: "16K", Type: "non-reasoning", Openness: "open-weights", Category: "language"},
+ {Name: "Gemini 2.0 Pro", Provider: "Google", Intelligence: 48, Speed: 55.0, Price: 2.50, Latency: 0.50, ContextWindow: "2M", Type: "reasoning", Openness: "proprietary", Category: "language"},
+ },
+}
+
+func init() {
+ config.GlobalConfig.Register("benchmark_data", &benchmarkSetting)
+}
+
+// GetBenchmarkSetting 获取评测数据配置
+func GetBenchmarkSetting() *BenchmarkSetting {
+ return &benchmarkSetting
+}
diff --git a/test_out.txt b/test_out.txt
new file mode 100644
index 0000000..b6fc4c6
--- /dev/null
+++ b/test_out.txt
@@ -0,0 +1 @@
+hello
\ No newline at end of file
diff --git a/tokendance.yaml b/tokendance.yaml
new file mode 100644
index 0000000..f8381c1
--- /dev/null
+++ b/tokendance.yaml
@@ -0,0 +1,234 @@
+- generic [ref=e2]:
+ - generic [ref=e5]:
+ - banner [ref=e6]:
+ - generic [ref=e7]:
+ - link "TokenDance 词元跳动 BETA" [ref=e8] [cursor=pointer]:
+ - /url: /
+ - img "TokenDance 词元跳动" [ref=e9]
+ - generic [ref=e10]: BETA
+ - generic [ref=e12]:
+ - img [ref=e13]
+ - searchbox "搜索模型..." [ref=e16]
+ - navigation [ref=e17]:
+ - link "模型" [ref=e18] [cursor=pointer]:
+ - /url: /models
+ - img [ref=e19]
+ - generic [ref=e22]: 模型
+ - link "体验" [ref=e23] [cursor=pointer]:
+ - /url: /playground
+ - img [ref=e24]
+ - generic [ref=e26]: 体验
+ - generic [ref=e27]:
+ - link "评测" [ref=e28] [cursor=pointer]:
+ - /url: /benchmarks
+ - img [ref=e29]
+ - generic [ref=e35]: 评测
+ - link "数据" [ref=e36] [cursor=pointer]:
+ - /url: /rankings
+ - img [ref=e37]
+ - generic [ref=e39]: 数据
+ - link "文档" [ref=e40] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - img [ref=e41]
+ - generic [ref=e44]: 文档
+ - link "登录" [ref=e46] [cursor=pointer]:
+ - /url: /login
+ - generic [ref=e47]: 登录
+ - generic [ref=e48]:
+ - generic [ref=e50]:
+ - generic [ref=e51]:
+ - generic [ref=e52]:
+ - paragraph [ref=e53]: // unified model API gateway
+ - heading "让每位 AI 创造者, 少走一步弯路" [level=1] [ref=e55]:
+ - text: 让每位 AI 创造者,
+ - text: 少走一步弯路
+ - paragraph [ref=e56]: 兼容 OpenAI / Claude / Gemini 等协议,覆盖文本、图像、视频、语音,智能路由,统一计费。
+ - generic [ref=e57]:
+ - link "免费开始" [ref=e58] [cursor=pointer]:
+ - /url: /keys
+ - link "查看文档" [ref=e59] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - link "战略合作方 无问芯穹" [ref=e61] [cursor=pointer]:
+ - /url: https://cloud.infini-ai.com
+ - generic [ref=e62]: 战略合作方
+ - img "无问芯穹" [ref=e63]
+ - generic [ref=e65]:
+ - generic [ref=e70]: terminal
+ - button "Copy" [ref=e71] [cursor=pointer]:
+ - img [ref=e72]
+ - code [ref=e76]: "$ curl https://tokendance.space/gateway/v1/chat/completions \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer YOUR_KEY\" \\ -d '{ \"model\": \"MODEL_ID\", \"messages\": [{ \"role\": \"user\", \"content\": \"Hello World!\" }] }'"
+ - paragraph [ref=e78]: 200 OK · latency 312ms · tokens 42
+ - generic [ref=e81]:
+ - generic [ref=e82]: TOKEN
+ - generic [ref=e83]: DANCE
+ - generic [ref=e85]:
+ - generic [ref=e86]: OpenAI 协议
+ - generic [ref=e87]: Claude 协议
+ - generic [ref=e88]: Gemini 协议
+ - generic [ref=e89]: 智能路由
+ - generic [ref=e90]: 统一计费
+ - generic [ref=e91]: 模型丰富
+ - generic [ref=e92]: 安全可靠
+ - generic [ref=e93]: 开箱即用
+ - generic [ref=e94]: OpenAI 协议
+ - generic [ref=e95]: Claude 协议
+ - generic [ref=e96]: Gemini 协议
+ - generic [ref=e97]: 智能路由
+ - generic [ref=e98]: 统一计费
+ - generic [ref=e99]: 模型丰富
+ - generic [ref=e100]: 安全可靠
+ - generic [ref=e101]: 开箱即用
+ - generic [ref=e102]: OpenAI 协议
+ - generic [ref=e103]: Claude 协议
+ - generic [ref=e104]: Gemini 协议
+ - generic [ref=e105]: 智能路由
+ - generic [ref=e106]: 统一计费
+ - generic [ref=e107]: 模型丰富
+ - generic [ref=e108]: 安全可靠
+ - generic [ref=e109]: 开箱即用
+ - generic [ref=e110]: OpenAI 协议
+ - generic [ref=e111]: Claude 协议
+ - generic [ref=e112]: Gemini 协议
+ - generic [ref=e113]: 智能路由
+ - generic [ref=e114]: 统一计费
+ - generic [ref=e115]: 模型丰富
+ - generic [ref=e116]: 安全可靠
+ - generic [ref=e117]: 开箱即用
+ - generic [ref=e119]:
+ - generic [ref=e120]: Features
+ - heading "为接入 AI 模型的开发者而造。" [level=2] [ref=e121]
+ - generic [ref=e122]:
+ - generic [ref=e123]:
+ - code [ref=e124]: "baseURL: \"tokendance.space\""
+ - heading "多协议兼容" [level=3] [ref=e125]
+ - paragraph [ref=e126]: 原生支持 OpenAI、Claude、Gemini 文本协议,覆盖图像 / 视频 / 文本转语音生成。无需修改代码,切换 Base URL 即可接入。
+ - generic [ref=e127]:
+ - code [ref=e128]: route(model) → provider
+ - heading "智能路由" [level=3] [ref=e129]
+ - paragraph [ref=e130]: 根据模型名称自动路由至对应供应商。一个入口,无需关心底层调度。
+ - generic [ref=e131]:
+ - code [ref=e132]: billing.unified()
+ - heading "统一计费" [level=3] [ref=e133]
+ - paragraph [ref=e134]: 跨供应商统一 Token 消耗统计与账单。告别多平台分别充值的混乱。
+ - generic [ref=e135]:
+ - code [ref=e136]: "fallback: model[] → provider[]"
+ - heading "容错降级" [level=3] [ref=e137]
+ - paragraph [ref=e138]: 同一模型支持多供应商端点自动切换;单次请求可指定多个候选模型,逐级降级,保障服务持续可用。
+ - generic [ref=e139]:
+ - code [ref=e140]: models.list() → 8+
+ - heading "模型丰富" [level=3] [ref=e141]
+ - paragraph [ref=e142]: 接入 MiniMax、通义千问、Kimi、智谱、DeepSeek 等国内头部模型。持续扩展中。
+ - generic [ref=e143]:
+ - code [ref=e144]: import OpenAI from "openai"
+ - heading "开箱即用" [level=3] [ref=e145]
+ - paragraph [ref=e146]: Watcha 一键登录,分钟级接入。兼容现有 SDK,零迁移成本。
+ - generic [ref=e148]:
+ - generic [ref=e149]:
+ - generic [ref=e150]: // how it works
+ - heading "三步接入,分钟级上线" [level=2] [ref=e151]
+ - link "01 注册账号 通过 Watcha 一键登录,即刻开始使用。 →" [ref=e152] [cursor=pointer]:
+ - /url: /login
+ - generic [ref=e153]:
+ - generic [ref=e155]: "01"
+ - generic [ref=e156]:
+ - heading "注册账号" [level=3] [ref=e157]
+ - paragraph [ref=e158]: 通过 Watcha 一键登录,即刻开始使用。
+ - generic [ref=e159]: →
+ - link "02 创建 API Key 在控制台创建密钥,支持多 Key 管理与权限控制。 →" [ref=e160] [cursor=pointer]:
+ - /url: /keys
+ - generic [ref=e161]:
+ - generic [ref=e163]: "02"
+ - generic [ref=e164]:
+ - heading "创建 API Key" [level=3] [ref=e165]
+ - paragraph [ref=e166]: 在控制台创建密钥,支持多 Key 管理与权限控制。
+ - generic [ref=e167]: →
+ - link "03 发起请求 使用你熟悉的 SDK 调用任意模型,完全兼容原生协议。 →" [ref=e168] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - generic [ref=e169]:
+ - generic [ref=e171]: "03"
+ - generic [ref=e172]:
+ - heading "发起请求" [level=3] [ref=e173]
+ - paragraph [ref=e174]: 使用你熟悉的 SDK 调用任意模型,完全兼容原生协议。
+ - generic [ref=e175]: →
+ - generic [ref=e178]:
+ - paragraph [ref=e179]: Quick Start
+ - heading "快速开始" [level=2] [ref=e180]
+ - generic [ref=e181]:
+ - button "OpenAI" [ref=e182] [cursor=pointer]
+ - button "Claude" [ref=e183] [cursor=pointer]
+ - button "Gemini" [ref=e184] [cursor=pointer]
+ - generic [ref=e185]:
+ - generic [ref=e186]:
+ - generic [ref=e187]:
+ - button "cURL" [ref=e188] [cursor=pointer]
+ - button "Python" [ref=e189] [cursor=pointer]
+ - button "Node.js" [ref=e190] [cursor=pointer]
+ - button "Copy" [ref=e191] [cursor=pointer]:
+ - img [ref=e192]
+ - code [ref=e197]:
+ - generic [ref=e198]: curl https://tokendance.space/gateway/v1/chat/completions \
+ - generic [ref=e199]: "-H \"Authorization: Bearer YOUR_API_KEY\" \\"
+ - generic [ref=e200]: "-H \"Content-Type: application/json\" \\"
+ - generic [ref=e201]: "-d '{"
+ - generic [ref=e202]: "\"model\": \"MODEL_ID\","
+ - generic [ref=e203]: "\"messages\": [{\"role\": \"user\", \"content\": \"Hello!\"}]"
+ - generic [ref=e204]: "}'"
+ - link "Documentation 阅读完整文档,了解更多用法 →" [ref=e205] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - generic [ref=e206]:
+ - paragraph [ref=e207]: Documentation
+ - paragraph [ref=e208]: 阅读完整文档,了解更多用法
+ - generic [ref=e209]: →
+ - generic [ref=e211]:
+ - generic [ref=e212]: // pricing
+ - heading "获取 Token 额度" [level=2] [ref=e213]
+ - generic [ref=e214]:
+ - generic [ref=e215]:
+ - generic [ref=e216]: 6/30 截止
+ - generic [ref=e217]: 注册即送 10 元额度
+ - generic [ref=e218]: 新用户注册即赠 10 元 Token,7 天有效期
+ - link "百亿 Token 补贴计划 AI 时代,Token 正在成为硬通货。当 Agent 开始吞噬软件,一个人也可以像一支队伍。我们在内测期间开启百亿 Token 补贴计划,赋能 AI 时代的超级个体 —— 无论你正在验证场景、打磨产品,还是准备扩大规模,都欢迎申请。 查看详情 →" [ref=e219] [cursor=pointer]:
+ - /url: https://mp.weixin.qq.com/s/D_ZmohSbk1RiR1W1W4EWDQ
+ - heading "百亿 Token 补贴计划" [level=3] [ref=e220]
+ - paragraph [ref=e221]: AI 时代,Token 正在成为硬通货。当 Agent 开始吞噬软件,一个人也可以像一支队伍。我们在内测期间开启百亿 Token 补贴计划,赋能 AI 时代的超级个体 —— 无论你正在验证场景、打磨产品,还是准备扩大规模,都欢迎申请。
+ - generic [ref=e222]: 查看详情 →
+ - generic [ref=e223]:
+ - generic [ref=e224]:
+ - generic [ref=e226]: 限量 500 张
+ - heading "浦发观猹联名卡" [level=3] [ref=e227]
+ - generic [ref=e228]: 「浦耳猹」
+ - paragraph [ref=e229]: 前 200 位办理用户,赠送近千万 Token(折合 RMB 100 元)
+ - generic [ref=e230]:
+ - link "立即申请 →" [ref=e231] [cursor=pointer]:
+ - /url: https://mp.weixin.qq.com/s/kWmrIU4IYxuCIDzLFQAvXg
+ - link "Token 申请问卷 →" [ref=e232] [cursor=pointer]:
+ - /url: https://agentuniverse.feishu.cn/share/base/form/shrcnvZvZq6hK2xgBvVGIuKpR5e
+ - generic [ref=e233]:
+ - heading "观猹开发者计划" [level=3] [ref=e234]
+ - paragraph [ref=e235]: 加入开发者计划,赠送超值 Token 额度。获取技术支持与优先体验新模型的机会。
+ - link "了解详情 →" [ref=e236] [cursor=pointer]:
+ - /url: https://agentuniverse.feishu.cn/wiki/J2FPwJp7zi6D6wklFbrcPbVNnNe
+ - paragraph [ref=e241]: 免费注册,分钟级接入。兼容你现有的 SDK 和工作流。
+ - contentinfo [ref=e242]:
+ - generic [ref=e243]:
+ - generic [ref=e244]:
+ - generic [ref=e245]:
+ - link "文档" [ref=e246] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - link "模型" [ref=e247] [cursor=pointer]:
+ - /url: /models
+ - link "控制台" [ref=e248] [cursor=pointer]:
+ - /url: /keys
+ - link "战略合作方 无问芯穹" [ref=e249] [cursor=pointer]:
+ - /url: https://cloud.infini-ai.com
+ - generic [ref=e250]: 战略合作方
+ - img "无问芯穹" [ref=e251]
+ - generic [ref=e252]:
+ - generic [ref=e253]: © 2026 TokenDance
+ - generic [ref=e254]:
+ - link "浙ICP备2024107375号-10" [ref=e255] [cursor=pointer]:
+ - /url: https://beian.miit.gov.cn/
+ - link "浙公网安备33019202002952号" [ref=e256] [cursor=pointer]:
+ - /url: https://beian.mps.gov.cn/#/query/webSearch?code=33019202002952
+ - region "Notifications (F8)":
+ - list
\ No newline at end of file
diff --git a/tokendance.yml b/tokendance.yml
new file mode 100644
index 0000000..51260e6
--- /dev/null
+++ b/tokendance.yml
@@ -0,0 +1,234 @@
+- generic [ref=e2]:
+ - generic [ref=e5]:
+ - banner [ref=e6]:
+ - generic [ref=e7]:
+ - link "TokenDance 词元跳动 BETA" [ref=e8] [cursor=pointer]:
+ - /url: /
+ - img "TokenDance 词元跳动" [ref=e9]
+ - generic [ref=e10]: BETA
+ - generic [ref=e12]:
+ - img [ref=e13]
+ - searchbox "搜索模型..." [ref=e16]
+ - navigation [ref=e17]:
+ - link "模型" [ref=e18] [cursor=pointer]:
+ - /url: /models
+ - img [ref=e19]
+ - generic [ref=e22]: 模型
+ - link "体验" [ref=e23] [cursor=pointer]:
+ - /url: /playground
+ - img [ref=e24]
+ - generic [ref=e26]: 体验
+ - generic [ref=e27]:
+ - link "评测" [ref=e28] [cursor=pointer]:
+ - /url: /benchmarks
+ - img [ref=e29]
+ - generic [ref=e35]: 评测
+ - link "数据" [ref=e36] [cursor=pointer]:
+ - /url: /rankings
+ - img [ref=e37]
+ - generic [ref=e39]: 数据
+ - link "文档" [ref=e40] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - img [ref=e41]
+ - generic [ref=e44]: 文档
+ - link "登录" [ref=e46] [cursor=pointer]:
+ - /url: /login
+ - generic [ref=e47]: 登录
+ - generic [ref=e48]:
+ - generic [ref=e50]:
+ - generic [ref=e51]:
+ - generic [ref=e52]:
+ - paragraph [ref=e53]: // unified model API gateway
+ - heading "让每位 AI 创造者, 少走一步弯路" [level=1] [ref=e55]:
+ - text: 让每位 AI 创造者,
+ - text: 少走一步弯路
+ - paragraph [ref=e56]: 兼容 OpenAI / Claude / Gemini 等协议,覆盖文本、图像、视频、语音,智能路由,统一计费。
+ - generic [ref=e57]:
+ - link "免费开始" [ref=e58] [cursor=pointer]:
+ - /url: /keys
+ - link "查看文档" [ref=e59] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - link "战略合作方 无问芯穹" [ref=e61] [cursor=pointer]:
+ - /url: https://cloud.infini-ai.com
+ - generic [ref=e62]: 战略合作方
+ - img "无问芯穹" [ref=e63]
+ - generic [ref=e65]:
+ - generic [ref=e70]: terminal
+ - button "Copy" [ref=e71] [cursor=pointer]:
+ - img [ref=e72]
+ - code [ref=e76]: "$ curl https://tokendance.space/gateway/v1/chat/completions \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer YOUR_KEY\" \\ -d '{ \"model\": \"MODEL_ID\", \"messages\": [{ \"role\": \"user\", \"content\": \"Hello World!\" }] }'"
+ - paragraph [ref=e78]: 200 OK · latency 312ms · tokens 42
+ - generic [ref=e81]:
+ - generic [ref=e82]: TOKEN
+ - generic [ref=e83]: DANCE
+ - generic [ref=e85]:
+ - generic [ref=e86]: OpenAI 协议
+ - generic [ref=e87]: Claude 协议
+ - generic [ref=e88]: Gemini 协议
+ - generic [ref=e89]: 智能路由
+ - generic [ref=e90]: 统一计费
+ - generic [ref=e91]: 模型丰富
+ - generic [ref=e92]: 安全可靠
+ - generic [ref=e93]: 开箱即用
+ - generic [ref=e94]: OpenAI 协议
+ - generic [ref=e95]: Claude 协议
+ - generic [ref=e96]: Gemini 协议
+ - generic [ref=e97]: 智能路由
+ - generic [ref=e98]: 统一计费
+ - generic [ref=e99]: 模型丰富
+ - generic [ref=e100]: 安全可靠
+ - generic [ref=e101]: 开箱即用
+ - generic [ref=e102]: OpenAI 协议
+ - generic [ref=e103]: Claude 协议
+ - generic [ref=e104]: Gemini 协议
+ - generic [ref=e105]: 智能路由
+ - generic [ref=e106]: 统一计费
+ - generic [ref=e107]: 模型丰富
+ - generic [ref=e108]: 安全可靠
+ - generic [ref=e109]: 开箱即用
+ - generic [ref=e110]: OpenAI 协议
+ - generic [ref=e111]: Claude 协议
+ - generic [ref=e112]: Gemini 协议
+ - generic [ref=e113]: 智能路由
+ - generic [ref=e114]: 统一计费
+ - generic [ref=e115]: 模型丰富
+ - generic [ref=e116]: 安全可靠
+ - generic [ref=e117]: 开箱即用
+ - generic [ref=e119]:
+ - generic [ref=e120]: Features
+ - heading "为接入 AI 模型的开发者而造。" [level=2] [ref=e121]
+ - generic [ref=e122]:
+ - generic [ref=e123]:
+ - code [ref=e124]: "baseURL: \"tokendance.space\""
+ - heading "多协议兼容" [level=3] [ref=e125]
+ - paragraph [ref=e126]: 原生支持 OpenAI、Claude、Gemini 文本协议,覆盖图像 / 视频 / 文本转语音生成。无需修改代码,切换 Base URL 即可接入。
+ - generic [ref=e127]:
+ - code [ref=e128]: route(model) → provider
+ - heading "智能路由" [level=3] [ref=e129]
+ - paragraph [ref=e130]: 根据模型名称自动路由至对应供应商。一个入口,无需关心底层调度。
+ - generic [ref=e131]:
+ - code [ref=e132]: billing.unified()
+ - heading "统一计费" [level=3] [ref=e133]
+ - paragraph [ref=e134]: 跨供应商统一 Token 消耗统计与账单。告别多平台分别充值的混乱。
+ - generic [ref=e135]:
+ - code [ref=e136]: "fallback: model[] → provider[]"
+ - heading "容错降级" [level=3] [ref=e137]
+ - paragraph [ref=e138]: 同一模型支持多供应商端点自动切换;单次请求可指定多个候选模型,逐级降级,保障服务持续可用。
+ - generic [ref=e139]:
+ - code [ref=e140]: models.list() → 8+
+ - heading "模型丰富" [level=3] [ref=e141]
+ - paragraph [ref=e142]: 接入 MiniMax、通义千问、Kimi、智谱、DeepSeek 等国内头部模型。持续扩展中。
+ - generic [ref=e143]:
+ - code [ref=e144]: import OpenAI from "openai"
+ - heading "开箱即用" [level=3] [ref=e145]
+ - paragraph [ref=e146]: Watcha 一键登录,分钟级接入。兼容现有 SDK,零迁移成本。
+ - generic [ref=e148]:
+ - generic [ref=e149]:
+ - generic [ref=e150]: // how it works
+ - heading "三步接入,分钟级上线" [level=2] [ref=e151]
+ - link "01 注册账号 通过 Watcha 一键登录,即刻开始使用。 →" [ref=e152] [cursor=pointer]:
+ - /url: /login
+ - generic [ref=e153]:
+ - generic [ref=e155]: "01"
+ - generic [ref=e156]:
+ - heading "注册账号" [level=3] [ref=e157]
+ - paragraph [ref=e158]: 通过 Watcha 一键登录,即刻开始使用。
+ - generic [ref=e159]: →
+ - link "02 创建 API Key 在控制台创建密钥,支持多 Key 管理与权限控制。 →" [ref=e160] [cursor=pointer]:
+ - /url: /keys
+ - generic [ref=e161]:
+ - generic [ref=e163]: "02"
+ - generic [ref=e164]:
+ - heading "创建 API Key" [level=3] [ref=e165]
+ - paragraph [ref=e166]: 在控制台创建密钥,支持多 Key 管理与权限控制。
+ - generic [ref=e167]: →
+ - link "03 发起请求 使用你熟悉的 SDK 调用任意模型,完全兼容原生协议。 →" [ref=e168] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - generic [ref=e169]:
+ - generic [ref=e171]: "03"
+ - generic [ref=e172]:
+ - heading "发起请求" [level=3] [ref=e173]
+ - paragraph [ref=e174]: 使用你熟悉的 SDK 调用任意模型,完全兼容原生协议。
+ - generic [ref=e175]: →
+ - generic [ref=e178]:
+ - paragraph [ref=e179]: Quick Start
+ - heading "快速开始" [level=2] [ref=e180]
+ - generic [ref=e181]:
+ - button "OpenAI" [ref=e182] [cursor=pointer]
+ - button "Claude" [ref=e183] [cursor=pointer]
+ - button "Gemini" [ref=e184] [cursor=pointer]
+ - generic [ref=e185]:
+ - generic [ref=e186]:
+ - generic [ref=e187]:
+ - button "cURL" [ref=e188] [cursor=pointer]
+ - button "Python" [ref=e189] [cursor=pointer]
+ - button "Node.js" [ref=e190] [cursor=pointer]
+ - button "Copy" [ref=e191] [cursor=pointer]:
+ - img [ref=e192]
+ - code [ref=e197]:
+ - generic [ref=e198]: curl https://tokendance.space/gateway/v1/chat/completions \
+ - generic [ref=e199]: "-H \"Authorization: Bearer YOUR_API_KEY\" \\"
+ - generic [ref=e200]: "-H \"Content-Type: application/json\" \\"
+ - generic [ref=e201]: "-d '{"
+ - generic [ref=e202]: "\"model\": \"MODEL_ID\","
+ - generic [ref=e203]: "\"messages\": [{\"role\": \"user\", \"content\": \"Hello!\"}]"
+ - generic [ref=e204]: "}'"
+ - link "Documentation 阅读完整文档,了解更多用法 →" [ref=e205] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - generic [ref=e206]:
+ - paragraph [ref=e207]: Documentation
+ - paragraph [ref=e208]: 阅读完整文档,了解更多用法
+ - generic [ref=e209]: →
+ - generic [ref=e211]:
+ - generic [ref=e212]: // pricing
+ - heading "获取 Token 额度" [level=2] [ref=e213]
+ - generic [ref=e214]:
+ - generic [ref=e215]:
+ - generic [ref=e216]: 6/16 截止
+ - generic [ref=e217]: 注册即送 10 元额度
+ - generic [ref=e218]: 新用户注册即赠 10 元 Token,7 天有效期
+ - link "百亿 Token 补贴计划 AI 时代,Token 正在成为硬通货。当 Agent 开始吞噬软件,一个人也可以像一支队伍。我们在内测期间开启百亿 Token 补贴计划,赋能 AI 时代的超级个体 —— 无论你正在验证场景、打磨产品,还是准备扩大规模,都欢迎申请。 查看详情 →" [ref=e219] [cursor=pointer]:
+ - /url: https://mp.weixin.qq.com/s/D_ZmohSbk1RiR1W1W4EWDQ
+ - heading "百亿 Token 补贴计划" [level=3] [ref=e220]
+ - paragraph [ref=e221]: AI 时代,Token 正在成为硬通货。当 Agent 开始吞噬软件,一个人也可以像一支队伍。我们在内测期间开启百亿 Token 补贴计划,赋能 AI 时代的超级个体 —— 无论你正在验证场景、打磨产品,还是准备扩大规模,都欢迎申请。
+ - generic [ref=e222]: 查看详情 →
+ - generic [ref=e223]:
+ - generic [ref=e224]:
+ - generic [ref=e226]: 限量 500 张
+ - heading "浦发观猹联名卡" [level=3] [ref=e227]
+ - generic [ref=e228]: 「浦耳猹」
+ - paragraph [ref=e229]: 前 200 位办理用户,赠送近千万 Token(折合 RMB 100 元)
+ - generic [ref=e230]:
+ - link "立即申请 →" [ref=e231] [cursor=pointer]:
+ - /url: https://mp.weixin.qq.com/s/kWmrIU4IYxuCIDzLFQAvXg
+ - link "Token 申请问卷 →" [ref=e232] [cursor=pointer]:
+ - /url: https://agentuniverse.feishu.cn/share/base/form/shrcnvZvZq6hK2xgBvVGIuKpR5e
+ - generic [ref=e233]:
+ - heading "观猹开发者计划" [level=3] [ref=e234]
+ - paragraph [ref=e235]: 加入开发者计划,赠送超值 Token 额度。获取技术支持与优先体验新模型的机会。
+ - link "了解详情 →" [ref=e236] [cursor=pointer]:
+ - /url: https://agentuniverse.feishu.cn/wiki/J2FPwJp7zi6D6wklFbrcPbVNnNe
+ - paragraph [ref=e241]: 免费注册,分钟级接入。兼容你现有的 SDK 和工作流。
+ - contentinfo [ref=e242]:
+ - generic [ref=e243]:
+ - generic [ref=e244]:
+ - generic [ref=e245]:
+ - link "文档" [ref=e246] [cursor=pointer]:
+ - /url: /docs/quickstart
+ - link "模型" [ref=e247] [cursor=pointer]:
+ - /url: /models
+ - link "控制台" [ref=e248] [cursor=pointer]:
+ - /url: /keys
+ - link "战略合作方 无问芯穹" [ref=e249] [cursor=pointer]:
+ - /url: https://cloud.infini-ai.com
+ - generic [ref=e250]: 战略合作方
+ - img "无问芯穹" [ref=e251]
+ - generic [ref=e252]:
+ - generic [ref=e253]: © 2026 TokenDance
+ - generic [ref=e254]:
+ - link "浙ICP备2024107375号-10" [ref=e255] [cursor=pointer]:
+ - /url: https://beian.miit.gov.cn/
+ - link "浙公网安备33019202002952号" [ref=e256] [cursor=pointer]:
+ - /url: https://beian.mps.gov.cn/#/query/webSearch?code=33019202002952
+ - region "Notifications (F8)":
+ - list
\ No newline at end of file
diff --git a/w b/w
new file mode 100644
index 0000000..afd1a02
--- /dev/null
+++ b/w
@@ -0,0 +1 @@
+x=1
\ No newline at end of file
diff --git a/web/index.html b/web/index.html
index 92e51ca..c6ab5dc 100644
--- a/web/index.html
+++ b/web/index.html
@@ -1,22 +1,18 @@
-
+
+
+
+
+
+
-
-
+
-
+
@@ -28,3 +24,8 @@
+
+
+
+
+
diff --git a/web/package.json b/web/package.json
index a6fdd11..5533793 100644
--- a/web/package.json
+++ b/web/package.json
@@ -5,6 +5,7 @@
"type": "module",
"dependencies": {
"@douyinfe/semi-icons": "^2.63.1",
+ "@douyinfe/semi-illustrations": "^2.100.0",
"@douyinfe/semi-ui": "^2.69.1",
"@lobehub/icons": "^2.0.0",
"@visactor/react-vchart": "~1.8.8",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
new file mode 100644
index 0000000..1be00be
--- /dev/null
+++ b/web/pnpm-lock.yaml
@@ -0,0 +1,10952 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@douyinfe/semi-icons':
+ specifier: ^2.63.1
+ version: 2.100.0(react@18.3.1)
+ '@douyinfe/semi-illustrations':
+ specifier: ^2.100.0
+ version: 2.100.0(react@18.3.1)
+ '@douyinfe/semi-ui':
+ specifier: ^2.69.1
+ version: 2.100.0(@floating-ui/dom@1.7.6)(@tiptap/suggestion@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@lobehub/icons':
+ specifier: ^2.0.0
+ version: 2.48.0(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@visactor/react-vchart':
+ specifier: ~1.8.8
+ version: 1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@visactor/vchart':
+ specifier: ~1.8.8
+ version: 1.8.11
+ '@visactor/vchart-semi-theme':
+ specifier: ~1.8.8
+ version: 1.8.8(@visactor/vchart@1.8.11)
+ axios:
+ specifier: 1.13.5
+ version: 1.13.5
+ clsx:
+ specifier: ^2.1.1
+ version: 2.1.1
+ dayjs:
+ specifier: ^1.11.11
+ version: 1.11.21
+ dompurify:
+ specifier: ^3.4.0
+ version: 3.4.10
+ history:
+ specifier: ^5.3.0
+ version: 5.3.0
+ i18next:
+ specifier: ^23.16.8
+ version: 23.16.8
+ i18next-browser-languagedetector:
+ specifier: ^7.2.0
+ version: 7.2.2
+ katex:
+ specifier: ^0.16.22
+ version: 0.16.47
+ lucide-react:
+ specifier: ^0.511.0
+ version: 0.511.0(react@18.3.1)
+ marked:
+ specifier: ^4.1.1
+ version: 4.3.0
+ mermaid:
+ specifier: ^11.6.0
+ version: 11.15.0
+ qrcode.react:
+ specifier: ^4.2.0
+ version: 4.2.0(react@18.3.1)
+ quill:
+ specifier: 1.3.7
+ version: 1.3.7
+ react:
+ specifier: ^18.2.0
+ version: 18.3.1
+ react-dom:
+ specifier: ^18.2.0
+ version: 18.3.1(react@18.3.1)
+ react-dropzone:
+ specifier: ^14.2.3
+ version: 14.4.1(react@18.3.1)
+ react-fireworks:
+ specifier: ^1.0.4
+ version: 1.0.4
+ react-i18next:
+ specifier: ^13.0.0
+ version: 13.5.0(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-icons:
+ specifier: ^5.5.0
+ version: 5.6.0(react@18.3.1)
+ react-markdown:
+ specifier: ^10.1.0
+ version: 10.1.0(@types/react@19.2.17)(react@18.3.1)
+ react-router-dom:
+ specifier: ^6.3.0
+ version: 6.30.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-telegram-login:
+ specifier: ^1.1.2
+ version: 1.1.2(react@18.3.1)
+ react-toastify:
+ specifier: ^9.0.8
+ version: 9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-turnstile:
+ specifier: ^1.0.5
+ version: 1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rehype-highlight:
+ specifier: ^7.0.2
+ version: 7.0.2
+ rehype-katex:
+ specifier: ^7.0.1
+ version: 7.0.1
+ remark-breaks:
+ specifier: ^4.0.0
+ version: 4.0.0
+ remark-gfm:
+ specifier: ^4.0.1
+ version: 4.0.1
+ remark-math:
+ specifier: ^6.0.0
+ version: 6.0.0
+ sse.js:
+ specifier: ^2.6.0
+ version: 2.8.0
+ unist-util-visit:
+ specifier: ^5.0.0
+ version: 5.1.0
+ use-debounce:
+ specifier: ^10.0.4
+ version: 10.1.1(react@18.3.1)
+ devDependencies:
+ '@douyinfe/vite-plugin-semi':
+ specifier: ^2.74.0-alpha.6
+ version: 2.74.0-alpha.6(vite@5.4.21(sass@1.101.0))
+ '@so1ve/prettier-config':
+ specifier: ^3.1.0
+ version: 3.26.0(prettier@3.8.4)
+ '@vitejs/plugin-react':
+ specifier: ^4.2.1
+ version: 4.7.0(vite@5.4.21(sass@1.101.0))
+ autoprefixer:
+ specifier: ^10.4.21
+ version: 10.5.0(postcss@8.5.15)
+ code-inspector-plugin:
+ specifier: ^1.3.3
+ version: 1.6.1
+ eslint:
+ specifier: 8.57.0
+ version: 8.57.0
+ eslint-plugin-header:
+ specifier: ^3.1.1
+ version: 3.1.1(eslint@8.57.0)
+ eslint-plugin-react-hooks:
+ specifier: ^5.2.0
+ version: 5.2.0(eslint@8.57.0)
+ i18next-cli:
+ specifier: ^1.10.3
+ version: 1.63.1(react-dom@18.3.1(react@18.3.1))(typescript@4.4.2)
+ postcss:
+ specifier: ^8.5.3
+ version: 8.5.15
+ prettier:
+ specifier: ^3.0.0
+ version: 3.8.4
+ tailwindcss:
+ specifier: ^3
+ version: 3.4.19(yaml@2.9.0)
+ typescript:
+ specifier: 4.4.2
+ version: 4.4.2
+ vite:
+ specifier: ^5.2.0
+ version: 5.4.21(sass@1.101.0)
+
+packages:
+
+ '@alloc/quick-lru@5.2.0':
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+
+ '@ant-design/colors@7.2.1':
+ resolution: {integrity: sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==}
+
+ '@ant-design/cssinjs-utils@1.1.3':
+ resolution: {integrity: sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@ant-design/cssinjs@1.24.0':
+ resolution: {integrity: sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+
+ '@ant-design/fast-color@2.0.6':
+ resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==}
+ engines: {node: '>=8.x'}
+
+ '@ant-design/icons-svg@4.4.2':
+ resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
+
+ '@ant-design/icons@5.6.1':
+ resolution: {integrity: sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==}
+ engines: {node: '>=8'}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+
+ '@ant-design/react-slick@1.1.2':
+ resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==}
+ peerDependencies:
+ react: '>=16.9.0'
+
+ '@antfu/install-pkg@1.1.0':
+ resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
+
+ '@astrojs/compiler@2.13.1':
+ resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==}
+
+ '@babel/code-frame@7.29.7':
+ resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.29.7':
+ resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.29.7':
+ resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.29.7':
+ resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.29.7':
+ resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-define-polyfill-provider@0.6.8':
+ resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ '@babel/helper-globals@7.29.7':
+ resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.29.7':
+ resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.29.7':
+ resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.29.7':
+ resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.29.7':
+ resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.29.7':
+ resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.29.7':
+ resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.29.7':
+ resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.29.7':
+ resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-transform-react-jsx-self@7.29.7':
+ resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-source@7.29.7':
+ resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-runtime@7.29.7':
+ resolution: {integrity: sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/runtime@7.29.7':
+ resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.29.7':
+ resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.29.7':
+ resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.29.7':
+ resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
+ engines: {node: '>=6.9.0'}
+
+ '@braintree/sanitize-url@7.1.2':
+ resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==}
+
+ '@chevrotain/types@11.1.2':
+ resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==}
+
+ '@code-inspector/core@1.6.1':
+ resolution: {integrity: sha512-jlRjItyW7AlcEAi3oqxq11NsGdtfvG2ZOCs8mJQAlRhIKGEIWSECgN5oNzuOICOF+eRVHxUfBL4gd0FiFfaDuQ==}
+
+ '@code-inspector/esbuild@1.6.1':
+ resolution: {integrity: sha512-inZSNq+ZsbgZX48u/O9kwVNnr6RiMpBTlOhmfVx/bxCIs+GkGalVuY6AZ5+epg5QiNbL9RdHBkckEZpPAFDHgg==}
+
+ '@code-inspector/mako@1.6.1':
+ resolution: {integrity: sha512-mk8qfMOhEaGwvxruIudv2edZ5xaREaoMDmaiou4qEkfxfpiQ+8oKKGCQhNw8ML2wgVLUEeizCQO60IWpBJnWxg==}
+
+ '@code-inspector/turbopack@1.6.1':
+ resolution: {integrity: sha512-4jY89hyU4p7DtTqEyr4qYnnaQSGvtZvrWr8PEaYYR0EDK+qHDl6ndupZBYU2zzKMv87gnWqZ271rPA+0YXfEBg==}
+
+ '@code-inspector/vite@1.6.1':
+ resolution: {integrity: sha512-ZlfS23t9naunoA8xBAlaEgEAFWq6YV1frKgE42fXZUNYOmcZlpaV/8EdqBJt/JZu6MJkceEVmgGRSJc5kYXIag==}
+
+ '@code-inspector/webpack@1.6.1':
+ resolution: {integrity: sha512-pgrqzBja1FBk0WWXodmbfOnpLX4rbofBPk4INHc9UWnDlv1Ypfhn9pX7N5zJ0pBRHjrBF6ow4xfm0GGb7eUG2w==}
+
+ '@croct/json5-parser@0.2.2':
+ resolution: {integrity: sha512-0NJMLrbeLbQ0eCVj3UoH/kG2QckUgOASfwmfDTjyW1xAYPyTNJXcWVT/dssJdTJd0pRchW+qF0VFWQHcxs1OVw==}
+
+ '@croct/json@2.1.0':
+ resolution: {integrity: sha512-UrWfjNQVlBxN+OVcFwHmkjARMW55MBN04E9KfGac8ac8z1QnFVuiOOFtMWXCk3UwsyRqhsNaFoYLZC+xxqsVjQ==}
+
+ '@dnd-kit/accessibility@3.1.1':
+ resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
+ peerDependencies:
+ react: '>=16.8.0'
+
+ '@dnd-kit/core@6.3.1':
+ resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@dnd-kit/modifiers@9.0.0':
+ resolution: {integrity: sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==}
+ peerDependencies:
+ '@dnd-kit/core': ^6.3.0
+ react: '>=16.8.0'
+
+ '@dnd-kit/sortable@10.0.0':
+ resolution: {integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==}
+ peerDependencies:
+ '@dnd-kit/core': ^6.3.0
+ react: '>=16.8.0'
+
+ '@dnd-kit/sortable@7.0.2':
+ resolution: {integrity: sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==}
+ peerDependencies:
+ '@dnd-kit/core': ^6.0.7
+ react: '>=16.8.0'
+
+ '@dnd-kit/utilities@3.2.2':
+ resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==}
+ peerDependencies:
+ react: '>=16.8.0'
+
+ '@douyinfe/semi-animation-react@2.100.0':
+ resolution: {integrity: sha512-zp224kBejXu+28z56uxLNasaijDJN55w0Ll+/JN+NaksTeKoUteEa93hx2SZVt6GGwZAM3H3mfDwF1UcE+fvLA==}
+
+ '@douyinfe/semi-animation-styled@2.100.0':
+ resolution: {integrity: sha512-UHluoWLAHPSVYK2OpdreaSHQI3bh300rrp/dP0UCjsl3FngTUHhsOHVqdWPJ3flTWnc3Mg1Flqr2gUmFjHplhw==}
+
+ '@douyinfe/semi-animation@2.100.0':
+ resolution: {integrity: sha512-X9AxxUrrHWhgxxLkM4oJw8ZM/VAXsu7/fkr4dyIkkZHDhQcnMfMc2YtughqaVqkaicm3SV9zRx9npjYe/S5nVw==}
+
+ '@douyinfe/semi-foundation@2.100.0':
+ resolution: {integrity: sha512-D2pjhpqOMOpjgw4M4Hg0Pj8KSnxl/jVsfynrIji5TwW7V2bGgt/aWOnBqdTXlrTLk4CHDmfAXKyr+rxY9aihhw==}
+
+ '@douyinfe/semi-icons@2.100.0':
+ resolution: {integrity: sha512-S/UZAOgzhbk2Dpwn0mUz/SrjswRpSTjSupzluLO0QmM8mCVuLSetmJ0Y/HO4MGM1eY9rEUrXON/FV3+SukFzxQ==}
+ peerDependencies:
+ react: '>=16.0.0'
+
+ '@douyinfe/semi-illustrations@2.100.0':
+ resolution: {integrity: sha512-SN7plpE328WGBohLHOVpYe6FwWSO6RLS7Xf6LhqEdtarwK52ircr4C/b+OyRqIwcLOzRYMgIoqcWnAQGmowcUw==}
+ peerDependencies:
+ react: '>=16.0.0'
+
+ '@douyinfe/semi-json-viewer-core@2.100.0':
+ resolution: {integrity: sha512-iQ6rX04YBngrsMz7Eds8zBI+W0MXb0mAICvfTaiX8RpoAwau9yFwbyHiCPKOVPSzI0hS8GwdMLSIYxdCOQPNqQ==}
+
+ '@douyinfe/semi-theme-default@2.100.0':
+ resolution: {integrity: sha512-7tJjg5NiuUYtChWr/E5rQ4Kcko3izz8rTxlNDWSS4YR3RQg3S+lQTgG5bD7LMnBqX399erf3wgE35KLwQZKWTg==}
+
+ '@douyinfe/semi-ui@2.100.0':
+ resolution: {integrity: sha512-fTaqS6B1gHLjwMKgcWTcJWdMk9gY96h94I71Y3z9ee6qIXJyjAO8XiE8G6bihEIeVO3vTKXp1DOKiGhlgMVJKQ==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+
+ '@douyinfe/vite-plugin-semi@2.74.0-alpha.6':
+ resolution: {integrity: sha512-juyKSG0onVBG29FLdGPBA0yHT9Kh7P8e0FDtwhp0DuMk6drd45bDQZuU171gzx0ahv9rJaojnD6CgcBiggtQ3A==}
+ peerDependencies:
+ vite: 5.1.0
+
+ '@emoji-mart/data@1.2.1':
+ resolution: {integrity: sha512-no2pQMWiBy6gpBEiqGeU77/bFejDqUTRY7KX+0+iur13op3bqUsXdnwoZs6Xb1zbv0gAj5VvS1PWoUUckSr5Dw==}
+
+ '@emoji-mart/react@1.1.1':
+ resolution: {integrity: sha512-NMlFNeWgv1//uPsvLxvGQoIerPuVdXwK/EUek8OOkJ6wVOWPUizRBJU0hDqWZCOROVpfBgCemaC3m6jDOXi03g==}
+ peerDependencies:
+ emoji-mart: ^5.2
+ react: ^16.8 || ^17 || ^18
+
+ '@emotion/babel-plugin@11.13.5':
+ resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==}
+
+ '@emotion/cache@11.14.0':
+ resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==}
+
+ '@emotion/css@11.13.5':
+ resolution: {integrity: sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==}
+
+ '@emotion/hash@0.8.0':
+ resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
+
+ '@emotion/hash@0.9.2':
+ resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
+
+ '@emotion/memoize@0.9.0':
+ resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==}
+
+ '@emotion/react@11.14.0':
+ resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@emotion/serialize@1.3.3':
+ resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==}
+
+ '@emotion/sheet@1.4.0':
+ resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==}
+
+ '@emotion/unitless@0.10.0':
+ resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==}
+
+ '@emotion/unitless@0.7.5':
+ resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.2.0':
+ resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==}
+ peerDependencies:
+ react: '>=16.8.0'
+
+ '@emotion/utils@1.4.2':
+ resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==}
+
+ '@emotion/weak-memoize@0.4.0':
+ resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==}
+
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.21.5':
+ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.21.5':
+ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.21.5':
+ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.21.5':
+ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.21.5':
+ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.21.5':
+ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.21.5':
+ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.21.5':
+ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.21.5':
+ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.21.5':
+ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.21.5':
+ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.21.5':
+ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.21.5':
+ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.21.5':
+ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.9.1':
+ resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/eslintrc@2.1.4':
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@eslint/js@8.57.0':
+ resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@floating-ui/core@1.7.5':
+ resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+
+ '@floating-ui/dom@1.7.6':
+ resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
+
+ '@floating-ui/react-dom@2.1.8':
+ resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/react@0.27.19':
+ resolution: {integrity: sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog==}
+ peerDependencies:
+ react: '>=17.0.0'
+ react-dom: '>=17.0.0'
+
+ '@floating-ui/utils@0.2.11':
+ resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
+
+ '@giscus/react@3.1.0':
+ resolution: {integrity: sha512-0TCO2TvL43+oOdyVVGHDItwxD1UMKP2ZYpT6gXmhFOqfAJtZxTzJ9hkn34iAF/b6YzyJ4Um89QIt9z/ajmAEeg==}
+ peerDependencies:
+ react: ^16 || ^17 || ^18 || ^19
+ react-dom: ^16 || ^17 || ^18 || ^19
+
+ '@humanwhocodes/config-array@0.11.14':
+ resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
+ engines: {node: '>=10.10.0'}
+ deprecated: Use @eslint/config-array instead
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
+ deprecated: Use @eslint/object-schema instead
+
+ '@iconify/types@2.0.0':
+ resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
+
+ '@iconify/utils@3.1.3':
+ resolution: {integrity: sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==}
+
+ '@inquirer/ansi@2.0.7':
+ resolution: {integrity: sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+
+ '@inquirer/checkbox@5.2.1':
+ resolution: {integrity: sha512-b6xmA/VlTe0ZgDQHDui+Nav470u7u49nRd8/iuhOcQPO9Ch7lGuogydhi2VOmNlZ+zXcM8IcPuNSwQcdJaF/kw==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/confirm@6.1.1':
+ resolution: {integrity: sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/core@11.2.1':
+ resolution: {integrity: sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/editor@5.2.2':
+ resolution: {integrity: sha512-ZRVd/oD+sYsUd5zVm0NflqEzlqfYCyHNsqkHl2oWXEUHs12tCbcSFi+wVFEvD8+LGRaMUsVrE7qeo6lSG/S1Vg==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/expand@5.1.1':
+ resolution: {integrity: sha512-YmQpenjbFSHAK3sOd44puHh3V1KXXr+JiNpUztoSQ4drLh2rTVzTap/YtlAVu/5xavifIlBfNEzJ/neZJ1a/1g==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/external-editor@3.0.3':
+ resolution: {integrity: sha512-6thf5I8q7lZwzGLAxPaaGEREEkZ3nyePPDQ1oyobblxmEE8mqTLguScP7pDjUTAibiyb4hfXl+qjUEJ+di/aNA==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/figures@2.0.7':
+ resolution: {integrity: sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+
+ '@inquirer/input@5.1.2':
+ resolution: {integrity: sha512-9K/DDBSQpOyZSkt6sOVP9Vo0TR7atX2kuILsUu0x3wVcVbe97lJwIJKMLdMw25tDYuXl/qp6erT0Xs1rfmcfZg==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/number@4.1.1':
+ resolution: {integrity: sha512-XF4IXAbPnGPgw0wsbC/i2tPcyfdZgDpUlhsqU0SfT4IRIGWha6Xm9VRgN5yYxJq+jnyXlfXI/nQ3ulfk0iEICA==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/password@5.1.1':
+ resolution: {integrity: sha512-3XBfF7DAsp5qeDsvN5Rd1HmbNokVvEQoUM0QLrRcybC9nX96w3Pbmu7qUsb3IT3J3jBvs2+mTXaKHOUsgHMLzg==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/prompts@8.5.2':
+ resolution: {integrity: sha512-IYR/3C/paEVVQYQvdDlFZVjRCJVYHHON0XXMH91KO9GSxs0TdKYWlUdvfQl2EfAHDxUaN3IBffkE/BDTh5nJ6g==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/rawlist@5.3.1':
+ resolution: {integrity: sha512-QqdTqQddL3qPX/PPrjobpsO25NZ4dWXgTLenrR445L2ptLEYE6Z+PD5c5CNDJNx4ugRgELAIpSIJxZaO2jJ2Og==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/search@4.2.1':
+ resolution: {integrity: sha512-xJj8QWKRSrfKoBIITLZK61dD3zwo0Rz11fgDImku30/Oe81zMdIdGgrLY2h6RkJ+KZ/GhNYIRMKnH/62qBTA5g==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/select@5.2.1':
+ resolution: {integrity: sha512-FlDndEUww8m7BfukO2nJa25vhD+H5jxxCv4oGioKqzyWz3nPHhhw4LKdYRSlXuAx7DsdWia7iyaBPKKS95Evfw==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@inquirer/type@4.0.7':
+ resolution: {integrity: sha512-t28inv14nMQ1PhKpsJPY+kEs/c00qzeCOS2gTNRyTjG5d6qsVA2fItxW4hkvGZ5lvanGLdtCzVIx5dwdRpN1+g==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
+ '@lit-labs/ssr-dom-shim@1.6.0':
+ resolution: {integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==}
+
+ '@lit/reactive-element@2.1.2':
+ resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==}
+
+ '@lobehub/emojilib@1.0.0':
+ resolution: {integrity: sha512-s9KnjaPjsEefaNv150G3aifvB+J3P4eEKG+epY9zDPS2BeB6+V2jELWqAZll+nkogMaVovjEE813z3V751QwGw==}
+
+ '@lobehub/fluent-emoji@2.0.0':
+ resolution: {integrity: sha512-bKjU3sf0+7NppvcdqD/raWvKGJIw8HDJVporNQ7oR8pIPoLeb9IUu/vqIYClOlwfu9qntji7FFySfbdNqXSiJw==}
+ peerDependencies:
+ antd: ^5.23.0
+ react: ^19.0.0
+ react-dom: ^19.0.0
+
+ '@lobehub/icons@2.48.0':
+ resolution: {integrity: sha512-BeLa3pG0Bj1jUozN7k10oWqyfkCA5p5eBzMyfd1Y/WzUSyDwDOrPWtcIpLSS+Y8/4BLMiMJtWR/dQ/UXrA1+DA==}
+ peerDependencies:
+ antd: ^5.23.0
+ react: ^19.0.0
+ react-dom: ^19.0.0
+
+ '@lobehub/ui@2.24.3':
+ resolution: {integrity: sha512-U9dbrQlPXfrk0jszQ9JCxliVx6FX6cs5n/+2T6NozJrnG040yeU0btU6qB8uWW+y8yF2V/nvz5AwwOjSdBUMQQ==}
+ peerDependencies:
+ antd: ^5.25.0
+ framer-motion: ^12.0.0
+ react: ^19.0.0
+ react-dom: ^19.0.0
+
+ '@mdx-js/mdx@3.1.1':
+ resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
+
+ '@mdx-js/react@3.1.1':
+ resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==}
+ peerDependencies:
+ '@types/react': '>=16'
+ react: '>=16'
+
+ '@mermaid-js/parser@1.1.1':
+ resolution: {integrity: sha512-VuHdsYMK1bT6X2JbcAaWAhugTRvRBRyuZgd+c22swUeI9g/ntaxF7CY7dYarhZovofCbUNO0G7JesfmNtjYOCw==}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@parcel/watcher-android-arm64@2.5.6':
+ resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.5.6':
+ resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.5.6':
+ resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.5.6':
+ resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.5.6':
+ resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm-musl@2.5.6':
+ resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.6':
+ resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm64-musl@2.5.6':
+ resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-x64-glibc@2.5.6':
+ resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-x64-musl@2.5.6':
+ resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-win32-arm64@2.5.6':
+ resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-ia32@2.5.6':
+ resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.5.6':
+ resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.5.6':
+ resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==}
+ engines: {node: '>= 10.0.0'}
+
+ '@primer/octicons@19.28.1':
+ resolution: {integrity: sha512-pwSilXmgNrbVF2bChkh4zZtUyb4Vr4niYhA9PhUdtjVz86A2iwA/YjjopHS0suT+I7niUZJEepEpmSC7kARKNQ==}
+
+ '@radix-ui/primitive@1.1.4':
+ resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==}
+
+ '@radix-ui/react-arrow@1.1.9':
+ resolution: {integrity: sha512-yqHW5WQ/cTpU/un7dqqIKNy2iRU8BC0JB78PEzTfCCYvZu1U6W9KwObAniMk9nhSfyotKPQTYaUD/HB0f5muig==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.3':
+ resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.4':
+ resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.12':
+ resolution: {integrity: sha512-MhoruH6xEzsbvOmo4TNgMfmtvRGyDZw4MDSdf4ybMHfezjqwzv6hyd4lsMzBp8K9Sn6sGzCF62x1I7BYUECXOg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.2':
+ resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-popper@1.3.0':
+ resolution: {integrity: sha512-9PB589e1aWZbrlFUHdz6WiPCL+xLZHQFX7oibqG/6Q0SwOkxDyQX9W/cyPa+sAPPKuC8cpLCpRczE5a/1DiwVQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.11':
+ resolution: {integrity: sha512-UEytdjgEh2tJGgD/gZK4FUx6t1rNIlM3U0DENhSrG7I75FGm1DnaDuVUWF1pWAWUwGmn1sCJ1VGHn8LhN1aTOw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.6':
+ resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.1.5':
+ resolution: {integrity: sha512-zifXeB8Y88qCYx8PLZ5oQb32KwZub+s925mMoZsBBq9KUQqWKkREubTfs6ASjRPPBe7Jt9O8OHH89+95VG+grA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.2.5':
+ resolution: {integrity: sha512-rCMO3QsIVKv5JTY5CVbo2MvO77SpEqqYc8AvRE7OWqRDOIqAKjsp+DrmnY9uc8NPdxB5E2z47HTYGeE2+NTptg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-tooltip@1.2.9':
+ resolution: {integrity: sha512-u6F9MmTtBSLkiXNVDrtB/yPCZarM9smNswC24YYLV/M+bth6J3Gs3vlJezEoFwKZvPvxhCpUYdUnOsNG/0XOlA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.2':
+ resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.2.3':
+ resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-effect-event@0.0.3':
+ resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.2':
+ resolution: {integrity: sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.2':
+ resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-rect@1.1.2':
+ resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-size@1.1.2':
+ resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-visually-hidden@1.2.5':
+ resolution: {integrity: sha512-tPcHNI3FajdDBFpl/Ez1m2WL0ufJqBKyHxMDBvKitopamK36WwBGOMicuMEZKkM5Wce41QxUyv6BsiqfrWBiGg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/rect@1.1.2':
+ resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==}
+
+ '@rc-component/async-validator@5.1.2':
+ resolution: {integrity: sha512-WYbrZSjzznU1ekD0qFq2qRxt309VoS61MTG5npnFQlKYcoy9IzU8T+ZCIhq5bGAXRbXysABFWTspicMfmWFwow==}
+ engines: {node: '>=14.x'}
+
+ '@rc-component/color-picker@2.0.1':
+ resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rc-component/context@1.4.0':
+ resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rc-component/mini-decimal@1.1.4':
+ resolution: {integrity: sha512-xiuXcaCwyOWpD8a8scdExFl+bntNphAW8XeenL1ig2en0AAZY0Pcp4pC0dI22qJ+NvxKn9RoNIoRdqYU3BLH4w==}
+ engines: {node: '>=8.x'}
+
+ '@rc-component/mutate-observer@1.1.0':
+ resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rc-component/portal@1.1.2':
+ resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rc-component/qrcode@1.1.3':
+ resolution: {integrity: sha512-aGv6alnn4HbDEsURzKP+jv13rbi1VxmAYfBNZr5GKF1iohMNWy5tAVoJ1E3cOvzMB1kbUPvCXchM6zSFlRGPhA==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rc-component/tour@1.15.1':
+ resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rc-component/trigger@2.3.1':
+ resolution: {integrity: sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@remix-run/router@1.23.3':
+ resolution: {integrity: sha512-4An71tdz9X8+3sI4Qqqd2LWd9vS39J7sqd9EU4Scw7TJE/qB10Flv/UuqbPVgfQV9XoK8Np6jNquZitnZq5i+Q==}
+ engines: {node: '>=14.0.0'}
+
+ '@resvg/resvg-js-android-arm-eabi@2.4.1':
+ resolution: {integrity: sha512-AA6f7hS0FAPpvQMhBCf6f1oD1LdlqNXKCxAAPpKh6tR11kqV0YIB9zOlIYgITM14mq2YooLFl6XIbbvmY+jwUw==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [android]
+
+ '@resvg/resvg-js-android-arm64@2.4.1':
+ resolution: {integrity: sha512-/QleoRdPfsEuH9jUjilYcDtKK/BkmWcK+1LXM8L2nsnf/CI8EnFyv7ZzCj4xAIvZGAy9dTYr/5NZBcTwxG2HQg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@resvg/resvg-js-darwin-arm64@2.4.1':
+ resolution: {integrity: sha512-U1oMNhea+kAXgiEXgzo7EbFGCD1Edq5aSlQoe6LMly6UjHzgx2W3N5kEXCwU/CgN5FiQhZr7PlSJSlcr7mdhfg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@resvg/resvg-js-darwin-x64@2.4.1':
+ resolution: {integrity: sha512-avyVh6DpebBfHHtTQTZYSr6NG1Ur6TEilk1+H0n7V+g4F7x7WPOo8zL00ZhQCeRQ5H4f8WXNWIEKL8fwqcOkYw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@resvg/resvg-js-linux-arm-gnueabihf@2.4.1':
+ resolution: {integrity: sha512-isY/mdKoBWH4VB5v621co+8l101jxxYjuTkwOLsbW+5RK9EbLciPlCB02M99ThAHzI2MYxIUjXNmNgOW8btXvw==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@resvg/resvg-js-linux-arm64-gnu@2.4.1':
+ resolution: {integrity: sha512-uY5voSCrFI8TH95vIYBm5blpkOtltLxLRODyhKJhGfskOI7XkRw5/t1u0sWAGYD8rRSNX+CA+np86otKjubrNg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@resvg/resvg-js-linux-arm64-musl@2.4.1':
+ resolution: {integrity: sha512-6mT0+JBCsermKMdi/O2mMk3m7SqOjwi9TKAwSngRZ/nQoL3Z0Z5zV+572ztgbWr0GODB422uD8e9R9zzz38dRQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@resvg/resvg-js-linux-x64-gnu@2.4.1':
+ resolution: {integrity: sha512-60KnrscLj6VGhkYOJEmmzPlqqfcw1keDh6U+vMcNDjPhV3B5vRSkpP/D/a8sfokyeh4VEacPSYkWGezvzS2/mg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@resvg/resvg-js-linux-x64-musl@2.4.1':
+ resolution: {integrity: sha512-0AMyZSICC1D7ge115cOZQW8Pcad6PjWuZkBFF3FJuSxC6Dgok0MQnLTs2MfMdKBlAcwO9dXsf3bv9tJZj8pATA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@resvg/resvg-js-win32-arm64-msvc@2.4.1':
+ resolution: {integrity: sha512-76XDFOFSa3d0QotmcNyChh2xHwk+JTFiEQBVxMlHpHMeq7hNrQJ1IpE1zcHSQvrckvkdfLboKRrlGB86B10Qjw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@resvg/resvg-js-win32-ia32-msvc@2.4.1':
+ resolution: {integrity: sha512-odyVFGrEWZIzzJ89KdaFtiYWaIJh9hJRW/frcEcG3agJ464VXkN/2oEVF5ulD+5mpGlug9qJg7htzHcKxDN8sg==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@resvg/resvg-js-win32-x64-msvc@2.4.1':
+ resolution: {integrity: sha512-vY4kTLH2S3bP+puU5x7hlAxHv+ulFgcK6Zn3efKSr0M0KnZ9A3qeAjZteIpkowEFfUeMPNg2dvvoFRJA9zqxSw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@resvg/resvg-js@2.4.1':
+ resolution: {integrity: sha512-wTOf1zerZX8qYcMmLZw3czR4paI4hXqPjShNwJRh5DeHxvgffUS5KM7XwxtbIheUW6LVYT5fhT2AJiP6mU7U4A==}
+ engines: {node: '>= 10'}
+
+ '@rolldown/pluginutils@1.0.0-beta.27':
+ resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
+
+ '@rollup/rollup-android-arm-eabi@4.62.0':
+ resolution: {integrity: sha512-IPIQ55ythEHkfEd9jMEi32OQ7SxURsGA43JI22lj01OLZNt2NUbJX8YUHxkVWyQ6daHPNn0truF5nSj3DQp6YQ==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.62.0':
+ resolution: {integrity: sha512-M6s9cr10MibETyo8JsOkq+Lo1+lU6hcvb1MApnUql5qte/5hMEgzlN8/ReIKNfRV8rrqX50W1BX9zoUhC192RA==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.62.0':
+ resolution: {integrity: sha512-BqCoMoIbn0keKys+dEAdBa70EtOwV1bEsQCUgU9FdiZmmMge/Zk7LlkYGqbrdHR+Frnt0E1FOanly+rlwvvQzw==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.62.0':
+ resolution: {integrity: sha512-SIMzST3VFNXDAbeIWDWiFCNM5qncUBDWaEV7NfE7oZbDt2mgfW4MvbKdbYiGOLoM32gbTv608UMd0XktEYSD7w==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.62.0':
+ resolution: {integrity: sha512-ezjfSQMP7ArdUsbBwbQIfwAlhE84I2iVnzQNCFSveqV42q+BmKlzVpf7mxv5EchLcoWU4y6/heFzVg1F+hodUQ==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.62.0':
+ resolution: {integrity: sha512-9+qTWGW9AZRhnUgwtTwzNwcPlL87ngkeN0LA+q1bADvmY9aNvWaF2TFW8BZgnQPYxpDI7+rMVLivcd4V737TAQ==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.62.0':
+ resolution: {integrity: sha512-T1dMEQhXA/jkJ/jyMIw9IovK8bSUq7A8kLIlvZTb/6YIVsp2zLavr4F3oyllHWo7eIVJRyE5n3tUjQJEbE1IuQ==}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.62.0':
+ resolution: {integrity: sha512-2as0LgT7qQpyceQq6VUJYnumUMUrgGQCWIiDIN9DE0/tglsk6o66uCB4f3djRawAltvfCNLyZZrsqbPA6inCsA==}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-arm64-gnu@4.62.0':
+ resolution: {integrity: sha512-bVURMg+6eNN9C/yc0aVjooZcwTTtYF4YW3xta5pP0//r3o1V8gXEHXWCndj47w/HhwsFroZrFhR+6uQP5T0n0g==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-arm64-musl@4.62.0':
+ resolution: {integrity: sha512-Ful8pM/2yYI83PViWdFdpZhdI8HJ5qsXANe5atypbHDf+KIBBDsZsbyy8hbXnULVvW9NsTh5DHwbcBftyLTfiw==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-loong64-gnu@4.62.0':
+ resolution: {integrity: sha512-9Gp/DgrkzfUBmNPVTyPTvay+4xEP7M/clXpj3efXBcm6uTIVIgDg4rqUpqKXvLEuFRVuEpSAOkhgNeecvaZ4Cg==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-loong64-musl@4.62.0':
+ resolution: {integrity: sha512-m9tsJz54LUXkSYM8+8PG81B9IKK5r+2T0clMq4QrS16xFosufU7firBDAZEsDheDs7wTlP7h3++S7lMsU955HA==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-ppc64-gnu@4.62.0':
+ resolution: {integrity: sha512-3UvJ5PNVU16aJf6M3tFI24pWzAl2/ynfbyRN3ICyQajK1lSkrnVYNnLz3v04J32qKa0FczJc22zeToc0lr2A3w==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-ppc64-musl@4.62.0':
+ resolution: {integrity: sha512-vRWUAbYLGHBZS6Q8Msb2sfnf1fvJf+47t8l/TwOerM2qArzy+IeNMTHrYLHXh95h8MoatPHI5hhSZNs+mGXKPg==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.62.0':
+ resolution: {integrity: sha512-c00T5SYENHAt86cfW47URaP3Us5vLC/4QO7GYud1G5VNRffCwwCuBspwqYrriuJB+5m0WFzClCn9wed0FBjKvg==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-riscv64-musl@4.62.0':
+ resolution: {integrity: sha512-krrCDilhXOwFkSkO3Wm9I/f9H0L92XHHwy2fwxjukxIbh0dem8gZqOW5Y8BsHrpJv5qwlRBV+Wl4ZFyRWhUpwg==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-linux-s390x-gnu@4.62.0':
+ resolution: {integrity: sha512-7pfYFSTc4/rUC/FtAI0Qp6QthDBCIi6/AuP1xYqFk5vanI6KnL5dWKP60OM/05LOsbwTmIcvr6eXC4CJuJ75IA==}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-gnu@4.62.0':
+ resolution: {integrity: sha512-7SDIalKeIpG0Ifogbbdn58HmSotYMlf23K3dCJEmiVd9Fg36Vmni82iPQec27N3wY4Bvbxftkxz6vSx9OcouTg==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rollup/rollup-linux-x64-musl@4.62.0':
+ resolution: {integrity: sha512-eRZevouTH2i1HeAVLqJuLnt256krQkGY0TN6WsTmsIhuzbh457HuWDMakKwmi0Cjadux983CoSr8Lim2QhUIFw==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rollup/rollup-openbsd-x64@4.62.0':
+ resolution: {integrity: sha512-3oVS7FLGa4U1qcvao9ylGxrjXZyUQqR8UwxEcnUEyPX53O/C/mKDZegNXTdHCP+h3e6ta/f1EN38Yif1mmZHYg==}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@rollup/rollup-openharmony-arm64@4.62.0':
+ resolution: {integrity: sha512-yTB9TgfWj5wHe5QgktAgXTLLot1gvEjl1NiPPAUiCs4oPrIWFl5V4nC3GrkNdj9LaAU4s94nVrGbGOCqUpyWsg==}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rollup/rollup-win32-arm64-msvc@4.62.0':
+ resolution: {integrity: sha512-5LOhoaesY3doG1c+ac/2JtgREpKoJr5bUHH8tKY0V8di7+uSV6BwLs2PlR0/yzefGOkR+wE7ZolZphHCsyG5Rw==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.62.0':
+ resolution: {integrity: sha512-yYkWHhmbhRTWTnWos5HC4GcPQfjlzzCNbM9e/+GXrLuaBXYA3qSDR9f0Vgufd5S8yX81U8jPKp7ZnAjZFMtRnw==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-gnu@4.62.0':
+ resolution: {integrity: sha512-SoTb6lPg25xZlA2ibwQ++ahCCnH+FP0qmEuafMJ4gznZKOlXioKEAeJLgCrqjM98ACziXM9V1amFjICVL4IFoA==}
+ cpu: [x64]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.62.0':
+ resolution: {integrity: sha512-5L+T1fMX4RIEBoZzT0+sQ0PhTS36NULFmMXtl1TZo44TMAROIMHbZufSOjVWt/Y622BtxgxtaNOokbTDvfsrZA==}
+ cpu: [x64]
+ os: [win32]
+
+ '@sec-ant/readable-stream@0.4.1':
+ resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+
+ '@shikijs/core@3.23.0':
+ resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==}
+
+ '@shikijs/core@4.2.0':
+ resolution: {integrity: sha512-Hc87Ab1Ld/vEbZRCbwx344I5v+4RU8CVToUTRkqXL1+TjbuOp9U5Xa0M23V4GEWHxVn+yO5otb+HkQVm3ptWQQ==}
+ engines: {node: '>=20'}
+
+ '@shikijs/engine-javascript@3.23.0':
+ resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==}
+
+ '@shikijs/engine-oniguruma@3.23.0':
+ resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==}
+
+ '@shikijs/langs@3.23.0':
+ resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==}
+
+ '@shikijs/primitive@4.2.0':
+ resolution: {integrity: sha512-NOq+DtUkVBJtZMVXL5A0vI0Xk8nvDYaXetFHSJFlOqjDZIVhIPRYFdGkSoElDqNuegikcc3A76SNUa8dTqtAYA==}
+ engines: {node: '>=20'}
+
+ '@shikijs/stream@4.2.0':
+ resolution: {integrity: sha512-OaMUUStdIZ+l1GJad9uVACR3Xvgwo4y+RmEuDMU62cgFMMg1IBCaIFmvzAR2HiCpGtwoc/qPfpNnP+ivgrPXZg==}
+ engines: {node: '>=20'}
+ peerDependencies:
+ react: ^19.0.0
+ solid-js: ^1.9.0
+ vue: ^3.2.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ solid-js:
+ optional: true
+ vue:
+ optional: true
+
+ '@shikijs/themes@3.23.0':
+ resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==}
+
+ '@shikijs/transformers@3.23.0':
+ resolution: {integrity: sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==}
+
+ '@shikijs/types@3.23.0':
+ resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==}
+
+ '@shikijs/types@4.2.0':
+ resolution: {integrity: sha512-VT/MKtlpOhEPZloSH3Pb9WCZEBDoQVMa9jedp5UAwmJOar1DVc9DRODAxmYPW9M93IK4ryuqRejFfmlvlVDemw==}
+ engines: {node: '>=20'}
+
+ '@shikijs/vscode-textmate@10.0.2':
+ resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
+
+ '@sindresorhus/merge-streams@4.0.0':
+ resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
+ engines: {node: '>=18'}
+
+ '@so1ve/prettier-config@3.26.0':
+ resolution: {integrity: sha512-DWiWczVdwbolZy/BKlFqsWWLkxarGAhtcyoS7K2u6BUXBFZg6V+87laCvs/UC/kHiucx/IvZXdf3CQtZfoYxxw==}
+ peerDependencies:
+ prettier: ^3.7.4
+
+ '@so1ve/prettier-plugin-toml@3.26.0':
+ resolution: {integrity: sha512-iFJpSndNdIMnzNKbdXXRqyA2rrLsVqePhX3m+ongWip3BFxmRpfW9pon2FTm7qsZrslu39wQ7wPvIuxbmXZe2g==}
+ peerDependencies:
+ prettier: ^3.7.4
+
+ '@splinetool/runtime@0.9.526':
+ resolution: {integrity: sha512-qznHbXA5aKwDbCgESAothCNm1IeEZcmNWG145p5aXj4w5uoqR1TZ9qkTHTKLTsUbHeitCwdhzmRqan1kxboLgQ==}
+
+ '@stitches/react@1.2.8':
+ resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==}
+ peerDependencies:
+ react: '>= 16.3.0'
+
+ '@swc/core-darwin-arm64@1.15.41':
+ resolution: {integrity: sha512-kREh6J5paQFvP3i7f/4FbqRNOJREutVFVOkder4GVyCBQ39YmER55cW/y1NNjwrchzFqgYswFn0mMDCqbqKzrw==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@swc/core-darwin-x64@1.15.41':
+ resolution: {integrity: sha512-N8B56ESFazZAWZyIkecADSPCwlLEinW7QLMEeotCpv4J7VXwfH+OLkmRL8o96UZ+1355fwHxDTS6/wK7yucvkA==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@swc/core-linux-arm-gnueabihf@1.15.41':
+ resolution: {integrity: sha512-6XrId2fyle0mS5xxON8rU84mPd2Cq1kDJRj+4BnQKTd7u+2kSA6Ww+JkOP0iTNqOqt9OXhPOEAjBHAuonWcdCg==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@swc/core-linux-arm64-gnu@1.15.41':
+ resolution: {integrity: sha512-ynLIarxlkVnqHn1D0fKOVht6mNU5ks6lrH+MY3kkS+XFaGGgDxFZVjWKJlkYTKm3RCvBTfA8Ng5fLufXheMRKQ==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@swc/core-linux-arm64-musl@1.15.41':
+ resolution: {integrity: sha512-dXu/5vd4gh8symyhRF+4G7gOPkjmb4pONhh7sl+6GSiW0LOKZlfu5kXmyFbTz9smOT7jgr002qY9b1nujjXt2A==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@swc/core-linux-ppc64-gnu@1.15.41':
+ resolution: {integrity: sha512-XGO6zVPXoPE0gf/XnI4jBbafNT13AYgoh6ns0JCSdOetI/kqVf0vhpz7NuNgAzZrMVCsmieqjPoTwViDgh4mOQ==}
+ engines: {node: '>=10'}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@swc/core-linux-s390x-gnu@1.15.41':
+ resolution: {integrity: sha512-0WUglRwyZtW+iMi7J3iFdrCxreZZIKf4egTwEQfIYRsqFax69A0OrFj+NIoFSE03xBT/IFRrg+S8K6f9Ky+4hA==}
+ engines: {node: '>=10'}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@swc/core-linux-x64-gnu@1.15.41':
+ resolution: {integrity: sha512-VxkuQK59c0tHm6uJZCUrS3cyA2JhGGfdU6e41SZz0x/JS+4Sm7C1mIc97In14vkZJopEt7yXA2TouCqZDSygEA==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@swc/core-linux-x64-musl@1.15.41':
+ resolution: {integrity: sha512-/0qXIu1ZxggLuovLb22vFfKHq2AA4n6Whw5UwmVCHk4pkw7KWnPIQpMCEqUMPsNkFJig7PPp/TSYFu8ZEb2rtQ==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@swc/core-win32-arm64-msvc@1.15.41':
+ resolution: {integrity: sha512-Y481sMNZM6rECh9VO4+y26N1lWEDAyxnBZskUf37fl90uHE946VHfmiVQWT0uMFOhyJJFovGTRuF4W82dwewUg==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@swc/core-win32-ia32-msvc@1.15.41':
+ resolution: {integrity: sha512-BAchBD5qeUzy3hiPSLJtaaoSm4blCLyYffOF1bGE4ETcV+OisqjUAwDQMJj++4bTpvMCDzwC+Bj3PmQyBCtscw==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@swc/core-win32-x64-msvc@1.15.41':
+ resolution: {integrity: sha512-WOkA+fJ/ViVBQDsSV9JC52NACTe5PhlurA6viASDZGb7HR3KS01ZG7RZ+Bg6SVQFIoq3gSbTsskQVe6EbHFAYw==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@swc/core@1.15.41':
+ resolution: {integrity: sha512-03nQq/082QRJJiOvp3FGbgxTGyyxMxohPTjhk/W9bD2J0tk4ukITI7goOhOO2WbaHn/lsPmo/zf8+DIXhwpgYQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@swc/helpers': '>=0.5.17'
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+
+ '@swc/counter@0.1.3':
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+
+ '@swc/types@0.1.26':
+ resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==}
+
+ '@tiptap/core@3.26.1':
+ resolution: {integrity: sha512-TX9PyPqBoix0qDLjtok/bddtdSy54QhzLVha405C07V+WySOpH3s/pWYkywehZQY0SQtcrcY4MNSCeQjCbA28A==}
+ peerDependencies:
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-blockquote@3.26.1':
+ resolution: {integrity: sha512-WaKjKmUaadgvZDDBk9JOn/oidlOFr6booqJIWHGL5S0aUUTKHS19oGfKQq/l9Z1y1niaRePk0Y4fy/jxCnfKPA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-bold@3.26.1':
+ resolution: {integrity: sha512-VIlF2sAiV6K009pcIDotfY8mvsPaq90dxeG9Q0ZIqfMD958TUCqjHw4MGYZf0/FgP12xksBfmcR7W312xgUf9Q==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-bubble-menu@3.26.1':
+ resolution: {integrity: sha512-Y3R9wFKP/U9M04JG+0PM/yW3OV+MSbUp6YBKQWZmUu8x6y7TbcNvDsaJ6QEFZt5aRMS6qH1ksYPTOz47JdjcfA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-bullet-list@3.26.1':
+ resolution: {integrity: sha512-JB6bEJJHxXNAXEXTIAN3/j70p1ARHdeMfhzshGZswWKUWtDibTCrspIp7p1VNeiuVtJ/HB6PpFkGi7yWtQ3RTg==}
+ peerDependencies:
+ '@tiptap/extension-list': 3.26.1
+
+ '@tiptap/extension-code-block@3.26.1':
+ resolution: {integrity: sha512-NY7SYqcrqDVYTSWyaNGdSfCims6pOHoRQ2Rh4DEFb/rb8gLVkqbLZhcHzQCVfinlPqgV3xWF6cYMORwmnlBkXQ==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-code@3.26.1':
+ resolution: {integrity: sha512-t9/VR5k3rGPyhcGau9YvVgaAQ+nP9R9WzS996bQQ7GIrMOTSXb0FWwoQFBiYl83V6VA16Tlj/oScC7SFlA8lvA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-document@3.26.1':
+ resolution: {integrity: sha512-6W2vZjvi0Mv+4xEtwMDGhWwo7FotWR6eKfmntmduvehWevFpMxOKcTtyotjLigfZv738y50YWmvbaPuAPJG3BA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-dropcursor@3.26.1':
+ resolution: {integrity: sha512-eVq3BvFIa3YD+pBIlj1i72vYEixlegGVKHnSYiVF2ovkQOSAH9sca7pkq6WgV1sMTCyWCU8e+WznTqtydvHUWA==}
+ peerDependencies:
+ '@tiptap/extensions': 3.26.1
+
+ '@tiptap/extension-floating-menu@3.26.1':
+ resolution: {integrity: sha512-xn0g4m/q2bjG+hULPwp6Aqb/6wpzUtc65jOhgJsG/S3Ey3kLJGUvZBuhozwNFu8FcugxM1fMUpNhkJkodCCGFw==}
+ peerDependencies:
+ '@floating-ui/dom': ^1.0.0
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-gapcursor@3.26.1':
+ resolution: {integrity: sha512-BWW1yMQQA4TbEU0LLK+4cd9ebLTuZG5KjHwFMBRD/bGiRW9V1gTWFsCqThBbczcANoQiZK9pn5/4Ad/rGM3HUg==}
+ peerDependencies:
+ '@tiptap/extensions': 3.26.1
+
+ '@tiptap/extension-hard-break@3.26.1':
+ resolution: {integrity: sha512-gzNb1e/fK6HN+ko1axsrasjK7F1q0Bnm0G4ZY/0eq7pV7s1wZuwoCiGbvUx/9LCFKRV6+94FTqlb0A3NbYN36g==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-heading@3.26.1':
+ resolution: {integrity: sha512-eRlv9XxzUL8FobKAiF1WjP35CT2QpbcxxeyYFF7BmGEONvKI7r5g7JGwyGli4Cvclh70h8w6JuoXSmGUVEU65A==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-horizontal-rule@3.26.1':
+ resolution: {integrity: sha512-l9lPZYeSmY90y/2GkQcKaICFD5Atr8sx2SzJGkQzpNC9tRxZXyAHnfJE3OjBkspuGzjWIN0DimxBj4ibz58sKw==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-image@3.26.1':
+ resolution: {integrity: sha512-IjoT+kRK4a1sTImvUz257yfk5l9kMxXxfxCfix5AUKdiWyn8SGUjJZapLICcZVY05UDqXmwsBvBK9lHkKX5ERg==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-italic@3.26.1':
+ resolution: {integrity: sha512-cLKYvOLToWEkJkAPspgIZ/PYDzAxacLm1VWcAq1tO1QDQCDe2Kw+y/zsGlyYEq/aKsAgpp4JNopBwAXRXxt2/A==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-link@3.26.1':
+ resolution: {integrity: sha512-aLLGLgikuhLFHRbjfUC6D4gRg+NUty4uhW7YkyVl8AxxPME47dPbCOX4H6uLCjEZcn3WnfNuCTr6HCTl0KEmGA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-list-item@3.26.1':
+ resolution: {integrity: sha512-5gLXJUiP763NA6i4HgrtcwUDXPP8820hsaBQyF1Y1VsXNi02uW9FVLe3RZK8jF0NZUNh9CqD0gogYJCbKOUU8A==}
+ peerDependencies:
+ '@tiptap/extension-list': 3.26.1
+
+ '@tiptap/extension-list-keymap@3.26.1':
+ resolution: {integrity: sha512-EReSayePO6SIxtRbxx+7KfBQreWHvoZmMb3O/RemfT8W6J0hCG5N/Rh8Z12+YZOnCDRXJ4RzFpAikYka3E54jQ==}
+ peerDependencies:
+ '@tiptap/extension-list': 3.26.1
+
+ '@tiptap/extension-list@3.26.1':
+ resolution: {integrity: sha512-06nOjnyXpzMO8Ys5k3IbYsDsKib1mv2OtaxBYX1/1uvRyOKwUX5tqDLb/qigic0LIANNL73lkNC8Z8XPeG4Tkg==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-mention@3.26.1':
+ resolution: {integrity: sha512-Xz+e++ZOovrWMIkJ82WgpZN3dv2s9P+zeS1uUzC0shVzvDysurnqfYRm9onhDhlL7OIIlhVJjCl0LPsReNwGNA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+ '@tiptap/suggestion': 3.26.1
+
+ '@tiptap/extension-ordered-list@3.26.1':
+ resolution: {integrity: sha512-LeFPeFwb7ylkQVuuaHj+niu7WhWHpjDOi1GKZJE/ohOa2lgt7P221HMqhUzPiDlXOExN72oWTNmXUlT0ymCTkw==}
+ peerDependencies:
+ '@tiptap/extension-list': 3.26.1
+
+ '@tiptap/extension-paragraph@3.26.1':
+ resolution: {integrity: sha512-OkBeYUNM3eTzjm3z6IcC3NHryOX8g3eGNI86P/B+tFoFQSRuzLsKZU50ARCfIiLLg812NjcqujeJ1eX3BKDZrw==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-strike@3.26.1':
+ resolution: {integrity: sha512-7hmQ2mBsA+75GRrJIKYxb+10H23mblEQSGGsv9Ptl7JLaGmj+8sv2HGQGSUT9QBiBVprxaYTqyWFXQC9akfLWg==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-text-align@3.26.1':
+ resolution: {integrity: sha512-Ptbu1FyASFqIrbw/p9D6zLt8G7seDh4X408qU9FIrun7PE79o+amB5LWI/SzHFuVk3OMI+g7jE/mMDhNUYsqVA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-text-style@3.26.1':
+ resolution: {integrity: sha512-V8t7qOyLH7IBR2HjjJVZ9rUHTnuFToJx07L9PN9PpgQLhz9q8Jah4gAwmjLBXDRG2YaXImGK0RwKKCU/yHhwOg==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-text@3.26.1':
+ resolution: {integrity: sha512-Gocui5WvcCCJJIX17gdOVCSdYi5H4fDwaR0qkMAUZPq5kJCdrfl+vNpt8BTt53Bk+/QumiUW21fhQ184w7RoeQ==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extension-underline@3.26.1':
+ resolution: {integrity: sha512-HUHtQ+DRWDM0opW7Nk3YQwrLzw876hMU7cr1X/ZTG+8Bp+AKHihlwU+bqrPgG5St0mqASyUEhHQ/vK5PlnUYOQ==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+
+ '@tiptap/extensions@3.26.1':
+ resolution: {integrity: sha512-PmRaoe6bebTgz/ZQrjmzwZMST1d9js9ZTiKnUXeXl3Fm+V5U/c3TbbKDfqmL63qPQdjtShDMHi9tYuv+c77OFQ==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/pm@3.26.1':
+ resolution: {integrity: sha512-48cJQRbvr9Ux0+IgM1BR5vOLU5hkC+n+uerdQy2JjrIRKpYE/huU8fQFm6PoRppoKYfilklzb29elsQ+n2TA+g==}
+
+ '@tiptap/react@3.26.1':
+ resolution: {integrity: sha512-Gl7AhTJM7pjQ2WFwdIwD736oQeqUcw3GVaXYmCKtwTSO3F9PszLgeKEp6DvM+CmctTNYhu/apRfzkH3vU0h0uA==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ '@tiptap/starter-kit@3.26.1':
+ resolution: {integrity: sha512-A0zsvwGU9exLND34F8e8KqUXFSfs835tNN+VC+ZT3yNeaO/WXnlh/Cgal1F6pHHbcxy7RV2CRwJU5S3cWLPxrA==}
+
+ '@tiptap/suggestion@3.26.1':
+ resolution: {integrity: sha512-Bg8IyuDC92InSPzcHvCT3+ZDCJSMJIEINdFg513RPQzwZTw1dsrU0K00XYcDT6lOhZwLM2IVTiE6sZl2GY25Rg==}
+ peerDependencies:
+ '@tiptap/core': 3.26.1
+ '@tiptap/pm': 3.26.1
+
+ '@turf/boolean-clockwise@6.5.0':
+ resolution: {integrity: sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==}
+
+ '@turf/clone@6.5.0':
+ resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==}
+
+ '@turf/flatten@6.5.0':
+ resolution: {integrity: sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==}
+
+ '@turf/helpers@6.5.0':
+ resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==}
+
+ '@turf/invariant@6.5.0':
+ resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==}
+
+ '@turf/meta@3.14.0':
+ resolution: {integrity: sha512-OtXqLQuR9hlQ/HkAF/OdzRea7E0eZK1ay8y8CBXkoO2R6v34CsDrWYLMSo0ZzMsaQDpKo76NPP2GGo+PyG1cSg==}
+
+ '@turf/meta@6.5.0':
+ resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==}
+
+ '@turf/rewind@6.5.0':
+ resolution: {integrity: sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==}
+
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.28.0':
+ resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
+
+ '@types/d3-array@3.2.2':
+ resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==}
+
+ '@types/d3-axis@3.0.6':
+ resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==}
+
+ '@types/d3-brush@3.0.6':
+ resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==}
+
+ '@types/d3-chord@3.0.6':
+ resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==}
+
+ '@types/d3-color@3.1.3':
+ resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
+
+ '@types/d3-contour@3.0.6':
+ resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==}
+
+ '@types/d3-delaunay@6.0.4':
+ resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==}
+
+ '@types/d3-dispatch@3.0.7':
+ resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==}
+
+ '@types/d3-drag@3.0.7':
+ resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==}
+
+ '@types/d3-dsv@3.0.7':
+ resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==}
+
+ '@types/d3-ease@3.0.2':
+ resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
+
+ '@types/d3-fetch@3.0.7':
+ resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==}
+
+ '@types/d3-force@3.0.10':
+ resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==}
+
+ '@types/d3-format@3.0.4':
+ resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==}
+
+ '@types/d3-geo@3.1.0':
+ resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==}
+
+ '@types/d3-hierarchy@3.1.7':
+ resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==}
+
+ '@types/d3-interpolate@3.0.4':
+ resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
+
+ '@types/d3-path@3.1.1':
+ resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==}
+
+ '@types/d3-polygon@3.0.2':
+ resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==}
+
+ '@types/d3-quadtree@3.0.6':
+ resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==}
+
+ '@types/d3-random@3.0.3':
+ resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==}
+
+ '@types/d3-scale-chromatic@3.1.0':
+ resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==}
+
+ '@types/d3-scale@4.0.9':
+ resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==}
+
+ '@types/d3-selection@3.0.11':
+ resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==}
+
+ '@types/d3-shape@3.1.8':
+ resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==}
+
+ '@types/d3-time-format@4.0.3':
+ resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==}
+
+ '@types/d3-time@3.0.4':
+ resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==}
+
+ '@types/d3-timer@3.0.2':
+ resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
+
+ '@types/d3-transition@3.0.9':
+ resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==}
+
+ '@types/d3-zoom@3.0.8':
+ resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==}
+
+ '@types/d3@7.4.3':
+ resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==}
+
+ '@types/debug@4.1.13':
+ resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==}
+
+ '@types/estree-jsx@1.0.5':
+ resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
+
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+
+ '@types/geojson@7946.0.16':
+ resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
+
+ '@types/hast@3.0.4':
+ resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
+
+ '@types/js-cookie@3.0.6':
+ resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==}
+
+ '@types/katex@0.16.8':
+ resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==}
+
+ '@types/mdast@4.0.4':
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+ '@types/mdx@2.0.14':
+ resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==}
+
+ '@types/ms@2.1.0':
+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
+
+ '@types/parse-json@4.0.2':
+ resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
+
+ '@types/react-dom@19.2.3':
+ resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
+ peerDependencies:
+ '@types/react': ^19.2.0
+
+ '@types/react@19.2.17':
+ resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==}
+
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+
+ '@types/unist@2.0.11':
+ resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
+
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
+ '@types/use-sync-external-store@0.0.6':
+ resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
+
+ '@ungap/structured-clone@1.3.1':
+ resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==}
+
+ '@upsetjs/venn.js@2.0.0':
+ resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==}
+
+ '@use-gesture/core@10.3.1':
+ resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==}
+
+ '@use-gesture/react@10.3.1':
+ resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==}
+ peerDependencies:
+ react: '>= 16.8.0'
+
+ '@visactor/react-vchart@1.8.11':
+ resolution: {integrity: sha512-wHnCex9gOpnttTtSu04ozKJhTveUk8Ln2KX/7PZyCJxqlXq+eWvW4zvM6Ja8T8kGXfXtFYVVNh9zBMQ7y2T/Sw==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+
+ '@visactor/vchart-semi-theme@1.8.8':
+ resolution: {integrity: sha512-lm57CX3r6Bm7iGBYYyWhDY+1BvkyhNVLEckKx2PnlPKpJHikKSIK2ACyI5SmHuSOOdYzhY2QK6ZfYa2NShJ83w==}
+ peerDependencies:
+ '@visactor/vchart': ~1.8.8
+
+ '@visactor/vchart-theme-utils@1.8.8':
+ resolution: {integrity: sha512-RdCey3/t0+82EYyFZvx210rgJJWti9rsgcL3ROZS7o9CtRW1CMj9u9LKLDNIcPLNcLNACFC0aoT03jpdD1BCpA==}
+ peerDependencies:
+ '@visactor/vchart': ~1.8.8
+
+ '@visactor/vchart@1.8.11':
+ resolution: {integrity: sha512-RdQ822J02GgAQNXvO1LiT0T3O6FjdgPdcm9hVBFyrpBBmuI8MH02IE7Y1kGe9NiFTH4tDwP0ixRgBmqNSGSLZQ==}
+
+ '@visactor/vdataset@0.17.5':
+ resolution: {integrity: sha512-zVBdLWHWrhldGc8JDjSYF9lvpFT4ZEFQDB0b6yvfSiHzHKHiSco+rWmUFvA7r4ObT6j2QWF1vZAV9To8Ml4vHw==}
+
+ '@visactor/vgrammar-coordinate@0.10.11':
+ resolution: {integrity: sha512-XSUvEkaf/NQHFafmTwqoIMZicp9fF3o6NB2FDpuWrK4DI1lTuip/0RkqrC+kBAjc5erjt0em0TiITyqXpp4G6w==}
+
+ '@visactor/vgrammar-core@0.10.11':
+ resolution: {integrity: sha512-VL9vcLPDg1LrHl7EOx0Ga9ATsoaChKIaCGzxjrPEjWiIS5VPU9Rs0jBKP+ch8BjamAoSuqL5mKd0L/RaUBqlaA==}
+
+ '@visactor/vgrammar-hierarchy@0.10.11':
+ resolution: {integrity: sha512-0r3k51pPlJHu63BduG3htsV/ul62aVcKJxFftRfvKkwGjm1KeHoOZEEAwIf78U2puio0BkLqVn2Ek2L4FYZaIg==}
+
+ '@visactor/vgrammar-projection@0.10.11':
+ resolution: {integrity: sha512-yEiKsxdfs5+g60wv5xZ1kyS/EDrAsUzAxCMpFFASVUYbQObHvW+elm+UPq2TBX6KZqAM0gsd1inzaLvfsCrLSg==}
+
+ '@visactor/vgrammar-sankey@0.10.11':
+ resolution: {integrity: sha512-BbJTPuyydsL/L5XtQv59Q82GgJeePY7Wleac798usx3GnDK0GAOrPsI3bubSsOESJ4pNk3V4HPGEQDG1vCPb4w==}
+
+ '@visactor/vgrammar-util@0.10.11':
+ resolution: {integrity: sha512-cJZLmKZvN95Y+yGhX+28+UpZu3bhYYlXDlHJNvXHyonI76ZYgtceyon2b3lI6XIsUsBGcD4Uo777s949X5os3g==}
+
+ '@visactor/vgrammar-wordcloud-shape@0.10.11':
+ resolution: {integrity: sha512-NsQOYJp+9WHnIApMvkcUOaajxIg5U/r6rD8LKnoXW/HqAN2TFYXcRR3Daqmk9rrpM5VztQimKOsA1yZWyzozrA==}
+
+ '@visactor/vgrammar-wordcloud@0.10.11':
+ resolution: {integrity: sha512-JWDqjGhr9JlYkKVBeEkiOqLQk7C1x1BtnsZ+E8oN541gzUqHwfS9qZyhwI3OyoSLewJlsSSPu1vXLKSQzLzKPA==}
+
+ '@visactor/vrender-components@0.17.17':
+ resolution: {integrity: sha512-7gYFQrozvBkyGF7s/JHXdWDZnATzymxzug63CZd4EB7A0OXKatVDImXRePqwzlPD3QamF7QMVWn0CuIx3gQ2gA==}
+
+ '@visactor/vrender-core@0.17.17':
+ resolution: {integrity: sha512-pAZGaimunDAWOBdFhzPh0auH5ryxAHr+MVoz+QdASG+6RZXy8D02l8v2QYu4+e4uorxe/s2ZkdNDm81SlNkoHQ==}
+
+ '@visactor/vrender-kits@0.17.17':
+ resolution: {integrity: sha512-noRP1hAHvPCv36nf2P6sZ930Tk+dJ8jpPWIUm1cFYmUNdcumgIS8Cug0RyeZ+saSqVt5FDTwIwifhOqupw5Zaw==}
+
+ '@visactor/vscale@0.17.5':
+ resolution: {integrity: sha512-2dkS1IlAJ/IdTp8JElbctOOv6lkHKBKPDm8KvwBo0NuGWQeYAebSeyN3QCdwKbj76gMlCub4zc+xWrS5YiA2zA==}
+
+ '@visactor/vutils-extension@1.8.11':
+ resolution: {integrity: sha512-Hknzpy3+xh4sdL0iSn5N93BHiMJF4FdwSwhHYEibRpriZmWKG6wBxsJ0Bll4d7oS4f+svxt8Sg2vRYKzQEcIxQ==}
+
+ '@visactor/vutils@0.17.5':
+ resolution: {integrity: sha512-HFN6Pk1Wc1RK842g02MeKOlvdri5L7/nqxMVTqxIvi0XMhHXpmoqN4+/9H+h8LmJpVohyrI/MT85TRBV/rManw==}
+
+ '@vitejs/plugin-react@4.7.0':
+ resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
+
+ '@vue/compiler-core@3.5.38':
+ resolution: {integrity: sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ==}
+
+ '@vue/compiler-dom@3.5.38':
+ resolution: {integrity: sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw==}
+
+ '@vue/shared@3.5.38':
+ resolution: {integrity: sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==}
+
+ abs-svg-path@0.1.1:
+ resolution: {integrity: sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.17.0:
+ resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ ahooks@3.9.7:
+ resolution: {integrity: sha512-S0lvzhbdlhK36RFBkGv+RbOM/dbbweym+BIHM/bwwuWVSVN5TuVErHPMWo4w0t1NDYg5KPp2iEf7Y7E5LASYiw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ ajv@6.15.0:
+ resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@6.2.2:
+ resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
+ engines: {node: '>=12'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ antd-style@3.7.1:
+ resolution: {integrity: sha512-CQOfddVp4aOvBfCepa+Kj2e7ap+2XBINg1Kn2osdE3oQvrD7KJu/K0sfnLcFLkgCJygbxmuazYdWLKb+drPDYA==}
+ peerDependencies:
+ antd: '>=5.8.1'
+ react: '>=18'
+
+ antd@5.29.3:
+ resolution: {integrity: sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ array-source@0.0.4:
+ resolution: {integrity: sha512-frNdc+zBn80vipY+GdcJkLEbMWj3xmzArYApmUGxoiV8uAu/ygcs9icPdsGdA26h0MkHUMW6EN2piIvVx+M5Mw==}
+
+ assign-symbols@1.0.0:
+ resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
+ engines: {node: '>=0.10.0'}
+
+ astring@1.9.0:
+ resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
+ hasBin: true
+
+ async-validator@3.5.2:
+ resolution: {integrity: sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==}
+
+ async@3.2.6:
+ resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ attr-accept@2.2.5:
+ resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==}
+ engines: {node: '>=4'}
+
+ autoprefixer@10.5.0:
+ resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
+ axios@1.13.5:
+ resolution: {integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==}
+
+ babel-plugin-macros@3.1.0:
+ resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
+ engines: {node: '>=10', npm: '>=6'}
+
+ babel-plugin-polyfill-corejs2@0.4.17:
+ resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-corejs3@0.13.0:
+ resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-regenerator@0.6.8:
+ resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ bail@2.0.2:
+ resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
+ baseline-browser-mapping@2.10.37:
+ resolution: {integrity: sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ bezier-easing@2.1.0:
+ resolution: {integrity: sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ binary-searching@2.0.5:
+ resolution: {integrity: sha512-v4N2l3RxL+m4zDxyxz3Ne2aTmiPn8ZUpKFpdPtO+ItW1NcTCXA7JeHG5GMBSvoKSkQZ9ycS+EouDVxYB9ufKWA==}
+
+ brace-expansion@1.1.15:
+ resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==}
+
+ brace-expansion@5.0.6:
+ resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
+ engines: {node: 18 || 20 || >=22}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist@4.28.2:
+ resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.9:
+ resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
+ caniuse-lite@1.0.30001799:
+ resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==}
+
+ ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
+ chalk@4.1.1:
+ resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==}
+ engines: {node: '>=10'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ character-entities-html4@2.1.0:
+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
+
+ character-entities-legacy@3.0.0:
+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
+
+ character-entities@2.0.2:
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+
+ character-reference-invalid@2.0.1:
+ resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
+
+ chardet@2.1.1:
+ resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ chokidar@5.0.0:
+ resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
+ engines: {node: '>= 20.19.0'}
+
+ chroma-js@3.2.0:
+ resolution: {integrity: sha512-os/OippSlX1RlWWr+QDPcGUZs0uoqr32urfxESG9U93lhUfbnlyckte84Q8P1UQY/qth983AS1JONKmLS4T0nw==}
+
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
+ classnames@2.5.1:
+ resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
+
+ cli-cursor@5.0.0:
+ resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+ engines: {node: '>=18'}
+
+ cli-spinners@3.4.0:
+ resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==}
+ engines: {node: '>=18.20'}
+
+ cli-width@4.1.0:
+ resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
+ engines: {node: '>= 12'}
+
+ clone@2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+
+ clsx@1.2.1:
+ resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
+ engines: {node: '>=6'}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ code-inspector-plugin@1.6.1:
+ resolution: {integrity: sha512-XsGzQ2Kkrn2xdZtwviORKOVY4H8ixe95VSxkjUfzdWGhl9z3UVA2tci8o/1juJm+vaIxcVjlyefJOoTKjqhQcw==}
+
+ collapse-white-space@2.1.0:
+ resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ colord@2.9.3:
+ resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ comma-separated-tokens@2.0.3:
+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ commander@8.3.0:
+ resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+ engines: {node: '>= 12'}
+
+ comment-parser@1.4.7:
+ resolution: {integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==}
+ engines: {node: '>= 12.0.0'}
+
+ compute-scroll-into-view@1.0.20:
+ resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
+
+ compute-scroll-into-view@3.1.1:
+ resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ concat-stream@1.4.11:
+ resolution: {integrity: sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw==}
+ engines: {'0': node >= 0.8}
+
+ concat-stream@2.0.0:
+ resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
+ engines: {'0': node >= 6.0}
+
+ convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ copy-text-to-clipboard@2.2.0:
+ resolution: {integrity: sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==}
+ engines: {node: '>=6'}
+
+ copy-to-clipboard@3.3.3:
+ resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
+
+ core-js-compat@3.49.0:
+ resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==}
+
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ cose-base@1.0.3:
+ resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==}
+
+ cose-base@2.2.0:
+ resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==}
+
+ cosmiconfig@7.1.0:
+ resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
+ engines: {node: '>=10'}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
+ cytoscape-cose-bilkent@4.1.0:
+ resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==}
+ peerDependencies:
+ cytoscape: ^3.2.0
+
+ cytoscape-fcose@2.2.0:
+ resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==}
+ peerDependencies:
+ cytoscape: ^3.2.0
+
+ cytoscape@3.34.0:
+ resolution: {integrity: sha512-62rNSrioXw93uliKFBwjukeQyeWwH2PqDrTac31r2P6464u3AUvTk0xS4LVvT251g7IgkFunrI48ZEZGjywSOg==}
+ engines: {node: '>=0.10'}
+
+ d3-array@1.2.4:
+ resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==}
+
+ d3-array@2.12.1:
+ resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==}
+
+ d3-array@3.2.4:
+ resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
+ engines: {node: '>=12'}
+
+ d3-axis@3.0.0:
+ resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==}
+ engines: {node: '>=12'}
+
+ d3-brush@3.0.0:
+ resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==}
+ engines: {node: '>=12'}
+
+ d3-chord@3.0.1:
+ resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==}
+ engines: {node: '>=12'}
+
+ d3-color@3.1.0:
+ resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
+ engines: {node: '>=12'}
+
+ d3-contour@4.0.2:
+ resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==}
+ engines: {node: '>=12'}
+
+ d3-delaunay@6.0.4:
+ resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==}
+ engines: {node: '>=12'}
+
+ d3-dispatch@3.0.1:
+ resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
+ engines: {node: '>=12'}
+
+ d3-drag@3.0.0:
+ resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==}
+ engines: {node: '>=12'}
+
+ d3-dsv@2.0.0:
+ resolution: {integrity: sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==}
+ hasBin: true
+
+ d3-dsv@3.0.1:
+ resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ d3-ease@3.0.1:
+ resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
+ engines: {node: '>=12'}
+
+ d3-fetch@3.0.1:
+ resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==}
+ engines: {node: '>=12'}
+
+ d3-force@3.0.0:
+ resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==}
+ engines: {node: '>=12'}
+
+ d3-format@3.1.2:
+ resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==}
+ engines: {node: '>=12'}
+
+ d3-geo@1.12.1:
+ resolution: {integrity: sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==}
+
+ d3-geo@3.1.1:
+ resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==}
+ engines: {node: '>=12'}
+
+ d3-hexbin@0.2.2:
+ resolution: {integrity: sha512-KS3fUT2ReD4RlGCjvCEm1RgMtp2NFZumdMu4DBzQK8AZv3fXRM6Xm8I4fSU07UXvH4xxg03NwWKWdvxfS/yc4w==}
+
+ d3-hierarchy@3.1.2:
+ resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==}
+ engines: {node: '>=12'}
+
+ d3-interpolate@3.0.1:
+ resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
+ engines: {node: '>=12'}
+
+ d3-path@1.0.9:
+ resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==}
+
+ d3-path@3.1.0:
+ resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
+ engines: {node: '>=12'}
+
+ d3-polygon@3.0.1:
+ resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==}
+ engines: {node: '>=12'}
+
+ d3-quadtree@3.0.1:
+ resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==}
+ engines: {node: '>=12'}
+
+ d3-random@3.0.1:
+ resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==}
+ engines: {node: '>=12'}
+
+ d3-sankey@0.12.3:
+ resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==}
+
+ d3-scale-chromatic@3.1.0:
+ resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==}
+ engines: {node: '>=12'}
+
+ d3-scale@4.0.2:
+ resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
+ engines: {node: '>=12'}
+
+ d3-selection@3.0.0:
+ resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==}
+ engines: {node: '>=12'}
+
+ d3-shape@1.3.7:
+ resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==}
+
+ d3-shape@3.2.0:
+ resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
+ engines: {node: '>=12'}
+
+ d3-time-format@4.1.0:
+ resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
+ engines: {node: '>=12'}
+
+ d3-time@3.1.0:
+ resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
+ engines: {node: '>=12'}
+
+ d3-timer@3.0.1:
+ resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
+ engines: {node: '>=12'}
+
+ d3-transition@3.0.1:
+ resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ d3-selection: 2 - 3
+
+ d3-zoom@3.0.0:
+ resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
+ engines: {node: '>=12'}
+
+ d3@7.9.0:
+ resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==}
+ engines: {node: '>=12'}
+
+ dagre-d3-es@7.0.14:
+ resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==}
+
+ date-fns-tz@1.3.8:
+ resolution: {integrity: sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==}
+ peerDependencies:
+ date-fns: '>=2.0.0'
+
+ date-fns@2.30.0:
+ resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
+ engines: {node: '>=0.11'}
+
+ dayjs@1.11.21:
+ resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==}
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decode-named-character-reference@1.3.0:
+ resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==}
+
+ decode-uri-component@0.4.1:
+ resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==}
+ engines: {node: '>=14.16'}
+
+ deep-equal@1.1.2:
+ resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==}
+ engines: {node: '>= 0.4'}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ delaunator@5.1.0:
+ resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
+ devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
+ dompurify@3.4.10:
+ resolution: {integrity: sha512-0xzNv0e7oYC6yyuOGZIABPM4qtg3QxLFniDNPP4ZP90wR8Yq3zgwpRbrNiT4N3IKqDbbYFEJLV+JWEs19aZ//w==}
+
+ dotenv@16.6.1:
+ resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
+ engines: {node: '>=12'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ electron-to-chromium@1.5.372:
+ resolution: {integrity: sha512-M3yhbAlilnwqC8D21t28UCDGHyitShTmmLRU/H+b74P6Ski16Nb9HONYEaVpMj/pwC7BEo5B95FpjODLCWbtfA==}
+
+ emoji-mart@5.6.0:
+ resolution: {integrity: sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==}
+
+ emoji-regex@10.6.0:
+ resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
+
+ entities@6.0.1:
+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
+ engines: {node: '>=0.12'}
+
+ entities@7.0.1:
+ resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
+ engines: {node: '>=0.12'}
+
+ error-ex@1.3.4:
+ resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-object-atoms@1.1.2:
+ resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ es-toolkit@1.47.1:
+ resolution: {integrity: sha512-5RAqEwf4P4E17p+W75KLOWw/nOvKZzSQpxM32IpI2KZLaVonjTrZ0Ai5ghMaVI9eKC2p8eoQgcBdkEDgzFk6+Q==}
+
+ esast-util-from-estree@2.0.0:
+ resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
+
+ esast-util-from-js@2.0.1:
+ resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
+
+ esbuild@0.21.5:
+ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+
+ eslint-plugin-header@3.1.1:
+ resolution: {integrity: sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==}
+ peerDependencies:
+ eslint: '>=7.7.0'
+
+ eslint-plugin-react-hooks@5.2.0:
+ resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+
+ eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint@8.57.0:
+ resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ hasBin: true
+
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-util-attach-comments@3.0.0:
+ resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
+
+ estree-util-build-jsx@3.0.1:
+ resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
+
+ estree-util-is-identifier-name@3.0.0:
+ resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
+
+ estree-util-scope@1.0.0:
+ resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==}
+
+ estree-util-to-js@2.0.0:
+ resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
+
+ estree-util-visit@2.0.0:
+ resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ eventemitter3@2.0.3:
+ resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==}
+
+ eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+
+ execa@9.6.1:
+ resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==}
+ engines: {node: ^18.19.0 || >=20.5.0}
+
+ extend-shallow@2.0.1:
+ resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
+ engines: {node: '>=0.10.0'}
+
+ extend-shallow@3.0.2:
+ resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
+ engines: {node: '>=0.10.0'}
+
+ extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+
+ fast-copy@3.0.2:
+ resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-diff@1.1.2:
+ resolution: {integrity: sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==}
+
+ fast-equals@5.4.0:
+ resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==}
+ engines: {node: '>=6.0.0'}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fast-string-truncated-width@3.0.3:
+ resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==}
+
+ fast-string-width@3.0.2:
+ resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==}
+
+ fast-wrap-ansi@0.2.2:
+ resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==}
+
+ fastq@1.20.1:
+ resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ figures@6.1.0:
+ resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
+ engines: {node: '>=18'}
+
+ file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ file-selector@0.5.0:
+ resolution: {integrity: sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==}
+ engines: {node: '>= 10'}
+
+ file-selector@2.1.2:
+ resolution: {integrity: sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==}
+ engines: {node: '>= 12'}
+
+ file-source@0.6.1:
+ resolution: {integrity: sha512-1R1KneL7eTXmXfKxC10V/9NeGOdbsAXJ+lQ//fvvcHUgtaZcZDWNJNblxAoVOyV1cj45pOtUrR3vZTBwqcW8XA==}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ filter-obj@5.1.0:
+ resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==}
+ engines: {node: '>=14.16'}
+
+ find-root@1.1.0:
+ resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ flatted@3.4.2:
+ resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+
+ follow-redirects@1.16.0:
+ resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ for-in@1.0.2:
+ resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
+ engines: {node: '>=0.10.0'}
+
+ form-data@4.0.6:
+ resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==}
+ engines: {node: '>= 6'}
+
+ fraction.js@5.3.4:
+ resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
+
+ framer-motion@12.40.0:
+ resolution: {integrity: sha512-uaBd3qC1v3KQqBEjwTUd183K6PbS+j0yR9w9VmEOLWA/tnUcSn8Xa3uck7t4dgpDoUss8xQTcj8W2L07lrnLFg==}
+ peerDependencies:
+ '@emotion/is-prop-valid': '*'
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/is-prop-valid':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ geobuf@3.0.2:
+ resolution: {integrity: sha512-ASgKwEAQQRnyNFHNvpd5uAwstbVYmiTW0Caw3fBb509tNTqXyAAPMyFs5NNihsLZhLxU1j/kjFhkhLWA9djuVg==}
+ hasBin: true
+
+ geojson-dissolve@3.1.0:
+ resolution: {integrity: sha512-JXHfn+A3tU392HA703gJbjmuHaQOAE/C1KzbELCczFRFux+GdY6zt1nKb1VMBHp4LWeE7gUY2ql+g06vJqhiwQ==}
+
+ geojson-flatten@0.2.4:
+ resolution: {integrity: sha512-LiX6Jmot8adiIdZ/fthbcKKPOfWjTQchX/ggHnwMZ2e4b0I243N1ANUos0LvnzepTEsj0+D4fIJ5bKhBrWnAHA==}
+ hasBin: true
+
+ geojson-linestring-dissolve@0.0.1:
+ resolution: {integrity: sha512-Y8I2/Ea28R/Xeki7msBcpMvJL2TaPfaPKP8xqueJfQ9/jEhps+iOJxOR2XCBGgVb12Z6XnDb1CMbaPfLepsLaw==}
+
+ get-east-asian-width@1.6.0:
+ resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==}
+ engines: {node: '>=18'}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stdin@6.0.0:
+ resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==}
+ engines: {node: '>=4'}
+
+ get-stream@9.0.1:
+ resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
+ engines: {node: '>=18'}
+
+ get-value@2.0.6:
+ resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
+ engines: {node: '>=0.10.0'}
+
+ giscus@1.6.0:
+ resolution: {integrity: sha512-Zrsi8r4t1LVW950keaWcsURuZUQwUaMKjvJgTCY125vkW6OiEBkatE7ScJDbpqKHdZwb///7FVC21SE3iFK3PQ==}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob@13.0.6:
+ resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
+ engines: {node: 18 || 20 || >=22}
+
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+
+ globals@13.24.0:
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ hachure-fill@0.5.2:
+ resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hasown@2.0.4:
+ resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
+ engines: {node: '>= 0.4'}
+
+ hast-util-from-dom@5.0.1:
+ resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==}
+
+ hast-util-from-html-isomorphic@2.0.0:
+ resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==}
+
+ hast-util-from-html@2.0.3:
+ resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
+
+ hast-util-from-parse5@8.0.3:
+ resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
+
+ hast-util-is-element@3.0.0:
+ resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
+
+ hast-util-parse-selector@4.0.0:
+ resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
+
+ hast-util-raw@9.1.0:
+ resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
+
+ hast-util-to-estree@3.1.3:
+ resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==}
+
+ hast-util-to-html@9.0.5:
+ resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
+
+ hast-util-to-jsx-runtime@2.3.6:
+ resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
+
+ hast-util-to-parse5@8.0.1:
+ resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==}
+
+ hast-util-to-text@4.0.2:
+ resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==}
+
+ hast-util-whitespace@3.0.0:
+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
+
+ hastscript@9.0.1:
+ resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
+
+ highlight.js@11.11.1:
+ resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
+ engines: {node: '>=12.0.0'}
+
+ history@5.3.0:
+ resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==}
+
+ hoist-non-react-statics@3.3.2:
+ resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+
+ html-parse-stringify@3.0.1:
+ resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==}
+
+ html-url-attributes@3.0.1:
+ resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
+
+ html-void-elements@3.0.0:
+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+
+ human-signals@8.0.1:
+ resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
+ engines: {node: '>=18.18.0'}
+
+ i18next-browser-languagedetector@7.2.2:
+ resolution: {integrity: sha512-6b7r75uIJDWCcCflmbof+sJ94k9UQO4X0YR62oUfqGI/GjCLVzlCwu8TFdRZIqVLzWbzNcmkmhfqKEr4TLz4HQ==}
+
+ i18next-cli@1.63.1:
+ resolution: {integrity: sha512-ikQcvTaiJA3Ud3wc9t/pIRZP+9WA/doSiDbRhRc69Yb551rfyJyQCxNY85LaHIBAQjPAmcV7AYfjMTyb608ITw==}
+ engines: {node: '>=22'}
+ hasBin: true
+
+ i18next-resources-for-ts@2.1.0:
+ resolution: {integrity: sha512-n5UexwEVt0OoIAhG2MWpSnAVJW1U8mQrQTmXyxc5DMAx+NLhcLZhSMJo/FnUsA5JQ3obTYqTgB7YIuZKWpDgow==}
+ hasBin: true
+
+ i18next@23.16.8:
+ resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==}
+
+ i18next@26.3.1:
+ resolution: {integrity: sha512-txQqd5EULsqEh9OJqRH15aCaOuy/nLJyhw5EHCSKLKJE1aBbb3Zve2+uQIxgWhPm1QqUQoWyQBm2kfmmIrzkcQ==}
+ peerDependencies:
+ typescript: ^5 || ^6
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+
+ iconv-lite@0.7.2:
+ resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==}
+ engines: {node: '>=0.10.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ immer@10.2.0:
+ resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
+
+ immutable@5.1.6:
+ resolution: {integrity: sha512-q1swsS8K7L8usSHuOqF2TAoCCkonYz0SG38wLAggaa4Wml70zixIvt2ql4coQ2C2B3hTjltJry4r6bULwgAXLQ==}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ inline-style-parser@0.2.7:
+ resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==}
+
+ inquirer@14.0.2:
+ resolution: {integrity: sha512-VsSx1JneSNp3ld1veMTLe+UDcUD8Tw2/jjOthhkX3/IX2q+xHhVELifeb/hsb1fBw31pabEPNUf/xUOyb+KZjA==}
+ engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ internmap@1.0.1:
+ resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==}
+
+ internmap@2.0.3:
+ resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
+ engines: {node: '>=12'}
+
+ intersection-observer@0.12.2:
+ resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==}
+ deprecated: The Intersection Observer polyfill is no longer needed and can safely be removed. Intersection Observer has been Baseline since 2019.
+
+ is-alphabetical@2.0.1:
+ resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
+
+ is-alphanumerical@2.0.1:
+ resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
+
+ is-arguments@1.2.0:
+ resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
+ engines: {node: '>= 0.4'}
+
+ is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-core-module@2.16.2:
+ resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
+
+ is-decimal@2.0.1:
+ resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
+
+ is-extendable@0.1.1:
+ resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
+ engines: {node: '>=0.10.0'}
+
+ is-extendable@1.0.1:
+ resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
+ engines: {node: '>=0.10.0'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-hexadecimal@2.0.1:
+ resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
+
+ is-interactive@2.0.0:
+ resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
+ engines: {node: '>=12'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ is-plain-obj@4.1.0:
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
+
+ is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-stream@4.0.1:
+ resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+ engines: {node: '>=18'}
+
+ is-unicode-supported@2.1.0:
+ resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
+ engines: {node: '>=18'}
+
+ isarray@0.0.1:
+ resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+
+ jiti@1.21.7:
+ resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
+ hasBin: true
+
+ jiti@2.7.0:
+ resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==}
+ hasBin: true
+
+ js-cookie@3.0.8:
+ resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@4.2.0:
+ resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==}
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json2mq@0.2.0:
+ resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==}
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonc-parser@3.3.1:
+ resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
+
+ katex@0.16.47:
+ resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==}
+ hasBin: true
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ khroma@2.1.0:
+ resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==}
+
+ launch-ide@1.4.3:
+ resolution: {integrity: sha512-v2xMAarJOFy51kuesYEIIx5r4WHvsV+VLMU49K24bdiRZGUpo1ZulO1DRrLozM5BMbXUfRfrUTM2PbBfYCeA4Q==}
+
+ layout-base@1.0.2:
+ resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==}
+
+ layout-base@2.0.1:
+ resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==}
+
+ leva@0.10.1:
+ resolution: {integrity: sha512-BcjnfUX8jpmwZUz2L7AfBtF9vn4ggTH33hmeufDULbP3YgNZ/C+ss/oO3stbrqRQyaOmRwy70y7BGTGO81S3rA==}
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ linkifyjs@4.3.3:
+ resolution: {integrity: sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==}
+
+ lit-element@4.2.2:
+ resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==}
+
+ lit-html@3.3.3:
+ resolution: {integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==}
+
+ lit@3.3.3:
+ resolution: {integrity: sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash-es@4.18.1:
+ resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==}
+
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash@4.18.1:
+ resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
+
+ log-symbols@7.0.1:
+ resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==}
+ engines: {node: '>=18'}
+
+ longest-streak@3.1.0:
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
+ lottie-web@5.13.0:
+ resolution: {integrity: sha512-+gfBXl6sxXMPe8tKQm7qzLnUy5DUPJPKIyRHwtpCpyUEYjHYRJC/5gjUvdkuO2c3JllrPtHXH5UJJK8LRYl5yQ==}
+
+ lowlight@3.3.0:
+ resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==}
+
+ lru-cache@11.5.1:
+ resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==}
+ engines: {node: 20 || >=22}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ lucide-react@0.469.0:
+ resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==}
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ lucide-react@0.511.0:
+ resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==}
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ lucide-react@0.553.0:
+ resolution: {integrity: sha512-BRgX5zrWmNy/lkVAe0dXBgd7XQdZ3HTf+Hwe3c9WK6dqgnj9h+hxV+MDncM88xDWlCq27+TKvHGE70ViODNILw==}
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
+ markdown-extensions@2.0.0:
+ resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
+ engines: {node: '>=16'}
+
+ markdown-table@3.0.4:
+ resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
+
+ marked@16.4.2:
+ resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==}
+ engines: {node: '>= 20'}
+ hasBin: true
+
+ marked@17.0.6:
+ resolution: {integrity: sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==}
+ engines: {node: '>= 20'}
+ hasBin: true
+
+ marked@4.3.0:
+ resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
+ engines: {node: '>= 12'}
+ hasBin: true
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ mdast-util-find-and-replace@3.0.2:
+ resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
+
+ mdast-util-from-markdown@2.0.3:
+ resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==}
+
+ mdast-util-gfm-autolink-literal@2.0.1:
+ resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
+
+ mdast-util-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
+
+ mdast-util-gfm-strikethrough@2.0.0:
+ resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
+
+ mdast-util-gfm-table@2.0.0:
+ resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
+
+ mdast-util-gfm-task-list-item@2.0.0:
+ resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
+
+ mdast-util-gfm@3.1.0:
+ resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
+
+ mdast-util-math@3.0.0:
+ resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==}
+
+ mdast-util-mdx-expression@2.0.1:
+ resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
+
+ mdast-util-mdx-jsx@3.2.0:
+ resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
+
+ mdast-util-mdx@3.0.0:
+ resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
+
+ mdast-util-mdxjs-esm@2.0.1:
+ resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
+
+ mdast-util-newline-to-break@2.0.0:
+ resolution: {integrity: sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog==}
+
+ mdast-util-phrasing@4.1.0:
+ resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
+
+ mdast-util-to-hast@13.2.1:
+ resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==}
+
+ mdast-util-to-markdown@2.1.2:
+ resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
+
+ mdast-util-to-string@4.0.0:
+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
+
+ memoize-one@5.2.1:
+ resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
+
+ merge-value@1.0.0:
+ resolution: {integrity: sha512-fJMmvat4NeKz63Uv9iHWcPDjCWcCkoiRoajRTEO8hlhUC6rwaHg0QCF9hBOTjZmm4JuglPckPSTtcuJL5kp0TQ==}
+ engines: {node: '>=0.10.0'}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ mermaid@11.15.0:
+ resolution: {integrity: sha512-pTMbcf3rWdtLiYGpmoTjHEpeY8seiy6sR+9nD7LOs8KfUbHE4lOUAprTRqRAcWSQ6MQpdX+YEsxShtGsINtPtw==}
+
+ micromark-core-commonmark@2.0.3:
+ resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
+
+ micromark-extension-cjk-friendly-util@2.1.1:
+ resolution: {integrity: sha512-egs6+12JU2yutskHY55FyR48ZiEcFOJFyk9rsiyIhcJ6IvWB6ABBqVrBw8IobqJTDZ/wdSr9eoXDPb5S2nW1bg==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ micromark-util-types: '*'
+ peerDependenciesMeta:
+ micromark-util-types:
+ optional: true
+
+ micromark-extension-cjk-friendly@1.2.3:
+ resolution: {integrity: sha512-gRzVLUdjXBLX6zNPSnHGDoo+ZTp5zy+MZm0g3sv+3chPXY7l9gW+DnrcHcZh/jiPR6MjPKO4AEJNp4Aw6V9z5Q==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ micromark: ^4.0.0
+ micromark-util-types: ^2.0.0
+ peerDependenciesMeta:
+ micromark-util-types:
+ optional: true
+
+ micromark-extension-gfm-autolink-literal@2.1.0:
+ resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
+
+ micromark-extension-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
+
+ micromark-extension-gfm-strikethrough@2.1.0:
+ resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
+
+ micromark-extension-gfm-table@2.1.1:
+ resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
+
+ micromark-extension-gfm-tagfilter@2.0.0:
+ resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
+
+ micromark-extension-gfm-task-list-item@2.1.0:
+ resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
+
+ micromark-extension-gfm@3.0.0:
+ resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
+
+ micromark-extension-math@3.1.0:
+ resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==}
+
+ micromark-extension-mdx-expression@3.0.1:
+ resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==}
+
+ micromark-extension-mdx-jsx@3.0.2:
+ resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==}
+
+ micromark-extension-mdx-md@2.0.0:
+ resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
+
+ micromark-extension-mdxjs-esm@3.0.0:
+ resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
+
+ micromark-extension-mdxjs@3.0.0:
+ resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
+
+ micromark-factory-destination@2.0.1:
+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
+
+ micromark-factory-label@2.0.1:
+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
+
+ micromark-factory-mdx-expression@2.0.3:
+ resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==}
+
+ micromark-factory-space@2.0.1:
+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
+
+ micromark-factory-title@2.0.1:
+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
+
+ micromark-factory-whitespace@2.0.1:
+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
+
+ micromark-util-character@2.1.1:
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
+
+ micromark-util-chunked@2.0.1:
+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
+
+ micromark-util-classify-character@2.0.1:
+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
+
+ micromark-util-combine-extensions@2.0.1:
+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
+
+ micromark-util-decode-string@2.0.1:
+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
+
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+
+ micromark-util-events-to-acorn@2.0.3:
+ resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==}
+
+ micromark-util-html-tag-name@2.0.1:
+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
+
+ micromark-util-normalize-identifier@2.0.1:
+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
+
+ micromark-util-resolve-all@2.0.1:
+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
+
+ micromark-util-sanitize-uri@2.0.1:
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
+
+ micromark-util-subtokenize@2.1.0:
+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
+
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
+
+ micromark-util-types@2.0.2:
+ resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
+
+ micromark@4.0.2:
+ resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mimic-function@5.0.1:
+ resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+ engines: {node: '>=18'}
+
+ minimatch@10.2.5:
+ resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
+ engines: {node: 18 || 20 || >=22}
+
+ minimatch@3.1.5:
+ resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
+
+ minimist@1.2.0:
+ resolution: {integrity: sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw==}
+
+ minimist@1.2.6:
+ resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
+
+ minipass@7.1.3:
+ resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ mixin-deep@1.3.2:
+ resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
+ engines: {node: '>=0.10.0'}
+
+ motion-dom@12.40.0:
+ resolution: {integrity: sha512-HxU3ZaBwNPVQUBQf1xxgq+7JrPNZvjLVxgbpEZL7RrWJnsxOf0/OM+yrHG9ogLQ31Do/r57Oz2gQWPK+6q62mg==}
+
+ motion-utils@12.39.0:
+ resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ mute-stream@3.0.0:
+ resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==}
+ engines: {node: ^20.17.0 || >=22.9.0}
+
+ mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+
+ nanoid@3.3.12:
+ resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
+ node-releases@2.0.47:
+ resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
+ engines: {node: '>=18'}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ npm-run-path@6.0.0:
+ resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
+ engines: {node: '>=18'}
+
+ numeral@2.0.6:
+ resolution: {integrity: sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ on-change@4.0.2:
+ resolution: {integrity: sha512-cMtCyuJmTx/bg2HCpHo3ZLeF7FZnBOapLqZHr2AlLeJ5Ul0Zu2mUJJz051Fdwu/Et2YW04ZD+TtU+gVy0ACNCA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ onetime@7.0.0:
+ resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+ engines: {node: '>=18'}
+
+ oniguruma-parser@0.12.2:
+ resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
+
+ oniguruma-to-es@4.3.6:
+ resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ ora@9.4.0:
+ resolution: {integrity: sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==}
+ engines: {node: '>=20'}
+
+ orderedmap@2.1.1:
+ resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ package-manager-detector@1.6.0:
+ resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
+
+ parchment@1.1.4:
+ resolution: {integrity: sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-entities@4.0.2:
+ resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
+
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
+ parse-ms@4.0.0:
+ resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
+ engines: {node: '>=18'}
+
+ parse-svg-path@0.1.2:
+ resolution: {integrity: sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==}
+
+ parse5@7.3.0:
+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
+ path-data-parser@0.1.0:
+ resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-scurry@2.0.2:
+ resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
+ engines: {node: 18 || 20 || >=22}
+
+ path-source@0.1.3:
+ resolution: {integrity: sha512-dWRHm5mIw5kw0cs3QZLNmpUWty48f5+5v9nWD2dw3Y0Hf+s01Ag8iJEWV0Sm0kocE8kK27DrIowha03e1YR+Qw==}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ pbf@3.3.0:
+ resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==}
+ hasBin: true
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.2:
+ resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
+ engines: {node: '>=12'}
+
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
+ point-at-length@1.1.0:
+ resolution: {integrity: sha512-nNHDk9rNEh/91o2Y8kHLzBLNpLf80RYd2gCun9ss+V0ytRSf6XhryBTx071fesktjbachRmGuUbId+JQmzhRXw==}
+
+ points-on-curve@0.2.0:
+ resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==}
+
+ points-on-path@0.2.1:
+ resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==}
+
+ polished@4.3.1:
+ resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==}
+ engines: {node: '>=10'}
+
+ portfinder@1.0.38:
+ resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==}
+ engines: {node: '>= 10.12'}
+
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-js@4.1.0:
+ resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
+ postcss-load-config@6.0.1:
+ resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ jiti: '>=1.21.0'
+ postcss: '>=8.0.9'
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+ postcss:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-selector-parser@6.1.4:
+ resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==}
+ engines: {node: '>=4'}
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss@8.5.15:
+ resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier-plugin-astro@0.14.1:
+ resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==}
+ engines: {node: ^14.15.0 || >=16.0.0}
+
+ prettier-plugin-jsdoc@1.8.1:
+ resolution: {integrity: sha512-XuMqBWTc3b/8eCOe+OlZlFy9Z413a7WOmF4i5hDGtjbtIFOdvRrVtGjXR2Feye3TrLWhkkkHheNXPTyYKxw3nA==}
+ engines: {node: '>=14.13.1 || >=16.0.0'}
+ peerDependencies:
+ prettier: ^3.0.0
+
+ prettier@3.8.4:
+ resolution: {integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ pretty-ms@9.3.0:
+ resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==}
+ engines: {node: '>=18'}
+
+ prismjs@1.30.0:
+ resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
+ engines: {node: '>=6'}
+
+ prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+
+ property-information@7.2.0:
+ resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==}
+
+ prosemirror-changeset@2.4.1:
+ resolution: {integrity: sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw==}
+
+ prosemirror-commands@1.7.1:
+ resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==}
+
+ prosemirror-dropcursor@1.8.2:
+ resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==}
+
+ prosemirror-gapcursor@1.4.1:
+ resolution: {integrity: sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==}
+
+ prosemirror-history@1.5.0:
+ resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==}
+
+ prosemirror-inputrules@1.5.1:
+ resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==}
+
+ prosemirror-keymap@1.2.3:
+ resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==}
+
+ prosemirror-model@1.25.8:
+ resolution: {integrity: sha512-BswA4BLSFEiORV6Vjj/yZBXDbos1zTEnhyeSSgT8psGFhstQS7UJ8/WOLiDos9Byaee27+tml0/DuMNxYR84zg==}
+
+ prosemirror-schema-list@1.5.1:
+ resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
+
+ prosemirror-state@1.4.4:
+ resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==}
+
+ prosemirror-tables@1.8.5:
+ resolution: {integrity: sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==}
+
+ prosemirror-transform@1.12.0:
+ resolution: {integrity: sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w==}
+
+ prosemirror-view@1.41.9:
+ resolution: {integrity: sha512-clTunTX+eaLbr87L1V1QPheRlEQJyTlL3gXe9x3jQIk3rL0RVWxviDGz8tFaydwIVm+hKhYCyr+R/zBtWr9s6A==}
+
+ protocol-buffers-schema@3.6.1:
+ resolution: {integrity: sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==}
+
+ proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ qrcode.react@4.2.0:
+ resolution: {integrity: sha512-QpgqWi8rD9DsS9EP3z7BT+5lY5SFhsqGjpgW5DY/i3mK4M9DTBNz3ErMi8BWYEfI3L0d8GIbGmcdFAS1uIRGjA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ query-string@9.4.0:
+ resolution: {integrity: sha512-ivvWyHqU9K1Log4hJFhqVIIMoEi0nzmlRhvk2pPcTuQH/Y0K5iTTMxEx7R0PRHD2Z1hMVbWnjfsEWbIKIK+3IA==}
+ engines: {node: '>=18'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ quill-delta@3.6.3:
+ resolution: {integrity: sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==}
+ engines: {node: '>=0.10'}
+
+ quill@1.3.7:
+ resolution: {integrity: sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==}
+
+ rc-cascader@3.34.0:
+ resolution: {integrity: sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-checkbox@3.5.0:
+ resolution: {integrity: sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-collapse@3.9.0:
+ resolution: {integrity: sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-collapse@4.0.0:
+ resolution: {integrity: sha512-SwoOByE39/3oIokDs/BnkqI+ltwirZbP8HZdq1/3SkPSBi7xDdvWHTp7cpNI9ullozkR6mwTWQi6/E/9huQVrA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-dialog@9.6.0:
+ resolution: {integrity: sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-drawer@7.3.0:
+ resolution: {integrity: sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-dropdown@4.2.1:
+ resolution: {integrity: sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==}
+ peerDependencies:
+ react: '>=16.11.0'
+ react-dom: '>=16.11.0'
+
+ rc-field-form@2.7.1:
+ resolution: {integrity: sha512-vKeSifSJ6HoLaAB+B8aq/Qgm8a3dyxROzCtKNCsBQgiverpc4kWDQihoUwzUj+zNWJOykwSY4dNX3QrGwtVb9A==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-footer@0.6.8:
+ resolution: {integrity: sha512-JBZ+xcb6kkex8XnBd4VHw1ZxjV6kmcwUumSHaIFdka2qzMCo7Klcy4sI6G0XtUpG/vtpislQCc+S9Bc+NLHYMg==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+
+ rc-image@7.12.0:
+ resolution: {integrity: sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-input-number@9.5.0:
+ resolution: {integrity: sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-input@1.8.0:
+ resolution: {integrity: sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+
+ rc-mentions@2.20.0:
+ resolution: {integrity: sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-menu@9.16.1:
+ resolution: {integrity: sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-motion@2.9.5:
+ resolution: {integrity: sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-notification@5.6.4:
+ resolution: {integrity: sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-overflow@1.5.0:
+ resolution: {integrity: sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-pagination@5.1.0:
+ resolution: {integrity: sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-picker@4.11.3:
+ resolution: {integrity: sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ date-fns: '>= 2.x'
+ dayjs: '>= 1.x'
+ luxon: '>= 3.x'
+ moment: '>= 2.x'
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+ peerDependenciesMeta:
+ date-fns:
+ optional: true
+ dayjs:
+ optional: true
+ luxon:
+ optional: true
+ moment:
+ optional: true
+
+ rc-progress@4.0.0:
+ resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-rate@2.13.1:
+ resolution: {integrity: sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-resize-observer@1.4.3:
+ resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-segmented@2.7.1:
+ resolution: {integrity: sha512-izj1Nw/Dw2Vb7EVr+D/E9lUTkBe+kKC+SAFSU9zqr7WV2W5Ktaa9Gc7cB2jTqgk8GROJayltaec+DBlYKc6d+g==}
+ peerDependencies:
+ react: '>=16.0.0'
+ react-dom: '>=16.0.0'
+
+ rc-select@14.16.8:
+ resolution: {integrity: sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+
+ rc-slider@11.1.9:
+ resolution: {integrity: sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-steps@6.0.1:
+ resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-switch@4.1.0:
+ resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-table@7.54.0:
+ resolution: {integrity: sha512-/wDTkki6wBTjwylwAGjpLKYklKo9YgjZwAU77+7ME5mBoS32Q4nAwoqhA2lSge6fobLW3Tap6uc5xfwaL2p0Sw==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-tabs@15.7.0:
+ resolution: {integrity: sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-textarea@1.10.2:
+ resolution: {integrity: sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-tooltip@6.4.0:
+ resolution: {integrity: sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-tree-select@5.27.0:
+ resolution: {integrity: sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+
+ rc-tree@5.13.1:
+ resolution: {integrity: sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==}
+ engines: {node: '>=10.x'}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+
+ rc-upload@4.11.0:
+ resolution: {integrity: sha512-ZUyT//2JAehfHzjWowqROcwYJKnZkIUGWaTE/VogVrepSl7AFNbQf4+zGfX4zl9Vrj/Jm8scLO0R6UlPDKK4wA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-util@5.44.4:
+ resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-virtual-list@3.19.2:
+ resolution: {integrity: sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ re-resizable@6.11.2:
+ resolution: {integrity: sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==}
+ peerDependencies:
+ react: ^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ react-avatar-editor@13.0.2:
+ resolution: {integrity: sha512-a4ajbi7lwDh98kgEtSEeKMu0vs0CHTczkq4Xcxr1EiwMFH1GlgHCEtwGU8q/H5W8SeLnH4KPK8LUjEEaZXklxQ==}
+ peerDependencies:
+ react: ^0.14.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^0.14.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
+
+ react-colorful@5.7.0:
+ resolution: {integrity: sha512-fuesYIemttah97XmsIHmz4OORDHiSFzyc9HMAIrCHJou2jaRQmL8cFJ76K4zQhhj8jzwOBlOi4BaGTjjOZCfTg==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ react-dom@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ peerDependencies:
+ react: ^18.3.1
+
+ react-draggable@4.6.0:
+ resolution: {integrity: sha512-g4vqY53xhmPrBnZvGP+1YQV0eYnB3o0VLzoi6q2IpwnQrxIZ34tYRKpVtsWIXPg4D/pvLn+oYCW5gOK2cWIrgA==}
+ peerDependencies:
+ react: '>= 16.3.0'
+ react-dom: '>= 16.3.0'
+
+ react-dropzone@12.1.0:
+ resolution: {integrity: sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog==}
+ engines: {node: '>= 10.13'}
+ peerDependencies:
+ react: '>= 16.8'
+
+ react-dropzone@14.4.1:
+ resolution: {integrity: sha512-QDuV76v3uKbHiH34SpwifZ+gOLi1+RdsCO1kl5vxMT4wW8R82+sthjvBw4th3NHF/XX6FBsqDYZVNN+pnhaw0g==}
+ engines: {node: '>= 10.13'}
+ peerDependencies:
+ react: '>= 16.8 || 18.0.0'
+
+ react-error-boundary@6.1.2:
+ resolution: {integrity: sha512-3DpCr5HVdZ0caUjYE/kIHBEJN0mNP3ZCgf16c48uJ5TbWjorKVp+YG8W3XqlJ7vJAVNw6wNIImyPXmFydwmyng==}
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0
+
+ react-fast-compare@3.2.2:
+ resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
+
+ react-fireworks@1.0.4:
+ resolution: {integrity: sha512-jj1a+HTicB4pR6g2lqhVyAox0GTE0TOrZK2XaJFRYOwltgQWeYErZxnvU9+zH/blY+Hpmu9IKyb39OD3KcCMJw==}
+
+ react-hotkeys-hook@5.3.2:
+ resolution: {integrity: sha512-DDDy9xK6mbTQ6aPlQvIl0dA/a90T/AWml4Rm21JXFDLlRHalIg4/Rv3equUQYs5xPTWq+oEl6RD7mi/nBpU3Uw==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ react-i18next@13.5.0:
+ resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==}
+ peerDependencies:
+ i18next: '>= 23.2.3'
+ react: '>= 16.8.0'
+ react-dom: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+
+ react-i18next@17.0.8:
+ resolution: {integrity: sha512-0ooKbGLU8JXhe1zwpQUWIeXSgLPOfwJmgheWRIUpcoA0CpyabpGhayjdG+/eA5esC1AQ8h2jWpXjJfzQzeDOCw==}
+ peerDependencies:
+ i18next: '>= 26.2.0'
+ react: '>= 16.8.0'
+ react-dom: '*'
+ react-native: '*'
+ typescript: ^5 || ^6
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+ typescript:
+ optional: true
+
+ react-icons@5.6.0:
+ resolution: {integrity: sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA==}
+ peerDependencies:
+ react: '*'
+
+ react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ react-is@18.3.1:
+ resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+
+ react-layout-kit@1.9.2:
+ resolution: {integrity: sha512-fzmrwMBNGIAiDIrdFMV3NvJhUNl01QC9EMcI8SP7osg51N4j+z6w4tx9i2yWxEEXZ2armLV6EtkFd3KST8PYiA==}
+ peerDependencies:
+ react: '>=18'
+
+ react-layout-kit@2.0.1:
+ resolution: {integrity: sha512-MdzEviHXwCfDuUcYWiRUzbxUujW0Ft0XMrwvNbKxdxNY7Vgr9StT2CjT8ElPWSJMSkSSoXHhSyJflacKlFb6NA==}
+ peerDependencies:
+ react: '>=19'
+
+ react-markdown@10.1.0:
+ resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==}
+ peerDependencies:
+ '@types/react': '>=18'
+ react: '>=18'
+
+ react-merge-refs@3.0.2:
+ resolution: {integrity: sha512-MSZAfwFfdbEvwkKWP5EI5chuLYnNUxNS7vyS0i1Jp+wtd8J4Ga2ddzhaE68aMol2Z4vCnRM/oGOo1a3V75UPlw==}
+ peerDependencies:
+ react: '>=16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0'
+ peerDependenciesMeta:
+ react:
+ optional: true
+
+ react-refresh@0.17.0:
+ resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
+ engines: {node: '>=0.10.0'}
+
+ react-resizable@3.2.0:
+ resolution: {integrity: sha512-3NKQ0SLZV7rs3LQHeXlOzDSRQfFrkX6TVet77/Qk03zqiZyee37b7N8/gwDJAA8UUjRz7PdWCCy49hcso45SMQ==}
+ peerDependencies:
+ react: '>= 16.3'
+ react-dom: '>= 16.3'
+
+ react-rnd@10.5.3:
+ resolution: {integrity: sha512-s/sIT3pGZnQ+57egijkTp9mizjIWrJz68Pq6yd+F/wniFY3IriML18dUXnQe/HP9uMiJ+9MAp44hljG99fZu6Q==}
+ peerDependencies:
+ react: '>=16.3.0'
+ react-dom: '>=16.3.0'
+
+ react-router-dom@6.30.4:
+ resolution: {integrity: sha512-q4HvNl+mmDdkS0g+MqiBZNteQJCuimWoOyHMy4T/RQLAn9Z29+E91QXRaxOujeMl2HTzRSS0KFPd7lxX3PjV0Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ react: '>=16.8'
+ react-dom: '>=16.8'
+
+ react-router@6.30.4:
+ resolution: {integrity: sha512-SVUsDe+DybHM/WmYKIVYhZh1o5Dcuf16yM6WjG02Q9XVFMZIJyHYhwrr6bFBXZkVP6z69kNkMyBCujt8FaFLJA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ react: '>=16.8'
+
+ react-telegram-login@1.1.2:
+ resolution: {integrity: sha512-pDP+bvfaklWgnK5O6yvZnIwgky0nnYUU6Zhk0EjdMSkPsLQoOzZRsXIoZnbxyBXhi7346bsxMH+EwwJPTxClDw==}
+ peerDependencies:
+ react: ^16.13.1
+
+ react-toastify@9.1.3:
+ resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==}
+ peerDependencies:
+ react: '>=16'
+ react-dom: '>=16'
+
+ react-turnstile@1.1.5:
+ resolution: {integrity: sha512-VTL5OeHAatzCEVQxAZox70/TPmhKxEbNgtr++dg+8zm9QrWKuoU9E0+7gqmycOSCDZuJFzvMMLKQb5PVUPLV6w==}
+ peerDependencies:
+ react: '>= 16.13.1'
+ react-dom: '>= 16.13.1'
+
+ react-window@1.8.11:
+ resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==}
+ engines: {node: '>8.0.0'}
+ peerDependencies:
+ react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ react-zoom-pan-pinch@3.7.0:
+ resolution: {integrity: sha512-UmReVZ0TxlKzxSbYiAj+LeGRW8s8LraAFTXRAxzMYnNRgGPsxCudwZKVkjvGmjtx7SW/hZamt69NUmGf4xrkXA==}
+ engines: {node: '>=8', npm: '>=5'}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+
+ react@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
+ engines: {node: '>=0.10.0'}
+
+ react@19.2.7:
+ resolution: {integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==}
+ engines: {node: '>=0.10.0'}
+
+ read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+
+ readable-stream@1.1.14:
+ resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ readdirp@5.0.0:
+ resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
+ engines: {node: '>= 20.19.0'}
+
+ recma-build-jsx@1.0.0:
+ resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==}
+
+ recma-jsx@1.0.1:
+ resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ recma-parse@1.0.0:
+ resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==}
+
+ recma-stringify@1.0.0:
+ resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
+
+ regex-recursion@6.0.2:
+ resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
+
+ regex-utilities@2.3.0:
+ resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
+
+ regex@6.1.0:
+ resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==}
+
+ regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
+
+ rehype-github-alerts@4.2.0:
+ resolution: {integrity: sha512-6di6kEu9WUHKLKrkKG2xX6AOuaCMGghg0Wq7MEuM/jBYUPVIq6PJpMe00dxMfU+/YSBtDXhffpDimgDi+BObIQ==}
+
+ rehype-highlight@7.0.2:
+ resolution: {integrity: sha512-k158pK7wdC2qL3M5NcZROZ2tR/l7zOzjxXd5VGdcfIyoijjQqpHd3JKtYSBDpDZ38UI2WJWuFAtkMDxmx5kstA==}
+
+ rehype-katex@7.0.1:
+ resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==}
+
+ rehype-raw@7.0.0:
+ resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
+
+ rehype-recma@1.0.0:
+ resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==}
+
+ remark-breaks@4.0.0:
+ resolution: {integrity: sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ==}
+
+ remark-cjk-friendly@1.2.3:
+ resolution: {integrity: sha512-UvAgxwlNk+l9Oqgl/9MWK2eWRS7zgBW/nXX9AthV7nd/3lNejF138E7Xbmk9Zs4WjTJGs721r7fAEc7tNFoH7g==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@types/mdast': ^4.0.0
+ unified: ^11.0.0
+ peerDependenciesMeta:
+ '@types/mdast':
+ optional: true
+
+ remark-gfm@4.0.1:
+ resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
+
+ remark-github@12.0.0:
+ resolution: {integrity: sha512-ByefQKFN184LeiGRCabfl7zUJsdlMYWEhiLX1gpmQ11yFg6xSuOTW7LVCv0oc1x+YvUMJW23NU36sJX2RWGgvg==}
+
+ remark-math@6.0.0:
+ resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==}
+
+ remark-mdx@3.1.1:
+ resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==}
+
+ remark-parse@11.0.0:
+ resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
+
+ remark-rehype@11.1.2:
+ resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
+
+ remark-stringify@11.0.0:
+ resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
+
+ resize-observer-polyfill@1.5.1:
+ resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-protobuf-schema@2.1.0:
+ resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==}
+
+ resolve@1.22.12:
+ resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ restore-cursor@5.1.0:
+ resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+ engines: {node: '>=18'}
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ robust-predicates@3.0.3:
+ resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==}
+
+ rollup@4.62.0:
+ resolution: {integrity: sha512-nc72Wgq62I7rtDV4izT5/aaS0zxy3kttkinf9586ApknY3jZO9NYsmtc24fUckA0X7Q2v+ML4a15pdUlV5V/jA==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ rope-sequence@1.3.4:
+ resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
+
+ roughjs@4.5.2:
+ resolution: {integrity: sha512-2xSlLDKdsWyFxrveYWk9YQ/Y9UfK38EAMRNkYkMqYBJvPX8abCa9PN0x3w02H8Oa6/0bcZICJU+U95VumPqseg==}
+
+ roughjs@4.6.6:
+ resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==}
+
+ run-async@4.0.6:
+ resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==}
+ engines: {node: '>=0.12.0'}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ rw@1.3.3:
+ resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
+
+ s.color@0.0.15:
+ resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ sass-formatter@0.7.9:
+ resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==}
+
+ sass@1.101.0:
+ resolution: {integrity: sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==}
+ engines: {node: '>=20.19.0'}
+ hasBin: true
+
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+
+ screenfull@5.2.0:
+ resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
+ engines: {node: '>=0.10.0'}
+
+ scroll-into-view-if-needed@2.2.31:
+ resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
+
+ scroll-into-view-if-needed@3.1.0:
+ resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==}
+
+ semver-compare@1.0.0:
+ resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ set-value@2.0.1:
+ resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
+ engines: {node: '>=0.10.0'}
+
+ shapefile@0.6.6:
+ resolution: {integrity: sha512-rLGSWeK2ufzCVx05wYd+xrWnOOdSV7xNUW5/XFgx3Bc02hBkpMlrd2F1dDII7/jhWzv0MSyBFh5uJIy9hLdfuw==}
+ hasBin: true
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ shiki-stream@0.1.5:
+ resolution: {integrity: sha512-DzkqVlqf02Tp4zTFNgJp+3rOG2RkuoONBq+Pm2sHslAlJ5M0QbR1devn4dr9SgcBTrtHTf6Rqyj3wVJi0g16Bw==}
+ deprecated: shiki-stream is now @shikijs/stream, please migrate by renaming the package
+ peerDependencies:
+ react: ^19.0.0
+ solid-js: ^1.9.0
+ vue: ^3.2.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ solid-js:
+ optional: true
+ vue:
+ optional: true
+
+ shiki@3.23.0:
+ resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ simple-statistics@7.9.0:
+ resolution: {integrity: sha512-OOF4uUZseYAC54r2/W58KxlIe4aA33GyPBrX4WMSxQq/NBNVNIOBlJerpGnb64jGH6cUIqKKOkMdhymtmKmpiA==}
+
+ simplify-geojson@1.0.5:
+ resolution: {integrity: sha512-02l1W4UipP5ivNVq6kX15mAzCRIV1oI3tz0FUEyOsNiv1ltuFDjbNhO+nbv/xhbDEtKqWLYuzpWhUsJrjR/ypA==}
+ hasBin: true
+
+ simplify-geometry@0.0.2:
+ resolution: {integrity: sha512-ZEyrplkqgCqDlL7V8GbbYgTLlcnNF+MWWUdy8s8ZeJru50bnI71rDew/I+HG36QS2mPOYAq1ZjwNXxHJ8XOVBw==}
+
+ slice-source@0.4.1:
+ resolution: {integrity: sha512-YiuPbxpCj4hD9Qs06hGAz/OZhQ0eDuALN0lRWJez0eD/RevzKqGdUx1IOMUnXgpr+sXZLq3g8ERwbAH0bCb8vg==}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.7.6:
+ resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
+ engines: {node: '>= 12'}
+
+ space-separated-tokens@2.0.2:
+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+
+ split-on-first@3.0.0:
+ resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==}
+ engines: {node: '>=12'}
+
+ split-string@3.1.0:
+ resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
+ engines: {node: '>=0.10.0'}
+
+ sse.js@2.8.0:
+ resolution: {integrity: sha512-35RyyFYpzzHZgMw9D5GxwADbL6gnntSwW/rKXcuIy1KkYCPjW6oia0moNdNRhs34oVHU1Sjgovj3l7uIEZjrKA==}
+
+ stdin-discarder@0.3.2:
+ resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==}
+ engines: {node: '>=18'}
+
+ stream-source@0.3.5:
+ resolution: {integrity: sha512-ZuEDP9sgjiAwUVoDModftG0JtYiLUV8K4ljYD1VyUMRWtbVf92474o4kuuul43iZ8t/hRuiDAx1dIJSvirrK/g==}
+
+ string-convert@0.2.1:
+ resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==}
+
+ string-width@8.2.1:
+ resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==}
+ engines: {node: '>=20'}
+
+ string_decoder@0.10.31:
+ resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ stringify-entities@4.0.4:
+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-ansi@7.2.0:
+ resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
+ engines: {node: '>=12'}
+
+ strip-final-newline@4.0.0:
+ resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
+ engines: {node: '>=18'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ style-to-js@1.1.21:
+ resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==}
+
+ style-to-object@1.0.14:
+ resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==}
+
+ stylis@4.2.0:
+ resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
+
+ stylis@4.4.0:
+ resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==}
+
+ sucrase@3.35.1:
+ resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
+ suf-log@2.5.3:
+ resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ swr@2.4.1:
+ resolution: {integrity: sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA==}
+ peerDependencies:
+ react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ tabbable@6.4.0:
+ resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==}
+
+ tailwindcss@3.4.19:
+ resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ text-encoding@0.6.4:
+ resolution: {integrity: sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg==}
+ deprecated: no longer maintained
+
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+
+ thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+
+ throttle-debounce@5.0.2:
+ resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
+ engines: {node: '>=12.22'}
+
+ tinyexec@1.2.4:
+ resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==}
+ engines: {node: '>=18'}
+
+ tinyglobby@0.2.17:
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
+ engines: {node: '>=12.0.0'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ to-vfile@8.0.0:
+ resolution: {integrity: sha512-IcmH1xB5576MJc9qcfEC/m/nQCFt3fzMHz45sSlgJyTWjRbKW1HAkJpuf3DgE57YzIlZcwcBZA5ENQbBo4aLkg==}
+
+ toggle-selection@1.0.6:
+ resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
+
+ topojson-client@3.1.0:
+ resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==}
+ hasBin: true
+
+ topojson-server@3.0.1:
+ resolution: {integrity: sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==}
+ hasBin: true
+
+ trim-lines@3.0.1:
+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+
+ trough@2.2.0:
+ resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
+
+ ts-dedent@2.3.0:
+ resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==}
+ engines: {node: '>=6.10'}
+
+ ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
+ ts-md5@2.0.1:
+ resolution: {integrity: sha512-yF35FCoEOFBzOclSkMNEUbFQZuv89KEQ+5Xz03HrMSGUGB1+r+El+JiGOFwsP4p9RFNzwlrydYoTLvPOuICl9w==}
+ engines: {node: '>=18'}
+
+ tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
+ typedarray@0.0.6:
+ resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
+
+ typedarray@0.0.7:
+ resolution: {integrity: sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==}
+
+ typescript@4.4.2:
+ resolution: {integrity: sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ unicorn-magic@0.3.0:
+ resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
+ engines: {node: '>=18'}
+
+ unified@11.0.5:
+ resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
+
+ unist-util-find-after@5.0.0:
+ resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
+
+ unist-util-is@6.0.1:
+ resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
+
+ unist-util-position-from-estree@2.0.0:
+ resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
+
+ unist-util-position@5.0.0:
+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
+
+ unist-util-remove-position@5.0.0:
+ resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
+
+ unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+ unist-util-visit-parents@6.0.2:
+ resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
+
+ unist-util-visit@5.1.0:
+ resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
+
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ url-join@5.0.0:
+ resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ use-debounce@10.1.1:
+ resolution: {integrity: sha512-kvds8BHR2k28cFsxW8k3nc/tRga2rs1RHYCqmmGqb90MEeE++oALwzh2COiuBLO1/QXiOuShXoSN2ZpWnMmvuQ==}
+ engines: {node: '>= 16.0.0'}
+ peerDependencies:
+ react: '*'
+
+ use-merge-value@1.2.0:
+ resolution: {integrity: sha512-DXgG0kkgJN45TcyoXL49vJnn55LehnrmoHc7MbKi+QDBvr8dsesqws8UlyIWGHMR+JXgxc1nvY+jDGMlycsUcw==}
+ peerDependencies:
+ react: '>= 16.x'
+
+ use-sync-external-store@1.6.0:
+ resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ utility-types@3.11.0:
+ resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
+ engines: {node: '>= 4'}
+
+ uuid@13.0.2:
+ resolution: {integrity: sha512-vzi9uRZ926x4XV73S/4qQaTwPXM2JBj6/6lI/byHH1jOpCzb0zDbfytgA9LcN/hzb2l7WQSQnxITOVx5un/wGw==}
+ hasBin: true
+
+ uuid@14.0.0:
+ resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==}
+ hasBin: true
+
+ v8n@1.5.1:
+ resolution: {integrity: sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A==}
+
+ vfile-location@5.0.3:
+ resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
+
+ vfile-message@4.0.3:
+ resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
+
+ vfile@6.0.3:
+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+
+ vite@5.4.21:
+ resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ void-elements@3.1.0:
+ resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
+ engines: {node: '>=0.10.0'}
+
+ w3c-keyname@2.2.8:
+ resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
+
+ web-namespaces@2.0.1:
+ resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ yaml@1.10.3:
+ resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==}
+ engines: {node: '>= 6'}
+
+ yaml@2.9.0:
+ resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ yoctocolors@2.1.2:
+ resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==}
+ engines: {node: '>=18'}
+
+ zustand@3.7.2:
+ resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==}
+ engines: {node: '>=12.7.0'}
+ peerDependencies:
+ react: '>=16.8'
+ peerDependenciesMeta:
+ react:
+ optional: true
+
+ zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
+snapshots:
+
+ '@alloc/quick-lru@5.2.0': {}
+
+ '@ant-design/colors@7.2.1':
+ dependencies:
+ '@ant-design/fast-color': 2.0.6
+
+ '@ant-design/cssinjs-utils@1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@ant-design/cssinjs': 1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@babel/runtime': 7.29.7
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@ant-design/cssinjs@1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@emotion/hash': 0.8.0
+ '@emotion/unitless': 0.7.5
+ classnames: 2.5.1
+ csstype: 3.2.3
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ stylis: 4.4.0
+
+ '@ant-design/fast-color@2.0.6':
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ '@ant-design/icons-svg@4.4.2': {}
+
+ '@ant-design/icons@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@ant-design/colors': 7.2.1
+ '@ant-design/icons-svg': 4.4.2
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@ant-design/react-slick@1.1.2(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ json2mq: 0.2.0
+ react: 18.3.1
+ resize-observer-polyfill: 1.5.1
+ throttle-debounce: 5.0.2
+
+ '@antfu/install-pkg@1.1.0':
+ dependencies:
+ package-manager-detector: 1.6.0
+ tinyexec: 1.2.4
+
+ '@astrojs/compiler@2.13.1': {}
+
+ '@babel/code-frame@7.29.7':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.29.7
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.29.7': {}
+
+ '@babel/core@7.29.7':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7)
+ '@babel/helpers': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.29.7':
+ dependencies:
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.1.0
+
+ '@babel/helper-compilation-targets@7.29.7':
+ dependencies:
+ '@babel/compat-data': 7.29.7
+ '@babel/helper-validator-option': 7.29.7
+ browserslist: 4.28.2
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ debug: 4.4.3
+ lodash.debounce: 4.0.8
+ resolve: 1.22.12
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-globals@7.29.7': {}
+
+ '@babel/helper-module-imports@7.29.7':
+ dependencies:
+ '@babel/traverse': 7.29.7
+ '@babel/types': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.29.7': {}
+
+ '@babel/helper-string-parser@7.29.7': {}
+
+ '@babel/helper-validator-identifier@7.29.7': {}
+
+ '@babel/helper-validator-option@7.29.7': {}
+
+ '@babel/helpers@7.29.7':
+ dependencies:
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
+
+ '@babel/parser@7.29.7':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+
+ '@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7)':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/helper-plugin-utils': 7.29.7
+ babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.7)
+ babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/runtime@7.29.7': {}
+
+ '@babel/template@7.29.7':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+
+ '@babel/traverse@7.29.7':
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.7
+ '@babel/helper-globals': 7.29.7
+ '@babel/parser': 7.29.7
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.7
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.29.7':
+ dependencies:
+ '@babel/helper-string-parser': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+
+ '@braintree/sanitize-url@7.1.2': {}
+
+ '@chevrotain/types@11.1.2': {}
+
+ '@code-inspector/core@1.6.1':
+ dependencies:
+ '@vue/compiler-dom': 3.5.38
+ chalk: 4.1.2
+ dotenv: 16.6.1
+ launch-ide: 1.4.3
+ portfinder: 1.0.38
+ transitivePeerDependencies:
+ - supports-color
+
+ '@code-inspector/esbuild@1.6.1':
+ dependencies:
+ '@code-inspector/core': 1.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@code-inspector/mako@1.6.1':
+ dependencies:
+ '@code-inspector/core': 1.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@code-inspector/turbopack@1.6.1':
+ dependencies:
+ '@code-inspector/core': 1.6.1
+ '@code-inspector/webpack': 1.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@code-inspector/vite@1.6.1':
+ dependencies:
+ '@code-inspector/core': 1.6.1
+ chalk: 4.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@code-inspector/webpack@1.6.1':
+ dependencies:
+ '@code-inspector/core': 1.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@croct/json5-parser@0.2.2':
+ dependencies:
+ '@croct/json': 2.1.0
+
+ '@croct/json@2.1.0': {}
+
+ '@dnd-kit/accessibility@3.1.1(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ tslib: 2.8.1
+
+ '@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@dnd-kit/accessibility': 3.1.1(react@18.3.1)
+ '@dnd-kit/utilities': 3.2.2(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ tslib: 2.8.1
+
+ '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/utilities': 3.2.2(react@18.3.1)
+ react: 18.3.1
+ tslib: 2.8.1
+
+ '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/utilities': 3.2.2(react@18.3.1)
+ react: 18.3.1
+ tslib: 2.8.1
+
+ '@dnd-kit/sortable@7.0.2(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/utilities': 3.2.2(react@18.3.1)
+ react: 18.3.1
+ tslib: 2.8.1
+
+ '@dnd-kit/utilities@3.2.2(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ tslib: 2.8.1
+
+ '@douyinfe/semi-animation-react@2.100.0':
+ dependencies:
+ '@douyinfe/semi-animation': 2.100.0
+ '@douyinfe/semi-animation-styled': 2.100.0
+ classnames: 2.5.1
+
+ '@douyinfe/semi-animation-styled@2.100.0': {}
+
+ '@douyinfe/semi-animation@2.100.0':
+ dependencies:
+ bezier-easing: 2.1.0
+
+ '@douyinfe/semi-foundation@2.100.0':
+ dependencies:
+ '@douyinfe/semi-animation': 2.100.0
+ '@douyinfe/semi-json-viewer-core': 2.100.0
+ '@mdx-js/mdx': 3.1.1
+ async-validator: 3.5.2
+ classnames: 2.5.1
+ date-fns: 2.30.0
+ date-fns-tz: 1.3.8(date-fns@2.30.0)
+ fast-copy: 3.0.2
+ lodash: 4.18.1
+ lottie-web: 5.13.0
+ memoize-one: 5.2.1
+ prismjs: 1.30.0
+ remark-gfm: 4.0.1
+ scroll-into-view-if-needed: 2.2.31
+ transitivePeerDependencies:
+ - supports-color
+
+ '@douyinfe/semi-icons@2.100.0(react@18.3.1)':
+ dependencies:
+ classnames: 2.5.1
+ react: 18.3.1
+
+ '@douyinfe/semi-illustrations@2.100.0(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@douyinfe/semi-json-viewer-core@2.100.0':
+ dependencies:
+ jsonc-parser: 3.3.1
+
+ '@douyinfe/semi-theme-default@2.100.0': {}
+
+ '@douyinfe/semi-ui@2.100.0(@floating-ui/dom@1.7.6)(@tiptap/suggestion@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/utilities': 3.2.2(react@18.3.1)
+ '@douyinfe/semi-animation': 2.100.0
+ '@douyinfe/semi-animation-react': 2.100.0
+ '@douyinfe/semi-foundation': 2.100.0
+ '@douyinfe/semi-icons': 2.100.0(react@18.3.1)
+ '@douyinfe/semi-illustrations': 2.100.0(react@18.3.1)
+ '@douyinfe/semi-theme-default': 2.100.0
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/extension-document': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-hard-break': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-image': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-mention': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)(@tiptap/suggestion@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))
+ '@tiptap/extension-paragraph': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-text': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-text-align': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-text-style': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extensions': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+ '@tiptap/react': 3.26.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@tiptap/starter-kit': 3.26.1
+ async-validator: 3.5.2
+ classnames: 2.5.1
+ copy-text-to-clipboard: 2.2.0
+ date-fns: 2.30.0
+ date-fns-tz: 1.3.8(date-fns@2.30.0)
+ fast-copy: 3.0.2
+ jsonc-parser: 3.3.1
+ lodash: 4.18.1
+ prop-types: 15.8.1
+ prosemirror-state: 1.4.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-resizable: 3.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-window: 1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ scroll-into-view-if-needed: 2.2.31
+ utility-types: 3.11.0
+ transitivePeerDependencies:
+ - '@floating-ui/dom'
+ - '@tiptap/suggestion'
+ - '@types/react'
+ - '@types/react-dom'
+ - supports-color
+
+ '@douyinfe/vite-plugin-semi@2.74.0-alpha.6(vite@5.4.21(sass@1.101.0))':
+ dependencies:
+ sass: 1.101.0
+ vite: 5.4.21(sass@1.101.0)
+
+ '@emoji-mart/data@1.2.1': {}
+
+ '@emoji-mart/react@1.1.1(emoji-mart@5.6.0)(react@18.3.1)':
+ dependencies:
+ emoji-mart: 5.6.0
+ react: 18.3.1
+
+ '@emotion/babel-plugin@11.13.5':
+ dependencies:
+ '@babel/helper-module-imports': 7.29.7
+ '@babel/runtime': 7.29.7
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/serialize': 1.3.3
+ babel-plugin-macros: 3.1.0
+ convert-source-map: 1.9.0
+ escape-string-regexp: 4.0.0
+ find-root: 1.1.0
+ source-map: 0.5.7
+ stylis: 4.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/cache@11.14.0':
+ dependencies:
+ '@emotion/memoize': 0.9.0
+ '@emotion/sheet': 1.4.0
+ '@emotion/utils': 1.4.2
+ '@emotion/weak-memoize': 0.4.0
+ stylis: 4.2.0
+
+ '@emotion/css@11.13.5':
+ dependencies:
+ '@emotion/babel-plugin': 11.13.5
+ '@emotion/cache': 11.14.0
+ '@emotion/serialize': 1.3.3
+ '@emotion/sheet': 1.4.0
+ '@emotion/utils': 1.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/hash@0.8.0': {}
+
+ '@emotion/hash@0.9.2': {}
+
+ '@emotion/memoize@0.9.0': {}
+
+ '@emotion/react@11.14.0(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@emotion/babel-plugin': 11.13.5
+ '@emotion/cache': 11.14.0
+ '@emotion/serialize': 1.3.3
+ '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1)
+ '@emotion/utils': 1.4.2
+ '@emotion/weak-memoize': 0.4.0
+ hoist-non-react-statics: 3.3.2
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/serialize@1.3.3':
+ dependencies:
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/unitless': 0.10.0
+ '@emotion/utils': 1.4.2
+ csstype: 3.2.3
+
+ '@emotion/sheet@1.4.0': {}
+
+ '@emotion/unitless@0.10.0': {}
+
+ '@emotion/unitless@0.7.5': {}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@emotion/utils@1.4.2': {}
+
+ '@emotion/weak-memoize@0.4.0': {}
+
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.21.5':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.9.1(eslint@8.57.0)':
+ dependencies:
+ eslint: 8.57.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/eslintrc@2.1.4':
+ dependencies:
+ ajv: 6.15.0
+ debug: 4.4.3
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.2.0
+ minimatch: 3.1.5
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@8.57.0': {}
+
+ '@floating-ui/core@1.7.5':
+ dependencies:
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/dom@1.7.6':
+ dependencies:
+ '@floating-ui/core': 1.7.5
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/react-dom@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@floating-ui/react@0.27.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@floating-ui/utils': 0.2.11
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ tabbable: 6.4.0
+
+ '@floating-ui/utils@0.2.11': {}
+
+ '@giscus/react@3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ giscus: 1.6.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@humanwhocodes/config-array@0.11.14':
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.4.3
+ minimatch: 3.1.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/object-schema@2.0.3': {}
+
+ '@iconify/types@2.0.0': {}
+
+ '@iconify/utils@3.1.3':
+ dependencies:
+ '@antfu/install-pkg': 1.1.0
+ '@iconify/types': 2.0.0
+ import-meta-resolve: 4.2.0
+
+ '@inquirer/ansi@2.0.7': {}
+
+ '@inquirer/checkbox@5.2.1':
+ dependencies:
+ '@inquirer/ansi': 2.0.7
+ '@inquirer/core': 11.2.1
+ '@inquirer/figures': 2.0.7
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/confirm@6.1.1':
+ dependencies:
+ '@inquirer/core': 11.2.1
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/core@11.2.1':
+ dependencies:
+ '@inquirer/ansi': 2.0.7
+ '@inquirer/figures': 2.0.7
+ '@inquirer/type': 4.0.7
+ cli-width: 4.1.0
+ fast-wrap-ansi: 0.2.2
+ mute-stream: 3.0.0
+ signal-exit: 4.1.0
+
+ '@inquirer/editor@5.2.2':
+ dependencies:
+ '@inquirer/core': 11.2.1
+ '@inquirer/external-editor': 3.0.3
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/expand@5.1.1':
+ dependencies:
+ '@inquirer/core': 11.2.1
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/external-editor@3.0.3':
+ dependencies:
+ chardet: 2.1.1
+ iconv-lite: 0.7.2
+
+ '@inquirer/figures@2.0.7': {}
+
+ '@inquirer/input@5.1.2':
+ dependencies:
+ '@inquirer/core': 11.2.1
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/number@4.1.1':
+ dependencies:
+ '@inquirer/core': 11.2.1
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/password@5.1.1':
+ dependencies:
+ '@inquirer/ansi': 2.0.7
+ '@inquirer/core': 11.2.1
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/prompts@8.5.2':
+ dependencies:
+ '@inquirer/checkbox': 5.2.1
+ '@inquirer/confirm': 6.1.1
+ '@inquirer/editor': 5.2.2
+ '@inquirer/expand': 5.1.1
+ '@inquirer/input': 5.1.2
+ '@inquirer/number': 4.1.1
+ '@inquirer/password': 5.1.1
+ '@inquirer/rawlist': 5.3.1
+ '@inquirer/search': 4.2.1
+ '@inquirer/select': 5.2.1
+
+ '@inquirer/rawlist@5.3.1':
+ dependencies:
+ '@inquirer/core': 11.2.1
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/search@4.2.1':
+ dependencies:
+ '@inquirer/core': 11.2.1
+ '@inquirer/figures': 2.0.7
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/select@5.2.1':
+ dependencies:
+ '@inquirer/ansi': 2.0.7
+ '@inquirer/core': 11.2.1
+ '@inquirer/figures': 2.0.7
+ '@inquirer/type': 4.0.7
+
+ '@inquirer/type@4.0.7': {}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@lit-labs/ssr-dom-shim@1.6.0': {}
+
+ '@lit/reactive-element@2.1.2':
+ dependencies:
+ '@lit-labs/ssr-dom-shim': 1.6.0
+
+ '@lobehub/emojilib@1.0.0': {}
+
+ '@lobehub/fluent-emoji@2.0.0(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@lobehub/emojilib': 1.0.0
+ '@lobehub/ui': 2.24.3(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ antd: 5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ antd-style: 3.7.1(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ emoji-regex: 10.6.0
+ lodash-es: 4.18.1
+ lucide-react: 0.469.0(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-layout-kit: 1.9.2(react@18.3.1)
+ url-join: 5.0.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@types/mdast'
+ - '@types/react'
+ - '@types/react-dom'
+ - framer-motion
+ - micromark
+ - micromark-util-types
+ - solid-js
+ - supports-color
+ - vue
+
+ '@lobehub/icons@2.48.0(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@lobehub/ui': 2.24.3(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ antd: 5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ antd-style: 3.7.1(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ lucide-react: 0.469.0(react@18.3.1)
+ polished: 4.3.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-layout-kit: 2.0.1(react@18.3.1)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@types/mdast'
+ - '@types/react'
+ - '@types/react-dom'
+ - framer-motion
+ - micromark
+ - micromark-util-types
+ - solid-js
+ - supports-color
+ - vue
+
+ '@lobehub/ui@2.24.3(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@ant-design/cssinjs': 1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/modifiers': 9.0.0(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/sortable': 10.0.0(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ '@dnd-kit/utilities': 3.2.2(react@18.3.1)
+ '@emoji-mart/data': 1.2.1
+ '@emoji-mart/react': 1.1.1(emoji-mart@5.6.0)(react@18.3.1)
+ '@floating-ui/react': 0.27.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@giscus/react': 3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@lobehub/fluent-emoji': 2.0.0(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@lobehub/icons': 2.48.0(@babel/core@7.29.7)(@types/mdast@4.0.4)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(micromark-util-types@2.0.2)(micromark@4.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@mdx-js/mdx': 3.1.1
+ '@mdx-js/react': 3.1.1(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-slot': 1.2.5(@types/react@19.2.17)(react@18.3.1)
+ '@shikijs/core': 3.23.0
+ '@shikijs/transformers': 3.23.0
+ '@splinetool/runtime': 0.9.526
+ ahooks: 3.9.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ antd: 5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ antd-style: 3.7.1(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ chroma-js: 3.2.0
+ class-variance-authority: 0.7.1
+ dayjs: 1.11.21
+ emoji-mart: 5.6.0
+ fast-deep-equal: 3.1.3
+ framer-motion: 12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ immer: 10.2.0
+ katex: 0.16.47
+ leva: 0.10.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ lodash-es: 4.18.1
+ lucide-react: 0.553.0(react@18.3.1)
+ marked: 17.0.6
+ mermaid: 11.15.0
+ numeral: 2.0.6
+ polished: 4.3.1
+ query-string: 9.4.0
+ rc-collapse: 4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-footer: 0.6.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-image: 7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-input-number: 9.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ re-resizable: 6.11.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-avatar-editor: 13.0.2(@babel/core@7.29.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-dom: 18.3.1(react@18.3.1)
+ react-error-boundary: 6.1.2(react@18.3.1)
+ react-hotkeys-hook: 5.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-layout-kit: 2.0.1(react@18.3.1)
+ react-markdown: 10.1.0(@types/react@19.2.17)(react@18.3.1)
+ react-merge-refs: 3.0.2(react@18.3.1)
+ react-rnd: 10.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-zoom-pan-pinch: 3.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rehype-github-alerts: 4.2.0
+ rehype-katex: 7.0.1
+ rehype-raw: 7.0.0
+ remark-breaks: 4.0.0
+ remark-cjk-friendly: 1.2.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5)
+ remark-gfm: 4.0.1
+ remark-github: 12.0.0
+ remark-math: 6.0.0
+ shiki: 3.23.0
+ shiki-stream: 0.1.5(react@18.3.1)
+ swr: 2.4.1(react@18.3.1)
+ ts-md5: 2.0.1
+ unified: 11.0.5
+ url-join: 5.0.0
+ use-merge-value: 1.2.0(react@18.3.1)
+ uuid: 13.0.2
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@types/mdast'
+ - '@types/react'
+ - '@types/react-dom'
+ - micromark
+ - micromark-util-types
+ - solid-js
+ - supports-color
+ - vue
+
+ '@mdx-js/mdx@3.1.1':
+ dependencies:
+ '@types/estree': 1.0.9
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdx': 2.0.14
+ acorn: 8.17.0
+ collapse-white-space: 2.1.0
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ estree-util-scope: 1.0.0
+ estree-walker: 3.0.3
+ hast-util-to-jsx-runtime: 2.3.6
+ markdown-extensions: 2.0.0
+ recma-build-jsx: 1.0.0
+ recma-jsx: 1.0.1(acorn@8.17.0)
+ recma-stringify: 1.0.0
+ rehype-recma: 1.0.0
+ remark-mdx: 3.1.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.2
+ source-map: 0.7.6
+ unified: 11.0.5
+ unist-util-position-from-estree: 2.0.0
+ unist-util-stringify-position: 4.0.0
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@mdx-js/react@3.1.1(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@types/mdx': 2.0.14
+ '@types/react': 19.2.17
+ react: 18.3.1
+
+ '@mermaid-js/parser@1.1.1':
+ dependencies:
+ '@chevrotain/types': 11.1.2
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.20.1
+
+ '@parcel/watcher-android-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-ia32@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher@2.5.6':
+ dependencies:
+ detect-libc: 2.1.2
+ is-glob: 4.0.3
+ node-addon-api: 7.1.1
+ picomatch: 4.0.4
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.5.6
+ '@parcel/watcher-darwin-arm64': 2.5.6
+ '@parcel/watcher-darwin-x64': 2.5.6
+ '@parcel/watcher-freebsd-x64': 2.5.6
+ '@parcel/watcher-linux-arm-glibc': 2.5.6
+ '@parcel/watcher-linux-arm-musl': 2.5.6
+ '@parcel/watcher-linux-arm64-glibc': 2.5.6
+ '@parcel/watcher-linux-arm64-musl': 2.5.6
+ '@parcel/watcher-linux-x64-glibc': 2.5.6
+ '@parcel/watcher-linux-x64-musl': 2.5.6
+ '@parcel/watcher-win32-arm64': 2.5.6
+ '@parcel/watcher-win32-ia32': 2.5.6
+ '@parcel/watcher-win32-x64': 2.5.6
+ optional: true
+
+ '@primer/octicons@19.28.1':
+ dependencies:
+ object-assign: 4.1.1
+
+ '@radix-ui/primitive@1.1.4': {}
+
+ '@radix-ui/react-arrow@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/react-compose-refs@1.1.3(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-context@1.1.4(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-dismissable-layer@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/react-id@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-popper@1.3.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/rect': 1.1.2
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/react-portal@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/react-presence@1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/react-primitive@2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.2.5(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/react-slot@1.2.5(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-tooltip@1.2.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-popper': 1.3.0(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.2.5(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-visually-hidden': 1.2.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/react-use-callback-ref@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-controllable-state@1.2.3(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-effect-event@0.0.3(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-escape-keydown@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-rect@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/rect': 1.1.2
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-size@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-visually-hidden@1.2.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+
+ '@radix-ui/rect@1.1.2': {}
+
+ '@rc-component/async-validator@5.1.2':
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ '@rc-component/color-picker@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@ant-design/fast-color': 2.0.6
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rc-component/context@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rc-component/mini-decimal@1.1.4':
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rc-component/qrcode@1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rc-component/tour@1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rc-component/trigger@2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@remix-run/router@1.23.3': {}
+
+ '@resvg/resvg-js-android-arm-eabi@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-android-arm64@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-darwin-arm64@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-darwin-x64@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-linux-arm-gnueabihf@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-linux-arm64-gnu@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-linux-arm64-musl@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-linux-x64-gnu@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-linux-x64-musl@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-win32-arm64-msvc@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-win32-ia32-msvc@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js-win32-x64-msvc@2.4.1':
+ optional: true
+
+ '@resvg/resvg-js@2.4.1':
+ optionalDependencies:
+ '@resvg/resvg-js-android-arm-eabi': 2.4.1
+ '@resvg/resvg-js-android-arm64': 2.4.1
+ '@resvg/resvg-js-darwin-arm64': 2.4.1
+ '@resvg/resvg-js-darwin-x64': 2.4.1
+ '@resvg/resvg-js-linux-arm-gnueabihf': 2.4.1
+ '@resvg/resvg-js-linux-arm64-gnu': 2.4.1
+ '@resvg/resvg-js-linux-arm64-musl': 2.4.1
+ '@resvg/resvg-js-linux-x64-gnu': 2.4.1
+ '@resvg/resvg-js-linux-x64-musl': 2.4.1
+ '@resvg/resvg-js-win32-arm64-msvc': 2.4.1
+ '@resvg/resvg-js-win32-ia32-msvc': 2.4.1
+ '@resvg/resvg-js-win32-x64-msvc': 2.4.1
+
+ '@rolldown/pluginutils@1.0.0-beta.27': {}
+
+ '@rollup/rollup-android-arm-eabi@4.62.0':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.62.0':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.62.0':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.62.0':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.62.0':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-loong64-gnu@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-loong64-musl@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-ppc64-gnu@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-ppc64-musl@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-musl@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.62.0':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.62.0':
+ optional: true
+
+ '@rollup/rollup-openbsd-x64@4.62.0':
+ optional: true
+
+ '@rollup/rollup-openharmony-arm64@4.62.0':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.62.0':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.62.0':
+ optional: true
+
+ '@rollup/rollup-win32-x64-gnu@4.62.0':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.62.0':
+ optional: true
+
+ '@sec-ant/readable-stream@0.4.1': {}
+
+ '@shikijs/core@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+ hast-util-to-html: 9.0.5
+
+ '@shikijs/core@4.2.0':
+ dependencies:
+ '@shikijs/primitive': 4.2.0
+ '@shikijs/types': 4.2.0
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+ hast-util-to-html: 9.0.5
+
+ '@shikijs/engine-javascript@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+ oniguruma-to-es: 4.3.6
+
+ '@shikijs/engine-oniguruma@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+
+ '@shikijs/langs@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+
+ '@shikijs/primitive@4.2.0':
+ dependencies:
+ '@shikijs/types': 4.2.0
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
+ '@shikijs/stream@4.2.0(react@18.3.1)':
+ dependencies:
+ '@shikijs/core': 4.2.0
+ optionalDependencies:
+ react: 18.3.1
+
+ '@shikijs/themes@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+
+ '@shikijs/transformers@3.23.0':
+ dependencies:
+ '@shikijs/core': 3.23.0
+ '@shikijs/types': 3.23.0
+
+ '@shikijs/types@3.23.0':
+ dependencies:
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
+ '@shikijs/types@4.2.0':
+ dependencies:
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
+ '@shikijs/vscode-textmate@10.0.2': {}
+
+ '@sindresorhus/merge-streams@4.0.0': {}
+
+ '@so1ve/prettier-config@3.26.0(prettier@3.8.4)':
+ dependencies:
+ '@so1ve/prettier-plugin-toml': 3.26.0(prettier@3.8.4)
+ prettier: 3.8.4
+ prettier-plugin-astro: 0.14.1
+ prettier-plugin-jsdoc: 1.8.1(prettier@3.8.4)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@so1ve/prettier-plugin-toml@3.26.0(prettier@3.8.4)':
+ dependencies:
+ prettier: 3.8.4
+
+ '@splinetool/runtime@0.9.526':
+ dependencies:
+ on-change: 4.0.2
+ semver-compare: 1.0.0
+
+ '@stitches/react@1.2.8(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+
+ '@swc/core-darwin-arm64@1.15.41':
+ optional: true
+
+ '@swc/core-darwin-x64@1.15.41':
+ optional: true
+
+ '@swc/core-linux-arm-gnueabihf@1.15.41':
+ optional: true
+
+ '@swc/core-linux-arm64-gnu@1.15.41':
+ optional: true
+
+ '@swc/core-linux-arm64-musl@1.15.41':
+ optional: true
+
+ '@swc/core-linux-ppc64-gnu@1.15.41':
+ optional: true
+
+ '@swc/core-linux-s390x-gnu@1.15.41':
+ optional: true
+
+ '@swc/core-linux-x64-gnu@1.15.41':
+ optional: true
+
+ '@swc/core-linux-x64-musl@1.15.41':
+ optional: true
+
+ '@swc/core-win32-arm64-msvc@1.15.41':
+ optional: true
+
+ '@swc/core-win32-ia32-msvc@1.15.41':
+ optional: true
+
+ '@swc/core-win32-x64-msvc@1.15.41':
+ optional: true
+
+ '@swc/core@1.15.41':
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.26
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.15.41
+ '@swc/core-darwin-x64': 1.15.41
+ '@swc/core-linux-arm-gnueabihf': 1.15.41
+ '@swc/core-linux-arm64-gnu': 1.15.41
+ '@swc/core-linux-arm64-musl': 1.15.41
+ '@swc/core-linux-ppc64-gnu': 1.15.41
+ '@swc/core-linux-s390x-gnu': 1.15.41
+ '@swc/core-linux-x64-gnu': 1.15.41
+ '@swc/core-linux-x64-musl': 1.15.41
+ '@swc/core-win32-arm64-msvc': 1.15.41
+ '@swc/core-win32-ia32-msvc': 1.15.41
+ '@swc/core-win32-x64-msvc': 1.15.41
+
+ '@swc/counter@0.1.3': {}
+
+ '@swc/types@0.1.26':
+ dependencies:
+ '@swc/counter': 0.1.3
+
+ '@tiptap/core@3.26.1(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-blockquote@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-bold@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-bubble-menu@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+ optional: true
+
+ '@tiptap/extension-bullet-list@3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/extension-list': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-code-block@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-code@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-document@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-dropcursor@3.26.1(@tiptap/extensions@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/extensions': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-floating-menu@3.26.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+ optional: true
+
+ '@tiptap/extension-gapcursor@3.26.1(@tiptap/extensions@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/extensions': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-hard-break@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-heading@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-horizontal-rule@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-image@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-italic@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-link@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+ linkifyjs: 4.3.3
+
+ '@tiptap/extension-list-item@3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/extension-list': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-list-keymap@3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/extension-list': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/extension-mention@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)(@tiptap/suggestion@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+ '@tiptap/suggestion': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-ordered-list@3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/extension-list': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-paragraph@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-strike@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-text-align@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-text-style@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-text@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extension-underline@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+
+ '@tiptap/extensions@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/pm@3.26.1':
+ dependencies:
+ prosemirror-changeset: 2.4.1
+ prosemirror-commands: 1.7.1
+ prosemirror-dropcursor: 1.8.2
+ prosemirror-gapcursor: 1.4.1
+ prosemirror-history: 1.5.0
+ prosemirror-inputrules: 1.5.1
+ prosemirror-keymap: 1.2.3
+ prosemirror-model: 1.25.8
+ prosemirror-schema-list: 1.5.1
+ prosemirror-state: 1.4.4
+ prosemirror-tables: 1.8.5
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.9
+
+ '@tiptap/react@3.26.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+ '@types/react': 19.2.17
+ '@types/react-dom': 19.2.3(@types/react@19.2.17)
+ '@types/use-sync-external-store': 0.0.6
+ fast-equals: 5.4.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ use-sync-external-store: 1.6.0(react@18.3.1)
+ optionalDependencies:
+ '@tiptap/extension-bubble-menu': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ '@tiptap/extension-floating-menu': 3.26.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ transitivePeerDependencies:
+ - '@floating-ui/dom'
+
+ '@tiptap/starter-kit@3.26.1':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/extension-blockquote': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-bold': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-bullet-list': 3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))
+ '@tiptap/extension-code': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-code-block': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ '@tiptap/extension-document': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-dropcursor': 3.26.1(@tiptap/extensions@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))
+ '@tiptap/extension-gapcursor': 3.26.1(@tiptap/extensions@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))
+ '@tiptap/extension-hard-break': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-heading': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-horizontal-rule': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ '@tiptap/extension-italic': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-link': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ '@tiptap/extension-list': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ '@tiptap/extension-list-item': 3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))
+ '@tiptap/extension-list-keymap': 3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))
+ '@tiptap/extension-ordered-list': 3.26.1(@tiptap/extension-list@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1))
+ '@tiptap/extension-paragraph': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-strike': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-text': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extension-underline': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))
+ '@tiptap/extensions': 3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+
+ '@tiptap/suggestion@3.26.1(@tiptap/core@3.26.1(@tiptap/pm@3.26.1))(@tiptap/pm@3.26.1)':
+ dependencies:
+ '@tiptap/core': 3.26.1(@tiptap/pm@3.26.1)
+ '@tiptap/pm': 3.26.1
+
+ '@turf/boolean-clockwise@6.5.0':
+ dependencies:
+ '@turf/helpers': 6.5.0
+ '@turf/invariant': 6.5.0
+
+ '@turf/clone@6.5.0':
+ dependencies:
+ '@turf/helpers': 6.5.0
+
+ '@turf/flatten@6.5.0':
+ dependencies:
+ '@turf/helpers': 6.5.0
+ '@turf/meta': 6.5.0
+
+ '@turf/helpers@6.5.0': {}
+
+ '@turf/invariant@6.5.0':
+ dependencies:
+ '@turf/helpers': 6.5.0
+
+ '@turf/meta@3.14.0': {}
+
+ '@turf/meta@6.5.0':
+ dependencies:
+ '@turf/helpers': 6.5.0
+
+ '@turf/rewind@6.5.0':
+ dependencies:
+ '@turf/boolean-clockwise': 6.5.0
+ '@turf/clone': 6.5.0
+ '@turf/helpers': 6.5.0
+ '@turf/invariant': 6.5.0
+ '@turf/meta': 6.5.0
+
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+ '@types/babel__generator': 7.27.0
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.28.0
+
+ '@types/babel__generator@7.27.0':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.29.7
+ '@babel/types': 7.29.7
+
+ '@types/babel__traverse@7.28.0':
+ dependencies:
+ '@babel/types': 7.29.7
+
+ '@types/d3-array@3.2.2': {}
+
+ '@types/d3-axis@3.0.6':
+ dependencies:
+ '@types/d3-selection': 3.0.11
+
+ '@types/d3-brush@3.0.6':
+ dependencies:
+ '@types/d3-selection': 3.0.11
+
+ '@types/d3-chord@3.0.6': {}
+
+ '@types/d3-color@3.1.3': {}
+
+ '@types/d3-contour@3.0.6':
+ dependencies:
+ '@types/d3-array': 3.2.2
+ '@types/geojson': 7946.0.16
+
+ '@types/d3-delaunay@6.0.4': {}
+
+ '@types/d3-dispatch@3.0.7': {}
+
+ '@types/d3-drag@3.0.7':
+ dependencies:
+ '@types/d3-selection': 3.0.11
+
+ '@types/d3-dsv@3.0.7': {}
+
+ '@types/d3-ease@3.0.2': {}
+
+ '@types/d3-fetch@3.0.7':
+ dependencies:
+ '@types/d3-dsv': 3.0.7
+
+ '@types/d3-force@3.0.10': {}
+
+ '@types/d3-format@3.0.4': {}
+
+ '@types/d3-geo@3.1.0':
+ dependencies:
+ '@types/geojson': 7946.0.16
+
+ '@types/d3-hierarchy@3.1.7': {}
+
+ '@types/d3-interpolate@3.0.4':
+ dependencies:
+ '@types/d3-color': 3.1.3
+
+ '@types/d3-path@3.1.1': {}
+
+ '@types/d3-polygon@3.0.2': {}
+
+ '@types/d3-quadtree@3.0.6': {}
+
+ '@types/d3-random@3.0.3': {}
+
+ '@types/d3-scale-chromatic@3.1.0': {}
+
+ '@types/d3-scale@4.0.9':
+ dependencies:
+ '@types/d3-time': 3.0.4
+
+ '@types/d3-selection@3.0.11': {}
+
+ '@types/d3-shape@3.1.8':
+ dependencies:
+ '@types/d3-path': 3.1.1
+
+ '@types/d3-time-format@4.0.3': {}
+
+ '@types/d3-time@3.0.4': {}
+
+ '@types/d3-timer@3.0.2': {}
+
+ '@types/d3-transition@3.0.9':
+ dependencies:
+ '@types/d3-selection': 3.0.11
+
+ '@types/d3-zoom@3.0.8':
+ dependencies:
+ '@types/d3-interpolate': 3.0.4
+ '@types/d3-selection': 3.0.11
+
+ '@types/d3@7.4.3':
+ dependencies:
+ '@types/d3-array': 3.2.2
+ '@types/d3-axis': 3.0.6
+ '@types/d3-brush': 3.0.6
+ '@types/d3-chord': 3.0.6
+ '@types/d3-color': 3.1.3
+ '@types/d3-contour': 3.0.6
+ '@types/d3-delaunay': 6.0.4
+ '@types/d3-dispatch': 3.0.7
+ '@types/d3-drag': 3.0.7
+ '@types/d3-dsv': 3.0.7
+ '@types/d3-ease': 3.0.2
+ '@types/d3-fetch': 3.0.7
+ '@types/d3-force': 3.0.10
+ '@types/d3-format': 3.0.4
+ '@types/d3-geo': 3.1.0
+ '@types/d3-hierarchy': 3.1.7
+ '@types/d3-interpolate': 3.0.4
+ '@types/d3-path': 3.1.1
+ '@types/d3-polygon': 3.0.2
+ '@types/d3-quadtree': 3.0.6
+ '@types/d3-random': 3.0.3
+ '@types/d3-scale': 4.0.9
+ '@types/d3-scale-chromatic': 3.1.0
+ '@types/d3-selection': 3.0.11
+ '@types/d3-shape': 3.1.8
+ '@types/d3-time': 3.0.4
+ '@types/d3-time-format': 4.0.3
+ '@types/d3-timer': 3.0.2
+ '@types/d3-transition': 3.0.9
+ '@types/d3-zoom': 3.0.8
+
+ '@types/debug@4.1.13':
+ dependencies:
+ '@types/ms': 2.1.0
+
+ '@types/estree-jsx@1.0.5':
+ dependencies:
+ '@types/estree': 1.0.9
+
+ '@types/estree@1.0.9': {}
+
+ '@types/geojson@7946.0.16': {}
+
+ '@types/hast@3.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/js-cookie@3.0.6': {}
+
+ '@types/katex@0.16.8': {}
+
+ '@types/mdast@4.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/mdx@2.0.14': {}
+
+ '@types/ms@2.1.0': {}
+
+ '@types/parse-json@4.0.2': {}
+
+ '@types/react-dom@19.2.3(@types/react@19.2.17)':
+ dependencies:
+ '@types/react': 19.2.17
+
+ '@types/react@19.2.17':
+ dependencies:
+ csstype: 3.2.3
+
+ '@types/trusted-types@2.0.7': {}
+
+ '@types/unist@2.0.11': {}
+
+ '@types/unist@3.0.3': {}
+
+ '@types/use-sync-external-store@0.0.6': {}
+
+ '@ungap/structured-clone@1.3.1': {}
+
+ '@upsetjs/venn.js@2.0.0':
+ optionalDependencies:
+ d3-selection: 3.0.0
+ d3-transition: 3.0.1(d3-selection@3.0.0)
+
+ '@use-gesture/core@10.3.1': {}
+
+ '@use-gesture/react@10.3.1(react@18.3.1)':
+ dependencies:
+ '@use-gesture/core': 10.3.1
+ react: 18.3.1
+
+ '@visactor/react-vchart@1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@visactor/vchart': 1.8.11
+ '@visactor/vgrammar-core': 0.10.11
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vutils': 0.17.5
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-is: 18.3.1
+
+ '@visactor/vchart-semi-theme@1.8.8(@visactor/vchart@1.8.11)':
+ dependencies:
+ '@visactor/vchart': 1.8.11
+ '@visactor/vchart-theme-utils': 1.8.8(@visactor/vchart@1.8.11)
+
+ '@visactor/vchart-theme-utils@1.8.8(@visactor/vchart@1.8.11)':
+ dependencies:
+ '@visactor/vchart': 1.8.11
+
+ '@visactor/vchart@1.8.11':
+ dependencies:
+ '@visactor/vdataset': 0.17.5
+ '@visactor/vgrammar-core': 0.10.11
+ '@visactor/vgrammar-hierarchy': 0.10.11
+ '@visactor/vgrammar-projection': 0.10.11
+ '@visactor/vgrammar-sankey': 0.10.11
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vgrammar-wordcloud': 0.10.11
+ '@visactor/vgrammar-wordcloud-shape': 0.10.11
+ '@visactor/vrender-components': 0.17.17
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vscale': 0.17.5
+ '@visactor/vutils': 0.17.5
+ '@visactor/vutils-extension': 1.8.11
+
+ '@visactor/vdataset@0.17.5':
+ dependencies:
+ '@turf/flatten': 6.5.0
+ '@turf/helpers': 6.5.0
+ '@turf/rewind': 6.5.0
+ '@visactor/vutils': 0.17.5
+ d3-dsv: 2.0.0
+ d3-geo: 1.12.1
+ d3-hexbin: 0.2.2
+ d3-hierarchy: 3.1.2
+ eventemitter3: 4.0.7
+ geobuf: 3.0.2
+ geojson-dissolve: 3.1.0
+ path-browserify: 1.0.1
+ pbf: 3.3.0
+ point-at-length: 1.1.0
+ simple-statistics: 7.9.0
+ simplify-geojson: 1.0.5
+ topojson-client: 3.1.0
+
+ '@visactor/vgrammar-coordinate@0.10.11':
+ dependencies:
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vgrammar-core@0.10.11':
+ dependencies:
+ '@visactor/vdataset': 0.17.5
+ '@visactor/vgrammar-coordinate': 0.10.11
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vrender-components': 0.17.17
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vscale': 0.17.5
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vgrammar-hierarchy@0.10.11':
+ dependencies:
+ '@visactor/vgrammar-core': 0.10.11
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vgrammar-projection@0.10.11':
+ dependencies:
+ '@visactor/vgrammar-core': 0.10.11
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vutils': 0.17.5
+ d3-geo: 1.12.1
+
+ '@visactor/vgrammar-sankey@0.10.11':
+ dependencies:
+ '@visactor/vgrammar-core': 0.10.11
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vgrammar-util@0.10.11':
+ dependencies:
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vgrammar-wordcloud-shape@0.10.11':
+ dependencies:
+ '@visactor/vgrammar-core': 0.10.11
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vscale': 0.17.5
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vgrammar-wordcloud@0.10.11':
+ dependencies:
+ '@visactor/vgrammar-core': 0.10.11
+ '@visactor/vgrammar-util': 0.10.11
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vrender-components@0.17.17':
+ dependencies:
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vscale': 0.17.5
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vrender-core@0.17.17':
+ dependencies:
+ '@visactor/vutils': 0.17.5
+ color-convert: 2.0.1
+
+ '@visactor/vrender-kits@0.17.17':
+ dependencies:
+ '@resvg/resvg-js': 2.4.1
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vutils': 0.17.5
+ roughjs: 4.5.2
+
+ '@visactor/vscale@0.17.5':
+ dependencies:
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vutils-extension@1.8.11':
+ dependencies:
+ '@visactor/vrender-core': 0.17.17
+ '@visactor/vrender-kits': 0.17.17
+ '@visactor/vscale': 0.17.5
+ '@visactor/vutils': 0.17.5
+
+ '@visactor/vutils@0.17.5':
+ dependencies:
+ '@turf/helpers': 6.5.0
+ '@turf/invariant': 6.5.0
+ eventemitter3: 4.0.7
+
+ '@vitejs/plugin-react@4.7.0(vite@5.4.21(sass@1.101.0))':
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7)
+ '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7)
+ '@rolldown/pluginutils': 1.0.0-beta.27
+ '@types/babel__core': 7.20.5
+ react-refresh: 0.17.0
+ vite: 5.4.21(sass@1.101.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/compiler-core@3.5.38':
+ dependencies:
+ '@babel/parser': 7.29.7
+ '@vue/shared': 3.5.38
+ entities: 7.0.1
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.38':
+ dependencies:
+ '@vue/compiler-core': 3.5.38
+ '@vue/shared': 3.5.38
+
+ '@vue/shared@3.5.38': {}
+
+ abs-svg-path@0.1.1: {}
+
+ acorn-jsx@5.3.2(acorn@8.17.0):
+ dependencies:
+ acorn: 8.17.0
+
+ acorn@8.17.0: {}
+
+ ahooks@3.9.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@types/js-cookie': 3.0.6
+ dayjs: 1.11.21
+ intersection-observer: 0.12.2
+ js-cookie: 3.0.8
+ lodash: 4.18.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-fast-compare: 3.2.2
+ resize-observer-polyfill: 1.5.1
+ screenfull: 5.2.0
+ tslib: 2.8.1
+
+ ajv@6.15.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.2.2: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ antd-style@3.7.1(@types/react@19.2.17)(antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@ant-design/cssinjs': 1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@babel/runtime': 7.29.7
+ '@emotion/cache': 11.14.0
+ '@emotion/css': 11.13.5
+ '@emotion/react': 11.14.0(@types/react@19.2.17)(react@18.3.1)
+ '@emotion/serialize': 1.3.3
+ '@emotion/utils': 1.4.2
+ antd: 5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ use-merge-value: 1.2.0(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - react-dom
+ - supports-color
+
+ antd@5.29.3(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@ant-design/colors': 7.2.1
+ '@ant-design/cssinjs': 1.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@ant-design/cssinjs-utils': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@ant-design/fast-color': 2.0.6
+ '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@ant-design/react-slick': 1.1.2(react@18.3.1)
+ '@babel/runtime': 7.29.7
+ '@rc-component/color-picker': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@rc-component/mutate-observer': 1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@rc-component/qrcode': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@rc-component/tour': 1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ copy-to-clipboard: 3.3.3
+ dayjs: 1.11.21
+ rc-cascader: 3.34.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-checkbox: 3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-collapse: 3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-drawer: 7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-field-form: 2.7.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-image: 7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-input-number: 9.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-mentions: 2.20.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-notification: 5.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-pagination: 5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-picker: 4.11.3(date-fns@2.30.0)(dayjs@1.11.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-progress: 4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-rate: 2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-segmented: 2.7.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-select: 14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-slider: 11.1.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-steps: 6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-switch: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-table: 7.54.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-tabs: 15.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-textarea: 1.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-tooltip: 6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-tree: 5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-tree-select: 5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-upload: 4.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ scroll-into-view-if-needed: 3.1.0
+ throttle-debounce: 5.0.2
+ transitivePeerDependencies:
+ - date-fns
+ - luxon
+ - moment
+
+ any-promise@1.3.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.2
+
+ arg@5.0.2: {}
+
+ argparse@2.0.1: {}
+
+ array-source@0.0.4: {}
+
+ assign-symbols@1.0.0: {}
+
+ astring@1.9.0: {}
+
+ async-validator@3.5.2: {}
+
+ async@3.2.6: {}
+
+ asynckit@0.4.0: {}
+
+ attr-accept@2.2.5: {}
+
+ autoprefixer@10.5.0(postcss@8.5.15):
+ dependencies:
+ browserslist: 4.28.2
+ caniuse-lite: 1.0.30001799
+ fraction.js: 5.3.4
+ picocolors: 1.1.1
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+
+ axios@1.13.5:
+ dependencies:
+ follow-redirects: 1.16.0
+ form-data: 4.0.6
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ babel-plugin-macros@3.1.0:
+ dependencies:
+ '@babel/runtime': 7.29.7
+ cosmiconfig: 7.1.0
+ resolve: 1.22.12
+
+ babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7):
+ dependencies:
+ '@babel/compat-data': 7.29.7
+ '@babel/core': 7.29.7
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.7):
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
+ core-js-compat: 3.49.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7):
+ dependencies:
+ '@babel/core': 7.29.7
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ bail@2.0.2: {}
+
+ balanced-match@1.0.2: {}
+
+ balanced-match@4.0.4: {}
+
+ baseline-browser-mapping@2.10.37: {}
+
+ bezier-easing@2.1.0: {}
+
+ binary-extensions@2.3.0: {}
+
+ binary-searching@2.0.5: {}
+
+ brace-expansion@1.1.15:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@5.0.6:
+ dependencies:
+ balanced-match: 4.0.4
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.28.2:
+ dependencies:
+ baseline-browser-mapping: 2.10.37
+ caniuse-lite: 1.0.30001799
+ electron-to-chromium: 1.5.372
+ node-releases: 2.0.47
+ update-browserslist-db: 1.2.3(browserslist@4.28.2)
+
+ buffer-from@1.1.2: {}
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.9:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ camelcase-css@2.0.1: {}
+
+ caniuse-lite@1.0.30001799: {}
+
+ ccount@2.0.1: {}
+
+ chalk@4.1.1:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.6.2: {}
+
+ character-entities-html4@2.1.0: {}
+
+ character-entities-legacy@3.0.0: {}
+
+ character-entities@2.0.2: {}
+
+ character-reference-invalid@2.0.1: {}
+
+ chardet@2.1.1: {}
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ chokidar@5.0.0:
+ dependencies:
+ readdirp: 5.0.0
+
+ chroma-js@3.2.0: {}
+
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
+ classnames@2.5.1: {}
+
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
+ cli-spinners@3.4.0: {}
+
+ cli-width@4.1.0: {}
+
+ clone@2.1.2: {}
+
+ clsx@1.2.1: {}
+
+ clsx@2.1.1: {}
+
+ code-inspector-plugin@1.6.1:
+ dependencies:
+ '@code-inspector/core': 1.6.1
+ '@code-inspector/esbuild': 1.6.1
+ '@code-inspector/mako': 1.6.1
+ '@code-inspector/turbopack': 1.6.1
+ '@code-inspector/vite': 1.6.1
+ '@code-inspector/webpack': 1.6.1
+ chalk: 4.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ collapse-white-space@2.1.0: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ colord@2.9.3: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ comma-separated-tokens@2.0.3: {}
+
+ commander@14.0.3: {}
+
+ commander@2.20.3: {}
+
+ commander@4.1.1: {}
+
+ commander@7.2.0: {}
+
+ commander@8.3.0: {}
+
+ comment-parser@1.4.7: {}
+
+ compute-scroll-into-view@1.0.20: {}
+
+ compute-scroll-into-view@3.1.1: {}
+
+ concat-map@0.0.1: {}
+
+ concat-stream@1.4.11:
+ dependencies:
+ inherits: 2.0.4
+ readable-stream: 1.1.14
+ typedarray: 0.0.7
+
+ concat-stream@2.0.0:
+ dependencies:
+ buffer-from: 1.1.2
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ typedarray: 0.0.6
+
+ convert-source-map@1.9.0: {}
+
+ convert-source-map@2.0.0: {}
+
+ copy-text-to-clipboard@2.2.0: {}
+
+ copy-to-clipboard@3.3.3:
+ dependencies:
+ toggle-selection: 1.0.6
+
+ core-js-compat@3.49.0:
+ dependencies:
+ browserslist: 4.28.2
+
+ core-util-is@1.0.3: {}
+
+ cose-base@1.0.3:
+ dependencies:
+ layout-base: 1.0.2
+
+ cose-base@2.2.0:
+ dependencies:
+ layout-base: 2.0.1
+
+ cosmiconfig@7.1.0:
+ dependencies:
+ '@types/parse-json': 4.0.2
+ import-fresh: 3.3.1
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.3
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ cssesc@3.0.0: {}
+
+ csstype@3.2.3: {}
+
+ cytoscape-cose-bilkent@4.1.0(cytoscape@3.34.0):
+ dependencies:
+ cose-base: 1.0.3
+ cytoscape: 3.34.0
+
+ cytoscape-fcose@2.2.0(cytoscape@3.34.0):
+ dependencies:
+ cose-base: 2.2.0
+ cytoscape: 3.34.0
+
+ cytoscape@3.34.0: {}
+
+ d3-array@1.2.4: {}
+
+ d3-array@2.12.1:
+ dependencies:
+ internmap: 1.0.1
+
+ d3-array@3.2.4:
+ dependencies:
+ internmap: 2.0.3
+
+ d3-axis@3.0.0: {}
+
+ d3-brush@3.0.0:
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-drag: 3.0.0
+ d3-interpolate: 3.0.1
+ d3-selection: 3.0.0
+ d3-transition: 3.0.1(d3-selection@3.0.0)
+
+ d3-chord@3.0.1:
+ dependencies:
+ d3-path: 3.1.0
+
+ d3-color@3.1.0: {}
+
+ d3-contour@4.0.2:
+ dependencies:
+ d3-array: 3.2.4
+
+ d3-delaunay@6.0.4:
+ dependencies:
+ delaunator: 5.1.0
+
+ d3-dispatch@3.0.1: {}
+
+ d3-drag@3.0.0:
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-selection: 3.0.0
+
+ d3-dsv@2.0.0:
+ dependencies:
+ commander: 2.20.3
+ iconv-lite: 0.4.24
+ rw: 1.3.3
+
+ d3-dsv@3.0.1:
+ dependencies:
+ commander: 7.2.0
+ iconv-lite: 0.6.3
+ rw: 1.3.3
+
+ d3-ease@3.0.1: {}
+
+ d3-fetch@3.0.1:
+ dependencies:
+ d3-dsv: 3.0.1
+
+ d3-force@3.0.0:
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-quadtree: 3.0.1
+ d3-timer: 3.0.1
+
+ d3-format@3.1.2: {}
+
+ d3-geo@1.12.1:
+ dependencies:
+ d3-array: 1.2.4
+
+ d3-geo@3.1.1:
+ dependencies:
+ d3-array: 3.2.4
+
+ d3-hexbin@0.2.2: {}
+
+ d3-hierarchy@3.1.2: {}
+
+ d3-interpolate@3.0.1:
+ dependencies:
+ d3-color: 3.1.0
+
+ d3-path@1.0.9: {}
+
+ d3-path@3.1.0: {}
+
+ d3-polygon@3.0.1: {}
+
+ d3-quadtree@3.0.1: {}
+
+ d3-random@3.0.1: {}
+
+ d3-sankey@0.12.3:
+ dependencies:
+ d3-array: 2.12.1
+ d3-shape: 1.3.7
+
+ d3-scale-chromatic@3.1.0:
+ dependencies:
+ d3-color: 3.1.0
+ d3-interpolate: 3.0.1
+
+ d3-scale@4.0.2:
+ dependencies:
+ d3-array: 3.2.4
+ d3-format: 3.1.2
+ d3-interpolate: 3.0.1
+ d3-time: 3.1.0
+ d3-time-format: 4.1.0
+
+ d3-selection@3.0.0: {}
+
+ d3-shape@1.3.7:
+ dependencies:
+ d3-path: 1.0.9
+
+ d3-shape@3.2.0:
+ dependencies:
+ d3-path: 3.1.0
+
+ d3-time-format@4.1.0:
+ dependencies:
+ d3-time: 3.1.0
+
+ d3-time@3.1.0:
+ dependencies:
+ d3-array: 3.2.4
+
+ d3-timer@3.0.1: {}
+
+ d3-transition@3.0.1(d3-selection@3.0.0):
+ dependencies:
+ d3-color: 3.1.0
+ d3-dispatch: 3.0.1
+ d3-ease: 3.0.1
+ d3-interpolate: 3.0.1
+ d3-selection: 3.0.0
+ d3-timer: 3.0.1
+
+ d3-zoom@3.0.0:
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-drag: 3.0.0
+ d3-interpolate: 3.0.1
+ d3-selection: 3.0.0
+ d3-transition: 3.0.1(d3-selection@3.0.0)
+
+ d3@7.9.0:
+ dependencies:
+ d3-array: 3.2.4
+ d3-axis: 3.0.0
+ d3-brush: 3.0.0
+ d3-chord: 3.0.1
+ d3-color: 3.1.0
+ d3-contour: 4.0.2
+ d3-delaunay: 6.0.4
+ d3-dispatch: 3.0.1
+ d3-drag: 3.0.0
+ d3-dsv: 3.0.1
+ d3-ease: 3.0.1
+ d3-fetch: 3.0.1
+ d3-force: 3.0.0
+ d3-format: 3.1.2
+ d3-geo: 3.1.1
+ d3-hierarchy: 3.1.2
+ d3-interpolate: 3.0.1
+ d3-path: 3.1.0
+ d3-polygon: 3.0.1
+ d3-quadtree: 3.0.1
+ d3-random: 3.0.1
+ d3-scale: 4.0.2
+ d3-scale-chromatic: 3.1.0
+ d3-selection: 3.0.0
+ d3-shape: 3.2.0
+ d3-time: 3.1.0
+ d3-time-format: 4.1.0
+ d3-timer: 3.0.1
+ d3-transition: 3.0.1(d3-selection@3.0.0)
+ d3-zoom: 3.0.0
+
+ dagre-d3-es@7.0.14:
+ dependencies:
+ d3: 7.9.0
+ lodash-es: 4.18.1
+
+ date-fns-tz@1.3.8(date-fns@2.30.0):
+ dependencies:
+ date-fns: 2.30.0
+
+ date-fns@2.30.0:
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ dayjs@1.11.21: {}
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decode-named-character-reference@1.3.0:
+ dependencies:
+ character-entities: 2.0.2
+
+ decode-uri-component@0.4.1: {}
+
+ deep-equal@1.1.2:
+ dependencies:
+ is-arguments: 1.2.0
+ is-date-object: 1.1.0
+ is-regex: 1.2.1
+ object-is: 1.1.6
+ object-keys: 1.1.1
+ regexp.prototype.flags: 1.5.4
+
+ deep-is@0.1.4: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delaunator@5.1.0:
+ dependencies:
+ robust-predicates: 3.0.3
+
+ delayed-stream@1.0.0: {}
+
+ dequal@2.0.3: {}
+
+ detect-libc@2.1.2:
+ optional: true
+
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
+ didyoumean@1.2.2: {}
+
+ dlv@1.1.3: {}
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
+ dompurify@3.4.10:
+ optionalDependencies:
+ '@types/trusted-types': 2.0.7
+
+ dotenv@16.6.1: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ electron-to-chromium@1.5.372: {}
+
+ emoji-mart@5.6.0: {}
+
+ emoji-regex@10.6.0: {}
+
+ entities@6.0.1: {}
+
+ entities@7.0.1: {}
+
+ error-ex@1.3.4:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.2:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.4
+
+ es-toolkit@1.47.1: {}
+
+ esast-util-from-estree@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ devlop: 1.1.0
+ estree-util-visit: 2.0.0
+ unist-util-position-from-estree: 2.0.0
+
+ esast-util-from-js@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ acorn: 8.17.0
+ esast-util-from-estree: 2.0.0
+ vfile-message: 4.0.3
+
+ esbuild@0.21.5:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ escape-string-regexp@5.0.0: {}
+
+ eslint-plugin-header@3.1.1(eslint@8.57.0):
+ dependencies:
+ eslint: 8.57.0
+
+ eslint-plugin-react-hooks@5.2.0(eslint@8.57.0):
+ dependencies:
+ eslint: 8.57.0
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint@8.57.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.0)
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.57.0
+ '@humanwhocodes/config-array': 0.11.14
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.3.1
+ ajv: 6.15.0
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.3
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.7.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.24.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.2.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.5
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.17.0
+ acorn-jsx: 5.3.2(acorn@8.17.0)
+ eslint-visitor-keys: 3.4.3
+
+ esquery@1.7.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ estree-util-attach-comments@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.9
+
+ estree-util-build-jsx@3.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ estree-walker: 3.0.3
+
+ estree-util-is-identifier-name@3.0.0: {}
+
+ estree-util-scope@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.9
+ devlop: 1.1.0
+
+ estree-util-to-js@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ astring: 1.9.0
+ source-map: 0.7.6
+
+ estree-util-visit@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/unist': 3.0.3
+
+ estree-walker@2.0.2: {}
+
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.9
+
+ esutils@2.0.3: {}
+
+ eventemitter3@2.0.3: {}
+
+ eventemitter3@4.0.7: {}
+
+ execa@9.6.1:
+ dependencies:
+ '@sindresorhus/merge-streams': 4.0.0
+ cross-spawn: 7.0.6
+ figures: 6.1.0
+ get-stream: 9.0.1
+ human-signals: 8.0.1
+ is-plain-obj: 4.1.0
+ is-stream: 4.0.1
+ npm-run-path: 6.0.0
+ pretty-ms: 9.3.0
+ signal-exit: 4.1.0
+ strip-final-newline: 4.0.0
+ yoctocolors: 2.1.2
+
+ extend-shallow@2.0.1:
+ dependencies:
+ is-extendable: 0.1.1
+
+ extend-shallow@3.0.2:
+ dependencies:
+ assign-symbols: 1.0.0
+ is-extendable: 1.0.1
+
+ extend@3.0.2: {}
+
+ fast-copy@3.0.2: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.1.2: {}
+
+ fast-equals@5.4.0: {}
+
+ fast-glob@3.3.3:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fast-string-truncated-width@3.0.3: {}
+
+ fast-string-width@3.0.2:
+ dependencies:
+ fast-string-truncated-width: 3.0.3
+
+ fast-wrap-ansi@0.2.2:
+ dependencies:
+ fast-string-width: 3.0.2
+
+ fastq@1.20.1:
+ dependencies:
+ reusify: 1.1.0
+
+ fdir@6.5.0(picomatch@4.0.4):
+ optionalDependencies:
+ picomatch: 4.0.4
+
+ figures@6.1.0:
+ dependencies:
+ is-unicode-supported: 2.1.0
+
+ file-entry-cache@6.0.1:
+ dependencies:
+ flat-cache: 3.2.0
+
+ file-selector@0.5.0:
+ dependencies:
+ tslib: 2.8.1
+
+ file-selector@2.1.2:
+ dependencies:
+ tslib: 2.8.1
+
+ file-source@0.6.1:
+ dependencies:
+ stream-source: 0.3.5
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ filter-obj@5.1.0: {}
+
+ find-root@1.1.0: {}
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@3.2.0:
+ dependencies:
+ flatted: 3.4.2
+ keyv: 4.5.4
+ rimraf: 3.0.2
+
+ flatted@3.4.2: {}
+
+ follow-redirects@1.16.0: {}
+
+ for-in@1.0.2: {}
+
+ form-data@4.0.6:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.4
+ mime-types: 2.1.35
+
+ fraction.js@5.3.4: {}
+
+ framer-motion@12.40.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ motion-dom: 12.40.0
+ motion-utils: 12.39.0
+ tslib: 2.8.1
+ optionalDependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ functions-have-names@1.2.3: {}
+
+ gensync@1.0.0-beta.2: {}
+
+ geobuf@3.0.2:
+ dependencies:
+ concat-stream: 2.0.0
+ pbf: 3.3.0
+ shapefile: 0.6.6
+
+ geojson-dissolve@3.1.0:
+ dependencies:
+ '@turf/meta': 3.14.0
+ geojson-flatten: 0.2.4
+ geojson-linestring-dissolve: 0.0.1
+ topojson-client: 3.1.0
+ topojson-server: 3.0.1
+
+ geojson-flatten@0.2.4:
+ dependencies:
+ get-stdin: 6.0.0
+ minimist: 1.2.0
+
+ geojson-linestring-dissolve@0.0.1: {}
+
+ get-east-asian-width@1.6.0: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.4
+ math-intrinsics: 1.1.0
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.2
+
+ get-stdin@6.0.0: {}
+
+ get-stream@9.0.1:
+ dependencies:
+ '@sec-ant/readable-stream': 0.4.1
+ is-stream: 4.0.1
+
+ get-value@2.0.6: {}
+
+ giscus@1.6.0:
+ dependencies:
+ lit: 3.3.3
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@13.0.6:
+ dependencies:
+ minimatch: 10.2.5
+ minipass: 7.1.3
+ path-scurry: 2.0.2
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.5
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ gopd@1.2.0: {}
+
+ graphemer@1.4.0: {}
+
+ hachure-fill@0.5.2: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hasown@2.0.4:
+ dependencies:
+ function-bind: 1.1.2
+
+ hast-util-from-dom@5.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ hastscript: 9.0.1
+ web-namespaces: 2.0.1
+
+ hast-util-from-html-isomorphic@2.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-from-dom: 5.0.1
+ hast-util-from-html: 2.0.3
+ unist-util-remove-position: 5.0.0
+
+ hast-util-from-html@2.0.3:
+ dependencies:
+ '@types/hast': 3.0.4
+ devlop: 1.1.0
+ hast-util-from-parse5: 8.0.3
+ parse5: 7.3.0
+ vfile: 6.0.3
+ vfile-message: 4.0.3
+
+ hast-util-from-parse5@8.0.3:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ devlop: 1.1.0
+ hastscript: 9.0.1
+ property-information: 7.2.0
+ vfile: 6.0.3
+ vfile-location: 5.0.3
+ web-namespaces: 2.0.1
+
+ hast-util-is-element@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+
+ hast-util-parse-selector@4.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+
+ hast-util-raw@9.1.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ '@ungap/structured-clone': 1.3.1
+ hast-util-from-parse5: 8.0.3
+ hast-util-to-parse5: 8.0.1
+ html-void-elements: 3.0.0
+ mdast-util-to-hast: 13.2.1
+ parse5: 7.3.0
+ unist-util-position: 5.0.0
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+ web-namespaces: 2.0.1
+ zwitch: 2.0.4
+
+ hast-util-to-estree@3.1.3:
+ dependencies:
+ '@types/estree': 1.0.9
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ estree-util-attach-comments: 3.0.0
+ estree-util-is-identifier-name: 3.0.0
+ hast-util-whitespace: 3.0.0
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ property-information: 7.2.0
+ space-separated-tokens: 2.0.2
+ style-to-js: 1.1.21
+ unist-util-position: 5.0.0
+ zwitch: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+
+ hast-util-to-html@9.0.5:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ ccount: 2.0.1
+ comma-separated-tokens: 2.0.3
+ hast-util-whitespace: 3.0.0
+ html-void-elements: 3.0.0
+ mdast-util-to-hast: 13.2.1
+ property-information: 7.2.0
+ space-separated-tokens: 2.0.2
+ stringify-entities: 4.0.4
+ zwitch: 2.0.4
+
+ hast-util-to-jsx-runtime@2.3.6:
+ dependencies:
+ '@types/estree': 1.0.9
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ hast-util-whitespace: 3.0.0
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ property-information: 7.2.0
+ space-separated-tokens: 2.0.2
+ style-to-js: 1.1.21
+ unist-util-position: 5.0.0
+ vfile-message: 4.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ hast-util-to-parse5@8.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ property-information: 7.2.0
+ space-separated-tokens: 2.0.2
+ web-namespaces: 2.0.1
+ zwitch: 2.0.4
+
+ hast-util-to-text@4.0.2:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ hast-util-is-element: 3.0.0
+ unist-util-find-after: 5.0.0
+
+ hast-util-whitespace@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+
+ hastscript@9.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ comma-separated-tokens: 2.0.3
+ hast-util-parse-selector: 4.0.0
+ property-information: 7.2.0
+ space-separated-tokens: 2.0.2
+
+ highlight.js@11.11.1: {}
+
+ history@5.3.0:
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ hoist-non-react-statics@3.3.2:
+ dependencies:
+ react-is: 16.13.1
+
+ html-parse-stringify@3.0.1:
+ dependencies:
+ void-elements: 3.1.0
+
+ html-url-attributes@3.0.1: {}
+
+ html-void-elements@3.0.0: {}
+
+ human-signals@8.0.1: {}
+
+ i18next-browser-languagedetector@7.2.2:
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ i18next-cli@1.63.1(react-dom@18.3.1(react@18.3.1))(typescript@4.4.2):
+ dependencies:
+ '@croct/json5-parser': 0.2.2
+ '@swc/core': 1.15.41
+ chokidar: 5.0.0
+ commander: 14.0.3
+ execa: 9.6.1
+ glob: 13.0.6
+ i18next: 26.3.1(typescript@4.4.2)
+ i18next-resources-for-ts: 2.1.0
+ inquirer: 14.0.2
+ jiti: 2.7.0
+ jsonc-parser: 3.3.1
+ magic-string: 0.30.21
+ minimatch: 10.2.5
+ ora: 9.4.0
+ react: 19.2.7
+ react-i18next: 17.0.8(i18next@26.3.1(typescript@4.4.2))(react-dom@18.3.1(react@18.3.1))(react@19.2.7)(typescript@4.4.2)
+ yaml: 2.9.0
+ transitivePeerDependencies:
+ - '@swc/helpers'
+ - '@types/node'
+ - react-dom
+ - react-native
+ - typescript
+
+ i18next-resources-for-ts@2.1.0:
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@swc/core': 1.15.41
+ chokidar: 5.0.0
+ yaml: 2.9.0
+ transitivePeerDependencies:
+ - '@swc/helpers'
+
+ i18next@23.16.8:
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ i18next@26.3.1(typescript@4.4.2):
+ optionalDependencies:
+ typescript: 4.4.2
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ iconv-lite@0.7.2:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ immer@10.2.0: {}
+
+ immutable@5.1.6: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ import-meta-resolve@4.2.0: {}
+
+ imurmurhash@0.1.4: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ inline-style-parser@0.2.7: {}
+
+ inquirer@14.0.2:
+ dependencies:
+ '@inquirer/ansi': 2.0.7
+ '@inquirer/core': 11.2.1
+ '@inquirer/prompts': 8.5.2
+ '@inquirer/type': 4.0.7
+ mute-stream: 3.0.0
+ run-async: 4.0.6
+
+ internmap@1.0.1: {}
+
+ internmap@2.0.3: {}
+
+ intersection-observer@0.12.2: {}
+
+ is-alphabetical@2.0.1: {}
+
+ is-alphanumerical@2.0.1:
+ dependencies:
+ is-alphabetical: 2.0.1
+ is-decimal: 2.0.1
+
+ is-arguments@1.2.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-arrayish@0.2.1: {}
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-core-module@2.16.2:
+ dependencies:
+ hasown: 2.0.4
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-decimal@2.0.1: {}
+
+ is-extendable@0.1.1: {}
+
+ is-extendable@1.0.1:
+ dependencies:
+ is-plain-object: 2.0.4
+
+ is-extglob@2.1.1: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-hexadecimal@2.0.1: {}
+
+ is-interactive@2.0.0: {}
+
+ is-number@7.0.0: {}
+
+ is-path-inside@3.0.3: {}
+
+ is-plain-obj@4.1.0: {}
+
+ is-plain-object@2.0.4:
+ dependencies:
+ isobject: 3.0.1
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.4
+
+ is-stream@4.0.1: {}
+
+ is-unicode-supported@2.1.0: {}
+
+ isarray@0.0.1: {}
+
+ isexe@2.0.0: {}
+
+ isobject@3.0.1: {}
+
+ jiti@1.21.7: {}
+
+ jiti@2.7.0: {}
+
+ js-cookie@3.0.8: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.2.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json2mq@0.2.0:
+ dependencies:
+ string-convert: 0.2.1
+
+ json5@2.2.3: {}
+
+ jsonc-parser@3.3.1: {}
+
+ katex@0.16.47:
+ dependencies:
+ commander: 8.3.0
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ khroma@2.1.0: {}
+
+ launch-ide@1.4.3:
+ dependencies:
+ chalk: 4.1.2
+ dotenv: 16.6.1
+
+ layout-base@1.0.2: {}
+
+ layout-base@2.0.1: {}
+
+ leva@0.10.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@radix-ui/react-portal': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-tooltip': 1.2.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@stitches/react': 1.2.8(react@18.3.1)
+ '@use-gesture/react': 10.3.1(react@18.3.1)
+ colord: 2.9.3
+ dequal: 2.0.3
+ merge-value: 1.0.0
+ react: 18.3.1
+ react-colorful: 5.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-dom: 18.3.1(react@18.3.1)
+ react-dropzone: 12.1.0(react@18.3.1)
+ v8n: 1.5.1
+ zustand: 3.7.2(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lilconfig@3.1.3: {}
+
+ lines-and-columns@1.2.4: {}
+
+ linkifyjs@4.3.3: {}
+
+ lit-element@4.2.2:
+ dependencies:
+ '@lit-labs/ssr-dom-shim': 1.6.0
+ '@lit/reactive-element': 2.1.2
+ lit-html: 3.3.3
+
+ lit-html@3.3.3:
+ dependencies:
+ '@types/trusted-types': 2.0.7
+
+ lit@3.3.3:
+ dependencies:
+ '@lit/reactive-element': 2.1.2
+ lit-element: 4.2.2
+ lit-html: 3.3.3
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash-es@4.18.1: {}
+
+ lodash.debounce@4.0.8: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash@4.18.1: {}
+
+ log-symbols@7.0.1:
+ dependencies:
+ is-unicode-supported: 2.1.0
+ yoctocolors: 2.1.2
+
+ longest-streak@3.1.0: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ lottie-web@5.13.0: {}
+
+ lowlight@3.3.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ devlop: 1.1.0
+ highlight.js: 11.11.1
+
+ lru-cache@11.5.1: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ lucide-react@0.469.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ lucide-react@0.511.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ lucide-react@0.553.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ magic-string@0.30.21:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ markdown-extensions@2.0.0: {}
+
+ markdown-table@3.0.4: {}
+
+ marked@16.4.2: {}
+
+ marked@17.0.6: {}
+
+ marked@4.3.0: {}
+
+ math-intrinsics@1.1.0: {}
+
+ mdast-util-find-and-replace@3.0.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ escape-string-regexp: 5.0.0
+ unist-util-is: 6.0.1
+ unist-util-visit-parents: 6.0.2
+
+ mdast-util-from-markdown@2.0.3:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ decode-named-character-reference: 1.3.0
+ devlop: 1.1.0
+ mdast-util-to-string: 4.0.0
+ micromark: 4.0.2
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-decode-string: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-stringify-position: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-autolink-literal@2.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-find-and-replace: 3.0.2
+ micromark-util-character: 2.1.1
+
+ mdast-util-gfm-footnote@2.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ micromark-util-normalize-identifier: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-strikethrough@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-table@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ markdown-table: 3.0.4
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm-task-list-item@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-gfm@3.1.0:
+ dependencies:
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-gfm-autolink-literal: 2.0.1
+ mdast-util-gfm-footnote: 2.1.0
+ mdast-util-gfm-strikethrough: 2.0.0
+ mdast-util-gfm-table: 2.0.0
+ mdast-util-gfm-task-list-item: 2.0.0
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-math@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ longest-streak: 3.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ unist-util-remove-position: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx-expression@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx-jsx@3.2.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ parse-entities: 4.0.2
+ stringify-entities: 4.0.4
+ unist-util-stringify-position: 4.0.0
+ vfile-message: 4.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx@3.0.0:
+ dependencies:
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdxjs-esm@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-newline-to-break@2.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-find-and-replace: 3.0.2
+
+ mdast-util-phrasing@4.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ unist-util-is: 6.0.1
+
+ mdast-util-to-hast@13.2.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ '@ungap/structured-clone': 1.3.1
+ devlop: 1.1.0
+ micromark-util-sanitize-uri: 2.0.1
+ trim-lines: 3.0.1
+ unist-util-position: 5.0.0
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+
+ mdast-util-to-markdown@2.1.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ longest-streak: 3.1.0
+ mdast-util-phrasing: 4.1.0
+ mdast-util-to-string: 4.0.0
+ micromark-util-classify-character: 2.0.1
+ micromark-util-decode-string: 2.0.1
+ unist-util-visit: 5.1.0
+ zwitch: 2.0.4
+
+ mdast-util-to-string@4.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+
+ memoize-one@5.2.1: {}
+
+ merge-value@1.0.0:
+ dependencies:
+ get-value: 2.0.6
+ is-extendable: 1.0.1
+ mixin-deep: 1.3.2
+ set-value: 2.0.1
+
+ merge2@1.4.1: {}
+
+ mermaid@11.15.0:
+ dependencies:
+ '@braintree/sanitize-url': 7.1.2
+ '@iconify/utils': 3.1.3
+ '@mermaid-js/parser': 1.1.1
+ '@types/d3': 7.4.3
+ '@upsetjs/venn.js': 2.0.0
+ cytoscape: 3.34.0
+ cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.0)
+ cytoscape-fcose: 2.2.0(cytoscape@3.34.0)
+ d3: 7.9.0
+ d3-sankey: 0.12.3
+ dagre-d3-es: 7.0.14
+ dayjs: 1.11.21
+ dompurify: 3.4.10
+ es-toolkit: 1.47.1
+ katex: 0.16.47
+ khroma: 2.1.0
+ marked: 16.4.2
+ roughjs: 4.6.6
+ stylis: 4.4.0
+ ts-dedent: 2.3.0
+ uuid: 14.0.0
+
+ micromark-core-commonmark@2.0.3:
+ dependencies:
+ decode-named-character-reference: 1.3.0
+ devlop: 1.1.0
+ micromark-factory-destination: 2.0.1
+ micromark-factory-label: 2.0.1
+ micromark-factory-space: 2.0.1
+ micromark-factory-title: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-html-tag-name: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-cjk-friendly-util@2.1.1(micromark-util-types@2.0.2):
+ dependencies:
+ get-east-asian-width: 1.6.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ optionalDependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-cjk-friendly@1.2.3(micromark-util-types@2.0.2)(micromark@4.0.2):
+ dependencies:
+ devlop: 1.1.0
+ micromark: 4.0.2
+ micromark-extension-cjk-friendly-util: 2.1.1(micromark-util-types@2.0.2)
+ micromark-util-chunked: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-symbol: 2.0.1
+ optionalDependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-autolink-literal@2.1.0:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-footnote@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-strikethrough@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-table@2.1.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-tagfilter@2.0.0:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm-task-list-item@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-gfm@3.0.0:
+ dependencies:
+ micromark-extension-gfm-autolink-literal: 2.1.0
+ micromark-extension-gfm-footnote: 2.1.0
+ micromark-extension-gfm-strikethrough: 2.1.0
+ micromark-extension-gfm-table: 2.1.1
+ micromark-extension-gfm-tagfilter: 2.0.0
+ micromark-extension-gfm-task-list-item: 2.1.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-math@3.1.0:
+ dependencies:
+ '@types/katex': 0.16.8
+ devlop: 1.1.0
+ katex: 0.16.47
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-mdx-expression@3.0.1:
+ dependencies:
+ '@types/estree': 1.0.9
+ devlop: 1.1.0
+ micromark-factory-mdx-expression: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-mdx-jsx@3.0.2:
+ dependencies:
+ '@types/estree': 1.0.9
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ micromark-factory-mdx-expression: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ vfile-message: 4.0.3
+
+ micromark-extension-mdx-md@2.0.0:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-mdxjs-esm@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.9
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-position-from-estree: 2.0.0
+ vfile-message: 4.0.3
+
+ micromark-extension-mdxjs@3.0.0:
+ dependencies:
+ acorn: 8.17.0
+ acorn-jsx: 5.3.2(acorn@8.17.0)
+ micromark-extension-mdx-expression: 3.0.1
+ micromark-extension-mdx-jsx: 3.0.2
+ micromark-extension-mdx-md: 2.0.0
+ micromark-extension-mdxjs-esm: 3.0.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-destination@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-label@2.0.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-mdx-expression@2.0.3:
+ dependencies:
+ '@types/estree': 1.0.9
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-position-from-estree: 2.0.0
+ vfile-message: 4.0.3
+
+ micromark-factory-space@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-title@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-factory-whitespace@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-character@2.1.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-chunked@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-classify-character@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-combine-extensions@2.0.1:
+ dependencies:
+ micromark-util-chunked: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-decode-string@2.0.1:
+ dependencies:
+ decode-named-character-reference: 1.3.0
+ micromark-util-character: 2.1.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-encode@2.0.1: {}
+
+ micromark-util-events-to-acorn@2.0.3:
+ dependencies:
+ '@types/estree': 1.0.9
+ '@types/unist': 3.0.3
+ devlop: 1.1.0
+ estree-util-visit: 2.0.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ vfile-message: 4.0.3
+
+ micromark-util-html-tag-name@2.0.1: {}
+
+ micromark-util-normalize-identifier@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-resolve-all@2.0.1:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-util-sanitize-uri@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-subtokenize@2.1.0:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-util-symbol@2.0.1: {}
+
+ micromark-util-types@2.0.2: {}
+
+ micromark@4.0.2:
+ dependencies:
+ '@types/debug': 4.1.13
+ debug: 4.4.3
+ decode-named-character-reference: 1.3.0
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-encode: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.2
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mimic-function@5.0.1: {}
+
+ minimatch@10.2.5:
+ dependencies:
+ brace-expansion: 5.0.6
+
+ minimatch@3.1.5:
+ dependencies:
+ brace-expansion: 1.1.15
+
+ minimist@1.2.0: {}
+
+ minimist@1.2.6: {}
+
+ minipass@7.1.3: {}
+
+ mixin-deep@1.3.2:
+ dependencies:
+ for-in: 1.0.2
+ is-extendable: 1.0.1
+
+ motion-dom@12.40.0:
+ dependencies:
+ motion-utils: 12.39.0
+
+ motion-utils@12.39.0: {}
+
+ ms@2.1.3: {}
+
+ mute-stream@3.0.0: {}
+
+ mz@2.7.0:
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+
+ nanoid@3.3.12: {}
+
+ natural-compare@1.4.0: {}
+
+ node-addon-api@7.1.1:
+ optional: true
+
+ node-releases@2.0.47: {}
+
+ normalize-path@3.0.0: {}
+
+ npm-run-path@6.0.0:
+ dependencies:
+ path-key: 4.0.0
+ unicorn-magic: 0.3.0
+
+ numeral@2.0.6: {}
+
+ object-assign@4.1.1: {}
+
+ object-hash@3.0.0: {}
+
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+
+ object-keys@1.1.1: {}
+
+ on-change@4.0.2: {}
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
+ oniguruma-parser@0.12.2: {}
+
+ oniguruma-to-es@4.3.6:
+ dependencies:
+ oniguruma-parser: 0.12.2
+ regex: 6.1.0
+ regex-recursion: 6.0.2
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ ora@9.4.0:
+ dependencies:
+ chalk: 5.6.2
+ cli-cursor: 5.0.0
+ cli-spinners: 3.4.0
+ is-interactive: 2.0.0
+ is-unicode-supported: 2.1.0
+ log-symbols: 7.0.1
+ stdin-discarder: 0.3.2
+ string-width: 8.2.1
+
+ orderedmap@2.1.1: {}
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ package-manager-detector@1.6.0: {}
+
+ parchment@1.1.4: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-entities@4.0.2:
+ dependencies:
+ '@types/unist': 2.0.11
+ character-entities-legacy: 3.0.0
+ character-reference-invalid: 2.0.1
+ decode-named-character-reference: 1.3.0
+ is-alphanumerical: 2.0.1
+ is-decimal: 2.0.1
+ is-hexadecimal: 2.0.1
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.29.7
+ error-ex: 1.3.4
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parse-ms@4.0.0: {}
+
+ parse-svg-path@0.1.2: {}
+
+ parse5@7.3.0:
+ dependencies:
+ entities: 6.0.1
+
+ path-browserify@1.0.1: {}
+
+ path-data-parser@0.1.0: {}
+
+ path-exists@4.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0: {}
+
+ path-parse@1.0.7: {}
+
+ path-scurry@2.0.2:
+ dependencies:
+ lru-cache: 11.5.1
+ minipass: 7.1.3
+
+ path-source@0.1.3:
+ dependencies:
+ array-source: 0.0.4
+ file-source: 0.6.1
+
+ path-type@4.0.0: {}
+
+ pbf@3.3.0:
+ dependencies:
+ ieee754: 1.2.1
+ resolve-protobuf-schema: 2.1.0
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.2: {}
+
+ picomatch@4.0.4: {}
+
+ pify@2.3.0: {}
+
+ pirates@4.0.7: {}
+
+ point-at-length@1.1.0:
+ dependencies:
+ abs-svg-path: 0.1.1
+ isarray: 0.0.1
+ parse-svg-path: 0.1.2
+
+ points-on-curve@0.2.0: {}
+
+ points-on-path@0.2.1:
+ dependencies:
+ path-data-parser: 0.1.0
+ points-on-curve: 0.2.0
+
+ polished@4.3.1:
+ dependencies:
+ '@babel/runtime': 7.29.7
+
+ portfinder@1.0.38:
+ dependencies:
+ async: 3.2.6
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ postcss-import@15.1.0(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.12
+
+ postcss-js@4.1.0(postcss@8.5.15):
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.5.15
+
+ postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.9.0):
+ dependencies:
+ lilconfig: 3.1.3
+ optionalDependencies:
+ jiti: 1.21.7
+ postcss: 8.5.15
+ yaml: 2.9.0
+
+ postcss-nested@6.2.0(postcss@8.5.15):
+ dependencies:
+ postcss: 8.5.15
+ postcss-selector-parser: 6.1.4
+
+ postcss-selector-parser@6.1.4:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss@8.5.15:
+ dependencies:
+ nanoid: 3.3.12
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ prettier-plugin-astro@0.14.1:
+ dependencies:
+ '@astrojs/compiler': 2.13.1
+ prettier: 3.8.4
+ sass-formatter: 0.7.9
+
+ prettier-plugin-jsdoc@1.8.1(prettier@3.8.4):
+ dependencies:
+ binary-searching: 2.0.5
+ comment-parser: 1.4.7
+ mdast-util-from-markdown: 2.0.3
+ prettier: 3.8.4
+ transitivePeerDependencies:
+ - supports-color
+
+ prettier@3.8.4: {}
+
+ pretty-ms@9.3.0:
+ dependencies:
+ parse-ms: 4.0.0
+
+ prismjs@1.30.0: {}
+
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ property-information@7.2.0: {}
+
+ prosemirror-changeset@2.4.1:
+ dependencies:
+ prosemirror-transform: 1.12.0
+
+ prosemirror-commands@1.7.1:
+ dependencies:
+ prosemirror-model: 1.25.8
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+
+ prosemirror-dropcursor@1.8.2:
+ dependencies:
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.9
+
+ prosemirror-gapcursor@1.4.1:
+ dependencies:
+ prosemirror-keymap: 1.2.3
+ prosemirror-model: 1.25.8
+ prosemirror-state: 1.4.4
+ prosemirror-view: 1.41.9
+
+ prosemirror-history@1.5.0:
+ dependencies:
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.9
+ rope-sequence: 1.3.4
+
+ prosemirror-inputrules@1.5.1:
+ dependencies:
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+
+ prosemirror-keymap@1.2.3:
+ dependencies:
+ prosemirror-state: 1.4.4
+ w3c-keyname: 2.2.8
+
+ prosemirror-model@1.25.8:
+ dependencies:
+ orderedmap: 2.1.1
+
+ prosemirror-schema-list@1.5.1:
+ dependencies:
+ prosemirror-model: 1.25.8
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+
+ prosemirror-state@1.4.4:
+ dependencies:
+ prosemirror-model: 1.25.8
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.9
+
+ prosemirror-tables@1.8.5:
+ dependencies:
+ prosemirror-keymap: 1.2.3
+ prosemirror-model: 1.25.8
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+ prosemirror-view: 1.41.9
+
+ prosemirror-transform@1.12.0:
+ dependencies:
+ prosemirror-model: 1.25.8
+
+ prosemirror-view@1.41.9:
+ dependencies:
+ prosemirror-model: 1.25.8
+ prosemirror-state: 1.4.4
+ prosemirror-transform: 1.12.0
+
+ protocol-buffers-schema@3.6.1: {}
+
+ proxy-from-env@1.1.0: {}
+
+ punycode@2.3.1: {}
+
+ qrcode.react@4.2.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ query-string@9.4.0:
+ dependencies:
+ decode-uri-component: 0.4.1
+ filter-obj: 5.1.0
+ split-on-first: 3.0.0
+
+ queue-microtask@1.2.3: {}
+
+ quill-delta@3.6.3:
+ dependencies:
+ deep-equal: 1.1.2
+ extend: 3.0.2
+ fast-diff: 1.1.2
+
+ quill@1.3.7:
+ dependencies:
+ clone: 2.1.2
+ deep-equal: 1.1.2
+ eventemitter3: 2.0.3
+ extend: 3.0.2
+ parchment: 1.1.4
+ quill-delta: 3.6.3
+
+ rc-cascader@3.34.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-select: 14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-tree: 5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-checkbox@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-collapse@3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-collapse@4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-dialog@9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-drawer@7.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-dropdown@4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-field-form@2.7.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/async-validator': 5.1.2
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-footer@0.6.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-image@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-input-number@9.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/mini-decimal': 1.1.4
+ classnames: 2.5.1
+ rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-input@1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-mentions@2.20.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-textarea: 1.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-menu@9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-overflow: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-notification@5.6.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-overflow@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-pagination@5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-picker@4.11.3(date-fns@2.30.0)(dayjs@1.11.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-overflow: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ date-fns: 2.30.0
+ dayjs: 1.11.21
+
+ rc-progress@4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-rate@2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ resize-observer-polyfill: 1.5.1
+
+ rc-segmented@2.7.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-select@14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-overflow: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-virtual-list: 3.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-slider@11.1.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-steps@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-switch@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-table@7.54.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/context': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-virtual-list: 3.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-tabs@15.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-textarea@1.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-input: 1.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-tooltip@6.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-tree-select@5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-select: 14.16.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-tree: 5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-tree@5.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-virtual-list: 3.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-upload@4.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-is: 18.3.1
+
+ rc-virtual-list@3.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ classnames: 2.5.1
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ re-resizable@6.11.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-avatar-editor@13.0.2(@babel/core@7.29.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/plugin-transform-runtime': 7.29.7(@babel/core@7.29.7)
+ '@babel/runtime': 7.29.7
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ react-colorful@5.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-dom@18.3.1(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
+ react-draggable@4.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ clsx: 2.1.1
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-dropzone@12.1.0(react@18.3.1):
+ dependencies:
+ attr-accept: 2.2.5
+ file-selector: 0.5.0
+ prop-types: 15.8.1
+ react: 18.3.1
+
+ react-dropzone@14.4.1(react@18.3.1):
+ dependencies:
+ attr-accept: 2.2.5
+ file-selector: 2.1.2
+ prop-types: 15.8.1
+ react: 18.3.1
+
+ react-error-boundary@6.1.2(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ react-fast-compare@3.2.2: {}
+
+ react-fireworks@1.0.4: {}
+
+ react-hotkeys-hook@5.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-i18next@13.5.0(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ html-parse-stringify: 3.0.1
+ i18next: 23.16.8
+ react: 18.3.1
+ optionalDependencies:
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-i18next@17.0.8(i18next@26.3.1(typescript@4.4.2))(react-dom@18.3.1(react@18.3.1))(react@19.2.7)(typescript@4.4.2):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ html-parse-stringify: 3.0.1
+ i18next: 26.3.1(typescript@4.4.2)
+ react: 19.2.7
+ use-sync-external-store: 1.6.0(react@19.2.7)
+ optionalDependencies:
+ react-dom: 18.3.1(react@18.3.1)
+ typescript: 4.4.2
+
+ react-icons@5.6.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ react-is@16.13.1: {}
+
+ react-is@18.3.1: {}
+
+ react-layout-kit@1.9.2(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@emotion/css': 11.13.5
+ react: 18.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ react-layout-kit@2.0.1(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ '@emotion/css': 11.13.5
+ fast-deep-equal: 3.1.3
+ react: 18.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ react-markdown@10.1.0(@types/react@19.2.17)(react@18.3.1):
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ '@types/react': 19.2.17
+ devlop: 1.1.0
+ hast-util-to-jsx-runtime: 2.3.6
+ html-url-attributes: 3.0.1
+ mdast-util-to-hast: 13.2.1
+ react: 18.3.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.2
+ unified: 11.0.5
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ react-merge-refs@3.0.2(react@18.3.1):
+ optionalDependencies:
+ react: 18.3.1
+
+ react-refresh@0.17.0: {}
+
+ react-resizable@3.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-draggable: 4.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+
+ react-rnd@10.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ re-resizable: 6.11.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-draggable: 4.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ tslib: 2.6.2
+
+ react-router-dom@6.30.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@remix-run/router': 1.23.3
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-router: 6.30.4(react@18.3.1)
+
+ react-router@6.30.4(react@18.3.1):
+ dependencies:
+ '@remix-run/router': 1.23.3
+ react: 18.3.1
+
+ react-telegram-login@1.1.2(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ react-toastify@9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ clsx: 1.2.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-turnstile@1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-window@1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.7
+ memoize-one: 5.2.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-zoom-pan-pinch@3.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react@18.3.1:
+ dependencies:
+ loose-envify: 1.4.0
+
+ react@19.2.7: {}
+
+ read-cache@1.0.0:
+ dependencies:
+ pify: 2.3.0
+
+ readable-stream@1.1.14:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 0.0.1
+ string_decoder: 0.10.31
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.2
+
+ readdirp@5.0.0: {}
+
+ recma-build-jsx@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.9
+ estree-util-build-jsx: 3.0.1
+ vfile: 6.0.3
+
+ recma-jsx@1.0.1(acorn@8.17.0):
+ dependencies:
+ acorn: 8.17.0
+ acorn-jsx: 5.3.2(acorn@8.17.0)
+ estree-util-to-js: 2.0.0
+ recma-parse: 1.0.0
+ recma-stringify: 1.0.0
+ unified: 11.0.5
+
+ recma-parse@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.9
+ esast-util-from-js: 2.0.1
+ unified: 11.0.5
+ vfile: 6.0.3
+
+ recma-stringify@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.9
+ estree-util-to-js: 2.0.0
+ unified: 11.0.5
+ vfile: 6.0.3
+
+ regex-recursion@6.0.2:
+ dependencies:
+ regex-utilities: 2.3.0
+
+ regex-utilities@2.3.0: {}
+
+ regex@6.1.0:
+ dependencies:
+ regex-utilities: 2.3.0
+
+ regexp.prototype.flags@1.5.4:
+ dependencies:
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ set-function-name: 2.0.2
+
+ rehype-github-alerts@4.2.0:
+ dependencies:
+ '@primer/octicons': 19.28.1
+ hast-util-from-html: 2.0.3
+ hast-util-is-element: 3.0.0
+ unist-util-visit: 5.1.0
+
+ rehype-highlight@7.0.2:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-to-text: 4.0.2
+ lowlight: 3.3.0
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+
+ rehype-katex@7.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/katex': 0.16.8
+ hast-util-from-html-isomorphic: 2.0.0
+ hast-util-to-text: 4.0.2
+ katex: 0.16.47
+ unist-util-visit-parents: 6.0.2
+ vfile: 6.0.3
+
+ rehype-raw@7.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-raw: 9.1.0
+ vfile: 6.0.3
+
+ rehype-recma@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.9
+ '@types/hast': 3.0.4
+ hast-util-to-estree: 3.1.3
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-breaks@4.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-newline-to-break: 2.0.0
+ unified: 11.0.5
+
+ remark-cjk-friendly@1.2.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5):
+ dependencies:
+ micromark-extension-cjk-friendly: 1.2.3(micromark-util-types@2.0.2)(micromark@4.0.2)
+ unified: 11.0.5
+ optionalDependencies:
+ '@types/mdast': 4.0.4
+ transitivePeerDependencies:
+ - micromark
+ - micromark-util-types
+
+ remark-gfm@4.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-gfm: 3.1.0
+ micromark-extension-gfm: 3.0.0
+ remark-parse: 11.0.0
+ remark-stringify: 11.0.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-github@12.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-find-and-replace: 3.0.2
+ mdast-util-to-string: 4.0.0
+ to-vfile: 8.0.0
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+
+ remark-math@6.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-math: 3.0.0
+ micromark-extension-math: 3.1.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-mdx@3.1.1:
+ dependencies:
+ mdast-util-mdx: 3.0.0
+ micromark-extension-mdxjs: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-parse@11.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.3
+ micromark-util-types: 2.0.2
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-rehype@11.1.2:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ mdast-util-to-hast: 13.2.1
+ unified: 11.0.5
+ vfile: 6.0.3
+
+ remark-stringify@11.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-to-markdown: 2.1.2
+ unified: 11.0.5
+
+ resize-observer-polyfill@1.5.1: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve-protobuf-schema@2.1.0:
+ dependencies:
+ protocol-buffers-schema: 3.6.1
+
+ resolve@1.22.12:
+ dependencies:
+ es-errors: 1.3.0
+ is-core-module: 2.16.2
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
+ reusify@1.1.0: {}
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ robust-predicates@3.0.3: {}
+
+ rollup@4.62.0:
+ dependencies:
+ '@types/estree': 1.0.9
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.62.0
+ '@rollup/rollup-android-arm64': 4.62.0
+ '@rollup/rollup-darwin-arm64': 4.62.0
+ '@rollup/rollup-darwin-x64': 4.62.0
+ '@rollup/rollup-freebsd-arm64': 4.62.0
+ '@rollup/rollup-freebsd-x64': 4.62.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.62.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.62.0
+ '@rollup/rollup-linux-arm64-gnu': 4.62.0
+ '@rollup/rollup-linux-arm64-musl': 4.62.0
+ '@rollup/rollup-linux-loong64-gnu': 4.62.0
+ '@rollup/rollup-linux-loong64-musl': 4.62.0
+ '@rollup/rollup-linux-ppc64-gnu': 4.62.0
+ '@rollup/rollup-linux-ppc64-musl': 4.62.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.62.0
+ '@rollup/rollup-linux-riscv64-musl': 4.62.0
+ '@rollup/rollup-linux-s390x-gnu': 4.62.0
+ '@rollup/rollup-linux-x64-gnu': 4.62.0
+ '@rollup/rollup-linux-x64-musl': 4.62.0
+ '@rollup/rollup-openbsd-x64': 4.62.0
+ '@rollup/rollup-openharmony-arm64': 4.62.0
+ '@rollup/rollup-win32-arm64-msvc': 4.62.0
+ '@rollup/rollup-win32-ia32-msvc': 4.62.0
+ '@rollup/rollup-win32-x64-gnu': 4.62.0
+ '@rollup/rollup-win32-x64-msvc': 4.62.0
+ fsevents: 2.3.3
+
+ rope-sequence@1.3.4: {}
+
+ roughjs@4.5.2:
+ dependencies:
+ path-data-parser: 0.1.0
+ points-on-curve: 0.2.0
+ points-on-path: 0.2.1
+
+ roughjs@4.6.6:
+ dependencies:
+ hachure-fill: 0.5.2
+ path-data-parser: 0.1.0
+ points-on-curve: 0.2.0
+ points-on-path: 0.2.1
+
+ run-async@4.0.6: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ rw@1.3.3: {}
+
+ s.color@0.0.15: {}
+
+ safe-buffer@5.2.1: {}
+
+ safer-buffer@2.1.2: {}
+
+ sass-formatter@0.7.9:
+ dependencies:
+ suf-log: 2.5.3
+
+ sass@1.101.0:
+ dependencies:
+ chokidar: 5.0.0
+ immutable: 5.1.6
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.5.6
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
+ screenfull@5.2.0: {}
+
+ scroll-into-view-if-needed@2.2.31:
+ dependencies:
+ compute-scroll-into-view: 1.0.20
+
+ scroll-into-view-if-needed@3.1.0:
+ dependencies:
+ compute-scroll-into-view: 3.1.1
+
+ semver-compare@1.0.0: {}
+
+ semver@6.3.1: {}
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ set-value@2.0.1:
+ dependencies:
+ extend-shallow: 2.0.1
+ is-extendable: 0.1.1
+ is-plain-object: 2.0.4
+ split-string: 3.1.0
+
+ shapefile@0.6.6:
+ dependencies:
+ array-source: 0.0.4
+ commander: 2.20.3
+ path-source: 0.1.3
+ slice-source: 0.4.1
+ stream-source: 0.3.5
+ text-encoding: 0.6.4
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ shiki-stream@0.1.5(react@18.3.1):
+ dependencies:
+ '@shikijs/stream': 4.2.0(react@18.3.1)
+ optionalDependencies:
+ react: 18.3.1
+
+ shiki@3.23.0:
+ dependencies:
+ '@shikijs/core': 3.23.0
+ '@shikijs/engine-javascript': 3.23.0
+ '@shikijs/engine-oniguruma': 3.23.0
+ '@shikijs/langs': 3.23.0
+ '@shikijs/themes': 3.23.0
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
+ signal-exit@4.1.0: {}
+
+ simple-statistics@7.9.0: {}
+
+ simplify-geojson@1.0.5:
+ dependencies:
+ concat-stream: 1.4.11
+ minimist: 1.2.6
+ simplify-geometry: 0.0.2
+
+ simplify-geometry@0.0.2: {}
+
+ slice-source@0.4.1: {}
+
+ source-map-js@1.2.1: {}
+
+ source-map@0.5.7: {}
+
+ source-map@0.7.6: {}
+
+ space-separated-tokens@2.0.2: {}
+
+ split-on-first@3.0.0: {}
+
+ split-string@3.1.0:
+ dependencies:
+ extend-shallow: 3.0.2
+
+ sse.js@2.8.0: {}
+
+ stdin-discarder@0.3.2: {}
+
+ stream-source@0.3.5: {}
+
+ string-convert@0.2.1: {}
+
+ string-width@8.2.1:
+ dependencies:
+ get-east-asian-width: 1.6.0
+ strip-ansi: 7.2.0
+
+ string_decoder@0.10.31: {}
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ stringify-entities@4.0.4:
+ dependencies:
+ character-entities-html4: 2.1.0
+ character-entities-legacy: 3.0.0
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.2.0:
+ dependencies:
+ ansi-regex: 6.2.2
+
+ strip-final-newline@4.0.0: {}
+
+ strip-json-comments@3.1.1: {}
+
+ style-to-js@1.1.21:
+ dependencies:
+ style-to-object: 1.0.14
+
+ style-to-object@1.0.14:
+ dependencies:
+ inline-style-parser: 0.2.7
+
+ stylis@4.2.0: {}
+
+ stylis@4.4.0: {}
+
+ sucrase@3.35.1:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ commander: 4.1.1
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.7
+ tinyglobby: 0.2.17
+ ts-interface-checker: 0.1.13
+
+ suf-log@2.5.3:
+ dependencies:
+ s.color: 0.0.15
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ swr@2.4.1(react@18.3.1):
+ dependencies:
+ dequal: 2.0.3
+ react: 18.3.1
+ use-sync-external-store: 1.6.0(react@18.3.1)
+
+ tabbable@6.4.0: {}
+
+ tailwindcss@3.4.19(yaml@2.9.0):
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ arg: 5.0.2
+ chokidar: 3.6.0
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.3.3
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.21.7
+ lilconfig: 3.1.3
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.5.15
+ postcss-import: 15.1.0(postcss@8.5.15)
+ postcss-js: 4.1.0(postcss@8.5.15)
+ postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.9.0)
+ postcss-nested: 6.2.0(postcss@8.5.15)
+ postcss-selector-parser: 6.1.4
+ resolve: 1.22.12
+ sucrase: 3.35.1
+ transitivePeerDependencies:
+ - tsx
+ - yaml
+
+ text-encoding@0.6.4: {}
+
+ text-table@0.2.0: {}
+
+ thenify-all@1.6.0:
+ dependencies:
+ thenify: 3.3.1
+
+ thenify@3.3.1:
+ dependencies:
+ any-promise: 1.3.0
+
+ throttle-debounce@5.0.2: {}
+
+ tinyexec@1.2.4: {}
+
+ tinyglobby@0.2.17:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ to-vfile@8.0.0:
+ dependencies:
+ vfile: 6.0.3
+
+ toggle-selection@1.0.6: {}
+
+ topojson-client@3.1.0:
+ dependencies:
+ commander: 2.20.3
+
+ topojson-server@3.0.1:
+ dependencies:
+ commander: 2.20.3
+
+ trim-lines@3.0.1: {}
+
+ trough@2.2.0: {}
+
+ ts-dedent@2.3.0: {}
+
+ ts-interface-checker@0.1.13: {}
+
+ ts-md5@2.0.1: {}
+
+ tslib@2.6.2: {}
+
+ tslib@2.8.1: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-fest@0.20.2: {}
+
+ typedarray@0.0.6: {}
+
+ typedarray@0.0.7: {}
+
+ typescript@4.4.2: {}
+
+ unicorn-magic@0.3.0: {}
+
+ unified@11.0.5:
+ dependencies:
+ '@types/unist': 3.0.3
+ bail: 2.0.2
+ devlop: 1.1.0
+ extend: 3.0.2
+ is-plain-obj: 4.1.0
+ trough: 2.2.0
+ vfile: 6.0.3
+
+ unist-util-find-after@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.1
+
+ unist-util-is@6.0.1:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-position-from-estree@2.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-position@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-remove-position@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-visit: 5.1.0
+
+ unist-util-stringify-position@4.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-visit-parents@6.0.2:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.1
+
+ unist-util-visit@5.1.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.1
+ unist-util-visit-parents: 6.0.2
+
+ update-browserslist-db@1.2.3(browserslist@4.28.2):
+ dependencies:
+ browserslist: 4.28.2
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ url-join@5.0.0: {}
+
+ use-debounce@10.1.1(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ use-merge-value@1.2.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ use-sync-external-store@1.6.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ use-sync-external-store@1.6.0(react@19.2.7):
+ dependencies:
+ react: 19.2.7
+
+ util-deprecate@1.0.2: {}
+
+ utility-types@3.11.0: {}
+
+ uuid@13.0.2: {}
+
+ uuid@14.0.0: {}
+
+ v8n@1.5.1: {}
+
+ vfile-location@5.0.3:
+ dependencies:
+ '@types/unist': 3.0.3
+ vfile: 6.0.3
+
+ vfile-message@4.0.3:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-stringify-position: 4.0.0
+
+ vfile@6.0.3:
+ dependencies:
+ '@types/unist': 3.0.3
+ vfile-message: 4.0.3
+
+ vite@5.4.21(sass@1.101.0):
+ dependencies:
+ esbuild: 0.21.5
+ postcss: 8.5.15
+ rollup: 4.62.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ sass: 1.101.0
+
+ void-elements@3.1.0: {}
+
+ w3c-keyname@2.2.8: {}
+
+ web-namespaces@2.0.1: {}
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrappy@1.0.2: {}
+
+ yallist@3.1.1: {}
+
+ yaml@1.10.3: {}
+
+ yaml@2.9.0: {}
+
+ yocto-queue@0.1.0: {}
+
+ yoctocolors@2.1.2: {}
+
+ zustand@3.7.2(react@18.3.1):
+ optionalDependencies:
+ react: 18.3.1
+
+ zwitch@2.0.4: {}
diff --git a/web/pnpm-workspace.yaml b/web/pnpm-workspace.yaml
new file mode 100644
index 0000000..a5d3648
--- /dev/null
+++ b/web/pnpm-workspace.yaml
@@ -0,0 +1,4 @@
+allowBuilds:
+ '@parcel/watcher': set this to true or false
+ '@swc/core': set this to true or false
+ esbuild: set this to true or false
diff --git a/web/src/App.jsx b/web/src/App.jsx
index 2dfe636..40a6853 100644
--- a/web/src/App.jsx
+++ b/web/src/App.jsx
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (C) 2025 QuantumNous
This program is free software: you can redistribute it and/or modify
@@ -37,6 +37,7 @@ import Redemption from './pages/Redemption';
import TopUp from './pages/TopUp';
import Log from './pages/Log';
import Chat from './pages/Chat';
+import Benchmarks from './pages/Benchmarks';
import Chat2Link from './pages/Chat2Link';
import Midjourney from './pages/Midjourney';
import Pricing from './pages/Pricing';
@@ -499,10 +500,12 @@ function App() {
}
/>
- } />
+ } />
+ } />
);
}
export default App;
+
diff --git a/web/src/components/common/ui/Button.jsx b/web/src/components/common/ui/Button.jsx
new file mode 100644
index 0000000..8cff5d6
--- /dev/null
+++ b/web/src/components/common/ui/Button.jsx
@@ -0,0 +1,61 @@
+/*
+Copyright (C) 2025 QuantumNous
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+
+For commercial licensing, please contact support@quantumnous.com
+*/
+
+import React from 'react';
+import clsx from 'clsx';
+
+const variants = {
+ default: 'bg-primary text-primary-foreground hover:bg-primary/90',
+ destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
+ outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
+ secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
+ link: 'text-primary underline-offset-4 hover:underline',
+};
+
+const sizes = {
+ default: 'h-10 px-4 py-2',
+ sm: 'h-9 rounded-md px-3',
+ lg: 'h-11 rounded-md px-8',
+ icon: 'h-10 w-10',
+};
+
+const Button = React.forwardRef(
+ ({ className, variant = 'default', size = 'default', children, ...props }, ref) => {
+ return (
+
+ );
+ }
+);
+
+Button.displayName = 'Button';
+export default Button;
diff --git a/web/src/components/common/ui/Card.jsx b/web/src/components/common/ui/Card.jsx
new file mode 100644
index 0000000..51f64f7
--- /dev/null
+++ b/web/src/components/common/ui/Card.jsx
@@ -0,0 +1,98 @@
+/*
+Copyright (C) 2025 QuantumNous
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+
+For commercial licensing, please contact support@quantumnous.com
+*/
+
+import React from 'react';
+import clsx from 'clsx';
+
+const Card = React.forwardRef(({ className, children, ...props }, ref) => (
+
+ {children}
+
+));
+Card.displayName = 'Card';
+
+const CardHeader = React.forwardRef(({ className, children, ...props }, ref) => (
+
+ {children}
+
+));
+CardHeader.displayName = 'CardHeader';
+
+const CardTitle = React.forwardRef(({ className, children, ...props }, ref) => (
+
+ {children}
+
+));
+CardTitle.displayName = 'CardTitle';
+
+const CardDescription = React.forwardRef(
+ ({ className, children, ...props }, ref) => (
+
+ {children}
+
+ )
+);
+CardDescription.displayName = 'CardDescription';
+
+const CardContent = React.forwardRef(
+ ({ className, children, ...props }, ref) => (
+
+ {children}
+
+ )
+);
+CardContent.displayName = 'CardContent';
+
+const CardFooter = React.forwardRef(
+ ({ className, children, ...props }, ref) => (
+
+ {children}
+
+ )
+);
+CardFooter.displayName = 'CardFooter';
+
+export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
+export default Card;
diff --git a/web/src/components/common/ui/index.js b/web/src/components/common/ui/index.js
new file mode 100644
index 0000000..e8e053c
--- /dev/null
+++ b/web/src/components/common/ui/index.js
@@ -0,0 +1,5 @@
+// shadcn/ui style base components
+// These are minimal wrappers around raw elements using CSS variable tokens
+
+export { default as Button } from './Button';
+export { default as Card } from './Card';
diff --git a/web/src/components/layout/PageLayout.jsx b/web/src/components/layout/PageLayout.jsx
index d931ae2..6eae288 100644
--- a/web/src/components/layout/PageLayout.jsx
+++ b/web/src/components/layout/PageLayout.jsx
@@ -322,22 +322,24 @@ const PageLayout = () => {
) : null}
-
- setDrawerOpen((prev) => !prev)}
- drawerOpen={drawerOpen}
- />
-
+ {location.pathname !== '/' && (
+
+ setDrawerOpen((prev) => !prev)}
+ drawerOpen={drawerOpen}
+ />
+
+ )}
{} }) => {
const workspaceItems = useMemo(() => {
const items = [
+ {
+ text: t('评测'),
+ itemKey: 'benchmarks',
+ to: '/benchmarks',
+ },
{
text: t('数据看板'),
itemKey: 'detail',
@@ -94,7 +100,7 @@ const SiderBar = ({ onNavigate = () => {} }) => {
: 'tableHiddle',
},
{
- text: t('令牌管理'),
+ text: t('API Key'),
itemKey: 'token',
to: '/token',
},
@@ -303,7 +309,7 @@ const SiderBar = ({ onNavigate = () => {} }) => {
const chatMenuItems = useMemo(() => {
const items = [
{
- text: t('操练场'),
+ text: t('体验馆'),
itemKey: 'playground',
to: '/playground',
},
diff --git a/web/src/components/layout/headerbar/ActionButtons.jsx b/web/src/components/layout/headerbar/ActionButtons.jsx
index 71f532c..5e32f28 100644
--- a/web/src/components/layout/headerbar/ActionButtons.jsx
+++ b/web/src/components/layout/headerbar/ActionButtons.jsx
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (C) 2025 QuantumNous
This program is free software: you can redistribute it and/or modify
@@ -18,7 +18,6 @@ For commercial licensing, please contact support@quantumnous.com
*/
import React from 'react';
-import NewYearButton from './NewYearButton';
import NotificationButton from './NotificationButton';
import ThemeToggle from './ThemeToggle';
import LanguageSelector from './LanguageSelector';
@@ -43,8 +42,7 @@ const ActionButtons = ({
const shouldShowNoticeButton = Boolean(userState?.user?.id);
return (
-
- {/*
*/}
+
{shouldShowNoticeButton && (
.
For commercial licensing, please contact support@quantumnous.com
*/
-import React, { useCallback, useContext } from 'react';
-import { Link, useLocation, useNavigate } from 'react-router-dom';
-import { Typography, Tag } from '@douyinfe/semi-ui';
+import React from 'react';
+import { Link } from 'react-router-dom';
+import { Tag } from '@douyinfe/semi-ui';
import SkeletonWrapper from '../components/SkeletonWrapper';
-import { userIsSupplierUser, showInfo, isAdmin } from '../../../helpers';
-import { StatusContext } from '../../../context/Status';
-
-/**
- * 顶栏申请入口:浅色用 #409EFF 系。
- * 注意:tailwind.config 覆盖了默认 colors,无 blue/zinc 等键,暗色必须用任意值或 semi-color-*,否则 dark: 不会产出 CSS。
- */
-const APPLY_BTN_BASE =
- 'flex-shrink-0 inline-flex items-center justify-center text-sm font-semibold transition-all duration-200 ease-in-out rounded-lg px-3.5 py-2 min-h-[2.25rem] border shadow-sm dark:shadow-none';
-const APPLY_BTN_IDLE =
- 'border-[#b3d8ff] bg-[#ecf5ff] text-[#409EFF] hover:bg-[#d9ecff] hover:border-[#409EFF] active:bg-[#c6e2ff] dark:border-[rgba(96,165,250,0.35)] dark:bg-[rgba(59,130,246,0.1)] dark:text-[rgba(147,197,253,0.92)] dark:hover:bg-[rgba(59,130,246,0.15)] dark:hover:border-[rgba(96,165,250,0.48)] dark:active:bg-[rgba(59,130,246,0.12)]';
-const APPLY_BTN_ACTIVE =
- 'border-[#409EFF] bg-[#d9ecff] text-[#337ecc] shadow-md dark:border-[rgba(96,165,250,0.55)] dark:bg-[rgba(59,130,246,0.18)] dark:text-[rgba(191,219,254,0.95)] dark:shadow-none dark:ring-1 dark:ring-[rgba(96,165,250,0.28)]';
const HeaderLogo = ({
isMobile,
@@ -44,93 +31,43 @@ const HeaderLogo = ({
systemName,
isSelfUseMode,
isDemoSiteMode,
- userState,
t,
}) => {
- const location = useLocation();
- const navigate = useNavigate();
- const user = userState?.user;
- const [statusState] = useContext(StatusContext);
-
- const isSupplierApplyEnabled = React.useMemo(() => {
- try {
- const roleModulesRaw = statusState?.status?.SidebarModulesByRole;
- if (!roleModulesRaw) return true;
- const roleConfig = JSON.parse(roleModulesRaw);
- const userRole = String(user?.role ?? 0);
- const config = roleConfig[userRole];
- if (!config) return true;
- const consoleSection = config.console;
- if (!consoleSection) return true;
- if (consoleSection.enabled === false) return false;
- return consoleSection.supplierApply !== false;
- } catch {
- return true;
- }
- }, [statusState?.status?.SidebarModulesByRole, user?.role]);
-
- /** 未登录且已在登录页时:提示先登录,并同步 redirect 到目标申请页 */
- const handleApplyEntryClick = useCallback(
- (applyPath) => (e) => {
- if (user) return;
- if (location.pathname !== '/login') return;
- e.preventDefault();
- showInfo(t('请先登录'));
- navigate(`/login?redirect=${encodeURIComponent(applyPath)}`, {
- replace: true,
- });
- },
- [user, location.pathname, navigate, t],
- );
-
if (isMobile && isConsoleRoute) {
return null;
}
- const supplierApplyPath = '/console/supplier/apply';
-
- /** 管理员不展示;已是供应商则隐藏「提供算力」 */
- const hideApplyLinks = isAdmin();
- const showSupplierApply = !hideApplyLinks && !userIsSupplierUser(user) && isSupplierApplyEnabled;
-
- const supplierTo = user
- ? supplierApplyPath
- : `/login?redirect=${encodeURIComponent(supplierApplyPath)}`;
-
- const supplierActive = location.pathname.startsWith(supplierApplyPath);
-
return (
-
-
-
-
+
+
+
+
-
-
+
+
-
+
{systemName}
-
+
{(isSelfUseMode || isDemoSiteMode) && !isLoading && (
{isSelfUseMode ? t('自用模式') : t('演示站点')}
@@ -138,17 +75,6 @@ const HeaderLogo = ({
- {showSupplierApply && (
-
-
- {t('提供算力')}
-
-
- )}
);
};
diff --git a/web/src/components/layout/headerbar/LanguageSelector.jsx b/web/src/components/layout/headerbar/LanguageSelector.jsx
index 7aebd78..5ce8908 100644
--- a/web/src/components/layout/headerbar/LanguageSelector.jsx
+++ b/web/src/components/layout/headerbar/LanguageSelector.jsx
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (C) 2025 QuantumNous
This program is free software: you can redistribute it and/or modify
@@ -17,60 +17,76 @@ along with this program. If not, see
.
For commercial licensing, please contact support@quantumnous.com
*/
-import React from 'react';
-import { Button, Dropdown } from '@douyinfe/semi-ui';
-import { Languages } from 'lucide-react';
-import { useTranslation } from 'react-i18next';
+import React, { useState, useRef, useEffect } from "react";
+import { Languages } from "lucide-react";
+import { useTranslation } from "react-i18next";
import {
normalizeLanguage,
supportedLanguages,
LANGUAGE_NATIVE_LABELS,
-} from '../../../i18n/language';
+} from "../../../i18n/language";
-/** 语言在头部与下拉中一律显示其自称(如 English、简体中文),不随界面语言翻译 */
const nativeLabel = (code) => LANGUAGE_NATIVE_LABELS[code] || code;
-const itemClass = (active) =>
- `!px-3 !py-1.5 !text-sm !text-semi-color-text-0 dark:!text-gray-200 ${
- active
- ? '!bg-semi-color-primary-light-default dark:!bg-blue-600 !font-semibold'
- : 'hover:!bg-semi-color-fill-1 dark:hover:!bg-gray-600'
- }`;
-
const LanguageSelector = ({ currentLang, onLanguageChange }) => {
const { t } = useTranslation();
- const normalized = normalizeLanguage(currentLang) || 'zh-CN';
- const currentLabel = nativeLabel(normalized);
+ const [open, setOpen] = useState(false);
+ const ref = useRef(null);
+ const normalized = normalizeLanguage(currentLang) || "zh-CN";
+
+ useEffect(() => {
+ if (!open) return;
+ const handler = (e) => {
+ if (ref.current && !ref.current.contains(e.target)) setOpen(false);
+ };
+ document.addEventListener("mousedown", handler);
+ return () => document.removeEventListener("mousedown", handler);
+ }, [open]);
return (
-
- {supportedLanguages.map((code) => (
- onLanguageChange(code)}
- className={itemClass(normalized === code)}
- >
- {nativeLabel(code)}
-
- ))}
-
- }
- >
- }
- aria-label={`${t('common.changeLanguage')}: ${currentLabel}`}
- theme='borderless'
- type='tertiary'
- className='!px-2 !py-1.5 !text-current focus:!bg-semi-color-fill-1 dark:focus:!bg-gray-700 !rounded-full !bg-semi-color-fill-0 dark:!bg-semi-color-fill-1 hover:!bg-semi-color-fill-1 dark:hover:!bg-semi-color-fill-2 !max-w-[11rem] sm:!max-w-[14rem]'
+
+
-
+
+
+ {open && (
+
+ {supportedLanguages.map((code) => {
+ const active = normalized === code;
+ return (
+
+ );
+ })}
+
+ )}
+
);
};
diff --git a/web/src/components/layout/headerbar/MobileMenuButton.jsx b/web/src/components/layout/headerbar/MobileMenuButton.jsx
index 7cf7e4a..21a2188 100644
--- a/web/src/components/layout/headerbar/MobileMenuButton.jsx
+++ b/web/src/components/layout/headerbar/MobileMenuButton.jsx
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (C) 2025 QuantumNous
This program is free software: you can redistribute it and/or modify
@@ -17,9 +17,8 @@ along with this program. If not, see .
For commercial licensing, please contact support@quantumnous.com
*/
-import React from 'react';
-import { Button } from '@douyinfe/semi-ui';
-import { IconClose, IconMenu } from '@douyinfe/semi-icons';
+import React from "react";
+import { X, Menu } from "lucide-react";
const MobileMenuButton = ({
isConsoleRoute,
@@ -33,23 +32,17 @@ const MobileMenuButton = ({
return null;
}
+ const isOpen = isMobile ? drawerOpen : collapsed;
+
return (
-
- ) : (
-
- )
- }
- aria-label={
- (isMobile ? drawerOpen : collapsed) ? t('关闭侧边栏') : t('打开侧边栏')
- }
+
+ className="inline-flex items-center justify-center p-2 rounded-md text-foreground hover:bg-accent hover:text-accent-foreground transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring"
+ >
+ {isOpen ? : }
+
);
};
diff --git a/web/src/components/layout/headerbar/MobileSiteNavDropdown.jsx b/web/src/components/layout/headerbar/MobileSiteNavDropdown.jsx
index 777a08d..0676676 100644
--- a/web/src/components/layout/headerbar/MobileSiteNavDropdown.jsx
+++ b/web/src/components/layout/headerbar/MobileSiteNavDropdown.jsx
@@ -20,19 +20,22 @@ For commercial licensing, please contact support@quantumnous.com
import React, { useMemo, useCallback } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import { Button, Dropdown } from '@douyinfe/semi-ui';
-import { ChevronDown } from 'lucide-react';
+import { ChevronDown, Box, LayoutDashboard, Trophy, BookOpen } from 'lucide-react';
+
+const NAV_ICONS = {
+ pricing: Box,
+ console: LayoutDashboard,
+ benchmark: Trophy,
+ docs: BookOpen,
+};
import SkeletonWrapper from '../components/SkeletonWrapper';
-import { StatusContext } from '../../../context/Status';
-import { isAdmin, userIsSupplierUser } from '../../../helpers';
/** 主站入口顺序(与桌面顶栏一致) */
-const PRIMARY_NAV_KEYS = ['home', 'pricing', 'docs', 'about'];
+const PRIMARY_NAV_KEYS = ['pricing', 'console', 'benchmark', 'docs'];
const menuClass =
'!bg-semi-color-bg-overlay !border-semi-color-border !shadow-lg !rounded-lg dark:!bg-gray-700 dark:!border-gray-600';
-const supplierApplyPath = '/console/supplier/apply';
-
const MobileSiteNavDropdown = ({
mainNavLinks,
pricingRequireAuth,
@@ -43,7 +46,6 @@ const MobileSiteNavDropdown = ({
const location = useLocation();
const navigate = useNavigate();
const user = userState?.user;
- const [statusState] = React.useContext(StatusContext);
const byNavKey = useMemo(
() => Object.fromEntries(mainNavLinks.map((l) => [l.itemKey, l])),
@@ -51,53 +53,16 @@ const MobileSiteNavDropdown = ({
);
const primaryAndConsoleLinks = useMemo(() => {
- const primary = PRIMARY_NAV_KEYS.map((k) => byNavKey[k]).filter(Boolean);
- const consoleLink = byNavKey.console;
- if (consoleLink) {
- return [...primary, consoleLink];
- }
- return primary;
+ return PRIMARY_NAV_KEYS.map((k) => byNavKey[k]).filter(Boolean);
}, [byNavKey]);
- const applyEntries = useMemo(() => {
- const hideApplyLinks = isAdmin();
- if (!hideApplyLinks && !userIsSupplierUser(user)) {
- try {
- const roleModulesRaw = statusState?.status?.SidebarModulesByRole;
- if (roleModulesRaw) {
- const roleConfig = JSON.parse(roleModulesRaw);
- const userRole = String(user?.role ?? 0);
- const config = roleConfig[userRole];
- if (config) {
- const consoleSection = config.console;
- if (consoleSection) {
- if (consoleSection.enabled === false || consoleSection.supplierApply === false) {
- return [];
- }
- }
- }
- }
- } catch {}
- return [
- {
- itemKey: 'supplier-apply',
- text: t('提供算力'),
- redirectPath: supplierApplyPath,
- },
- ];
- }
- return [];
- }, [user, t, statusState?.status?.SidebarModulesByRole]);
-
const currentPageLabel = useMemo(() => {
const p = location.pathname;
- if (p === '/') return t('首页');
- if (p === '/pricing' || p.startsWith('/pricing/')) return t('模型广场');
- if (p === '/about' || p.startsWith('/about/')) return t('关于');
+ if (p === '/pricing' || p.startsWith('/pricing/')) return t('模型');
+ if (p.startsWith('/benchmarks')) return t('评测');
if (/\/[a-z]{2}\/docs\b/i.test(p) || p.includes('/docs')) {
return t('文档');
}
- if (p.startsWith(supplierApplyPath)) return t('提供算力');
if (p.startsWith('/console')) return t('控制台');
if (p === '/login') return t('登录');
return t('页面导航');
@@ -148,20 +113,7 @@ const MobileSiteNavDropdown = ({
[navigate, resolveInternalTarget],
);
- const handleSelectApply = useCallback(
- (entry) => {
- window.setTimeout(() => {
- if (user) {
- navigate(entry.redirectPath);
- return;
- }
- navigate(`/login?redirect=${encodeURIComponent(entry.redirectPath)}`);
- }, 10);
- },
- [navigate, user],
- );
-
- if (primaryAndConsoleLinks.length === 0 && applyEntries.length === 0) {
+ if (primaryAndConsoleLinks.length === 0) {
return null;
}
@@ -199,28 +151,14 @@ const MobileSiteNavDropdown = ({
onClick={() => handleSelectMain(link)}
className={itemClass(active)}
>
- {link.text}
-
- );
- })}
- {applyEntries.length > 0 && primaryAndConsoleLinks.length > 0 && (
-
- )}
- {applyEntries.map((entry) => {
- const active = isActivePath(entry.redirectPath);
- return (
- {
- e.stopPropagation();
- }}
- onClick={() => handleSelectApply(entry)}
- className={itemClass(active)}
- >
- {entry.text}
+
+ {NAV_ICONS[link.itemKey] && React.createElement(NAV_ICONS[link.itemKey], { size: 16 })}
+ {link.text}
+
);
})}
+
}
>
diff --git a/web/src/components/layout/headerbar/Navigation.jsx b/web/src/components/layout/headerbar/Navigation.jsx
index 8fc0d33..5c79293 100644
--- a/web/src/components/layout/headerbar/Navigation.jsx
+++ b/web/src/components/layout/headerbar/Navigation.jsx
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (C) 2025 QuantumNous
This program is free software: you can redistribute it and/or modify
@@ -19,8 +19,16 @@ For commercial licensing, please contact support@quantumnous.com
import React from 'react';
import { Link, useLocation } from 'react-router-dom';
+import { Box, LayoutDashboard, Trophy, BookOpen } from 'lucide-react';
import SkeletonWrapper from '../components/SkeletonWrapper';
+const NAV_ICONS = {
+ pricing: Box,
+ console: LayoutDashboard,
+ benchmark: Trophy,
+ docs: BookOpen,
+};
+
const Navigation = ({
mainNavLinks,
isMobile,
@@ -33,21 +41,26 @@ const Navigation = ({
const isActive = (linkPath) => {
if (!linkPath) return false;
const currentPath = location.pathname;
- if (linkPath === '/') {
- return currentPath === '/';
+ if (linkPath === "/") {
+ return currentPath === "/";
}
return currentPath.startsWith(linkPath);
};
const renderNavLinks = () => {
const baseClasses =
- 'flex-shrink-0 flex items-center text-sm font-medium transition-all duration-200 ease-in-out rounded-md';
- const spacingClasses = isMobile ? 'px-2 py-1' : 'px-3 py-2';
+ "flex-shrink-0 inline-flex items-center gap-1.5 text-[14px] transition-colors duration-150 rounded-md px-3 py-1.5";
const hoverClasses =
- 'hover:!bg-semi-color-fill-1 dark:hover:!bg-gray-700/50 hover:!text-semi-color-text-0 dark:hover:!text-white';
+ "hover:bg-accent hover:text-accent-foreground";
return mainNavLinks.map((link) => {
- const linkContent = {link.text};
+ const Icon = NAV_ICONS[link.itemKey];
+ const linkContent = (
+ <>
+ {Icon && }
+ {link.text}
+ >
+ );
if (link.isExternal) {
const openInNewTab = link.openInNewTab !== false;
@@ -56,9 +69,9 @@ const Navigation = ({
key={link.itemKey}
href={link.externalLink}
{...(openInNewTab
- ? { target: '_blank', rel: 'noopener noreferrer' }
+ ? { target: "_blank", rel: "noopener noreferrer" }
: {})}
- className={`${baseClasses} ${spacingClasses} ${hoverClasses} !text-semi-color-text-1 dark:!text-gray-300`}
+ className={`${baseClasses} ${hoverClasses} text-muted-foreground`}
>
{linkContent}
@@ -66,23 +79,23 @@ const Navigation = ({
}
let targetPath = link.to;
- if (link.itemKey === 'console' && !userState.user) {
- targetPath = '/login';
+ if (link.itemKey === "console" && !userState.user) {
+ targetPath = "/login";
}
- if (link.itemKey === 'pricing' && pricingRequireAuth && !userState.user) {
- targetPath = '/login';
+ if (link.itemKey === "pricing" && pricingRequireAuth && !userState.user) {
+ targetPath = "/login";
}
const active = isActive(link.to);
const activeClasses = active
- ? '!bg-semi-color-fill-2 dark:!bg-gray-700 !text-semi-color-text-0 dark:!text-white'
- : '!text-semi-color-text-1 dark:!text-gray-300';
+ ? "bg-accent text-accent-foreground font-semibold"
+ : "text-muted-foreground";
return (
{linkContent}
@@ -91,10 +104,10 @@ const Navigation = ({
};
return (
-
{
const [messageModalVisible, setMessageModalVisible] = useState(false);
const { unreadCount: messageUnreadCount, refreshUnreadCount } =
useUserMessageUnreadCount(userState?.user);
- // handleMessageModalOpen 打开站内消息弹窗。
const handleMessageModalOpen = useCallback(() => {
setMessageModalVisible(true);
}, []);
- // handleMessageModalClose 关闭站内消息弹窗并刷新未读计数。
const handleMessageModalClose = useCallback(async () => {
setMessageModalVisible(false);
await refreshUnreadCount();
@@ -70,7 +68,7 @@ const HeaderBar = ({ onMobileMenuToggle, drawerOpen }) => {
const { mainNavLinks } = useNavigation(t, docsNav, headerNavModules);
return (
-
+
{
t={t}
/>
-
-
-
-
+
+
+
-
+
+
-
-
-
+
+
+
- {/* {!isMobile &&
} */}
-
+
-
diff --git a/web/src/components/playground/LazyVisibleMessage.jsx b/web/src/components/playground/LazyVisibleMessage.jsx
index a8b908f..bf5293d 100644
--- a/web/src/components/playground/LazyVisibleMessage.jsx
+++ b/web/src/components/playground/LazyVisibleMessage.jsx
@@ -23,7 +23,7 @@ import React, { useEffect, useRef, useState } from 'react';
const ROOT_MARGIN = '280px 0px 280px 0px';
/**
- * 操练场消息气泡:进入(或接近)可视区域后再挂载子树,减轻长对话下 DOM/媒体压力。
+ * 体验馆消息气泡:进入(或接近)可视区域后再挂载子树,减轻长对话下 DOM/媒体压力。
* variant=media:更高占位,避免图片/视频模式切换后列表高度不足导致滚不到底部。
*/
const LazyVisibleMessage = ({
diff --git a/web/src/components/playground/SettingsPanel.jsx b/web/src/components/playground/SettingsPanel.jsx
index 74e4ce1..442e210 100644
--- a/web/src/components/playground/SettingsPanel.jsx
+++ b/web/src/components/playground/SettingsPanel.jsx
@@ -38,7 +38,7 @@ import {
import ParameterControl from './ParameterControl';
/**
- * 操练场分组下拉:与全局 renderGroupOption 一致,但不展示倍率角标。
+ * 体验馆分组下拉:与全局 renderGroupOption 一致,但不展示倍率角标。
* @param {Record
} item Semi Select 传入的选项渲染参数
*/
const renderPlaygroundGroupOption = (item) =>
@@ -85,7 +85,7 @@ const SettingsPanel = ({
const mediaModeEnabled = isImageMode || isVideoMode;
const videoMediaHint = isVideoMode
? t(
- '操练场视频素材提示',
+ '体验馆视频素材提示',
'图片地址:第 1 张为首帧,2 张为首尾帧,更多张时最后一张为尾帧。视频地址:填写则作为源视频参与生成。未填写的字段不会加入请求。',
)
: '';
diff --git a/web/src/components/playground/VideoUrlInput.jsx b/web/src/components/playground/VideoUrlInput.jsx
index 8978502..063328b 100644
--- a/web/src/components/playground/VideoUrlInput.jsx
+++ b/web/src/components/playground/VideoUrlInput.jsx
@@ -83,11 +83,11 @@ const VideoUrlInput = ({
{!enabled ? (
- {t('操练场视频地址停用提示', '启用后可添加视频 URL(视频生视频、视频编辑等)')}
+ {t('体验馆视频地址停用提示', '启用后可添加视频 URL(视频生视频、视频编辑等)')}
) : list.length === 0 ? (
- {t('操练场视频地址空列表提示', '点击 + 添加 .mp4 / .mov 等可访问的视频链接')}
+ {t('体验馆视频地址空列表提示', '点击 + 添加 .mp4 / .mov 等可访问的视频链接')}
) : (
diff --git a/web/src/components/settings/BenchmarkDataManager.jsx b/web/src/components/settings/BenchmarkDataManager.jsx
new file mode 100644
index 0000000..80a1c9b
--- /dev/null
+++ b/web/src/components/settings/BenchmarkDataManager.jsx
@@ -0,0 +1,379 @@
+/*
+Copyright (C) 2025 QuantumNous
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+For commercial licensing, please contact support@quantumnous.com
+*/
+
+import React, { useEffect, useState, useCallback } from 'react';
+import {
+ Button,
+ Card,
+ Form,
+ Table,
+ Modal,
+ Typography,
+ Toast,
+} from '@douyinfe/semi-ui';
+import { API, showError, showSuccess } from '../../helpers';
+import { useTranslation } from 'react-i18next';
+import { Plus, Pencil, Trash2, RefreshCw } from 'lucide-react';
+
+const { Text } = Typography;
+
+const EMPTY_MODEL = {
+ name: '',
+ provider: '',
+ intelligence: 0,
+ speed: 0,
+ price: 0,
+ latency: 0,
+ context_window: '',
+ type: 'non-reasoning',
+ openness: 'proprietary',
+ category: 'language',
+};
+
+export default function BenchmarkDataManager() {
+ const { t } = useTranslation();
+ const [models, setModels] = useState([]);
+ const [loading, setLoading] = useState(false);
+ const [saving, setSaving] = useState(false);
+ const [editModalVisible, setEditModalVisible] = useState(false);
+ const [editingIndex, setEditingIndex] = useState(null);
+ const [editForm, setEditForm] = useState({ ...EMPTY_MODEL });
+
+ const fetchData = useCallback(async () => {
+ setLoading(true);
+ try {
+ const res = await API.get('/api/option/');
+ if (res.data.success && res.data.data) {
+ const option = res.data.data.find(
+ (o) => o.key === 'benchmark_data.models',
+ );
+ if (option && option.value) {
+ setModels(JSON.parse(option.value));
+ } else {
+ // try to fetch via the specific key
+ const fallbackRes = await API.get(
+ '/api/option/?key=benchmark_data.models',
+ );
+ if (fallbackRes.data?.data) {
+ setModels(JSON.parse(fallbackRes.data.data.value || '[]'));
+ }
+ }
+ }
+ } catch (error) {
+ showError(t('获取评测数据失败'));
+ } finally {
+ setLoading(false);
+ }
+ }, [t]);
+
+ useEffect(() => {
+ fetchData();
+ }, [fetchData]);
+
+ const saveData = async (newModels) => {
+ setSaving(true);
+ try {
+ const res = await API.put('/api/option/', {
+ key: 'benchmark_data.models',
+ value: JSON.stringify(newModels),
+ });
+ if (res.data.success) {
+ showSuccess(t('保存成功'));
+ setModels(newModels);
+ } else {
+ showError(res.data.message || t('保存失败'));
+ }
+ } catch (error) {
+ showError(t('保存失败,请重试'));
+ } finally {
+ setSaving(false);
+ }
+ };
+
+ const openAddModal = () => {
+ setEditingIndex(null);
+ setEditForm({ ...EMPTY_MODEL });
+ setEditModalVisible(true);
+ };
+
+ const openEditModal = (index) => {
+ setEditingIndex(index);
+ setEditForm({ ...models[index] });
+ setEditModalVisible(true);
+ };
+
+ const handleSaveModel = async () => {
+ if (!editForm.name || !editForm.provider) {
+ showError(t('模型名称和供应商不能为空'));
+ return;
+ }
+ const newModels = [...models];
+ if (editingIndex !== null) {
+ newModels[editingIndex] = { ...editForm };
+ } else {
+ newModels.push({ ...editForm });
+ }
+ await saveData(newModels);
+ setEditModalVisible(false);
+ };
+
+ const handleDeleteModel = async (index) => {
+ const newModels = models.filter((_, i) => i !== index);
+ await saveData(newModels);
+ };
+
+ const handleFieldChange = (field, value) => {
+ setEditForm((prev) => ({
+ ...prev,
+ [field]:
+ ['intelligence', 'speed', 'price', 'latency'].includes(field)
+ ? parseFloat(value) || 0
+ : value,
+ }));
+ };
+
+ const columns = [
+ {
+ title: t('模型名称'),
+ dataIndex: 'name',
+ width: 180,
+ render: (text, record) => (
+
+
{text}
+
+ {record.provider}
+
+
+ ),
+ },
+ {
+ title: t('智能指数'),
+ dataIndex: 'intelligence',
+ width: 100,
+ render: (val) => (
+ {val}
+ ),
+ },
+ {
+ title: t('速度 (tok/s)'),
+ dataIndex: 'speed',
+ width: 120,
+ render: (val) => (
+
+ {val?.toLocaleString()}
+
+ ),
+ },
+ {
+ title: t('价格 ($/M)'),
+ dataIndex: 'price',
+ width: 100,
+ render: (val) => (
+ ${val?.toFixed(2)}
+ ),
+ },
+ {
+ title: t('延迟 (s)'),
+ dataIndex: 'latency',
+ width: 100,
+ render: (val) => (
+ {val?.toFixed(2)}s
+ ),
+ },
+ {
+ title: t('类型'),
+ dataIndex: 'type',
+ width: 80,
+ render: (val) => (
+
+ {val === 'reasoning' ? t('推理') : t('通用')}
+
+ ),
+ },
+ {
+ title: t('操作'),
+ width: 120,
+ render: (_, __, index) => (
+
+ }
+ onClick={() => openEditModal(index)}
+ />
+ }
+ onClick={() => handleDeleteModel(index)}
+ />
+
+ ),
+ },
+ ];
+
+ return (
+
+ }
+ onClick={fetchData}
+ loading={loading}
+ >
+ {t('刷新')}
+
+ }
+ onClick={openAddModal}
+ >
+ {t('添加模型')}
+
+
+ }
+ >
+
+ {t('在此管理 AI 模型评测数据,添加、编辑或删除模型条目。保存后前端评测页面将自动更新。')}
+
+
idx}
+ size='small'
+ bordered
+ />
+
+ {/* Edit/Add Modal */}
+ setEditModalVisible(false)}
+ okText={t('保存')}
+ cancelText={t('取消')}
+ confirmLoading={saving}
+ style={{ width: 520 }}
+ >
+
+
+
+ );
+}
diff --git a/web/src/components/settings/personal/cards/NotificationSettings.jsx b/web/src/components/settings/personal/cards/NotificationSettings.jsx
index 3e044b1..1e7f72e 100644
--- a/web/src/components/settings/personal/cards/NotificationSettings.jsx
+++ b/web/src/components/settings/personal/cards/NotificationSettings.jsx
@@ -212,11 +212,11 @@ const NotificationSettings = ({
{
key: 'chat',
title: t('聊天区域'),
- description: t('操练场和聊天功能'),
+ description: t('体验馆和聊天功能'),
modules: [
{
key: 'playground',
- title: t('操练场'),
+ title: t('体验馆'),
description: t('AI模型测试环境'),
},
{ key: 'chat', title: t('聊天'), description: t('聊天会话管理') },
@@ -228,7 +228,7 @@ const NotificationSettings = ({
description: t('数据管理和日志查看'),
modules: [
{ key: 'detail', title: t('数据看板'), description: t('系统数据统计') },
- { key: 'token', title: t('令牌管理'), description: t('API令牌管理') },
+ { key: 'token', title: t('API Key'), description: t('APIAPI Key') },
{ key: 'log', title: t('使用日志'), description: t('API使用记录') },
{
key: 'midjourney',
diff --git a/web/src/components/table/channels/modals/ChannelImportModal.jsx b/web/src/components/table/channels/modals/ChannelImportModal.jsx
index d99395a..a976693 100644
--- a/web/src/components/table/channels/modals/ChannelImportModal.jsx
+++ b/web/src/components/table/channels/modals/ChannelImportModal.jsx
@@ -296,7 +296,7 @@ export default function ChannelImportModal({ refresh }) {
/>
- {t('此密钥将作为所有建站渠道的 API Key,用于访问上游平台。请在目标平台的令牌管理页面创建获取。')}
+ {t('此密钥将作为所有建站渠道的 API Key,用于访问上游平台。请在目标平台的API Key页面创建获取。')}
diff --git a/web/src/components/table/model-pricing/modal/components/ModelTokenList.jsx b/web/src/components/table/model-pricing/modal/components/ModelTokenList.jsx
index 2eafbbb..89440d6 100644
--- a/web/src/components/table/model-pricing/modal/components/ModelTokenList.jsx
+++ b/web/src/components/table/model-pricing/modal/components/ModelTokenList.jsx
@@ -99,7 +99,7 @@ const ModelTokenList = ({ visible, t }) => {
}
}, [tokens.length]);
- /** 跳转到令牌管理页 */
+ /** 跳转到API Key页 */
const goTokenPage = () => {
navigate('/console/token');
};
@@ -299,7 +299,7 @@ const ModelTokenList = ({ visible, t }) => {
goTokenPage();
}}
>
- {t('前往令牌管理')}
+ {t('前往API Key')}
{tokens.length > 0 ? (
diff --git a/web/src/components/table/tokens/TokensDescription.jsx b/web/src/components/table/tokens/TokensDescription.jsx
index 14baaa8..3b55933 100644
--- a/web/src/components/table/tokens/TokensDescription.jsx
+++ b/web/src/components/table/tokens/TokensDescription.jsx
@@ -29,7 +29,7 @@ const TokensDescription = ({ compactMode, setCompactMode, t }) => {
- {t('令牌管理')}
+ {t('API Key')}
{
@@ -153,7 +153,7 @@ export const PLAYGROUND_VIDEO_DURATION_OPTIONS = Array.from(
},
);
-// 操练场图片分辨率:value 为上游 size,label 仅展示 480p / 720p 等
+// 体验馆图片分辨率:value 为上游 size,label 仅展示 480p / 720p 等
export const PLAYGROUND_IMAGE_SIZE_OPTIONS = [
{ label: '480p', value: '854x480' },
{ label: '720p', value: '1280x720' },
diff --git a/web/src/helpers/playgroundImageUtils.js b/web/src/helpers/playgroundImageUtils.js
index 5052ec2..ee2cf68 100644
--- a/web/src/helpers/playgroundImageUtils.js
+++ b/web/src/helpers/playgroundImageUtils.js
@@ -111,7 +111,7 @@ export function buildImageMarkdown(sources) {
.join('\n\n');
}
-/** 构造操练场消息 patch:generatedImages + markdown 正文 */
+/** 构造体验馆消息 patch:generatedImages + markdown 正文 */
export function buildImageMessageContentPatch(sources) {
const images = dedupeImageSources(sources);
if (!images.length) return null;
diff --git a/web/src/helpers/playgroundVideoUtils.js b/web/src/helpers/playgroundVideoUtils.js
index 0cb64e3..2fb4376 100644
--- a/web/src/helpers/playgroundVideoUtils.js
+++ b/web/src/helpers/playgroundVideoUtils.js
@@ -104,7 +104,7 @@ export function applyVideoFrameMetadata(metadata, imageUrls) {
}
/**
- * 操练场 metadata.input:只传 prompt,media.type 由后端 alivideo adaptor 按模型规范化。
+ * 体验馆 metadata.input:只传 prompt,media.type 由后端 alivideo adaptor 按模型规范化。
*/
export function buildVideoNativeInput(prompt) {
return { prompt: String(prompt || '').trim() };
diff --git a/web/src/helpers/render.jsx b/web/src/helpers/render.jsx
index 2609041..0457d0e 100644
--- a/web/src/helpers/render.jsx
+++ b/web/src/helpers/render.jsx
@@ -190,6 +190,8 @@ export function getLucideIcon(key, selected = false) {
return ;
case 'operation-log':
return ;
+ case 'benchmarks':
+ return ;
default:
return ;
}
diff --git a/web/src/hooks/common/useNavigation.js b/web/src/hooks/common/useNavigation.js
index 6cdb0f8..766324e 100644
--- a/web/src/hooks/common/useNavigation.js
+++ b/web/src/hooks/common/useNavigation.js
@@ -23,11 +23,10 @@ export const useNavigation = (t, docsNav, headerNavModules) => {
const mainNavLinks = useMemo(() => {
// 默认配置,如果没有传入配置则显示所有模块
const defaultModules = {
- home: true,
- console: true,
pricing: true,
+ console: true,
+ benchmark: true,
docs: true,
- about: true,
};
// 使用传入的配置或默认配置
@@ -35,9 +34,9 @@ export const useNavigation = (t, docsNav, headerNavModules) => {
const allLinks = [
{
- text: t('首页'),
- itemKey: 'home',
- to: '/',
+ text: t('模型'),
+ itemKey: 'pricing',
+ to: '/pricing',
},
{
text: t('控制台'),
@@ -45,9 +44,9 @@ export const useNavigation = (t, docsNav, headerNavModules) => {
to: '/console',
},
{
- text: t('模型广场'),
- itemKey: 'pricing',
- to: '/pricing',
+ text: t('评测'),
+ itemKey: 'benchmark',
+ to: '/benchmarks',
},
...(docsNav?.href
? [
@@ -60,11 +59,6 @@ export const useNavigation = (t, docsNav, headerNavModules) => {
},
]
: []),
- {
- text: t('关于'),
- itemKey: 'about',
- to: '/about',
- },
];
// 根据配置过滤导航链接
diff --git a/web/src/hooks/common/useSidebar.js b/web/src/hooks/common/useSidebar.js
index ac430f1..695f9a9 100644
--- a/web/src/hooks/common/useSidebar.js
+++ b/web/src/hooks/common/useSidebar.js
@@ -35,6 +35,7 @@ export const DEFAULT_SIDEBAR_CONFIG = {
},
console: {
enabled: true,
+ benchmarks: true,
detail: true,
token: true,
log: true,
diff --git a/web/src/hooks/playground/useDataLoader.js b/web/src/hooks/playground/useDataLoader.js
index 16ac69f..368264b 100644
--- a/web/src/hooks/playground/useDataLoader.js
+++ b/web/src/hooks/playground/useDataLoader.js
@@ -94,7 +94,7 @@ const normalizeTagList = (csv) => {
const hasTag = (csv, tag) => normalizeTagList(csv).includes(tag);
/**
- * 操练场数据加载:拉取用户模型与类型(与模型广场同源元数据)、按「全部/类型」在客户端筛模型(同模型广场逻辑),分组单独加载。
+ * 体验馆数据加载:拉取用户模型与类型(与模型广场同源元数据)、按「全部/类型」在客户端筛模型(同模型广场逻辑),分组单独加载。
* @param {{ user?: object }} userState 已登录用户状态
* @param {{ model?: string, model_type?: string|number, group?: string, selected_route_slug?: string }} inputs 当前表单/配置
* @param {Array<{ label: string, value: string|number }>} modelTypes 类型下拉项(与接口同步后的状态,用于按类型重算模型列表)
diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json
index f607464..023b57f 100644
--- a/web/src/i18n/locales/en.json
+++ b/web/src/i18n/locales/en.json
@@ -144,7 +144,7 @@
"AI模型配置": "AI model configuration",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "AK/SK mode uses AccessKey and SecretAccessKey; API Key mode uses an API Key",
"API": "API",
- "API Key": "The Api Key",
+ "API Key": "Token Management",
"API Key 模式下不支持批量创建": "Batch creation not supported in API Key mode",
"API Key 验证失败": "API Key verification failed",
"API Key 验证成功!连接到 io.net 服务正常": "API Key verification successful! Connection to io.net service is normal",
@@ -159,7 +159,7 @@
"API 时间窗口": "API Time Window",
"API 配置": "API Configuration",
"API 限制次数": "API Limits",
- "API令牌管理": "API token management",
+ "APIAPI Key": "API token management",
"API使用记录": "API usage records",
"API信息": "API Information",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "API information management, you can configure multiple API addresses for status display and load balancing (maximum 50)",
@@ -685,7 +685,6 @@
"令牌更新成功!": "Token updated successfully!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "The quota of the token is only used to limit the maximum quota usage of the token itself, and the actual usage is limited by the remaining quota of the account",
"令牌端点": "Token Endpoint",
- "令牌管理": "Token Management",
"以下上游数据可能不可信:": "The following upstream data may not be reliable: ",
"以下文件解析失败,已忽略:{{list}}": "The following files failed to parse and have been ignored: {{list}}",
"以及": "and",
@@ -1167,7 +1166,7 @@
"刷新缓存统计失败": "Failed to refresh cache statistics",
"前往": "Pergi ke",
"前往 io.net API Keys": "Go to io.net API Keys",
- "前往令牌管理": "Go to token management",
+ "前往API Key": "Go to token management",
"前往倍率设置": "Go to magnification settings",
"前往创建令牌": "Go to Create Token",
"前往申请": "Go to Apply",
@@ -2340,8 +2339,8 @@
"操作暂时被禁用": "Operation temporarily disabled",
"操作确认": "Operation confirmation",
"操作类型": "Operation Type",
- "操练场": "Playground",
- "操练场和聊天功能": "Playground and chat functions",
+ "体验馆": "Playground",
+ "体验馆和聊天功能": "Playground and chat functions",
"支付": "Pay",
"支付地址": "Payment address",
"支付失败": "Payment failed",
@@ -4246,7 +4245,7 @@
"视频本地按 token 计费": "Video billed locally by estimated tokens",
"视频本地按条/分辨率计价": "Video billed locally per clip / resolution",
"视频模式支持图片或视频 URL 作为素材": "Video mode supports image or video URLs as elements",
- "操练场视频素材提示": "Image URLs: 1st = first frame, 2 = first+last frame, 3+ = first, references in between, last = final frame. Video URLs: included when filled. Empty fields are omitted from the request.",
+ "体验馆视频素材提示": "Image URLs: 1st = first frame, 2 = first+last frame, 3+ = first, references in between, last = final frame. Video URLs: included when filled. Empty fields are omitted from the request.",
"视频地址": "Video URL",
"视频生成": "Video Generation",
"视频生成中,请稍后": "Generating video, please wait",
@@ -5673,6 +5672,14 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "让每位 AI 创造者,": "For every AI creator,",
+ "少走一步弯路": "one less detour",
+ "兼容 OpenAI / Claude / Gemini 等协议,覆盖文本、图像、视频、语音,智能路由,统一计费。": "Compatible with OpenAI, Claude, Gemini, and more. Covers text, image, video, and voice with intelligent routing and unified billing.",
+ "开始使用": "Get Started",
+ "查看价格": "View Pricing",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/fr.json b/web/src/i18n/locales/fr.json
index 34a9927..75e1f54 100644
--- a/web/src/i18n/locales/fr.json
+++ b/web/src/i18n/locales/fr.json
@@ -143,7 +143,7 @@
"AI模型配置": "Configuration du modèle d'IA",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "Mode AK/SK : utiliser AccessKey et SecretAccessKey ; mode API Key : utiliser API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "Jetons",
"API Key 模式下不支持批量创建": "Création en lot non prise en charge en mode clé API",
"API Key 验证失败": "API Key verification failed",
"API Key 验证成功!连接到 io.net 服务正常": "API Key verification successful! Connection to io.net service is normal",
@@ -158,7 +158,7 @@
"API 时间窗口": "Fenêtre de temps API",
"API 配置": "Config. API",
"API 限制次数": "Nombre limite API",
- "API令牌管理": "Jetons API",
+ "APIAPI Key": "Jetons API",
"API使用记录": "Journaux d'API",
"API信息": "Informations sur l'API",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "Infos API, vous pouvez configurer plusieurs adresses d'API pour l'affichage de l'état et l'équilibrage de charge (maximum 50)",
@@ -660,7 +660,6 @@
"令牌更新成功!": "Jeton mis à jour avec succès !",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "Le quota du jeton est uniquement utilisé pour limiter l'utilisation maximale du quota du jeton lui-même, et l'utilisation réelle est limitée par le quota restant du compte",
"令牌端点": "Token Endpoint",
- "令牌管理": "Jetons",
"以下上游数据可能不可信:": "Les données en amont suivantes peuvent ne pas être fiables : ",
"以下文件解析失败,已忽略:{{list}}": "L'analyse des fichiers suivants a échoué, ignorés : {{list}}",
"以及": "et",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "Échec de l'actualisation des statistiques du cache",
"前往": "Pergi ke",
"前往 io.net API Keys": "Go to io.net API Keys",
- "前往令牌管理": "Accédez à la gestion token",
+ "前往API Key": "Accédez à la gestion token",
"前往倍率设置": "Accédez aux paramètres de grossissement",
"前往创建令牌": "Allez dans Créer un jeton",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "Opération temporairement désactivée",
"操作确认": "Operation confirmation",
"操作类型": "Type d'opération",
- "操练场": "Terrain de jeu",
- "操练场和聊天功能": "Terrain de jeu et fonctions de discussion",
+ "体验馆": "Terrain de jeu",
+ "体验馆和聊天功能": "Terrain de jeu et fonctions de discussion",
"支付": "Payer",
"支付地址": "Adresse de paiement",
"支付失败": "Paiement échoué",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/id.json b/web/src/i18n/locales/id.json
index cfee086..f1df17f 100644
--- a/web/src/i18n/locales/id.json
+++ b/web/src/i18n/locales/id.json
@@ -143,7 +143,7 @@
"AI模型配置": "Konfigurasi model AI",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "Mode AK/SK memakai AccessKey dan SecretAccessKey; mode API Key memakai API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "Manajemen token",
"API Key 模式下不支持批量创建": "Pembuatan massal tidak didukung dalam mode API Key",
"API Key 验证失败": "Verifikasi API Key gagal",
"API Key 验证成功!连接到 io.net 服务正常": "Verifikasi API Key berhasil! Koneksi ke layanan io.net normal",
@@ -158,7 +158,7 @@
"API 时间窗口": "Jendela waktu API",
"API 配置": "Konfigurasi API",
"API 限制次数": "Batas waktu API",
- "API令牌管理": "Manajemen token API",
+ "APIAPI Key": "Manajemen token API",
"API使用记录": "Riwayat penggunaan API",
"API信息": "Informasi API",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "Manajemen info API: konfigurasi beberapa alamat API untuk status dan load balancing (maks. 50)",
@@ -660,7 +660,6 @@
"令牌更新成功!": "Token berhasil diperbarui!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "Kuota token hanya membatasi penggunaan kuota maksimum token itu sendiri; penggunaan aktual dibatasi sisa kuota akun",
"令牌端点": "Endpoint token",
- "令牌管理": "Manajemen token",
"以下上游数据可能不可信:": "Data hulu berikut mungkin tidak dapat dipercaya: ",
"以下文件解析失败,已忽略:{{list}}": "File berikut gagal di-parse dan diabaikan: {{list}}",
"以及": "dan",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "Gagal menyegarkan statistik cache",
"前往": "Pergi ke",
"前往 io.net API Keys": "Buka io.net API Keys",
- "前往令牌管理": "Buka manajemen token",
+ "前往API Key": "Buka manajemen token",
"前往倍率设置": "Buka pengaturan pembesaran",
"前往创建令牌": "Pergi untuk membuat token",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "Operasi sementara dinonaktifkan",
"操作确认": "Konfirmasi operasi",
"操作类型": "Jenis operasi",
- "操练场": "Arena latihan",
- "操练场和聊天功能": "Arena latihan dan fungsi obrolan",
+ "体验馆": "Arena latihan",
+ "体验馆和聊天功能": "Arena latihan dan fungsi obrolan",
"支付": "Bayar",
"支付地址": "Alamat pembayaran",
"支付失败": "Pembayaran gagal",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/ja.json b/web/src/i18n/locales/ja.json
index 0b2c823..e94d23c 100644
--- a/web/src/i18n/locales/ja.json
+++ b/web/src/i18n/locales/ja.json
@@ -143,7 +143,7 @@
"AI模型配置": "AIモデル設定",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "AK/SK モードでは AccessKey と SecretAccessKey を使用し、API Key モードでは API Key を使用します",
"API": "API",
- "API Key": "API Key",
+ "API Key": "トークン管理",
"API Key 模式下不支持批量创建": "APIキーモードでは一括作成はサポート対象外です",
"API Key 验证失败": "API Key の検証に失敗しました",
"API Key 验证成功!连接到 io.net 服务正常": "API Key の検証に成功しました。io.net サービスへの接続は正常です",
@@ -158,7 +158,7 @@
"API 时间窗口": "API 時間枠",
"API 配置": "API設定",
"API 限制次数": "API 制限回数",
- "API令牌管理": "APIトークン管理",
+ "APIAPI Key": "APIトークン管理",
"API使用记录": "API利用履歴",
"API信息": "API情報",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "API情報管理:ステータス表示とロードバランシング用に、複数のベースURL(最大50個)を設定できます",
@@ -660,7 +660,6 @@
"令牌更新成功!": "トークンの更新に成功しました",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "トークンのクォータは、トークン自体の最大クォータ使用量を制限するためにのみ使用され、実際の使用量はアカウントの残りクォータによって制限されます",
"令牌端点": "Token Endpoint",
- "令牌管理": "トークン管理",
"以下上游数据可能不可信:": "以下のアップストリームデータは信頼できない可能性があります:",
"以下文件解析失败,已忽略:{{list}}": "以下のファイルは解析に失敗したため無視されました:{{list}}",
"以及": "および",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "キャッシュ統計の更新に失敗しました",
"前往": "前往",
"前往 io.net API Keys": "Go to io.net API Keys",
- "前往令牌管理": "前往令牌管理",
+ "前往API Key": "前往API Key",
"前往倍率设置": "前往倍率設定",
"前往创建令牌": "前往创建令牌",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "この操作は一時的に無効にされています",
"操作确认": "Operation confirmation",
"操作类型": "操作タイプ",
- "操练场": "Playground",
- "操练场和聊天功能": "プレイグラウンドとチャット機能",
+ "体验馆": "Playground",
+ "体验馆和聊天功能": "プレイグラウンドとチャット機能",
"支付": "支払う",
"支付地址": "決済URL",
"支付失败": "支払いに失敗しました",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/ms.json b/web/src/i18n/locales/ms.json
index bf866d8..5ab304a 100644
--- a/web/src/i18n/locales/ms.json
+++ b/web/src/i18n/locales/ms.json
@@ -143,7 +143,7 @@
"AI模型配置": "Konfigurasi model AI",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "Mod AK/SK menggunakan AccessKey dan SecretAccessKey; mod API Key menggunakan API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "Pengurusan token",
"API Key 模式下不支持批量创建": "Penciptaan pukal tidak disokong dalam mod API Key",
"API Key 验证失败": "Pengesahan API Key gagal",
"API Key 验证成功!连接到 io.net 服务正常": "Pengesahan API Key berjaya! Sambungan ke perkhidmatan io.net normal",
@@ -158,7 +158,7 @@
"API 时间窗口": "Tetingkap masa API",
"API 配置": "Konfigurasi API",
"API 限制次数": "Masa had API",
- "API令牌管理": "Pengurusan token API",
+ "APIAPI Key": "Pengurusan token API",
"API使用记录": "Rekod penggunaan API",
"API信息": "Maklumat API",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "Pengurusan maklumat API: konfigurasi beberapa alamat API untuk paparan status dan pengimbangan beban (maks. 50)",
@@ -660,7 +660,6 @@
"令牌更新成功!": "Token dikemas kini berjaya!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "Kuota token hanya mengehadkan penggunaan kuota maksimum token itu sendiri; penggunaan sebenar terhad oleh baki kuota akaun",
"令牌端点": "Endpoint token",
- "令牌管理": "Pengurusan token",
"以下上游数据可能不可信:": "Data hulu berikut mungkin tidak boleh dipercayai: ",
"以下文件解析失败,已忽略:{{list}}": "Fail berikut gagal dihuraikan dan diabaikan: {{list}}",
"以及": "dan",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "Gagal menyegar semula statistik cache",
"前往": "Pergi ke",
"前往 io.net API Keys": "Pergi ke io.net API Keys",
- "前往令牌管理": "Pergi ke pengurusan token",
+ "前往API Key": "Pergi ke pengurusan token",
"前往倍率设置": "Pergi ke tetapan pembesaran",
"前往创建令牌": "Pergi untuk mencipta token",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "Operasi dilumpuhkan buat sementara",
"操作确认": "Pengesahan operasi",
"操作类型": "Jenis operasi",
- "操练场": "Padang latihan",
- "操练场和聊天功能": "Padang latihan dan fungsi sembang",
+ "体验馆": "Padang latihan",
+ "体验馆和聊天功能": "Padang latihan dan fungsi sembang",
"支付": "Bayar",
"支付地址": "Alamat pembayaran",
"支付失败": "Pembayaran gagal",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/ru.json b/web/src/i18n/locales/ru.json
index ecbf543..2fa98fa 100644
--- a/web/src/i18n/locales/ru.json
+++ b/web/src/i18n/locales/ru.json
@@ -143,7 +143,7 @@
"AI模型配置": "Конфигурация AI моделей",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "Режим AK/SK: используйте AccessKey и SecretAccessKey; режим API Key: используйте API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "Управление токенами",
"API Key 模式下不支持批量创建": "Режим API Key не поддерживает массовое создание",
"API Key 验证失败": "API Key verification failed",
"API Key 验证成功!连接到 io.net 服务正常": "API Key verification successful! Connection to io.net service is normal",
@@ -158,7 +158,7 @@
"API 时间窗口": "API временной интервал",
"API 配置": "Конфигурация API",
"API 限制次数": "API Ограничить количество раз",
- "API令牌管理": "Управление токенами API",
+ "APIAPI Key": "Управление токенами API",
"API使用记录": "История использования API",
"API信息": "Информация об API",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "Управление информацией API, можно настроить несколько адресов API для отображения статуса и балансировки нагрузки (максимум 50)",
@@ -660,7 +660,6 @@
"令牌更新成功!": "Токен успешно обновлен!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "Лимит токена используется только для ограничения максимального использования самого токена, фактическое использование ограничено остаточным лимитом аккаунта",
"令牌端点": "Token Endpoint",
- "令牌管理": "Управление токенами",
"以下上游数据可能不可信:": "Следующие upstream данные могут быть недостоверными:",
"以下文件解析失败,已忽略:{{list}}": "Не удалось проанализировать следующие файлы, они проигнорированы: {{list}}",
"以及": "а также",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "Failed to refresh cache statistics",
"前往": "Перейти к",
"前往 io.net API Keys": "Go to io.net API Keys",
- "前往令牌管理": "Перейти к управлению токенами",
+ "前往API Key": "Перейти к управлению токенами",
"前往倍率设置": "Перейти к настройке увеличения",
"前往创建令牌": "Перейти к созданию токена",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "Операция временно отключена",
"操作确认": "Operation confirmation",
"操作类型": "Тип операции",
- "操练场": "Тренировочная площадка",
- "操练场和聊天功能": "Тренировочная площадка и чат-функции",
+ "体验馆": "Тренировочная площадка",
+ "体验馆和聊天功能": "Тренировочная площадка и чат-функции",
"支付": "Оплатить",
"支付地址": "Адрес оплаты",
"支付失败": "Оплата не удалась",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/sw.json b/web/src/i18n/locales/sw.json
index 97cbccf..06a05c8 100644
--- a/web/src/i18n/locales/sw.json
+++ b/web/src/i18n/locales/sw.json
@@ -143,7 +143,7 @@
"AI模型配置": "Usanidi wa mfano wa AI",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "Hali ya AK/SK inatumia AccessKey na SecretAccessKey; hali ya API Key inatumia API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "Usimamizi wa tokeni",
"API Key 模式下不支持批量创建": "Uundaji wa wingi hauauniwi katika hali ya API Key",
"API Key 验证失败": "Uthibitishaji wa API Key umeshindwa",
"API Key 验证成功!连接到 io.net 服务正常": "Uthibitishaji wa API Key umefanikiwa! Muunganisho kwa huduma ya io.net ni wa kawaida",
@@ -158,7 +158,7 @@
"API 时间窗口": "Dirisha la saa la API",
"API 配置": "Usanidi wa API",
"API 限制次数": "API idadi ya kikomo ya nyakati",
- "API令牌管理": "Usimamizi wa tokeni za API",
+ "APIAPI Key": "Usimamizi wa tokeni za API",
"API使用记录": "Rekodi za matumizi ya API",
"API信息": "Taarifa za API",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "Usimamizi wa taarifa za API: sanidi anwani nyingi za API kwa hali na usawa wa mzigo (kadiri ya juu 50)",
@@ -660,7 +660,6 @@
"令牌更新成功!": "Tokeni imesasishwa kwa mafanikio!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "Kiwango cha tokeni kinazuia matumizi ya juu ya tokeni hiyo; matumizi halisi yana mipaka ya kiwango kilichobaki cha akaunti",
"令牌端点": "Kituo cha tokeni",
- "令牌管理": "Usimamizi wa tokeni",
"以下上游数据可能不可信:": "Data ya juu ifuatayo inaweza kuwa si ya kuaminika: ",
"以下文件解析失败,已忽略:{{list}}": "Faili zifuatazo zilishindwa kuchanganuliwa na zimepuuzwa: {{list}}",
"以及": "na",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "Imeshindwa kuonyesha upya takwimu za akiba",
"前往": "Nenda kwa",
"前往 io.net API Keys": "Nenda kwa io.net API Keys",
- "前往令牌管理": "Nenda kwa usimamizi wa ishara",
+ "前往API Key": "Nenda kwa usimamizi wa ishara",
"前往倍率设置": "Nenda kwa mipangilio ya ukuzaji",
"前往创建令牌": "Nenda kuunda tokeni",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "Operesheni imezimwa kwa muda",
"操作确认": "Uthibitisho wa operesheni",
"操作类型": "Aina ya operesheni",
- "操练场": "Uwanja wa mazoezi",
- "操练场和聊天功能": "Uwanja wa mazoezi na mazungumzo",
+ "体验馆": "Uwanja wa mazoezi",
+ "体验馆和聊天功能": "Uwanja wa mazoezi na mazungumzo",
"支付": "Lipa",
"支付地址": "Anwani ya malipo",
"支付失败": "Malipo yameshindwa",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/th.json b/web/src/i18n/locales/th.json
index 5da7d98..9cb86cc 100644
--- a/web/src/i18n/locales/th.json
+++ b/web/src/i18n/locales/th.json
@@ -143,7 +143,7 @@
"AI模型配置": "การตั้งค่าโมเดล AI",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "โหมด AK/SK ใช้ AccessKey และ SecretAccessKey โหมด API Key ใช้ API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "การจัดการโทเค็น",
"API Key 模式下不支持批量创建": "โหมด API Key ไม่รองรับการสร้างแบบกลุ่ม",
"API Key 验证失败": "ตรวจสอบ API Key ล้มเหลว",
"API Key 验证成功!连接到 io.net 服务正常": "ตรวจสอบ API Key สำเร็จ! เชื่อมต่อบริการ io.net ปกติ",
@@ -158,7 +158,7 @@
"API 时间窗口": "กรอบเวลา API",
"API 配置": "การตั้งค่า API",
"API 限制次数": "API จำกัดจำนวนครั้ง",
- "API令牌管理": "จัดการโทเค็น API",
+ "APIAPI Key": "จัดการโทเค็น API",
"API使用记录": "บันทึกการใช้ API",
"API信息": "ข้อมูล API",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "จัดการข้อมูล API: ตั้งค่าหลายที่อยู่สำหรับแสดงสถานะและโหลดบาลานซ์ (สูงสุด 50)",
@@ -660,7 +660,6 @@
"令牌更新成功!": "อัปเดตโทเค็นสำเร็จ!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "โควตาโทเค็นจำกัดการใช้สูงสุดของโทเค็นนั้น การใช้งานจริงถูกจำกัดด้วยโควตาคงเหลือของบัญชี",
"令牌端点": "เอนด์พอยต์โทเค็น",
- "令牌管理": "การจัดการโทเค็น",
"以下上游数据可能不可信:": "ข้อมูลต้นทางต่อไปนี้อาจไม่น่าเชื่อถือ: ",
"以下文件解析失败,已忽略:{{list}}": "ไฟล์ต่อไปนี้แยกวิเคราะห์ล้มเหลวและถูกข้าม: {{list}}",
"以及": "และ",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "รีเฟรชสถิติแคชล้มเหลว",
"前往": "ไปที่",
"前往 io.net API Keys": "ไปที่ io.net API Keys",
- "前往令牌管理": "ไปที่การจัดการโทเค็น",
+ "前往API Key": "ไปที่การจัดการโทเค็น",
"前往倍率设置": "ไปที่การตั้งค่าการขยาย",
"前往创建令牌": "ไปสร้างโทเค็น",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "การดำเนินการถูกปิดชั่วคราว",
"操作确认": "ยืนยันการดำเนินการ",
"操作类型": "ประเภทการดำเนินการ",
- "操练场": "สนามฝึก",
- "操练场和聊天功能": "สนามฝึกและแชท",
+ "体验馆": "สนามฝึก",
+ "体验馆和聊天功能": "สนามฝึกและแชท",
"支付": "ชำระเงิน",
"支付地址": "ที่อยู่การชำระเงิน",
"支付失败": "ชำระเงินไม่สำเร็จ",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/vi.json b/web/src/i18n/locales/vi.json
index 690f91f..9fb89e0 100644
--- a/web/src/i18n/locales/vi.json
+++ b/web/src/i18n/locales/vi.json
@@ -143,7 +143,7 @@
"AI模型配置": "Cấu hình mô hình AI",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "AK/SK mode uses AccessKey and SecretAccessKey; API Key mode uses an API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "Quản lý mã thông báo",
"API Key 模式下不支持批量创建": "Không hỗ trợ tạo hàng loạt trong chế độ API Key",
"API Key 验证失败": "API Key verification failed",
"API Key 验证成功!连接到 io.net 服务正常": "API Key verification successful! Connection to io.net service is normal",
@@ -158,7 +158,7 @@
"API 时间窗口": "API cửa sổ thời gian",
"API 配置": "Cấu hình API",
"API 限制次数": "API Giới hạn số lần",
- "API令牌管理": "Quản lý mã thông báo API",
+ "APIAPI Key": "Quản lý mã thông báo API",
"API使用记录": "Hồ sơ sử dụng API",
"API信息": "Thông tin API",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "Quản lý thông tin API, bạn có thể cấu hình nhiều địa chỉ API để hiển thị trạng thái và cân bằng tải (tối đa 50)",
@@ -660,7 +660,6 @@
"令牌更新成功!": "Cập nhật mã thông báo thành công!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "Hạn ngạch của mã thông báo chỉ được sử dụng để giới hạn mức sử dụng hạn ngạch tối đa của chính mã thông báo, và việc sử dụng thực tế bị giới hạn bởi hạn ngạch còn lại của tài khoản",
"令牌端点": "Token Endpoint",
- "令牌管理": "Quản lý mã thông báo",
"以下上游数据可能不可信:": "Dữ liệu thượng nguồn sau đây có thể không đáng tin cậy: ",
"以下文件解析失败,已忽略:{{list}}": "Các tệp sau không phân tích được và đã bị bỏ qua: {{list}}",
"以及": "và",
@@ -1137,7 +1136,7 @@
"刷新缓存统计失败": "Làm mới thống kê bộ nhớ đệm thất bại",
"前往": "Đi tới",
"前往 io.net API Keys": "Go to io.net API Keys",
- "前往令牌管理": "Chuyển đến Quản lý mã thông báo",
+ "前往API Key": "Chuyển đến Quản lý mã thông báo",
"前往倍率设置": "Chuyển đến cài đặt phóng to",
"前往创建令牌": "Đi tới Tạo mã thông báo",
"前往申请": "Go to Apply",
@@ -2307,8 +2306,8 @@
"操作暂时被禁用": "Thao tác tạm thời bị vô hiệu hóa",
"操作确认": "Operation confirmation",
"操作类型": "Loại thao tác",
- "操练场": "Sân chơi",
- "操练场和聊天功能": "Chức năng sân chơi và trò chuyện",
+ "体验馆": "Sân chơi",
+ "体验馆和聊天功能": "Chức năng sân chơi và trò chuyện",
"支付": "Thanh toán",
"支付地址": "Địa chỉ thanh toán",
"支付失败": "Thanh toán thất bại",
@@ -5584,6 +5583,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "Benchmarks",
+ "数据": "Data",
+ "页面正在建设中...": "Page under construction..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/zh-CN.json b/web/src/i18n/locales/zh-CN.json
index 46e15cf..1474341 100644
--- a/web/src/i18n/locales/zh-CN.json
+++ b/web/src/i18n/locales/zh-CN.json
@@ -58,7 +58,7 @@
"API 密钥": "API 密钥",
"API 文档": "API 文档",
"API 配置": "API 配置",
- "API令牌管理": "API令牌管理",
+ "APIAPI Key": "APIAPI Key",
"API使用记录": "API使用记录",
"API信息": "API信息",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)",
@@ -315,7 +315,6 @@
"令牌已重置并已复制到剪贴板": "令牌已重置并已复制到剪贴板",
"令牌更新成功!": "令牌更新成功!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制",
- "令牌管理": "令牌管理",
"以下上游数据可能不可信:": "以下上游数据可能不可信:",
"以下文件解析失败,已忽略:{{list}}": "以下文件解析失败,已忽略:{{list}}",
"以及": "以及",
@@ -1269,8 +1268,8 @@
"操作失败,请重试": "操作失败,请重试",
"操作成功完成!": "操作成功完成!",
"操作暂时被禁用": "操作暂时被禁用",
- "操练场": "操练场",
- "操练场和聊天功能": "操练场和聊天功能",
+ "体验馆": "体验馆",
+ "体验馆和聊天功能": "体验馆和聊天功能",
"支付地址": "支付地址",
"支付宝": "支付宝",
"支付方式": "支付方式",
@@ -4748,7 +4747,7 @@
"刷新临时黑名单": "刷新临时黑名单",
"刷新状态": "刷新状态",
"前往": "前往",
- "前往令牌管理": "前往令牌管理",
+ "前往API Key": "前往API Key",
"前往倍率设置": "前往倍率设置",
"前往创建令牌": "前往创建令牌",
"前置": "前置",
@@ -5286,7 +5285,7 @@
"视频数量": "视频数量",
"视频时长(秒)": "视频时长(秒)",
"视频模式支持图片或视频 URL 作为素材": "视频模式支持图片或视频 URL 作为素材",
- "操练场视频素材提示": "图片地址:第 1 张为首帧,2 张为首尾帧,更多张时最后一张为尾帧。视频地址:填写则作为源视频参与生成。未填写的字段不会加入请求。",
+ "体验馆视频素材提示": "图片地址:第 1 张为首帧,2 张为首尾帧,更多张时最后一张为尾帧。视频地址:填写则作为源视频参与生成。未填写的字段不会加入请求。",
"视频地址": "视频地址",
"视频生成": "视频生成",
"视频生成中,请稍后": "视频生成中,请稍后",
@@ -5532,6 +5531,14 @@
"沙箱环境 APIv3 密钥": "沙箱环境 APIv3 密钥",
"沙箱环境商户私钥": "沙箱环境商户私钥",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "请确保已配置 APIv3 密钥,并下载商户证书序列号。",
- "可选,留空则使用默认地址": "可选,留空则使用默认地址"
+ "可选,留空则使用默认地址": "可选,留空则使用默认地址",
+ "评测": "评测",
+ "数据": "数据",
+ "让每位 AI 创造者,": "让每位 AI 创造者,",
+ "少走一步弯路": "少走一步弯路",
+ "兼容 OpenAI / Claude / Gemini 等协议,覆盖文本、图像、视频、语音,智能路由,统一计费。": "兼容 OpenAI / Claude / Gemini 等协议,覆盖文本、图像、视频、语音,智能路由,统一计费。",
+ "开始使用": "开始使用",
+ "查看价格": "查看价格",
+ "页面正在建设中...": "页面正在建设中..."
}
}
\ No newline at end of file
diff --git a/web/src/i18n/locales/zh-TW.json b/web/src/i18n/locales/zh-TW.json
index 06bcb80..4afb51f 100644
--- a/web/src/i18n/locales/zh-TW.json
+++ b/web/src/i18n/locales/zh-TW.json
@@ -142,7 +142,7 @@
"AI模型配置": "AI模型配置",
"AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key": "AK/SK 模式:使用 AccessKey 和 SecretAccessKey;API Key 模式:使用 API Key",
"API": "API",
- "API Key": "API Key",
+ "API Key": "權杖管理",
"API Key 模式下不支持批量创建": "API Key 模式下不支援批量建立",
"API Key 验证失败": "API Key 驗證失敗",
"API Key 验证成功!连接到 io.net 服务正常": "API Key 驗證成功!連線到 io.net 服務正常",
@@ -157,7 +157,7 @@
"API 时间窗口": "API 時間視窗",
"API 配置": "API 配置",
"API 限制次数": "API 限制次數",
- "API令牌管理": "API權杖管理",
+ "APIAPI Key": "API權杖管理",
"API使用记录": "API使用紀錄",
"API信息": "API資訊",
"API信息管理,可以配置多个API地址用于状态展示和负载均衡(最多50个)": "API資訊管理,可以配置多個API位址用於狀態顯示和負載平衡(最多50個)",
@@ -659,7 +659,6 @@
"令牌更新成功!": "權杖更新成功!",
"令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "權杖的額度僅用於限制權杖本身的最大額度使用量,實際的使用受到帳號的剩餘額度限制",
"令牌端点": "權杖端點",
- "令牌管理": "權杖管理",
"以下上游数据可能不可信:": "以下上游資料可能不可信:",
"以下文件解析失败,已忽略:{{list}}": "以下檔案解析失敗,已忽略:{{list}}",
"以及": "以及",
@@ -1136,7 +1135,7 @@
"刷新缓存统计失败": "刷新快取統計失敗",
"前往": "前往",
"前往 io.net API Keys": "前往 io.net API Keys",
- "前往令牌管理": "前往權杖管理",
+ "前往API Key": "前往權杖管理",
"前往倍率设置": "前往倍率設定",
"前往创建令牌": "前往建立權杖",
"前往申请": "前往申請",
@@ -2306,8 +2305,8 @@
"操作暂时被禁用": "操作暫時被禁用",
"操作确认": "操作確認",
"操作类型": "操作類型",
- "操练场": "操練場",
- "操练场和聊天功能": "操練場和聊天功能",
+ "体验馆": "操練場",
+ "体验馆和聊天功能": "操練場和聊天功能",
"支付": "付款",
"支付地址": "付款位址",
"支付失败": "付款失敗",
@@ -5583,6 +5582,9 @@
"沙箱环境 APIv3 密钥": "APIv3 key for sandbox environment",
"沙箱环境商户私钥": "Sandbox Merchant Private Key",
"请确保已配置 APIv3 密钥,并下载商户证书序列号。": "Please ensure the APIv3 key is configured and the merchant certificate serial number is downloaded.",
- "可选,留空则使用默认地址": "Optional, leave blank to use default URL"
+ "可选,留空则使用默认地址": "Optional, leave blank to use default URL",
+ "评测": "评测",
+ "数据": "数据",
+ "页面正在建设中...": "页面正在建设中..."
}
}
\ No newline at end of file
diff --git a/web/src/index.css b/web/src/index.css
index 7757cad..7b07468 100644
--- a/web/src/index.css
+++ b/web/src/index.css
@@ -1,4 +1,78 @@
+/* ==================== TokenDance Design System (shadcn/ui CSS Variables) ==================== */
+/* 这些变量叠加在 Semi Design 之上,供新的 shadcn 风格组件使用 */
+
+:root {
+ /* shadcn/ui 基础色板 — Slate 中性色调 (220° hue) */
+ --background: 0 0% 100%;
+ --foreground: 240 10% 3.9%;
+ --card: 0 0% 100%;
+ --card-foreground: 240 10% 3.9%;
+ --popover: 0 0% 100%;
+ --popover-foreground: 240 10% 3.9%;
+ --primary: 0 0% 9%;
+ --primary-foreground: 0 0% 98%;
+ --secondary: 220 5% 96%;
+ --secondary-foreground: 220 6% 10%;
+ --muted: 220 5% 96%;
+ --muted-foreground: 220 4% 56%;
+ --accent: 220 5% 96%;
+ --accent-foreground: 220 6% 10%;
+ --destructive: 0 84.2% 60.2%;
+ --destructive-foreground: 0 0% 98%;
+ --border: 220 13% 91%;
+ --input: 220 13% 91%;
+ --ring: 0 0% 9%;
+ --radius: 0.5rem;
+ --link: 0 0% 9%;
+ --link-hover: 0 0% 20%;
+ --chart-1: 160 60% 45%;
+ --chart-2: 217 91% 60%;
+ --chart-3: 43 96% 56%;
+ --chart-4: 280 65% 60%;
+ --chart-5: 340 75% 55%;
+}
+
+.dark {
+ --background: 240 10% 3.9%;
+ --foreground: 0 0% 98%;
+ --card: 240 10% 3.9%;
+ --card-foreground: 0 0% 98%;
+ --popover: 240 10% 3.9%;
+ --popover-foreground: 0 0% 98%;
+ --primary: 0 0% 98%;
+ --primary-foreground: 0 0% 9%;
+ --secondary: 220 4% 16%;
+ --secondary-foreground: 0 0% 98%;
+ --muted: 220 4% 16%;
+ --muted-foreground: 220 5% 65%;
+ --accent: 220 4% 16%;
+ --accent-foreground: 0 0% 98%;
+ --destructive: 0 62.8% 30.6%;
+ --destructive-foreground: 0 0% 98%;
+ --border: 220 4% 16%;
+ --input: 220 4% 16%;
+ --ring: 222 56% 55%;
+ --link: 222 56% 65%;
+ --link-hover: 222 56% 55%;
+ --chart-1: 160 60% 45%;
+ --chart-2: 217 91% 60%;
+ --chart-3: 43 96% 56%;
+ --chart-4: 280 65% 60%;
+ --chart-5: 340 75% 55%;
+}
+
+/* 全局基础样式 — 使用新字体族 */
+body {
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
+ color: hsl(var(--foreground));
+ background-color: hsl(var(--background));
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
/* ==================== Tailwind CSS 配置 ==================== */
+
+/* ==================== Tailwind CSS 閰嶇疆 ==================== */
@layer tailwind-base, semi, tailwind-components, tailwind-utils;
@layer tailwind-base {
@@ -13,7 +87,7 @@
@tailwind utilities;
}
-/* ==================== 全局基础样式 ==================== */
+/* ==================== 鍏ㄥ眬鍩虹鏍峰紡 ==================== */
:root {
--sidebar-width: 180px;
--sidebar-width-collapsed: 60px;
@@ -24,14 +98,9 @@ body.sidebar-collapsed {
--sidebar-current-width: var(--sidebar-width-collapsed);
}
-body {
- font-family:
- Lato, 'Helvetica Neue', Arial, Helvetica, 'Microsoft YaHei', sans-serif;
- color: var(--semi-color-text-0);
- background-color: var(--semi-color-bg-0);
-}
-/* 桌面端禁止 body 纵向滚动 - 防止 VChart tooltip 触发页面滚动条 */
+
+/* 妗岄潰绔姝?body 绾靛悜婊氬姩 - 闃叉 VChart tooltip 瑙﹀彂椤甸潰婊氬姩鏉?*/
@media (min-width: 768px) {
body {
overflow-y: hidden;
@@ -49,15 +118,13 @@ body {
}
/*
- * 操练场 /console/playground:iOS Safari 点击后地址栏收起会使 100vh 变大,底部区域被「顶高」。
- * 使用 svh(小视口)为主高度,避免随 UI 变化跳变;无 svh 的浏览器回退 100vh。
- */
+ * 鎿嶇粌鍦?/console/playground锛歩OS Safari 鐐瑰嚮鍚庡湴鍧€鏍忔敹璧蜂細浣?100vh 鍙樺ぇ锛屽簳閮ㄥ尯鍩熻銆岄《楂樸€嶃€? * 浣跨敤 svh锛堝皬瑙嗗彛锛変负涓婚珮搴︼紝閬垮厤闅?UI 鍙樺寲璺冲彉锛涙棤 svh 鐨勬祻瑙堝櫒鍥為€€ 100vh銆? */
.playground-shell-h {
height: calc(100vh - 66px);
height: calc(100svh - 66px);
}
-/* iOS:输入框字号小于 16px 时聚焦会强制缩放页面 */
+/* iOS锛氳緭鍏ユ瀛楀彿灏忎簬 16px 鏃惰仛鐒︿細寮哄埗缂╂斁椤甸潰 */
@media (max-width: 767px) {
.playground-shell-h textarea,
.playground-shell-h input:not([type='checkbox']):not([type='radio']):not(
@@ -72,7 +139,7 @@ code {
source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
}
-/* ==================== 布局相关样式 ==================== */
+/* ==================== 甯冨眬鐩稿叧鏍峰紡 ==================== */
.semi-layout::-webkit-scrollbar,
.semi-layout-content::-webkit-scrollbar,
.semi-sider::-webkit-scrollbar {
@@ -88,7 +155,7 @@ code {
scrollbar-width: none;
}
-/* ==================== 导航和侧边栏样式 ==================== */
+/* ==================== 瀵艰埅鍜屼晶杈规爮鏍峰紡 ==================== */
.semi-navigation-item {
margin-bottom: 4px !important;
padding: 4px 12px !important;
@@ -138,7 +205,7 @@ code {
font-weight: 600 !important;
}
-/* 自定义侧边栏样式 */
+/* 鑷畾涔変晶杈规爮鏍峰紡 */
.sidebar-container {
height: 100%;
display: flex;
@@ -166,7 +233,7 @@ code {
display: none;
}
-/* 侧边栏导航项样式 */
+/* 渚ц竟鏍忓鑸」鏍峰紡 */
.sidebar-nav-item {
border-radius: 6px;
margin: 3px 8px;
@@ -185,7 +252,7 @@ code {
font-weight: 500;
}
-/* 图标容器样式 */
+/* 鍥炬爣瀹瑰櫒鏍峰紡 */
.sidebar-icon-container {
width: 22px;
height: 22px;
@@ -207,13 +274,13 @@ code {
transition: all 0.2s ease;
}
-/* 分割线样式 */
+/* 鍒嗗壊绾挎牱寮?*/
.sidebar-divider {
margin: 4px 8px;
opacity: 0.15;
}
-/* 分组标签样式 */
+/* 鍒嗙粍鏍囩鏍峰紡 */
.sidebar-group-label {
padding: 4px 15px 8px;
color: var(--semi-color-text-2);
@@ -223,7 +290,7 @@ code {
opacity: 0.8;
}
-/* 底部折叠按钮 */
+/* 搴曢儴鎶樺彔鎸夐挳 */
.sidebar-collapse-button {
display: flex;
justify-content: center;
@@ -256,7 +323,7 @@ code {
transition: transform 0.3s ease;
}
-/* 侧边栏区域容器 */
+/* 渚ц竟鏍忓尯鍩熷鍣?*/
.sidebar-section {
padding-top: 12px;
}
@@ -277,7 +344,7 @@ code {
}
}
-/* ==================== 聊天界面样式 ==================== */
+/* ==================== 鑱婂ぉ鐣岄潰鏍峰紡 ==================== */
.semi-chat {
padding-top: 0 !important;
padding-bottom: 0 !important;
@@ -304,7 +371,7 @@ code {
overflow-wrap: break-word !important;
}
-/* playground 聊天气泡宽度限制,避免媒体内容把外层容器撑满 */
+/* playground 鑱婂ぉ姘旀场瀹藉害闄愬埗锛岄伩鍏嶅獟浣撳唴瀹规妸澶栧眰瀹瑰櫒鎾戞弧 */
.semi-chat .semi-chat-chatBox-content {
max-width: min(100%, 780px) !important;
}
@@ -336,7 +403,7 @@ code {
font-size: 20px !important;
}
-/* 隐藏所有聊天相关区域的滚动条 */
+/* 闅愯棌鎵€鏈夎亰澶╃浉鍏冲尯鍩熺殑婊氬姩鏉?*/
.semi-chat::-webkit-scrollbar,
.semi-chat-chatBox::-webkit-scrollbar,
.semi-chat-chatBox-wrap::-webkit-scrollbar,
@@ -358,7 +425,7 @@ code {
scrollbar-width: none;
}
-/* ==================== 组件特定样式 ==================== */
+/* ==================== 缁勪欢鐗瑰畾鏍峰紡 ==================== */
/* SelectableButtonGroup */
.sbg-button .semi-button-content {
min-width: 0 !important;
@@ -478,7 +545,7 @@ html.dark .sbg-variant-green {
--semi-color-primary-light-active: rgba(52, 211, 153, 0.3);
}
-/* Tabs组件样式 */
+/* Tabs缁勪欢鏍峰紡 */
.semi-tabs-content {
padding: 0 !important;
height: calc(100% - 40px) !important;
@@ -494,7 +561,7 @@ html.dark .sbg-variant-green {
height: 100% !important;
}
-/* 表格样式 */
+/* 琛ㄦ牸鏍峰紡 */
.tableShow {
display: revert;
}
@@ -503,7 +570,7 @@ html.dark .sbg-variant-green {
display: none !important;
}
-/* 页脚样式 */
+/* 椤佃剼鏍峰紡 */
.custom-footer {
font-size: 1.1em;
}
@@ -511,7 +578,7 @@ html.dark .sbg-variant-green {
position: relative;
}
-/* 卡片内容容器通用样式 */
+/* 鍗$墖鍐呭瀹瑰櫒閫氱敤鏍峰紡 */
.card-content-container {
position: relative;
}
@@ -529,7 +596,7 @@ html.dark .sbg-variant-green {
transition: opacity 0.3s ease;
}
-/* ==================== 调试面板特定样式 ==================== */
+/* ==================== 璋冭瘯闈㈡澘鐗瑰畾鏍峰紡 ==================== */
.debug-panel .semi-tabs {
height: 100% !important;
display: flex !important;
@@ -545,8 +612,8 @@ html.dark .sbg-variant-green {
overflow: hidden !important;
}
-/* ==================== 滚动条样式统一管理 ==================== */
-/* 通用隐藏滚动条工具类 */
+/* ==================== 婊氬姩鏉℃牱寮忕粺涓€绠$悊 ==================== */
+/* 閫氱敤闅愯棌婊氬姩鏉″伐鍏风被 */
.scrollbar-hide {
-ms-overflow-style: none;
/* IE and Edge */
@@ -561,7 +628,7 @@ html.dark .sbg-variant-green {
/* Chrome, Safari, Opera */
}
-/* 表格滚动条样式 */
+/* 琛ㄦ牸婊氬姩鏉℃牱寮?*/
.semi-table-body::-webkit-scrollbar {
width: 6px;
height: 6px;
@@ -580,7 +647,7 @@ html.dark .sbg-variant-green {
background: transparent;
}
-/* 侧边抽屉滚动条样式 */
+/* 渚ц竟鎶藉眽婊氬姩鏉℃牱寮?*/
.semi-sidesheet-body::-webkit-scrollbar {
width: 6px;
height: 6px;
@@ -599,7 +666,7 @@ html.dark .sbg-variant-green {
background: transparent;
}
-/* 隐藏内容区域滚动条 */
+/* 闅愯棌鍐呭鍖哄煙婊氬姩鏉?*/
.pricing-scroll-hide,
.model-test-scroll,
.card-content-scroll,
@@ -623,7 +690,7 @@ html.dark .sbg-variant-green {
display: none;
}
-/* 图片列表滚动条样式 */
+/* 鍥剧墖鍒楄〃婊氬姩鏉℃牱寮?*/
.image-list-scroll::-webkit-scrollbar {
width: 6px;
height: 6px;
@@ -642,7 +709,7 @@ html.dark .sbg-variant-green {
background: transparent;
}
-/* ==================== 同步倍率 - 渠道选择器 ==================== */
+/* ==================== 鍚屾鍊嶇巼 - 娓犻亾閫夋嫨鍣?==================== */
.components-transfer-source-item,
.components-transfer-selected-item {
@@ -710,7 +777,7 @@ html.dark .sbg-variant-green {
color: var(--semi-color-text-0);
}
-/* ==================== 未读通知闪光效果 ==================== */
+/* ==================== 鏈閫氱煡闂厜鏁堟灉 ==================== */
@keyframes sweep-shine {
0% {
background-position: 200% 0;
@@ -752,7 +819,7 @@ html.dark .sbg-variant-green {
-webkit-text-fill-color: transparent;
}
-/* ==================== ScrollList 定制样式 ==================== */
+/* ==================== ScrollList 瀹氬埗鏍峰紡 ==================== */
.semi-scrolllist,
.semi-scrolllist * {
-ms-overflow-style: none;
@@ -777,7 +844,7 @@ html.dark .sbg-variant-green {
padding-right: 0 !important;
}
-/* ==================== Banner 背景模糊球 ==================== */
+/* ==================== Banner 鑳屾櫙妯$硦鐞?==================== */
.blur-ball {
position: absolute;
width: 360px;
@@ -805,7 +872,7 @@ html.dark .sbg-variant-green {
opacity: 0.4;
}
-/* 浅色主题下让模糊球更柔和 */
+/* 娴呰壊涓婚涓嬭妯$硦鐞冩洿鏌斿拰 */
html:not(.dark) .blur-ball-indigo {
opacity: 0.25;
}
@@ -820,12 +887,12 @@ html:not(.dark) .blur-ball-teal {
background: linear-gradient(180deg, #e8f0fe 0%, #ffffff 50%, #f8f9fa 100%);
}
-/* 浅色主题 - 清晰的渐变效果 */
+/* 娴呰壊涓婚 - 娓呮櫚鐨勬笎鍙樻晥鏋?*/
html:not(.dark) .home-banner-bg {
background: linear-gradient(180deg, #e8f0fe 0%, #ffffff 50%, #f8f9fa 100%);
}
-/* 暗色主题 */
+/* 鏆楄壊涓婚 */
html.dark .home-banner-bg {
background: linear-gradient(
180deg,
@@ -835,7 +902,7 @@ html.dark .home-banner-bg {
);
}
-/* 首页「申请成为代理」:扁平主色 + 轻微外圈光(无厚投影/内高光) */
+/* 棣栭〉銆岀敵璇锋垚涓轰唬鐞嗐€嶏細鎵佸钩涓昏壊 + 杞诲井澶栧湀鍏夛紙鏃犲帤鎶曞奖/鍐呴珮鍏夛級 */
@keyframes home-distributor-cta-glow {
0%,
100% {
@@ -883,7 +950,7 @@ html.dark .home-distributor-cta-btn {
}
}
-/* 首页分销招募条:轻量入场 + 悬停高亮 */
+/* 棣栭〉鍒嗛攢鎷涘嫙鏉★細杞婚噺鍏ュ満 + 鎮仠楂樹寒 */
@keyframes home-distributor-recruit-in {
from {
opacity: 0;
@@ -944,7 +1011,7 @@ html.dark .home-distributor-cta-btn {
z-index: 1;
}
-/* 代理申请页:标题区背景光斑 + 文案入场 */
+/* 浠g悊鐢宠椤碉細鏍囬鍖鸿儗鏅厜鏂?+ 鏂囨鍏ュ満 */
@keyframes distributor-apply-blob {
0%,
100% {
@@ -987,7 +1054,7 @@ html.dark .home-distributor-cta-btn {
isolation: isolate;
}
-/* 代理申请主卡片:整体渐变底 + 淡边线 + 轻立体光(上沿高光 / 下沿浅影) */
+/* 浠g悊鐢宠涓诲崱鐗囷細鏁翠綋娓愬彉搴?+ 娣¤竟绾?+ 杞荤珛浣撳厜锛堜笂娌块珮鍏?/ 涓嬫部娴呭奖锛?*/
.distributor-apply-main-card.semi-card {
background: linear-gradient(
152deg,
@@ -1016,7 +1083,7 @@ html.dark .home-distributor-cta-btn {
overflow: hidden;
}
-/* 分销申请 - 细滚动条(低对比、淡色):说明区独立滚动 或 窄屏整卡单列滚动 */
+/* 鍒嗛攢鐢宠 - 缁嗘粴鍔ㄦ潯锛堜綆瀵规瘮銆佹贰鑹诧級锛氳鏄庡尯鐙珛婊氬姩 鎴?绐勫睆鏁村崱鍗曞垪婊氬姩 */
.distributor-apply-intro-scroll,
.distributor-apply-card-stacked-scroll {
scrollbar-gutter: stable;
@@ -1069,7 +1136,7 @@ html.dark .home-distributor-cta-btn {
background-clip: padding-box;
}
-/* 代理申请页:固定主区域、避免外层滚动,仅卡片内部滚动 */
+/* 浠g悊鐢宠椤碉細鍥哄畾涓诲尯鍩熴€侀伩鍏嶅灞傛粴鍔紝浠呭崱鐗囧唴閮ㄦ粴鍔?*/
.distributor-apply-page-root {
position: fixed;
z-index: 1;
@@ -1174,7 +1241,7 @@ html.dark .distributor-apply-hero .distributor-apply-hero-icon {
) !important;
}
-/* 左/上:说明 与 右/下:表单 之间分隔线(高混入底色,比默认 border 更淡) */
+/* 宸?涓婏細璇存槑 涓?鍙?涓嬶細琛ㄥ崟 涔嬮棿鍒嗛殧绾匡紙楂樻贩鍏ュ簳鑹诧紝姣旈粯璁?border 鏇存贰锛?*/
.distributor-apply-panels-divider {
border-color: color-mix(
in srgb,
@@ -1214,20 +1281,20 @@ html.dark .distributor-apply-hero-orb--b {
}
}
-/* ==================== 卡片马卡龙模糊球(类封装) ==================== */
-/* 使用方式:给容器加上 with-pastel-balls 类即可,无需在 JSX 中插入额外节点 */
+/* ==================== 鍗$墖椹崱榫欐ā绯婄悆锛堢被灏佽锛?==================== */
+/* 浣跨敤鏂瑰紡锛氱粰瀹瑰櫒鍔犱笂 with-pastel-balls 绫诲嵆鍙紝鏃犻渶鍦?JSX 涓彃鍏ラ澶栬妭鐐?*/
.with-pastel-balls {
position: relative;
overflow: hidden;
- /* 默认变量(明亮模式) */
+ /* 榛樿鍙橀噺锛堟槑浜ā寮忥級 */
--pb1: #ffd1dc;
- /* 粉 */
+ /* 绮?*/
--pb2: #e5d4ff;
- /* 薰衣草 */
+ /* 钖拌。鑽?*/
--pb3: #d1fff6;
- /* 薄荷 */
+ /* 钖勮嵎 */
--pb4: #ffe5d9;
- /* 桃 */
+ /* 妗?*/
--pb-opacity: 0.55;
--pb-blur: 60px;
}
@@ -1248,27 +1315,27 @@ html.dark .distributor-apply-hero-orb--b {
transform: translateZ(0);
}
-/* 暗黑模式下更柔和的色彩和透明度 */
+/* 鏆楅粦妯″紡涓嬫洿鏌斿拰鐨勮壊褰╁拰閫忔槑搴?*/
html.dark .with-pastel-balls {
- /* 使用与明亮模式一致的“刚才那组”马卡龙色,但整体更柔和 */
+ /* 浣跨敤涓庢槑浜ā寮忎竴鑷寸殑鈥滃垰鎵嶉偅缁勨€濋┈鍗¢緳鑹诧紝浣嗘暣浣撴洿鏌斿拰 */
--pb1: #ffd1dc;
- /* 粉 */
+ /* 绮?*/
--pb2: #e5d4ff;
- /* 薰衣草 */
+ /* 钖拌。鑽?*/
--pb3: #d1fff6;
- /* 薄荷 */
+ /* 钖勮嵎 */
--pb4: #ffe5d9;
- /* 桃 */
+ /* 妗?*/
--pb-opacity: 0.36;
--pb-blur: 65px;
}
-/* 暗黑模式下用更柔和的混合模式避免突兀的高亮 */
+/* 鏆楅粦妯″紡涓嬬敤鏇存煍鍜岀殑娣峰悎妯″紡閬垮厤绐佸厐鐨勯珮浜?*/
html.dark .with-pastel-balls::before {
mix-blend-mode: screen;
}
-/* ==================== 表格卡片滚动设置 ==================== */
+/* ==================== 琛ㄦ牸鍗$墖婊氬姩璁剧疆 ==================== */
.table-scroll-card {
display: flex;
flex-direction: column;
@@ -1306,14 +1373,12 @@ html.dark .with-pastel-balls::before {
}
/*
- * 代理管理页:Tabs 标签栏与下方 Card 的间距。
- * 全局 `.semi-tabs-content { padding: 0 !important; }` 会盖掉子元素 margin,此处用更高优先级覆盖上内边距。
- */
+ * 浠g悊绠$悊椤碉細Tabs 鏍囩鏍忎笌涓嬫柟 Card 鐨勯棿璺濄€? * 鍏ㄥ眬 `.semi-tabs-content { padding: 0 !important; }` 浼氱洊鎺夊瓙鍏冪礌 margin锛屾澶勭敤鏇撮珮浼樺厛绾ц鐩栦笂鍐呰竟璺濄€? */
.distributor-admin-tabs.semi-tabs .semi-tabs-content {
padding-top: 0.75rem !important;
}
-/* ==================== 模型定价页面布局 ==================== */
+/* ==================== 妯″瀷瀹氫环椤甸潰甯冨眬 ==================== */
.pricing-layout {
height: calc(100vh - 60px);
overflow: hidden;
@@ -1367,13 +1432,13 @@ html.dark .with-pastel-balls::before {
min-height: 0;
}
-/* ==================== semi-ui 组件自定义样式 ==================== */
+/* ==================== semi-ui 缁勪欢鑷畾涔夋牱寮?==================== */
.semi-card-header,
.semi-card-body {
padding: 10px !important;
}
-/* ==================== 使用日志: channel affinity tag ==================== */
+/* ==================== 浣跨敤鏃ュ織: channel affinity tag ==================== */
.semi-tag.channel-affinity-tag {
border: 1px solid rgba(var(--semi-cyan-5), 0.35);
background-color: rgba(var(--semi-cyan-5), 0.15);
@@ -1401,7 +1466,7 @@ html.dark .with-pastel-balls::before {
gap: 0.25rem;
}
-/* ==================== 自定义圆角样式 ==================== */
+/* ==================== 鑷畾涔夊渾瑙掓牱寮?==================== */
.semi-radio,
.semi-tagInput,
.semi-input-textarea-wrapper,
@@ -1444,3 +1509,54 @@ html.dark .with-pastel-balls::before {
.ec-dbcd0a3c01b55203 {
forced-color-adjust: auto;
}
+
+
+
+
+/* ==================== TokenDance Home Page Styles ==================== */
+.home-page {
+ font-family: "Source Serif 4", "Noto Serif SC", Georgia, serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.home-page ::selection {
+ background-color: #000;
+ color: #fff;
+}
+
+@keyframes homeFadeIn {
+ 0% { opacity: 0; transform: translateY(40px); }
+ 100% { opacity: 1; transform: translateY(0); }
+}
+
+.home-fade-in {
+ animation: homeFadeIn 0.6s ease-out both;
+}
+
+.home-fade-in-delay-1 {
+ animation: homeFadeIn 0.6s ease-out 0.2s both;
+}
+
+.home-fade-in-delay-2 {
+ animation: homeFadeIn 0.6s ease-out 0.4s both;
+}
+
+@keyframes marquee {
+ 0% { transform: translateX(0); }
+ 100% { transform: translateX(-50%); }
+}
+
+.home-marquee {
+ animation: marquee 20s linear infinite;
+ display: flex;
+ width: fit-content;
+}
+
+.font-heading {
+ font-family: "Source Serif 4", "Noto Serif SC", Georgia, serif;
+}
+
+.font-body {
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
+}
diff --git a/web/src/pages/Benchmarks/index.jsx b/web/src/pages/Benchmarks/index.jsx
new file mode 100644
index 0000000..ca74470
--- /dev/null
+++ b/web/src/pages/Benchmarks/index.jsx
@@ -0,0 +1,422 @@
+/*
+Copyright (C) 2025 QuantumNous
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+For commercial licensing, please contact support@quantumnous.com
+*/
+
+import React, { useState, useEffect, useMemo } from 'react';
+import { useTranslation } from 'react-i18next';
+import { API } from '../../helpers';
+import {
+ Brain,
+ Zap,
+ DollarSign,
+ Clock,
+ Maximize2,
+ Search,
+ ArrowUpDown,
+ Trophy,
+ TrendingUp,
+ Gauge,
+ Sparkles,
+} from 'lucide-react';
+
+const COLORS = {
+ intelligence: '#8B5CF6',
+ speed: '#06B6D4',
+ price: '#10B981',
+ latency: '#F59E0B',
+ context: '#EC4899',
+};
+
+const CATEGORIES = [
+ { key: 'all', label: '全部', icon: Sparkles },
+ { key: 'language', label: '语言模型', icon: Brain },
+ { key: 'image', label: '图像模型', icon: Zap },
+ { key: 'video', label: '视频模型', icon: Zap },
+];
+
+const Benchmarks = () => {
+ const { t } = useTranslation();
+ const [models, setModels] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [searchTerm, setSearchTerm] = useState('');
+ const [sortKey, setSortKey] = useState('intelligence');
+ const [sortDesc, setSortDesc] = useState(true);
+ const [activeCategory, setActiveCategory] = useState('all');
+
+ useEffect(() => {
+ const fetchData = async () => {
+ try {
+ const res = await API.get('/api/option/');
+ if (res.data.success && res.data.data) {
+ const option = res.data.data.find(
+ (o) => o.key === 'benchmark_data.models',
+ );
+ if (option && option.value) {
+ setModels(JSON.parse(option.value));
+ }
+ }
+ } catch {
+ // fallback: use embeded default data
+ } finally {
+ setLoading(false);
+ }
+ };
+ fetchData();
+ }, []);
+
+ const filteredModels = useMemo(() => {
+ let list = [...models];
+ if (activeCategory !== 'all') {
+ list = list.filter((m) => m.category === activeCategory);
+ }
+ if (searchTerm) {
+ const term = searchTerm.toLowerCase();
+ list = list.filter(
+ (m) =>
+ m.name?.toLowerCase().includes(term) ||
+ m.provider?.toLowerCase().includes(term),
+ );
+ }
+ list.sort((a, b) => {
+ const aVal = a[sortKey] ?? 0;
+ const bVal = b[sortKey] ?? 0;
+ if (typeof aVal === 'string') return sortDesc ? bVal.localeCompare(aVal) : aVal.localeCompare(bVal);
+ return sortDesc ? bVal - aVal : aVal - bVal;
+ });
+ return list;
+ }, [models, searchTerm, sortKey, sortDesc, activeCategory]);
+
+ const toggleSort = (key) => {
+ if (sortKey === key) {
+ setSortDesc(!sortDesc);
+ } else {
+ setSortKey(key);
+ setSortDesc(true);
+ }
+ };
+
+ const topIntel = useMemo(
+ () => [...models].sort((a, b) => b.intelligence - a.intelligence).slice(0, 3),
+ [models],
+ );
+ const fastest = useMemo(
+ () => [...models].sort((a, b) => b.speed - a.speed)[0],
+ [models],
+ );
+ const cheapest = useMemo(
+ () => [...models].sort((a, b) => a.price - b.price)[0],
+ [models],
+ );
+ const lowestLatency = useMemo(
+ () => [...models].sort((a, b) => a.latency - b.latency)[0],
+ [models],
+ );
+
+ if (loading) {
+ return (
+
+ );
+ }
+
+ const SortHeader = ({ label, sortField, icon: Icon }) => (
+ toggleSort(sortField)}
+ >
+
+ {Icon && }
+ {label}
+ {sortKey === sortField && (
+
+ )}
+
+ |
+ );
+
+ return (
+
+
+ {/* Header */}
+
+
+ {t('AI 模型评测排行榜')}
+
+
+ {t('基于 Artificial Analysis 数据,从智能指数、输出速度、价格成本、延迟等维度对主流 AI 模型进行多维度对比评测')}
+
+
+
+ {/* Highlight Cards */}
+
+ {topIntel[0] && (
+
+
+
+
+ {t('智能冠军')}
+
+
+
+ {topIntel[0].name}
+
+
{topIntel[0].provider}
+
+
+ {topIntel[0].intelligence}
+
+ / 60
+
+
+ )}
+ {fastest && (
+
+
+
+
+ {t('速度之王')}
+
+
+
+ {fastest.name}
+
+
{fastest.provider}
+
+
+ {fastest.speed?.toLocaleString()}
+
+ tok/s
+
+
+ )}
+ {cheapest && (
+
+
+
+
+ {t('性价比首选')}
+
+
+
+ {cheapest.name}
+
+
{cheapest.provider}
+
+
+ ${cheapest.price?.toFixed(2)}
+
+ /M tokens
+
+
+ )}
+ {lowestLatency && (
+
+
+
+
+ {t('低延迟标杆')}
+
+
+
+ {lowestLatency.name}
+
+
{lowestLatency.provider}
+
+
+ {lowestLatency.latency?.toFixed(2)}
+
+ {t('秒')}
+
+
+ )}
+
+
+ {/* Filters and Search */}
+
+
+ {CATEGORIES.map((cat) => {
+ const Icon = cat.icon;
+ const isActive = activeCategory === cat.key;
+ return (
+
+ );
+ })}
+
+
+
+ setSearchTerm(e.target.value)}
+ className="w-full bg-white/5 border border-white/10 rounded-lg pl-9 pr-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:border-white/30 focus:bg-white/10 transition-all"
+ />
+
+
+
+ {/* Model Count */}
+
+ {t('共 {count} 个模型', { count: filteredModels.length })}
+
+
+ {/* Table */}
+
+
+
+
+ |
+ #
+ |
+
+
+
+ {t('模型名称')}
+
+ |
+
+
+
+
+
+
+
+ {t('上下文')}
+
+ |
+
+ {t('类型')}
+ |
+
+
+
+ {filteredModels.map((model, idx) => (
+
+ |
+ {idx + 1}
+ |
+
+
+
+ {model.name}
+
+
+ {model.provider}
+
+
+ |
+
+
+
+
+ {model.intelligence}
+
+
+ |
+
+
+
+
+ {model.speed?.toLocaleString()}
+
+
+ |
+
+
+ ${model.price?.toFixed(2)}
+
+ |
+
+
+ {model.latency?.toFixed(2)}s
+
+ |
+
+
+ {model.context_window || '-'}
+
+ |
+
+
+ {model.type === 'reasoning'
+ ? t('推理')
+ : t('通用')}
+
+ |
+
+ ))}
+
+
+ {filteredModels.length === 0 && (
+
+ {t('暂未找到匹配的模型')}
+
+ )}
+
+
+ {/* Footer */}
+
+ {t('数据来源: Artificial Analysis | 数据持续更新中')}
+
+
+
+ );
+};
+
+export default Benchmarks;
diff --git a/web/src/pages/Home/index.jsx b/web/src/pages/Home/index.jsx
index 7f96d9b..3f959eb 100644
--- a/web/src/pages/Home/index.jsx
+++ b/web/src/pages/Home/index.jsx
@@ -17,333 +17,774 @@ along with this program. If not, see .
For commercial licensing, please contact support@quantumnous.com
*/
-import React, { useContext, useEffect, useState } from 'react';
-import {
- Button,
- Typography,
- Input,
- ScrollList,
- ScrollItem,
-} from '@douyinfe/semi-ui';
-import {
- API,
- showError,
- copy,
- showSuccess,
- userIsDistributorUser,
-} from '../../helpers';
-import { useIsMobile } from '../../hooks/common/useIsMobile';
-import { API_ENDPOINTS } from '../../constants/common.constant';
-import { StatusContext } from '../../context/Status';
-import { UserContext } from '../../context/User';
-import { useActualTheme } from '../../context/Theme';
-import { marked } from 'marked';
+import React, { useState, useEffect, useCallback, useRef } from 'react';
+import { Link, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
-import {
- IconGithubLogo,
- IconPlay,
- IconFile,
- IconCopy,
-} from '@douyinfe/semi-icons';
-import { Link } from 'react-router-dom';
-import NoticeModal from '../../components/layout/NoticeModal';
-import HomeModelList from '../../components/home/HomeModelList';
-import HomeLandingHeroCopy from '../../components/home/HomeLandingHeroCopy';
-import HomeBannerCarousel from '../../components/home/HomeBannerCarousel';
-import {
- Moonshot,
- OpenAI,
- XAI,
- Zhipu,
- Volcengine,
- Cohere,
- Claude,
- Gemini,
- Suno,
- Minimax,
- Wenxin,
- Spark,
- Qingyan,
- DeepSeek,
- Qwen,
- Midjourney,
- Grok,
- AzureAI,
- Hunyuan,
- Xinference,
-} from '@lobehub/icons';
-import FooterBar from '../../components/layout/Footer';
+import { Copy, Check, Code, Terminal, FileCode, Box, Grid3X3, Play, Trophy, PieChart, BookOpen, Search, Sun, Moon, Monitor, Languages } from 'lucide-react';
-const { Text } = Typography;
-/** 首页功能卡片:与首张相同的左图右文布局,顺序对应 public/home-card-1..4.png */
-const HOME_FEATURE_CARDS = [
+/* ==================================================================
+ TokenDance-style Home Page
+ Design: black/white minimal with serif headings
+ ================================================================== */
+
+/* ─── Hero Marquee Carousel Texts ────────────────────────── */
+const CAROUSEL_TEXTS = [
+ 'OpenAI 协议',
+ 'Claude 协议',
+ 'Gemini 协议',
+ '智能路由',
+ '统一计费',
+ '模型丰富',
+ '安全可靠',
+ '开箱即用',
+];
+
+/* ─── Hero Section ──────────────────────────────────────────── */
+
+/* --- Helper: Theme Toggle --- */
+function HomeThemeToggle() {
+ const { t } = useTranslation();
+ const [open, setOpen] = useState(false);
+ const ref = useRef(null);
+ useEffect(() => {
+ if (!open) return;
+ const handler = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); };
+ document.addEventListener("mousedown", handler);
+ return () => document.removeEventListener("mousedown", handler);
+ }, [open]);
+ const theme = localStorage.getItem("theme-mode") || "auto";
+ const applyTheme = useCallback((val) => {
+ const actualTheme = val === 'auto'
+ ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')
+ : val;
+ if (actualTheme === 'dark') {
+ document.body.setAttribute('theme-mode', 'dark');
+ document.documentElement.classList.add('dark');
+ } else {
+ document.body.removeAttribute('theme-mode');
+ document.documentElement.classList.remove('dark');
+ }
+ }, []);
+ const setTheme = (val) => {
+ localStorage.setItem("theme-mode", val);
+ applyTheme(val);
+ setOpen(false);
+ };
+ useEffect(() => {
+ applyTheme(theme);
+ const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
+ const handleChange = () => {
+ const stored = localStorage.getItem("theme-mode") || "auto";
+ applyTheme(stored);
+ };
+ mediaQuery.addEventListener('change', handleChange);
+ return () => mediaQuery.removeEventListener('change', handleChange);
+ }, [applyTheme]);
+ const icons = { light: , dark: , auto: };
+ return (
+
+
+ {open && (
+
+ {[
+ { key: "light", icon: , label: t("浅色模式") },
+ { key: "dark", icon: , label: t("深色模式") },
+ { key: "auto", icon: , label: t("自动模式") },
+ ].map((opt) => (
+
+ ))}
+
+ )}
+
+ );
+}
+
+/* --- Helper: Language Selector --- */
+function HomeLanguageSelector() {
+ const { t, i18n } = useTranslation();
+ const [open, setOpen] = useState(false);
+ const ref = useRef(null);
+ useEffect(() => {
+ if (!open) return;
+ const handler = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); };
+ document.addEventListener("mousedown", handler);
+ return () => document.removeEventListener("mousedown", handler);
+ }, [open]);
+ const current = (i18n.language || "").startsWith("zh") ? "zh-CN" : "en";
+ const switchLang = (code) => { i18n.changeLanguage(code); setOpen(false); };
+ const langLabels = { "zh-CN": "简体中文", "en": "English" };
+ return (
+
+
+ {open && (
+
+ {Object.entries(langLabels).map(([code, label]) => (
+
+ ))}
+
+ )}
+
+ );
+}
+
+function HeroSection() {
+ const { t } = useTranslation();
+ const [copied, setCopied] = useState(false);
+ const navigate = useNavigate();
+ const copyCmd = useCallback(() => {
+ navigator.clipboard.writeText("https://tokendance.space");
+ setCopied(true);
+ setTimeout(() => setCopied(false), 1500);
+ }, []);
+ return (
+
+
+
+
+
+

+
TuringToken
+
BETA
+
+
+
+ {[
+ { key: "model", label: "模型", icon: , to: "/pricing" },
+ { key: "console", label: "控制台", icon: , to: "/console" },
+ { key: "benchmark", label: "评测", icon: , to: "/benchmarks" },
+ { key: "docs", label: "文档", icon: , to: "https://docs.new-api.cc", external: true },
+ ].map((item) => {
+ const linkClass = "inline-flex items-center gap-1.5 px-3 py-1.5 text-[14px] rounded-md transition-colors duration-150 text-white/60 hover:text-white";
+ if (item.external) {
+ return {item.icon}{t(item.label)};
+ }
+ return {item.icon}{t(item.label)};
+ })}
+
+
+
+
+
+ {t("登录")}
+
+
+
+
+
+
+
+ {"// unified model API gateway"}
+
+
+
+ {t("更快、更稳、更省")}
{t("Token服务平台")}
+
+
+ {t("兼容 OpenAI / Claude / Gemini 等协议,覆盖文本、图像、视频、语音,智能路由,统一计费。")}
+
+
+
+ {t("开始使用")}
+
+
+ {t("查看价格")} →
+
+
+
+
+
+
+
+
+
+
+
+
terminal
+
+
+
+ {`curl https://api.tokendance.space/v1/chat/completions \\
+ -H "Authorization: Bearer \$YOUR_API_KEY" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "model": "gpt-4o",
+ "messages": [{"role": "user", "content": "Hello"}]
+ }'`}
+
+
+
+
+
+ {/* Hero brand wordmark — TURINGTOKEN */}
+
+
+ {/* Feature marquee strip — 轮播: OpenAI 协议 / Claude 协议 / 智能路由 ... */}
+
+
+ {[...CAROUSEL_TEXTS, ...CAROUSEL_TEXTS].map((text, i) => (
+
+ {text}
+
+ ))}
+
+
+
+ );
+}const FEATURES = [
{
- image: '/home-card-1.png',
- titleKey: '一个 API,调用任意模型',
- descKey: '通过统一接口同主流模型,OpenAI 兼容 SDK 可直接使用。',
- },
- {
- image: '/home-card-2.png',
- titleKey: '大模型部署定制服务',
+ titleKey: '多协议兼容',
descKey:
- '支持构建高效稳定的 Token 工厂,实现大规模生成能力的标准化与可控化',
+ '原生支持 OpenAI、Claude、Gemini 文本协议,覆盖图像 / 视频 / 文本转语音生成。无需修改代码,切换 Base URL 即可接入。',
+ code: 'baseURL: "api.tokendance.space"',
},
{
- image: '/home-card-3.png',
- titleKey: '灵活计费方式',
- descKey: '按需付费无需订阅,支持多种计费模式和用户分组定价。',
+ titleKey: '智能路由',
+ descKey:
+ '根据模型名称自动路由至对应供应商。一个入口,无需关心底层调度。',
+ code: 'route(model) → provider',
},
{
- image: '/home-card-4.png',
- titleKey: '完整使用日志',
- descKey: '实时监控每次调用,详细记录请求和响应便于调试分析。',
+ titleKey: '统一计费',
+ descKey:
+ '跨供应商统一 Token 消耗统计与账单。告别多平台分别充值的混乱。',
+ code: 'billing.unified()',
+ },
+ {
+ titleKey: '容错降级',
+ descKey:
+ '同一模型支持多供应商端点自动切换;单次请求可指定多个候选模型,逐级降级,保障服务持续可用。',
+ code: 'fallback: model[] → provider[]',
+ },
+ {
+ titleKey: '模型丰富',
+ descKey:
+ '接入 MiniMax、通义千问、Kimi、智谱、DeepSeek 等国内头部模型。持续扩展中。',
+ code: 'models.list() → 80+',
+ },
+ {
+ titleKey: '开箱即用',
+ descKey:
+ '一键登录,分钟级接入。兼容现有 SDK,零迁移成本。',
+ code: 'import OpenAI from "openai"',
},
];
-const Home = () => {
- const { t, i18n } = useTranslation();
- const [statusState] = useContext(StatusContext);
- const [userState] = useContext(UserContext);
- const actualTheme = useActualTheme();
- const [homePageContentLoaded, setHomePageContentLoaded] = useState(false);
- const [homePageContent, setHomePageContent] = useState('');
- const [noticeVisible, setNoticeVisible] = useState(false);
- const isMobile = useIsMobile();
- const isDemoSiteMode = statusState?.status?.demo_site_enabled || false;
- const serverAddress =
- statusState?.status?.server_address || `${window.location.origin}`;
- const endpointItems = API_ENDPOINTS.map((e) => ({ value: e }));
- const [endpointIndex, setEndpointIndex] = useState(0);
- let u = userState?.user;
- if (!u) {
- try {
- const raw = localStorage.getItem('user');
- if (raw) u = JSON.parse(raw);
- } catch {
- u = null;
- }
- }
- const userRole = u?.role ?? null;
- const showDistributorRecruit = !userIsDistributorUser(u);
+function FeaturesSection() {
+ const { t } = useTranslation();
+ return (
+
+
+
+ {/* features */}
+
+
+ {t('为接入 AI 模型的开发者而造。')}
+
+
+ {FEATURES.map((f, i) => (
+
+
+ {f.code}
+
+
+ {t(f.titleKey)}
+
+
+ {t(f.descKey)}
+
+
+ ))}
+
+
+
+ );
+}
- const displayHomePageContent = async () => {
- setHomePageContent(localStorage.getItem('home_page_content') || '');
- const res = await API.get('/api/home_page_content');
- const { success, message, data } = res.data;
- if (success) {
- let content = data;
- if (!data.startsWith('https://')) {
- content = marked.parse(data);
- }
- setHomePageContent(content);
- localStorage.setItem('home_page_content', content);
+/* ─── How It Works Section ──────────────────────────────────── */
- // 如果内容是 URL,则发送主题模式
- if (data.startsWith('https://')) {
- const iframe = document.querySelector('iframe');
- if (iframe) {
- iframe.onload = () => {
- iframe.contentWindow.postMessage({ themeMode: actualTheme }, '*');
- iframe.contentWindow.postMessage({ lang: i18n.language }, '*');
- };
- }
- }
- } else {
- showError(message);
- setHomePageContent('加载首页内容失败...');
- }
- setHomePageContentLoaded(true);
- };
+const STEPS = [
+ {
+ step: '01',
+ titleKey: '注册账号',
+ descKey: '通过邮箱一键注册,即刻开始使用。',
+ link: '/register',
+ },
+ {
+ step: '02',
+ titleKey: '创建 API Key',
+ descKey: '在控制台创建密钥,支持多 Key 管理与权限控制。',
+ link: '/console/token',
+ },
+ {
+ step: '03',
+ titleKey: '发起请求',
+ descKey: '使用你熟悉的 SDK 调用任意模型,完全兼容原生协议。',
+ link: '/pricing',
+ },
+];
- const handleCopyBaseURL = async () => {
- const ok = await copy(serverAddress);
- if (ok) {
- showSuccess(t('已复制到剪切板'));
- }
- };
+function HowItWorksSection() {
+ const { t } = useTranslation();
+ return (
+
+
+
+
+ {'// how it works'}
+
+
+ {t('三步接入,分钟级上线')}
+
+
+ {STEPS.map((s, i) => (
+
+
+
+
+ {s.step}
+
+
+
+
+ {t(s.titleKey)}
+
+
+ {t(s.descKey)}
+
+
+
+ →
+
+
+
+ ))}
+
+
+ );
+}
- useEffect(() => {
- const checkNoticeAndShow = async () => {
- const lastCloseDate = localStorage.getItem('notice_close_date');
- const today = new Date().toDateString();
- if (lastCloseDate !== today) {
- try {
- const res = await API.get('/api/notice');
- const { success, data } = res.data;
- if (success && data && data.trim() !== '') {
- setNoticeVisible(true);
- }
- } catch (error) {
- console.error('获取公告失败:', error);
- }
- }
- };
+/* ─── Quick Start Section (Code Tabs) ───────────────────────── */
- checkNoticeAndShow();
- }, []);
+const PROVIDERS = ['openai', 'claude', 'gemini'];
+const PROVIDER_LABELS = { openai: 'OpenAI', claude: 'Claude', gemini: 'Gemini' };
+const LANGUAGES = ['curl', 'python', 'nodejs'];
+const LANG_LABELS = { curl: 'cURL', python: 'Python', nodejs: 'Node.js' };
- useEffect(() => {
- displayHomePageContent().then();
- }, []);
+const CODE_SAMPLES = {
+ openai: {
+ curl: `curl https://api.tokendance.space/v1/chat/completions \\
+ -H "Authorization: Bearer $OPENAI_API_KEY" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "model": "gpt-4o",
+ "messages": [{"role": "user", "content": "Hello!"}]
+ }'`,
+ python: `from openai import OpenAI
- useEffect(() => {
- const timer = setInterval(() => {
- setEndpointIndex((prev) => (prev + 1) % endpointItems.length);
- }, 3000);
- return () => clearInterval(timer);
- }, [endpointItems.length]);
+client = OpenAI(
+ base_url="https://api.tokendance.space",
+ api_key="sk-your-key"
+)
+
+response = client.chat.completions.create(
+ model="gpt-4o",
+ messages=[{"role": "user", "content": "Hello!"}]
+)
+print(response.choices[0].message.content)`,
+ nodejs: `import OpenAI from "openai";
+
+const client = new OpenAI({
+ baseURL: "https://api.tokendance.space",
+ apiKey: "sk-your-key",
+});
+
+const response = await client.chat.completions.create({
+ model: "gpt-4o",
+ messages: [{ role: "user", content: "Hello!" }],
+});
+console.log(response.choices[0].message.content);`,
+ },
+ claude: {
+ curl: `curl https://api.tokendance.space/v1/messages \\
+ -H "x-api-key: sk-your-key" \\
+ -H "anthropic-version: 2023-06-01" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "model": "claude-sonnet-4-20250514",
+ "max_tokens": 1024,
+ "messages": [{"role": "user", "content": "Hello!"}]
+ }'`,
+ python: `import anthropic
+
+client = anthropic.Anthropic(
+ base_url="https://api.tokendance.space",
+ api_key="sk-your-key"
+)
+
+response = client.messages.create(
+ model="claude-sonnet-4-20250514",
+ max_tokens=1024,
+ messages=[{"role": "user", "content": "Hello!"}]
+)
+print(response.content[0].text)`,
+ nodejs: `import Anthropic from "@anthropic-ai/sdk";
+
+const client = new Anthropic({
+ baseURL: "https://api.tokendance.space",
+ apiKey: "sk-your-key",
+});
+
+const response = await client.messages.create({
+ model: "claude-sonnet-4-20250514",
+ max_tokens: 1024,
+ messages: [{ role: "user", content: "Hello!" }],
+});
+console.log(response.content[0].text);`,
+ },
+ gemini: {
+ curl: `curl "https://api.tokendance.space/v1beta/models/gemini-2.0-flash:generateContent?key=sk-your-key" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "contents": [{"parts":[{"text": "Hello!"}]}]
+ }'`,
+ python: `import google.generativeai as genai
+
+genai.configure(api_key="sk-your-key")
+
+model = genai.GenerativeModel("gemini-2.0-flash")
+response = model.generate_content("Hello!")
+print(response.text)`,
+ nodejs: `import { GoogleGenerativeAI } from "@google/generative-ai";
+
+const genAI = new GoogleGenerativeAI("sk-your-key");
+const model = genAI.getGenerativeModel({
+ model: "gemini-2.0-flash",
+});
+
+const result = await model.generateContent("Hello!");
+console.log(result.response.text());`,
+ },
+};
+
+function QuickStartSection() {
+ const { t } = useTranslation();
+ const [provider, setProvider] = useState('openai');
+ const [lang, setLang] = useState('curl');
+ const [copied, setCopied] = useState(false);
+
+ const code = CODE_SAMPLES[provider]?.[lang] || '';
+
+ const handleCopy = useCallback(() => {
+ navigator.clipboard.writeText(code);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 1500);
+ }, [code]);
return (
- <>
-
-
-
setNoticeVisible(false)}
- isMobile={isMobile}
- />
- {homePageContentLoaded && homePageContent === '' ? (
-
- {/* Banner 部分 */}
-
-
- {/* 居中内容区:上留白保持,下留白缩小以拉近广告与模型列表 */}
-
-
+
+
+
+ Quick Start
+
+
+ {t('快速开始')}
+
-
+ {/* Provider tabs */}
+
+ {PROVIDERS.map((p) => (
+
+ ))}
+
- {/* 操作按钮 */}
- {/*
-
-
-
-
-
- {showDistributorRecruit && (
-
-
-
-
- {t('分销伙伴招募')}
-
-
- {userRole == null
- ? t('登录后可提交申请,成为代理获得邀请分成')
- : t('提交资料申请成为代理,邀请好友获得充值分成')}
-
-
-
-
-
-
-
- )} */}
-
-
- {/* 广告展示位 */}
- {/*
-
-
-

-
-
-
*/}
-
- {/* 模型列表区域 */}
-
-
+ {/* Code block */}
+
+
+
+ {LANGUAGES.map((l) => (
+
+ ))}
+
+
+
+
- {/* 功能卡片区域 */}
-
-
-
- {HOME_FEATURE_CARDS.map((card) => (
-
-
-
-

-
-
-
-
- {t(card.titleKey)}
-
-
- {t(card.descKey)}
-
-
-
- ))}
-
-
-
+ {/* Call to docs */}
+
+
+
+ Model Pricing
+
+
+ {t('查看模型定价,了解完整列表')}
+
- ) : (
-
- {homePageContent.startsWith('https://') ? (
-
- ) : (
-
- )}
-
- )}
-
+
+ →
+
+
- >
+
+ );
+}
+
+/* ─── Pricing / CTA Section ──────────────────────────────────── */
+
+function PricingSection() {
+ const { t } = useTranslation();
+ return (
+
+
+
+ {'// pricing'}
+
+
+ {t('获取 Token 额度')}
+
+
+ {/* Token credit callout */}
+
+
+
+ {t('今日特惠')}
+
+
+ {t('注册即送 ¥10 额度')}
+
+
+
+ {t('新用户注册即赠 ¥10 Token,7 天有效期')}
+
+
+
+ {/* Call to action */}
+
+
+ {t('立即注册,开始使用')}
+
+
+ {t(
+ '兼容 OpenAI / Claude / Gemini 协议。一个 API Key,调用所有主流模型。免去多平台充值与管理的麻烦。'
+ )}
+
+
+ {t('免费注册')} →
+
+
+
+
+ );
+}
+
+/* ─── Providers Marquee Section ──────────────────────────────── */
+
+const PROVIDER_LOGOS = [
+ { name: 'OpenAI', className: 'opacity-60' },
+ { name: 'Claude', className: 'opacity-60' },
+ { name: 'Gemini', className: 'opacity-60' },
+ { name: 'DeepSeek', className: 'opacity-60' },
+ { name: 'Qwen', className: 'opacity-60' },
+ { name: 'MiniMax', className: 'opacity-60' },
+ { name: 'Kimi', className: 'opacity-60' },
+ { name: '智谱', className: 'opacity-60' },
+ { name: 'Groq', className: 'opacity-60' },
+ { name: 'Azure', className: 'opacity-60' },
+];
+
+function ProvidersSection() {
+ const { t } = useTranslation();
+ const navigate = useNavigate();
+
+ return (
+
+ {/* Provider logos marquee area */}
+
+
+
+ {'// supported providers'}
+
+
+ {t('40+ AI 供应商,统一接入')}
+
+
+
+
+ {[...PROVIDER_LOGOS, ...PROVIDER_LOGOS].map((logo, i) => (
+
+ {logo.name}
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+ {t('免费注册,分钟级接入。兼容你现有的 SDK 和工作流。')}
+
+
+
+ );
+}
+
+/* ─── Dark Footer ────────────────────────────────────────────── */
+
+function DarkFooter() {
+ const { t } = useTranslation();
+ return (
+
+ );
+}
+
+/* ─── Main Home Page ────────────────────────────────────────── */
+
+const Home = () => {
+ const { t } = useTranslation();
+
+ return (
+
);
};
export default Home;
+
diff --git a/web/src/pages/Setting/Operation/SettingsHeaderNavModules.jsx b/web/src/pages/Setting/Operation/SettingsHeaderNavModules.jsx
index 9049597..8d0e742 100644
--- a/web/src/pages/Setting/Operation/SettingsHeaderNavModules.jsx
+++ b/web/src/pages/Setting/Operation/SettingsHeaderNavModules.jsx
@@ -45,14 +45,14 @@ export default function SettingsHeaderNavModules(props) {
blurPricing: false,
showCostPrice: false,
},
- console: true,
pricing: {
enabled: true,
requireAuth: false,
blurPricing: false,
},
+ console: true,
+ benchmark: true,
docs: true,
- about: true,
});
// 处理顶栏模块配置变更
@@ -175,14 +175,14 @@ export default function SettingsHeaderNavModules(props) {
blurPricing: false,
showCostPrice: false,
},
- console: true,
pricing: {
enabled: true,
requireAuth: false,
blurPricing: false,
},
+ console: true,
+ benchmark: true,
docs: true,
- about: true,
};
setHeaderNavModules(defaultModules);
showSuccess(t('已重置为默认配置'));
@@ -267,14 +267,14 @@ export default function SettingsHeaderNavModules(props) {
blurPricing: false,
showCostPrice: false,
},
- console: true,
pricing: {
enabled: true,
requireAuth: false,
blurPricing: false,
},
+ console: true,
+ benchmark: true,
docs: true,
- about: true,
};
setHeaderNavModules(defaultModules);
}
@@ -299,28 +299,28 @@ export default function SettingsHeaderNavModules(props) {
hasBlurPricing: true,
hasCostPrice: true,
},
- {
- key: 'console',
- title: t('控制台'),
- description: t('用户控制面板,管理账户'),
- },
{
key: 'pricing',
- title: t('模型广场'),
+ title: t('模型'),
description: t('模型定价,需要登录访问'),
hasSubConfig: true,
hasBlurPricing: true,
},
+ {
+ key: 'console',
+ title: t('控制台'),
+ description: t('用户控制面板,管理账户'),
+ },
+ {
+ key: 'benchmark',
+ title: t('评测'),
+ description: t('AI 模型评测与排行'),
+ },
{
key: 'docs',
title: t('文档'),
description: t('系统文档和帮助信息'),
},
- {
- key: 'about',
- title: t('关于'),
- description: t('关于系统的详细信息'),
- },
];
return (
diff --git a/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx b/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx
index 7137fe5..275d202 100644
--- a/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx
+++ b/web/src/pages/Setting/Operation/SettingsSidebarModulesAdmin.jsx
@@ -41,11 +41,11 @@ const sectionConfigs = [
{
key: 'chat',
title_key: '聊天区域',
- desc_key: '操练场和聊天功能',
+ desc_key: '体验馆和聊天功能',
modules: [
{
key: 'playground',
- title_key: '操练场',
+ title_key: '体验馆',
desc_key: 'AI模型测试环境',
},
{ key: 'chat', title_key: '聊天', desc_key: '聊天会话管理' },
@@ -56,8 +56,9 @@ const sectionConfigs = [
title_key: '控制台区域',
desc_key: '数据管理和日志查看',
modules: [
+ { key: 'benchmarks', title_key: '评测', desc_key: 'AI 模型评测排行' },
{ key: 'detail', title_key: '数据看板', desc_key: '系统数据统计' },
- { key: 'token', title_key: '令牌管理', desc_key: 'API令牌管理' },
+ { key: 'token', title_key: 'API Key', desc_key: 'APIAPI Key' },
{ key: 'log', title_key: '使用日志', desc_key: 'API使用记录' },
{
key: 'midjourney',
diff --git a/web/src/pages/Setting/index.jsx b/web/src/pages/Setting/index.jsx
index 16d9f80..f91f5fc 100644
--- a/web/src/pages/Setting/index.jsx
+++ b/web/src/pages/Setting/index.jsx
@@ -35,6 +35,7 @@ import {
Server,
Activity,
Shield,
+ BarChart3,
} from 'lucide-react';
import SystemSetting from '../../components/settings/SystemSetting';
@@ -51,6 +52,7 @@ import PaymentSetting from '../../components/settings/PaymentSetting';
import ModelDeploymentSetting from '../../components/settings/ModelDeploymentSetting';
import PerformanceSetting from '../../components/settings/PerformanceSetting';
import ApiRateLimitSetting from '../../components/settings/ApiRateLimitSetting';
+import BenchmarkDataManager from '../../components/settings/BenchmarkDataManager';
const Setting = () => {
const { t } = useTranslation();
@@ -110,6 +112,16 @@ const Setting = () => {
content:
,
itemKey: 'payment',
});
+ panes.push({
+ tab: (
+
+
+ {t('评测数据管理')}
+
+ ),
+ content:
,
+ itemKey: 'benchmark',
+ });
panes.push({
tab: (
diff --git a/web/tailwind.config.js b/web/tailwind.config.js
index 9f3b28c..d879bba 100644
--- a/web/tailwind.config.js
+++ b/web/tailwind.config.js
@@ -1,4 +1,4 @@
-/*
+/*
Copyright (C) 2025 QuantumNous
This program is free software: you can redistribute it and/or modify
@@ -17,42 +17,69 @@ along with this program. If not, see .
For commercial licensing, please contact support@quantumnous.com
*/
-/** 与 ThemeProvider 一致:实际主题由 document.documentElement 的 `dark` 类控制,不能用默认的 media 策略 */
+/** `darkMode: 'class'` 与 ThemeProvider 一致:实际主题由 document.documentElement 的 `dark` 类控制 */
export default {
darkMode: 'class',
content: ['./index.html', './src/**/*.{js,jsx,ts,tsx}'],
theme: {
colors: {
+ transparent: 'transparent',
+ current: 'currentColor',
+ black: '#000',
+ white: '#fff',
+ // ---- shadcn/ui CSS variable tokens (TokenDance 风格) ----
+ background: 'hsl(var(--background))',
+ foreground: 'hsl(var(--foreground))',
+ card: 'hsl(var(--card))',
+ 'card-foreground': 'hsl(var(--card-foreground))',
+ popover: 'hsl(var(--popover))',
+ 'popover-foreground': 'hsl(var(--popover-foreground))',
+ primary: {
+ DEFAULT: 'hsl(var(--primary))',
+ foreground: 'hsl(var(--primary-foreground))',
+ },
+ secondary: {
+ DEFAULT: 'hsl(var(--secondary))',
+ foreground: 'hsl(var(--secondary-foreground))',
+ },
+ muted: {
+ DEFAULT: 'hsl(var(--muted))',
+ foreground: 'hsl(var(--muted-foreground))',
+ },
+ accent: {
+ DEFAULT: 'hsl(var(--accent))',
+ foreground: 'hsl(var(--accent-foreground))',
+ },
+ destructive: {
+ DEFAULT: 'hsl(var(--destructive))',
+ foreground: 'hsl(var(--destructive-foreground))',
+ },
+ border: 'hsl(var(--border))',
+ input: 'hsl(var(--input))',
+ ring: 'hsl(var(--ring))',
+ // ---- Semi Design CSS variable tokens (向后兼容) ----
'semi-color-white': 'var(--semi-color-white)',
'semi-color-black': 'var(--semi-color-black)',
'semi-color-primary': 'var(--semi-color-primary)',
'semi-color-primary-hover': 'var(--semi-color-primary-hover)',
'semi-color-primary-active': 'var(--semi-color-primary-active)',
'semi-color-primary-disabled': 'var(--semi-color-primary-disabled)',
- 'semi-color-primary-light-default':
- 'var(--semi-color-primary-light-default)',
+ 'semi-color-primary-light-default': 'var(--semi-color-primary-light-default)',
'semi-color-primary-light-hover': 'var(--semi-color-primary-light-hover)',
- 'semi-color-primary-light-active':
- 'var(--semi-color-primary-light-active)',
+ 'semi-color-primary-light-active': 'var(--semi-color-primary-light-active)',
'semi-color-secondary': 'var(--semi-color-secondary)',
'semi-color-secondary-hover': 'var(--semi-color-secondary-hover)',
'semi-color-secondary-active': 'var(--semi-color-secondary-active)',
'semi-color-secondary-disabled': 'var(--semi-color-secondary-disabled)',
- 'semi-color-secondary-light-default':
- 'var(--semi-color-secondary-light-default)',
- 'semi-color-secondary-light-hover':
- 'var(--semi-color-secondary-light-hover)',
- 'semi-color-secondary-light-active':
- 'var(--semi-color-secondary-light-active)',
+ 'semi-color-secondary-light-default': 'var(--semi-color-secondary-light-default)',
+ 'semi-color-secondary-light-hover': 'var(--semi-color-secondary-light-hover)',
+ 'semi-color-secondary-light-active': 'var(--semi-color-secondary-light-active)',
'semi-color-tertiary': 'var(--semi-color-tertiary)',
'semi-color-tertiary-hover': 'var(--semi-color-tertiary-hover)',
'semi-color-tertiary-active': 'var(--semi-color-tertiary-active)',
- 'semi-color-tertiary-light-default':
- 'var(--semi-color-tertiary-light-default)',
- 'semi-color-tertiary-light-hover':
- 'var(--semi-color-tertiary-light-hover)',
- 'semi-color-tertiary-light-active':
- 'var(--semi-color-tertiary-light-active)',
+ 'semi-color-tertiary-light-default': 'var(--semi-color-tertiary-light-default)',
+ 'semi-color-tertiary-light-hover': 'var(--semi-color-tertiary-light-hover)',
+ 'semi-color-tertiary-light-active': 'var(--semi-color-tertiary-light-active)',
'semi-color-default': 'var(--semi-color-default)',
'semi-color-default-hover': 'var(--semi-color-default-hover)',
'semi-color-default-active': 'var(--semi-color-default-active)',
@@ -67,26 +94,21 @@ export default {
'semi-color-success-hover': 'var(--semi-color-success-hover)',
'semi-color-success-active': 'var(--semi-color-success-active)',
'semi-color-success-disabled': 'var(--semi-color-success-disabled)',
- 'semi-color-success-light-default':
- 'var(--semi-color-success-light-default)',
+ 'semi-color-success-light-default': 'var(--semi-color-success-light-default)',
'semi-color-success-light-hover': 'var(--semi-color-success-light-hover)',
- 'semi-color-success-light-active':
- 'var(--semi-color-success-light-active)',
+ 'semi-color-success-light-active': 'var(--semi-color-success-light-active)',
'semi-color-danger': 'var(--semi-color-danger)',
'semi-color-danger-hover': 'var(--semi-color-danger-hover)',
'semi-color-danger-active': 'var(--semi-color-danger-active)',
- 'semi-color-danger-light-default':
- 'var(--semi-color-danger-light-default)',
+ 'semi-color-danger-light-default': 'var(--semi-color-danger-light-default)',
'semi-color-danger-light-hover': 'var(--semi-color-danger-light-hover)',
'semi-color-danger-light-active': 'var(--semi-color-danger-light-active)',
'semi-color-warning': 'var(--semi-color-warning)',
'semi-color-warning-hover': 'var(--semi-color-warning-hover)',
'semi-color-warning-active': 'var(--semi-color-warning-active)',
- 'semi-color-warning-light-default':
- 'var(--semi-color-warning-light-default)',
+ 'semi-color-warning-light-default': 'var(--semi-color-warning-light-default)',
'semi-color-warning-light-hover': 'var(--semi-color-warning-light-hover)',
- 'semi-color-warning-light-active':
- 'var(--semi-color-warning-light-active)',
+ 'semi-color-warning-light-active': 'var(--semi-color-warning-light-active)',
'semi-color-focus-border': 'var(--semi-color-focus-border)',
'semi-color-disabled-text': 'var(--semi-color-disabled-text)',
'semi-color-disabled-border': 'var(--semi-color-disabled-border)',
@@ -136,16 +158,73 @@ export default {
'semi-color-data-19': 'var(--semi-color-data-19)',
},
extend: {
+ fontFamily: {
+ heading: ['"Source Serif 4"', '"Noto Serif SC"', 'Georgia', 'serif'],
+ serif: ['"Playfair Display"', '"Noto Serif SC"', 'serif'],
+ mono: ['"JetBrains Mono"', 'monospace'],
+ display: ['"Bebas Neue"', 'sans-serif'],
+ body: ['system-ui', '-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', 'Roboto', 'sans-serif'],
+ },
borderRadius: {
- 'semi-border-radius-extra-small':
- 'var(--semi-border-radius-extra-small)',
+ 'semi-border-radius-extra-small': 'var(--semi-border-radius-extra-small)',
'semi-border-radius-small': 'var(--semi-border-radius-small)',
'semi-border-radius-medium': 'var(--semi-border-radius-medium)',
'semi-border-radius-large': 'var(--semi-border-radius-large)',
'semi-border-radius-circle': 'var(--semi-border-radius-circle)',
'semi-border-radius-full': 'var(--semi-border-radius-full)',
+ // shadcn/ui radius token
+ DEFAULT: 'var(--radius)',
+ sm: 'calc(var(--radius) - 2px)',
+ md: 'calc(var(--radius) + 2px)',
+ lg: 'calc(var(--radius) + 4px)',
+ xl: 'calc(var(--radius) + 8px)',
+ },
+ borderColor: {
+ DEFAULT: 'hsl(var(--border))',
+ },
+ ringColor: {
+ DEFAULT: 'hsl(var(--ring))',
+ },
+ ringOffsetColor: {
+ DEFAULT: 'hsl(var(--background))',
+ },
+ backgroundColor: {
+ DEFAULT: 'hsl(var(--background))',
+ },
+ textColor: {
+ DEFAULT: 'hsl(var(--foreground))',
+ },
+ boxShadow: {
+ 'td-sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)',
+ 'td-md': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
+ 'td-lg': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',
+ },
+ animation: {
+ 'fade-in': 'fadeIn 0.2s ease-in-out',
+ 'slide-up': 'slideUp 0.2s ease-out',
+ },
+ keyframes: {
+ fadeIn: {
+ '0%': { opacity: '0' },
+ '100%': { opacity: '1' },
+ },
+ slideUp: {
+ '0%': { opacity: '0', transform: 'translateY(8px)' },
+ '100%': { opacity: '1', transform: 'translateY(0)' },
+ },
},
},
},
+ safelist: [
+ 'home-fade-in',
+ 'home-fade-in-delay-1',
+ 'home-fade-in-delay-2',
+ 'home-marquee',
+ 'font-heading',
+ 'font-body',
+ 'home-page',
+ ],
plugins: [],
};
+
+