auto-coder-web 0.1.9__tar.gz → 0.1.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/PKG-INFO +3 -1
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/auto_coder_runner.py +6 -1
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/proxy.py +244 -20
- auto_coder_web-0.1.11/src/auto_coder_web/version.py +1 -0
- auto_coder_web-0.1.11/src/auto_coder_web/web/asset-manifest.json +15 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/index.html +1 -1
- auto_coder_web-0.1.11/src/auto_coder_web/web/static/css/main.65d04c89.css +6 -0
- auto_coder_web-0.1.11/src/auto_coder_web/web/static/css/main.65d04c89.css.map +1 -0
- auto_coder_web-0.1.11/src/auto_coder_web/web/static/js/main.886fde02.js +3 -0
- auto_coder_web-0.1.9/src/auto_coder_web/web/static/js/main.832ed158.js.LICENSE.txt → auto_coder_web-0.1.11/src/auto_coder_web/web/static/js/main.886fde02.js.LICENSE.txt +14 -0
- auto_coder_web-0.1.9/src/auto_coder_web/web/static/js/main.832ed158.js.map → auto_coder_web-0.1.11/src/auto_coder_web/web/static/js/main.886fde02.js.map +1 -1
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web.egg-info/PKG-INFO +3 -1
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web.egg-info/SOURCES.txt +5 -5
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web.egg-info/requires.txt +2 -0
- auto_coder_web-0.1.9/src/auto_coder_web/version.py +0 -1
- auto_coder_web-0.1.9/src/auto_coder_web/web/asset-manifest.json +0 -15
- auto_coder_web-0.1.9/src/auto_coder_web/web/static/css/main.7c7b8c6c.css +0 -6
- auto_coder_web-0.1.9/src/auto_coder_web/web/static/css/main.7c7b8c6c.css.map +0 -1
- auto_coder_web-0.1.9/src/auto_coder_web/web/static/js/main.832ed158.js +0 -3
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/README.md +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/setup.cfg +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/setup.py +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/__init__.py +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/file_group.py +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/file_manager.py +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/json_file_storage.py +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/terminal.py +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/favicon.ico +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/logo192.png +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/logo512.png +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/manifest.json +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/robots.txt +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/static/js/453.d855a71b.chunk.js +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web/web/static/js/453.d855a71b.chunk.js.map +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web.egg-info/dependency_links.txt +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web.egg-info/entry_points.txt +0 -0
- {auto_coder_web-0.1.9 → auto_coder_web-0.1.11}/src/auto_coder_web.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: auto_coder_web
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.11
|
4
4
|
Summary: auto-coder.web: A Python Project
|
5
5
|
Author: allwefantasy
|
6
6
|
Classifier: Programming Language :: Python :: 3.9
|
@@ -13,6 +13,8 @@ Requires-Dist: psutil
|
|
13
13
|
Requires-Dist: sse-starlette
|
14
14
|
Requires-Dist: websockets
|
15
15
|
Requires-Dist: pywinpty; sys_platform == "win32"
|
16
|
+
Requires-Dist: pyyaml
|
17
|
+
Requires-Dist: gitpython
|
16
18
|
|
17
19
|
# auto-coder.web
|
18
20
|
|
@@ -335,6 +335,11 @@ class AutoCoderRunner:
|
|
335
335
|
if not request_id:
|
336
336
|
raise ValueError("request_id is required")
|
337
337
|
return queue_communicate.get_event(request_id)
|
338
|
+
|
339
|
+
def clear_events(self):
|
340
|
+
queue_communicate.request_queues.clear()
|
341
|
+
queue_communicate.response_queues.clear()
|
342
|
+
return {"message": "Event queue cleared successfully"}
|
338
343
|
|
339
344
|
def response_event(self, request_id: str, event: CommunicateEvent, response: str):
|
340
345
|
if not request_id:
|
@@ -346,7 +351,7 @@ class AutoCoderRunner:
|
|
346
351
|
|
347
352
|
async def get_result(self, request_id: str) -> Dict[str, Any]:
|
348
353
|
result = request_queue.get_request(request_id)
|
349
|
-
return result
|
354
|
+
return result
|
350
355
|
|
351
356
|
async def coding(self, query: str) -> Dict[str, str]:
|
352
357
|
self.memory["conversation"].append({"role": "user", "content": query})
|
@@ -6,11 +6,15 @@ from fastapi.staticfiles import StaticFiles
|
|
6
6
|
import uvicorn
|
7
7
|
import httpx
|
8
8
|
import uuid
|
9
|
-
from typing import Optional, Dict, List
|
9
|
+
from typing import Optional, Dict, List, Any
|
10
10
|
import os
|
11
11
|
import argparse
|
12
12
|
import aiofiles
|
13
13
|
import pkg_resources
|
14
|
+
import asyncio
|
15
|
+
import pathlib
|
16
|
+
import time
|
17
|
+
import sys
|
14
18
|
from .file_group import FileGroupManager
|
15
19
|
from .file_manager import get_directory_tree
|
16
20
|
from .auto_coder_runner import AutoCoderRunner
|
@@ -26,6 +30,12 @@ from typing import Optional, Dict, List, Any
|
|
26
30
|
from .terminal import terminal_manager
|
27
31
|
from autocoder.common import AutoCoderArgs
|
28
32
|
import json
|
33
|
+
import re
|
34
|
+
import yaml
|
35
|
+
import git
|
36
|
+
import hashlib
|
37
|
+
from datetime import datetime
|
38
|
+
|
29
39
|
|
30
40
|
class EventGetRequest(BaseModel):
|
31
41
|
request_id: str
|
@@ -52,6 +62,41 @@ class ChatList(BaseModel):
|
|
52
62
|
name: str
|
53
63
|
messages: List[Dict[str, Any]]
|
54
64
|
|
65
|
+
class HistoryQuery(BaseModel):
|
66
|
+
query: str
|
67
|
+
timestamp: Optional[str] = None
|
68
|
+
|
69
|
+
class ValidationResponse(BaseModel):
|
70
|
+
success: bool
|
71
|
+
message: str = ""
|
72
|
+
queries: List[HistoryQuery] = []
|
73
|
+
|
74
|
+
class QueryWithFileNumber(BaseModel):
|
75
|
+
query: str
|
76
|
+
timestamp: Optional[str] = None
|
77
|
+
file_number: int
|
78
|
+
response: Optional[str] = None
|
79
|
+
urls: Optional[List[str]] = None
|
80
|
+
|
81
|
+
class ValidationResponseWithFileNumbers(BaseModel):
|
82
|
+
success: bool
|
83
|
+
message: str = ""
|
84
|
+
queries: List[QueryWithFileNumber] = []
|
85
|
+
|
86
|
+
class FileContentResponse(BaseModel):
|
87
|
+
success: bool
|
88
|
+
message: str = ""
|
89
|
+
content: Optional[str] = None
|
90
|
+
|
91
|
+
class FileChange(BaseModel):
|
92
|
+
path: str
|
93
|
+
change_type: str # "added" 或 "modified"
|
94
|
+
|
95
|
+
class CommitDiffResponse(BaseModel):
|
96
|
+
success: bool
|
97
|
+
message: str = ""
|
98
|
+
diff: Optional[str] = None
|
99
|
+
file_changes: Optional[List[FileChange]] = None
|
55
100
|
|
56
101
|
def check_environment():
|
57
102
|
"""Check and initialize the required environment"""
|
@@ -266,12 +311,11 @@ class ProxyServer:
|
|
266
311
|
@self.app.on_event("shutdown")
|
267
312
|
async def shutdown_event():
|
268
313
|
await self.client.aclose()
|
269
|
-
|
314
|
+
|
270
315
|
@self.app.websocket("/ws/terminal")
|
271
316
|
async def terminal_websocket(websocket: WebSocket):
|
272
317
|
session_id = str(uuid.uuid4())
|
273
318
|
await terminal_manager.handle_websocket(websocket, session_id)
|
274
|
-
|
275
319
|
|
276
320
|
@self.app.delete("/api/files/{path:path}")
|
277
321
|
async def delete_file(path: str):
|
@@ -337,11 +381,12 @@ class ProxyServer:
|
|
337
381
|
inner_type = type_str.split("[")[1].split("]")[0]
|
338
382
|
if "Union" in inner_type:
|
339
383
|
# Handle Union types
|
340
|
-
types = [t.strip() for t in inner_type.split(",")[
|
384
|
+
types = [t.strip() for t in inner_type.split(",")[
|
385
|
+
:-1]] # Remove Union
|
341
386
|
type_str = " | ".join(types)
|
342
387
|
else:
|
343
388
|
type_str = inner_type
|
344
|
-
|
389
|
+
|
345
390
|
keys.append({
|
346
391
|
"key": field_name,
|
347
392
|
"type": type_str,
|
@@ -480,7 +525,7 @@ class ProxyServer:
|
|
480
525
|
return {"status": "success"}
|
481
526
|
except Exception as e:
|
482
527
|
raise HTTPException(status_code=400, detail=str(e))
|
483
|
-
|
528
|
+
|
484
529
|
@self.app.delete("/api/conf/{key}")
|
485
530
|
async def delete_config(key: str):
|
486
531
|
try:
|
@@ -552,10 +597,12 @@ class ProxyServer:
|
|
552
597
|
@self.app.post("/api/chat-lists/save")
|
553
598
|
async def save_chat_list(chat_list: ChatList):
|
554
599
|
try:
|
555
|
-
chat_lists_dir = os.path.join(
|
600
|
+
chat_lists_dir = os.path.join(
|
601
|
+
".auto-coder", "auto-coder.web", "chat-lists")
|
556
602
|
os.makedirs(chat_lists_dir, exist_ok=True)
|
557
|
-
|
558
|
-
file_path = os.path.join(
|
603
|
+
|
604
|
+
file_path = os.path.join(
|
605
|
+
chat_lists_dir, f"{chat_list.name}.json")
|
559
606
|
async with aiofiles.open(file_path, 'w') as f:
|
560
607
|
await f.write(json.dumps({"messages": chat_list.messages}, indent=2))
|
561
608
|
return {"status": "success", "message": f"Chat list {chat_list.name} saved successfully"}
|
@@ -565,20 +612,22 @@ class ProxyServer:
|
|
565
612
|
@self.app.get("/api/chat-lists")
|
566
613
|
async def get_chat_lists():
|
567
614
|
try:
|
568
|
-
chat_lists_dir = os.path.join(
|
615
|
+
chat_lists_dir = os.path.join(
|
616
|
+
".auto-coder", "auto-coder.web", "chat-lists")
|
569
617
|
os.makedirs(chat_lists_dir, exist_ok=True)
|
570
|
-
|
618
|
+
|
571
619
|
# Get files with their modification times
|
572
620
|
chat_lists = []
|
573
621
|
for file in os.listdir(chat_lists_dir):
|
574
622
|
if file.endswith('.json'):
|
575
623
|
file_path = os.path.join(chat_lists_dir, file)
|
576
624
|
mod_time = os.path.getmtime(file_path)
|
577
|
-
|
578
|
-
|
625
|
+
# Store tuple of (name, mod_time)
|
626
|
+
chat_lists.append((file[:-5], mod_time))
|
627
|
+
|
579
628
|
# Sort by modification time (newest first)
|
580
629
|
chat_lists.sort(key=lambda x: x[1], reverse=True)
|
581
|
-
|
630
|
+
|
582
631
|
# Return only the chat list names
|
583
632
|
return {"chat_lists": [name for name, _ in chat_lists]}
|
584
633
|
except Exception as e:
|
@@ -587,10 +636,12 @@ class ProxyServer:
|
|
587
636
|
@self.app.get("/api/chat-lists/{name}")
|
588
637
|
async def get_chat_list(name: str):
|
589
638
|
try:
|
590
|
-
file_path = os.path.join(
|
639
|
+
file_path = os.path.join(
|
640
|
+
".auto-coder", "auto-coder.web", "chat-lists", f"{name}.json")
|
591
641
|
if not os.path.exists(file_path):
|
592
|
-
raise HTTPException(
|
593
|
-
|
642
|
+
raise HTTPException(
|
643
|
+
status_code=404, detail=f"Chat list {name} not found")
|
644
|
+
|
594
645
|
async with aiofiles.open(file_path, 'r') as f:
|
595
646
|
content = await f.read()
|
596
647
|
return json.loads(content)
|
@@ -600,15 +651,188 @@ class ProxyServer:
|
|
600
651
|
@self.app.delete("/api/chat-lists/{name}")
|
601
652
|
async def delete_chat_list(name: str):
|
602
653
|
try:
|
603
|
-
file_path = os.path.join(
|
654
|
+
file_path = os.path.join(
|
655
|
+
".auto-coder", "auto-coder.web", "chat-lists", f"{name}.json")
|
604
656
|
if not os.path.exists(file_path):
|
605
|
-
raise HTTPException(
|
606
|
-
|
657
|
+
raise HTTPException(
|
658
|
+
status_code=404, detail=f"Chat list {name} not found")
|
659
|
+
|
607
660
|
os.remove(file_path)
|
608
661
|
return {"status": "success", "message": f"Chat list {name} deleted successfully"}
|
609
662
|
except Exception as e:
|
610
663
|
raise HTTPException(status_code=500, detail=str(e))
|
611
664
|
|
665
|
+
@self.app.post("/api/event/clear")
|
666
|
+
async def clear_events():
|
667
|
+
"""Clear all pending events in the event queue"""
|
668
|
+
try:
|
669
|
+
self.auto_coder_runner.clear_events()
|
670
|
+
return {"status": "success", "message": "Event queue cleared successfully"}
|
671
|
+
except Exception as e:
|
672
|
+
raise HTTPException(status_code=500, detail=str(e))
|
673
|
+
|
674
|
+
|
675
|
+
@self.app.get("/api/history/validate-and-load", response_model=ValidationResponseWithFileNumbers)
|
676
|
+
async def validate_and_load_queries():
|
677
|
+
try:
|
678
|
+
# 检查必要的目录
|
679
|
+
if not os.path.exists("actions") or not os.path.exists(".auto-coder"):
|
680
|
+
return ValidationResponseWithFileNumbers(
|
681
|
+
success=False,
|
682
|
+
message="无效的 auto-coder.chat 项目:缺少 actions 或 .auto-coder 目录"
|
683
|
+
)
|
684
|
+
|
685
|
+
queries = []
|
686
|
+
auto_coder_dir = "actions"
|
687
|
+
|
688
|
+
# 遍历actions目录下的所有yaml文件
|
689
|
+
for root, _, files in os.walk(auto_coder_dir):
|
690
|
+
for file in files:
|
691
|
+
if file.endswith('chat_action.yml'):
|
692
|
+
file_path = os.path.join(root, file)
|
693
|
+
match = re.match(r'(\d+)_chat_action\.yml', file)
|
694
|
+
if match:
|
695
|
+
file_number = int(match.group(1))
|
696
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
697
|
+
try:
|
698
|
+
yaml_content = yaml.safe_load(f)
|
699
|
+
if isinstance(yaml_content, dict) and 'query' in yaml_content:
|
700
|
+
timestamp = datetime.fromtimestamp(
|
701
|
+
os.path.getmtime(file_path)
|
702
|
+
).strftime('%Y-%m-%d %H:%M:%S')
|
703
|
+
|
704
|
+
file_md5 = hashlib.md5(open(file_path, 'rb').read()).hexdigest()
|
705
|
+
response_str = f"auto_coder_{file}_{file_md5}"
|
706
|
+
|
707
|
+
urls = yaml_content.get('urls', [])
|
708
|
+
|
709
|
+
queries.append(QueryWithFileNumber(
|
710
|
+
query=yaml_content['query'],
|
711
|
+
timestamp=timestamp,
|
712
|
+
file_number=file_number,
|
713
|
+
response=response_str,
|
714
|
+
urls=urls
|
715
|
+
))
|
716
|
+
except yaml.YAMLError:
|
717
|
+
continue
|
718
|
+
|
719
|
+
# 按时间戳排序
|
720
|
+
queries.sort(key=lambda x: x.timestamp or '', reverse=True)
|
721
|
+
|
722
|
+
return ValidationResponseWithFileNumbers(
|
723
|
+
success=True,
|
724
|
+
queries=queries
|
725
|
+
)
|
726
|
+
|
727
|
+
except Exception as e:
|
728
|
+
return ValidationResponseWithFileNumbers(
|
729
|
+
success=False,
|
730
|
+
message=f"读取项目文件时出错: {str(e)}"
|
731
|
+
)
|
732
|
+
|
733
|
+
@self.app.get("/api/history/commit-diff/{response_id}", response_model=CommitDiffResponse)
|
734
|
+
async def get_commit_diff(response_id: str):
|
735
|
+
"""根据response_id获取对应的git commit diff"""
|
736
|
+
try:
|
737
|
+
repo = git.Repo(self.project_path)
|
738
|
+
|
739
|
+
# 查找包含特定response message的commit
|
740
|
+
search_pattern = f"{response_id}"
|
741
|
+
|
742
|
+
matching_commits = []
|
743
|
+
for commit in repo.iter_commits():
|
744
|
+
if search_pattern in commit.message:
|
745
|
+
matching_commits.append(commit)
|
746
|
+
|
747
|
+
if not matching_commits:
|
748
|
+
return CommitDiffResponse(
|
749
|
+
success=False,
|
750
|
+
message=f"找不到对应的commit: {response_id}"
|
751
|
+
)
|
752
|
+
|
753
|
+
# 使用第一个匹配的commit
|
754
|
+
target_commit = matching_commits[0]
|
755
|
+
|
756
|
+
file_changes = []
|
757
|
+
if target_commit.parents:
|
758
|
+
parent = target_commit.parents[0]
|
759
|
+
diff = repo.git.diff(parent.hexsha, target_commit.hexsha)
|
760
|
+
|
761
|
+
# 获取变更的文件
|
762
|
+
diff_index = parent.diff(target_commit)
|
763
|
+
|
764
|
+
for diff_item in diff_index:
|
765
|
+
if diff_item.new_file:
|
766
|
+
file_changes.append(FileChange(
|
767
|
+
path=diff_item.b_path,
|
768
|
+
change_type="added"
|
769
|
+
))
|
770
|
+
else:
|
771
|
+
file_changes.append(FileChange(
|
772
|
+
path=diff_item.b_path,
|
773
|
+
change_type="modified"
|
774
|
+
))
|
775
|
+
else:
|
776
|
+
diff = repo.git.show(target_commit.hexsha)
|
777
|
+
|
778
|
+
# 对于初始commit,所有文件都是新增的
|
779
|
+
for item in target_commit.tree.traverse():
|
780
|
+
if item.type == 'blob': # 只处理文件,不处理目录
|
781
|
+
file_changes.append(FileChange(
|
782
|
+
path=item.path,
|
783
|
+
change_type="added"
|
784
|
+
))
|
785
|
+
|
786
|
+
return CommitDiffResponse(
|
787
|
+
success=True,
|
788
|
+
diff=diff,
|
789
|
+
file_changes=file_changes
|
790
|
+
)
|
791
|
+
|
792
|
+
except git.exc.GitCommandError as e:
|
793
|
+
return CommitDiffResponse(
|
794
|
+
success=False,
|
795
|
+
message=f"Git命令执行错误: {str(e)}"
|
796
|
+
)
|
797
|
+
except Exception as e:
|
798
|
+
return CommitDiffResponse(
|
799
|
+
success=False,
|
800
|
+
message=f"获取commit diff时出错: {str(e)}"
|
801
|
+
)
|
802
|
+
|
803
|
+
@self.app.get("/api/history/file-content/{file_number}", response_model=FileContentResponse)
|
804
|
+
async def get_file_content(file_number: int):
|
805
|
+
"""获取指定编号文件的完整内容"""
|
806
|
+
auto_coder_dir = "actions"
|
807
|
+
file_name = f"{file_number}_chat_action.yml"
|
808
|
+
file_path = ""
|
809
|
+
|
810
|
+
# 搜索文件
|
811
|
+
for root, _, files in os.walk(auto_coder_dir):
|
812
|
+
if file_name in files:
|
813
|
+
file_path = os.path.join(root, file_name)
|
814
|
+
break
|
815
|
+
|
816
|
+
if not file_path:
|
817
|
+
return FileContentResponse(
|
818
|
+
success=False,
|
819
|
+
message=f"找不到文件: {file_name}"
|
820
|
+
)
|
821
|
+
|
822
|
+
try:
|
823
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
824
|
+
content = f.read()
|
825
|
+
return FileContentResponse(
|
826
|
+
success=True,
|
827
|
+
content=content
|
828
|
+
)
|
829
|
+
except Exception as e:
|
830
|
+
return FileContentResponse(
|
831
|
+
success=False,
|
832
|
+
message=f"读取文件出错: {str(e)}"
|
833
|
+
)
|
834
|
+
|
835
|
+
|
612
836
|
|
613
837
|
def main():
|
614
838
|
parser = argparse.ArgumentParser(description="Proxy Server")
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.1.11"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"files": {
|
3
|
+
"main.css": "/static/css/main.65d04c89.css",
|
4
|
+
"main.js": "/static/js/main.886fde02.js",
|
5
|
+
"static/js/453.d855a71b.chunk.js": "/static/js/453.d855a71b.chunk.js",
|
6
|
+
"index.html": "/index.html",
|
7
|
+
"main.65d04c89.css.map": "/static/css/main.65d04c89.css.map",
|
8
|
+
"main.886fde02.js.map": "/static/js/main.886fde02.js.map",
|
9
|
+
"453.d855a71b.chunk.js.map": "/static/js/453.d855a71b.chunk.js.map"
|
10
|
+
},
|
11
|
+
"entrypoints": [
|
12
|
+
"static/css/main.65d04c89.css",
|
13
|
+
"static/js/main.886fde02.js"
|
14
|
+
]
|
15
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>React App</title><script defer="defer" src="/static/js/main.886fde02.js"></script><link href="/static/css/main.65d04c89.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/*
|
2
|
+
! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com
|
3
|
+
*/body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{border:0;height:0;left:-9999em;margin:0;opacity:0;overflow:hidden;padding:0;position:absolute;resize:none;top:0;white-space:nowrap;width:0;z-index:-5}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;bottom:0;cursor:default;left:0;overflow-y:scroll;position:absolute;right:0;top:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{left:0;position:absolute;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;left:-9999em;line-height:normal;position:absolute;top:0;visibility:hidden}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{bottom:0;color:#0000;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{height:1px;left:-9999px;overflow:hidden;position:absolute;width:1px}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{position:absolute;z-index:6}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{pointer-events:none;position:absolute;right:0;top:0;z-index:8}.xterm-decoration-top{position:relative;z-index:2}.split-container{display:flex;height:100%;width:100%}.gutter{position:relative}.gutter.gutter-horizontal{cursor:col-resize}.gutter:after{background-color:#9ca3af;border-radius:2px;content:"";height:20px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:4px}.gutter:hover:after{background-color:#f3f4f6}.split-container>div{height:100%;min-width:0;overflow:hidden}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
|
4
|
+
! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com
|
5
|
+
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-right-4{right:-1rem}.left-2{left:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.z-10{z-index:10}.z-50{z-index:50}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-4{margin-bottom:1rem;margin-top:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.table{display:table}.hidden{display:none}.h-2{height:.5rem}.h-4{height:1rem}.h-48{height:12rem}.h-\[1px\]{height:1px}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:24rem}.min-h-\[180px\]{min-height:180px}.w-2{width:.5rem}.w-4{width:1rem}.w-48{width:12rem}.w-60{width:15rem}.w-64{width:16rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[50px\]{width:50px}.w-full{width:100%}.max-w-\[80\%\]{max-width:80%}.max-w-none{max-width:none}.flex-1{flex:1 1}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.375rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-\[\#374151\]{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.border-gray-600\/50{border-color:#4b556380}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.border-gray-700\/50{border-color:#37415180}.border-indigo-500\/50{border-color:#6366f180}.bg-\[\#111827\]{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-\[\#1F2937\]{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.bg-\[\#1e1e1e\]{--tw-bg-opacity:1;background-color:rgb(30 30 30/var(--tw-bg-opacity))}.bg-\[\#1f1f1f\]{--tw-bg-opacity:1;background-color:rgb(31 31 31/var(--tw-bg-opacity))}.bg-\[\#2d2d2d\]{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.bg-gray-700\/50{background-color:#37415180}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:#3b82f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-indigo-600{--tw-gradient-to:#4f46e5 var(--tw-gradient-to-position)}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.pl-4{padding-left:1rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xs{font-size:.625rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 #0000000d;--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-inner,.shadow-lg{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-blue-500\/20{--tw-shadow-color:#3b82f633;--tw-shadow:var(--tw-shadow-colored)}.shadow-indigo-500\/20{--tw-shadow-color:#6366f133;--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline:2px solid #0000;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}body,html{background-color:#1a1a1a;margin:0}#root,body,html{height:100%}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#2d2d2d}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.custom-select .ant-select-selector{background-color:#374151!important;border-color:#4b5563!important;color:#fff!important}.custom-select .ant-select-selection-placeholder{color:#9ca3af!important}.custom-select .ant-select-selection-item{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.custom-select .ant-select-dropdown{background-color:#374151!important;border:1px solid #4b5563!important}.custom-select .ant-select-item{color:#fff!important}.custom-select .ant-select-item-option-active{background-color:#4b5563!important}.custom-select .ant-select-item-option-selected{background-color:#6b7280!important}.custom-select .ant-select-selection-search input{color:#fff!important}.custom-select .ant-select-clear{background-color:initial!important;color:#9ca3af!important}.custom-select .ant-select-arrow{color:#9ca3af!important}.dark-theme-modal .ant-modal-title{color:#e5e7eb!important}.dark-theme-modal .ant-modal-close{color:#9ca3af!important}.dark-theme-modal .ant-modal-close:hover{color:#e5e7eb!important}.dark-theme-list .ant-list-item{border-color:#374151!important}.dark-theme-list .ant-list-item:hover{background-color:#374151!important}.dark-theme-input{background-color:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important}.dark-theme-input::placeholder{color:#9ca3af!important}.dark-theme-input:focus,.dark-theme-input:hover{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f133!important}.split{display:flex;flex-direction:row}.gutter{background-color:#4b5563;cursor:col-resize}.gutter:hover{background-color:#6b7280}.custom-input{background-color:#1f2937!important;border-color:#4b5563!important;color:#e5e7eb!important}.custom-input:focus,.custom-input:hover{border-color:#6366f1!important;box-shadow:0 0 0 2px #6366f133!important}.custom-input input{background-color:initial!important;color:#e5e7eb!important}.custom-input .anticon{color:#9ca3af!important}.dark-mode-table,.dark-mode-table .ant-table{background-color:initial!important}.dark-mode-table .ant-table-thead>tr>th{background-color:#374151!important}.dark-mode-table .ant-table-tbody>tr>td,.dark-mode-table .ant-table-thead>tr>th{border-bottom:1px solid #4b5563!important;color:#fff!important}.dark-mode-table .ant-table-tbody>tr:hover>td{background-color:#4b5563!important}.dark-mode-table .ant-table-row-expand-icon{background-color:#4b5563!important;border-color:#6b7280!important;color:#fff!important}.dark-mode-table .nested-table{margin:0!important;padding:0!important}.dark-mode-table .nested-table .ant-table-tbody>tr>td{background-color:#1f2937!important}.dark-mode-table .nested-table .ant-table-tbody>tr:hover>td{background-color:#374151!important}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-500:hover{--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity))}.hover\:border-indigo-400:hover{--tw-border-opacity:1;border-color:rgb(129 140 248/var(--tw-border-opacity))}.hover\:bg-\[\#2D3748\]:hover{--tw-bg-opacity:1;background-color:rgb(45 55 72/var(--tw-bg-opacity))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity))}.hover\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.hover\:bg-gray-700\/80:hover{background-color:#374151cc}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:from-blue-600:hover{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-blue-700:hover{--tw-gradient-from:#1d4ed8 var(--tw-gradient-from-position);--tw-gradient-to:#1d4ed800 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:to-indigo-700:hover{--tw-gradient-to:#4338ca var(--tw-gradient-to-position)}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-sm:hover{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.hover\:shadow-blue-500\/30:hover{--tw-shadow-color:#3b82f64d;--tw-shadow:var(--tw-shadow-colored)}.hover\:shadow-indigo-500\/30:hover{--tw-shadow-color:#6366f14d;--tw-shadow:var(--tw-shadow-colored)}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.focus\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus\:ring-offset-gray-800:focus{--tw-ring-offset-color:#1f2937}.focus\:ring-offset-gray-900:focus{--tw-ring-offset-color:#111827}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:-translate-x-0\.5{--tw-translate-x:-0.125rem}.group:hover .group-hover\:-translate-x-0\.5,.group:hover .group-hover\:translate-x-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x:0.125rem}.group:hover .group-hover\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
|
6
|
+
/*# sourceMappingURL=main.65d04c89.css.map*/
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"static/css/main.65d04c89.css","mappings":"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","sources":["index.css","../node_modules/@xterm/xterm/css/xterm.css","components/MainContent/PreviewPanel.css","App.css"],"sourcesContent":["@import 'tailwindcss/base';\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n@import 'tailwindcss/components';\n@import 'tailwindcss/utilities';\n","/**\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * https://github.com/chjj/term.js\n * @license MIT\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Originally forked from (with the author's permission):\n * Fabrice Bellard's javascript vt100 for jslinux:\n * http://bellard.org/jslinux/\n * Copyright (c) 2011 Fabrice Bellard\n * The original design remains. The terminal itself\n * has been extended to include xterm CSI codes, among\n * other features.\n */\n\n/**\n * Default styles for xterm.js\n */\n\n.xterm {\n cursor: text;\n position: relative;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n}\n\n.xterm.focus,\n.xterm:focus {\n outline: none;\n}\n\n.xterm .xterm-helpers {\n position: absolute;\n top: 0;\n /**\n * The z-index of the helpers must be higher than the canvases in order for\n * IMEs to appear on top.\n */\n z-index: 5;\n}\n\n.xterm .xterm-helper-textarea {\n padding: 0;\n border: 0;\n margin: 0;\n /* Move textarea out of the screen to the far left, so that the cursor is not visible */\n position: absolute;\n opacity: 0;\n left: -9999em;\n top: 0;\n width: 0;\n height: 0;\n z-index: -5;\n /** Prevent wrapping so the IME appears against the textarea at the correct position */\n white-space: nowrap;\n overflow: hidden;\n resize: none;\n}\n\n.xterm .composition-view {\n /* TODO: Composition position got messed up somewhere */\n background: #000;\n color: #FFF;\n display: none;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n}\n\n.xterm .composition-view.active {\n display: block;\n}\n\n.xterm .xterm-viewport {\n /* On OS X this is required in order for the scroll bar to appear fully opaque */\n background-color: #000;\n overflow-y: scroll;\n cursor: default;\n position: absolute;\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n}\n\n.xterm .xterm-screen {\n position: relative;\n}\n\n.xterm .xterm-screen canvas {\n position: absolute;\n left: 0;\n top: 0;\n}\n\n.xterm .xterm-scroll-area {\n visibility: hidden;\n}\n\n.xterm-char-measure-element {\n display: inline-block;\n visibility: hidden;\n position: absolute;\n top: 0;\n left: -9999em;\n line-height: normal;\n}\n\n.xterm.enable-mouse-events {\n /* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */\n cursor: default;\n}\n\n.xterm.xterm-cursor-pointer,\n.xterm .xterm-cursor-pointer {\n cursor: pointer;\n}\n\n.xterm.column-select.focus {\n /* Column selection mode */\n cursor: crosshair;\n}\n\n.xterm .xterm-accessibility:not(.debug),\n.xterm .xterm-message {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10;\n color: transparent;\n pointer-events: none;\n}\n\n.xterm .xterm-accessibility-tree:not(.debug) *::selection {\n color: transparent;\n}\n\n.xterm .xterm-accessibility-tree {\n user-select: text;\n white-space: pre;\n}\n\n.xterm .live-region {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n.xterm-dim {\n /* Dim should not apply to background, so the opacity of the foreground color is applied\n * explicitly in the generated class and reset to 1 here */\n opacity: 1 !important;\n}\n\n.xterm-underline-1 { text-decoration: underline; }\n.xterm-underline-2 { text-decoration: double underline; }\n.xterm-underline-3 { text-decoration: wavy underline; }\n.xterm-underline-4 { text-decoration: dotted underline; }\n.xterm-underline-5 { text-decoration: dashed underline; }\n\n.xterm-overline {\n text-decoration: overline;\n}\n\n.xterm-overline.xterm-underline-1 { text-decoration: overline underline; }\n.xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }\n.xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }\n.xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }\n.xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }\n\n.xterm-strikethrough {\n text-decoration: line-through;\n}\n\n.xterm-screen .xterm-decoration-container .xterm-decoration {\n\tz-index: 6;\n\tposition: absolute;\n}\n\n.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer {\n\tz-index: 7;\n}\n\n.xterm-decoration-overview-ruler {\n z-index: 8;\n position: absolute;\n top: 0;\n right: 0;\n pointer-events: none;\n}\n\n.xterm-decoration-top {\n z-index: 2;\n position: relative;\n}\n",".split-container {\n display: flex;\n width: 100%;\n height: 100%;\n}\n\n.gutter {\n background-color: #4B5563;\n position: relative;\n}\n\n.gutter:hover {\n background-color: #6B7280;\n}\n\n.gutter.gutter-horizontal {\n cursor: col-resize;\n}\n\n.gutter::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 4px;\n height: 20px;\n background-color: #9CA3AF;\n border-radius: 2px;\n}\n\n.gutter:hover::after {\n background-color: #F3F4F6;\n}\n\n/* Make sure panels take full height */\n.split-container > div {\n height: 100%;\n min-width: 0; /* Prevent flex items from growing beyond their container */\n overflow: hidden;\n}","@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nhtml, body {\n @apply h-full m-0;\n background-color: #1a1a1a;\n}\n\n#root {\n @apply h-full;\n}\n\n/* 滚动条样式 */\n::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n::-webkit-scrollbar-track {\n background: #2d2d2d;\n}\n\n::-webkit-scrollbar-thumb {\n background: #888;\n border-radius: 4px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: #555;\n}\n\n/* Select custom styles */\n.custom-select .ant-select-selector {\n background-color: #374151 !important;\n border-color: #4B5563 !important;\n color: white !important;\n}\n\n.custom-select .ant-select-selection-placeholder {\n color: #9CA3AF !important;\n}\n\n.custom-select .ant-select-selection-item {\n background-color: #4B5563 !important;\n border-color: #6B7280 !important;\n color: white !important;\n}\n\n.custom-select .ant-select-dropdown {\n background-color: #374151 !important;\n border: 1px solid #4B5563 !important;\n}\n\n.custom-select .ant-select-item {\n color: white !important;\n}\n\n.custom-select .ant-select-item-option-active {\n background-color: #4B5563 !important;\n}\n\n.custom-select .ant-select-item-option-selected {\n background-color: #6B7280 !important;\n}\n\n.custom-select .ant-select-selection-search input {\n color: white !important;\n}\n\n.custom-select .ant-select-clear {\n background-color: transparent !important;\n color: #9CA3AF !important;\n}\n\n.custom-select .ant-select-arrow {\n color: #9CA3AF !important;\n}\n\n/* Dark theme modal styles */\n.dark-theme-modal .ant-modal-title {\n color: #e5e7eb !important;\n}\n\n.dark-theme-modal .ant-modal-close {\n color: #9CA3AF !important;\n}\n\n.dark-theme-modal .ant-modal-close:hover {\n color: #e5e7eb !important;\n}\n\n.dark-theme-list .ant-list-item {\n border-color: #374151 !important;\n}\n\n.dark-theme-list .ant-list-item:hover {\n background-color: #374151 !important;\n}\n\n.dark-theme-input {\n background-color: #1f2937 !important;\n border-color: #374151 !important;\n color: #e5e7eb !important;\n}\n\n.dark-theme-input::placeholder {\n color: #9CA3AF !important;\n}\n\n.dark-theme-input:hover,\n.dark-theme-input:focus {\n border-color: #6366F1 !important;\n box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2) !important;\n}\n\n/* Split pane styles */\n.split {\n display: flex;\n flex-direction: row;\n}\n\n.gutter {\n background-color: #4B5563;\n cursor: col-resize;\n}\n\n.gutter:hover {\n background-color: #6B7280;\n}\n\n/* Custom input styles for dark mode */\n.custom-input {\n background-color: #1F2937 !important;\n border-color: #4B5563 !important;\n color: #E5E7EB !important;\n}\n\n.custom-input:hover,\n.custom-input:focus {\n border-color: #6366F1 !important;\n box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2) !important;\n}\n\n.custom-input input {\n background-color: transparent !important;\n color: #E5E7EB !important;\n}\n\n.custom-input .anticon {\n color: #9CA3AF !important;\n}\n\n/* Dark mode table styles */\n.dark-mode-table {\n background-color: transparent !important;\n}\n\n.dark-mode-table .ant-table {\n background-color: transparent !important;\n}\n\n.dark-mode-table .ant-table-thead > tr > th {\n background-color: #374151 !important;\n color: #ffffff !important;\n border-bottom: 1px solid #4B5563 !important;\n}\n\n.dark-mode-table .ant-table-tbody > tr > td {\n border-bottom: 1px solid #4B5563 !important;\n color: #ffffff !important;\n}\n\n.dark-mode-table .ant-table-tbody > tr:hover > td {\n background-color: #4B5563 !important;\n}\n\n.dark-mode-table .ant-table-row-expand-icon {\n background-color: #4B5563 !important;\n border-color: #6B7280 !important;\n color: #ffffff !important;\n}\n\n.dark-mode-table .nested-table {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.dark-mode-table .nested-table .ant-table-tbody > tr > td {\n background-color: #1F2937 !important;\n}\n\n.dark-mode-table .nested-table .ant-table-tbody > tr:hover > td {\n background-color: #374151 !important;\n}\n"],"names":[],"sourceRoot":""}
|