mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-28 05:57:19 +00:00
Compare commits
4 Commits
8a8da88548
...
5b80d4562d
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b80d4562d | |||
| e2f75acad2 | |||
| 69a8237581 | |||
| f3f57e66f5 |
+6
-6
@@ -19,12 +19,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@orama/orama": "^3.1.18",
|
||||
"fumadocs-core": "^16.14.1",
|
||||
"fumadocs-core": "^16.14.3",
|
||||
"fumadocs-docgen": "^3.1.0",
|
||||
"fumadocs-mdx": "^15.2.2",
|
||||
"fumadocs-mdx": "^15.2.3",
|
||||
"fumadocs-openapi": "^11.2.3",
|
||||
"fumadocs-ui": "^16.14.1",
|
||||
"lucide-react": "^1.29.0",
|
||||
"fumadocs-ui": "^16.14.3",
|
||||
"lucide-react": "^1.31.0",
|
||||
"mermaid": "^11.16.1",
|
||||
"next": "16.3.0",
|
||||
"next-themes": "^0.4.6",
|
||||
@@ -38,7 +38,7 @@
|
||||
"devDependencies": {
|
||||
"@tailwindcss/postcss": "^4.3.3",
|
||||
"@types/mdx": "^2.0.14",
|
||||
"@types/node": "^26.1.2",
|
||||
"@types/node": "^26.2.0",
|
||||
"@types/react": "^19.2.18",
|
||||
"@types/react-dom": "^19.2.4",
|
||||
"eslint": "^9.39.5",
|
||||
@@ -50,5 +50,5 @@
|
||||
"typescript": "6.0.3",
|
||||
"vitest": "^4.1.10"
|
||||
},
|
||||
"packageManager": "pnpm@11.20.0"
|
||||
"packageManager": "pnpm@11.21.0+sha512.521705bce689924eac72f5a3587122f362689ef6571e55ba80076fd637c11132ecffada26fad4ea79c485bfddbfd3d5a2a5b05805a77e893de71ec8a6cca3bb1"
|
||||
}
|
||||
|
||||
Generated
+503
-543
File diff suppressed because it is too large
Load Diff
@@ -36,11 +36,17 @@ const sampleLink = 'vless://11112222-3333-4444-5555-666677778888@panel.example.c
|
||||
|
||||
export const Collapsed: Story = {
|
||||
args: { label: 'vless', text: sampleLink, fileName: 'client-config.txt' },
|
||||
play: async ({ canvas, userEvent }) => {
|
||||
play: async ({ canvas, canvasElement, userEvent }) => {
|
||||
await expect(canvas.queryByText(/vless:\/\/11112222/)).not.toBeInTheDocument();
|
||||
await userEvent.click(canvas.getByText('vless'));
|
||||
const configText = await canvas.findByText(/vless:\/\/11112222/);
|
||||
await waitFor(() => expect(configText).toBeVisible());
|
||||
// Collapse fades content in over motionDurationMid; wait it out so the a11y
|
||||
// scan doesn't sample a mid-transition, lower-contrast opacity.
|
||||
await waitFor(() => {
|
||||
const panel = canvasElement.querySelector('.ant-collapse-panel');
|
||||
expect(panel && getComputedStyle(panel).opacity).toBe('1');
|
||||
});
|
||||
await expect(canvas.getByRole('button', { name: 'Copy' })).toBeVisible();
|
||||
await expect(canvas.getByRole('button', { name: 'Download' })).toBeVisible();
|
||||
await expect(canvas.getByRole('button', { name: 'QR Code' })).toBeVisible();
|
||||
|
||||
@@ -64,7 +64,7 @@ require (
|
||||
github.com/jinzhu/now v1.1.5 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/juju/ratelimit v1.0.2 // indirect
|
||||
github.com/klauspost/compress v1.19.1
|
||||
github.com/klauspost/compress v1.19.2
|
||||
github.com/klauspost/cpuid/v2 v2.4.0 // indirect
|
||||
github.com/leodido/go-urn v1.5.0 // indirect
|
||||
github.com/lufia/plan9stats v0.0.0-20260802145828-341c2f0c90b5 // indirect
|
||||
|
||||
@@ -115,8 +115,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/juju/ratelimit v1.0.2 h1:sRxmtRiajbvrcLQT7S+JbqU0ntsb9W2yhSdNN8tWfaI=
|
||||
github.com/juju/ratelimit v1.0.2/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk=
|
||||
github.com/klauspost/compress v1.19.1 h1:VsB4HPswih7mmZ8WleSFQ75c/Ui1M4trX5oAsJnhSlk=
|
||||
github.com/klauspost/compress v1.19.1/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
|
||||
github.com/klauspost/compress v1.19.2 h1:hMRETovs/pu/dVWN7zIT1PGG8t509MwT6bO7XSi26R8=
|
||||
github.com/klauspost/compress v1.19.2/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
|
||||
github.com/klauspost/cpuid/v2 v2.4.0 h1:S6Hrbc7+ywsr0r+RLapfGBHfyefhCTwEh3A0tV913Dw=
|
||||
github.com/klauspost/cpuid/v2 v2.4.0/go.mod h1:19jmZ9mjzoF//ddRSUsv0zfBTJWh3QJh9FNxZTMrGxU=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
|
||||
@@ -1503,8 +1503,8 @@
|
||||
},
|
||||
"outbound": {
|
||||
"tag": "标签",
|
||||
"egress": "Egress",
|
||||
"egressHint": "Run an HTTP test to show egress IP and country.",
|
||||
"egress": "出口",
|
||||
"egressHint": "执行 HTTP 测试以显示出口 IP 和所在国家/地区。",
|
||||
"outboundStatus": "出站状态",
|
||||
"sendThrough": "发送通过",
|
||||
"targetStrategy": "目标解析策略",
|
||||
@@ -1607,14 +1607,14 @@
|
||||
"tagDuplicate": "该标签已被其他均衡器使用",
|
||||
"tagPlaceholder": "唯一均衡器标签",
|
||||
"selector": "选择器",
|
||||
"fallback": "Fallback",
|
||||
"fallback": "备用负载均衡器",
|
||||
"cycleTooltip": "循环: {path} → (回到 {start})",
|
||||
"expected": "期望",
|
||||
"expectedPlaceholder": "最佳节点数",
|
||||
"maxRtt": "最大 RTT",
|
||||
"tolerance": "容差",
|
||||
"baselines": "Baselines",
|
||||
"costs": "Costs",
|
||||
"baselines": "基准值",
|
||||
"costs": "成本设置",
|
||||
"costMatch": "标签匹配模式",
|
||||
"costValue": "权重",
|
||||
"costRegexp": "正则表达式匹配",
|
||||
@@ -1635,7 +1635,7 @@
|
||||
"userLevel": "用户级别"
|
||||
},
|
||||
"nord": {
|
||||
"accessToken": "Access token",
|
||||
"accessToken": "访问令牌",
|
||||
"privateKey": "私钥",
|
||||
"noServers": "未找到选定国家/地区的服务器",
|
||||
"noPublicKey": "选定的服务器未公布 NordLynx 公钥。",
|
||||
@@ -1651,7 +1651,7 @@
|
||||
"licenseError": "设置 WARP 许可证失败。",
|
||||
"fetchFirst": "请先获取 WARP 配置。",
|
||||
"createAccount": "创建 WARP 账户",
|
||||
"accessToken": "Access token",
|
||||
"accessToken": "访问令牌",
|
||||
"deviceId": "设备 ID",
|
||||
"licenseKey": "许可证密钥",
|
||||
"privateKey": "私钥",
|
||||
@@ -1702,7 +1702,7 @@
|
||||
"timeoutMs": "超时 (毫秒)",
|
||||
"skipFallback": "跳过回退",
|
||||
"finalQuery": "最终查询",
|
||||
"hosts": "Hosts",
|
||||
"hosts": "主机映射",
|
||||
"hostsAdd": "添加 Host",
|
||||
"hostsEmpty": "未定义任何 Host",
|
||||
"hostsDomain": "域名 (例如 domain:example.com)",
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
"outbounds": "出站",
|
||||
"apiDocs": "API 文件",
|
||||
"donate": "捐贈",
|
||||
"hosts": "Hosts",
|
||||
"hosts": "主機",
|
||||
"docs": "文件",
|
||||
"openMenu": "開啟選單",
|
||||
"pinSidebar": "固定側邊欄",
|
||||
@@ -1503,8 +1503,8 @@
|
||||
},
|
||||
"outbound": {
|
||||
"tag": "標籤",
|
||||
"egress": "Egress",
|
||||
"egressHint": "Run an HTTP test to show egress IP and country.",
|
||||
"egress": "出口",
|
||||
"egressHint": "執行 HTTP 測試以顯示出口 IP 與所在國家/地區。",
|
||||
"outboundStatus": "出站狀態",
|
||||
"sendThrough": "傳送通過",
|
||||
"targetStrategy": "目標解析策略",
|
||||
@@ -1607,14 +1607,14 @@
|
||||
"tagDuplicate": "該標籤已被其他均衡器使用",
|
||||
"tagPlaceholder": "唯一均衡器標籤",
|
||||
"selector": "選擇器",
|
||||
"fallback": "Fallback",
|
||||
"fallback": "備用負載平衡器",
|
||||
"cycleTooltip": "循環: {path} → (回到 {start})",
|
||||
"expected": "期望",
|
||||
"expectedPlaceholder": "最佳節點數",
|
||||
"maxRtt": "最大 RTT",
|
||||
"tolerance": "容差",
|
||||
"baselines": "Baselines",
|
||||
"costs": "Costs",
|
||||
"baselines": "基準值",
|
||||
"costs": "成本設定",
|
||||
"costMatch": "標籤比對模式",
|
||||
"costValue": "權重",
|
||||
"costRegexp": "正規表示式比對",
|
||||
@@ -1635,7 +1635,7 @@
|
||||
"userLevel": "用戶級別"
|
||||
},
|
||||
"nord": {
|
||||
"accessToken": "Access token",
|
||||
"accessToken": "存取權杖",
|
||||
"privateKey": "私鑰",
|
||||
"noServers": "未找到選定國家/地區的伺服器",
|
||||
"noPublicKey": "選定的伺服器未公布 NordLynx 公鑰。",
|
||||
@@ -1651,7 +1651,7 @@
|
||||
"licenseError": "設定 WARP 授權失敗。",
|
||||
"fetchFirst": "請先取得 WARP 設定。",
|
||||
"createAccount": "建立 WARP 帳號",
|
||||
"accessToken": "Access token",
|
||||
"accessToken": "存取權杖",
|
||||
"deviceId": "裝置 ID",
|
||||
"licenseKey": "授權金鑰",
|
||||
"privateKey": "私鑰",
|
||||
@@ -1702,7 +1702,7 @@
|
||||
"timeoutMs": "逾時 (毫秒)",
|
||||
"skipFallback": "跳過回退",
|
||||
"finalQuery": "最終查詢",
|
||||
"hosts": "Hosts",
|
||||
"hosts": "主機對應",
|
||||
"hostsAdd": "新增 Host",
|
||||
"hostsEmpty": "未定義任何 Host",
|
||||
"hostsDomain": "網域 (例如 domain:example.com)",
|
||||
|
||||
Reference in New Issue
Block a user