From 2dcc72102d78c43dfdc809e8ac9720aa69ac4f27 Mon Sep 17 00:00:00 2001 From: caoxiaozhu Date: Wed, 27 May 2026 09:17:57 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E5=85=A8=E5=B1=80=20UI=20=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E7=9A=AE=E8=82=A4=E9=87=8D=E6=9E=84=E4=B8=8E=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E6=A8=A1=E5=9D=97=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 引入 Element Plus 主题定制和主题皮肤 composable,将全局 样式拆分为组件级独立 CSS 文件(侧边栏、顶栏、工作台等), 统一色彩变量和间距规范,重构所有视图和组件样式以适配新 主题系统,优化图表和知识图谱组件视觉表现,提取审计和差 旅报销相关子组件。 --- server/storage/knowledge/.index.json | 216 +- web/package-lock.json | 6172 +++++++++-------- web/package.json | 54 +- web/src/assets/header.svg | 4 +- web/src/assets/styles/app.css | 45 +- .../components/expense-application-dialog.css | 16 +- .../styles/components/personal-workbench.css | 705 ++ .../components/risk-rule-test-dialog.css | 30 +- .../assets/styles/components/sidebar-rail.css | 533 ++ web/src/assets/styles/components/top-bar.css | 459 ++ .../travel-reimbursement-insight-panel.css | 381 + .../travel-reimbursement-message-item.css | 469 ++ web/src/assets/styles/element-plus-theme.css | 131 + web/src/assets/styles/global.css | 67 +- .../views/approval-center-view-part2.css | 42 +- .../styles/views/approval-center-view.css | 250 +- .../styles/views/archive-center-view.css | 63 +- .../assets/styles/views/audit-view-part2.css | 76 +- web/src/assets/styles/views/audit-view.css | 98 +- .../styles/views/backend-unavailable-view.css | 12 +- .../styles/views/budget-center-dialog.css | 50 +- .../styles/views/budget-center-view.css | 113 +- web/src/assets/styles/views/chat-view.css | 44 +- .../styles/views/documents-center-view.css | 117 +- .../styles/views/employee-management-view.css | 179 +- .../assets/styles/views/log-detail-view.css | 12 +- web/src/assets/styles/views/login-view.css | 64 +- web/src/assets/styles/views/logs-view.css | 96 +- web/src/assets/styles/views/overview-view.css | 29 +- web/src/assets/styles/views/policies-view.css | 146 +- web/src/assets/styles/views/requests-view.css | 114 +- .../styles/views/settings-view-form.css | 26 +- .../styles/views/settings-view-hermes.css | 36 +- web/src/assets/styles/views/settings-view.css | 238 +- web/src/assets/styles/views/setup-view.css | 106 +- ...travel-reimbursement-create-view-part2.css | 108 +- ...travel-reimbursement-create-view-part3.css | 53 +- ...travel-reimbursement-create-view-part4.css | 38 +- .../travel-reimbursement-create-view.css | 137 +- .../travel-request-detail-view-part2.css | 42 +- .../views/travel-request-detail-view.css | 156 +- web/src/components/audit/AuditAssetList.vue | 334 + .../audit/AuditJsonRiskRuleDetail.vue | 173 + .../components/audit/AuditPickerFilter.vue | 60 + web/src/components/audit/AuditRuleDialogs.vue | 293 + .../audit/AuditSpreadsheetChangeDrawer.vue | 112 + .../audit/AuditSpreadsheetRuleDetail.vue | 159 + .../audit/AuditVersionTimelineDrawer.vue | 71 + .../components/business/PersonalWorkbench.vue | 732 +- web/src/components/charts/BarChart.vue | 18 +- .../components/charts/BudgetTrendChart.vue | 6 +- web/src/components/charts/DonutChart.vue | 18 +- web/src/components/charts/GaugeChart.vue | 6 +- web/src/components/charts/LogTrendChart.vue | 16 +- web/src/components/charts/TrendChart.vue | 21 +- web/src/components/layout/DocFilterBar.vue | 85 +- web/src/components/layout/FilterBar.vue | 122 +- web/src/components/layout/SidebarRail.vue | 512 +- web/src/components/layout/TopBar.vue | 460 +- .../logs/KnowledgeIngestGraphView.vue | 4 +- .../logs/KnowledgeIngestNodeDetails.vue | 36 +- .../logs/KnowledgeIngestRunInfo.vue | 6 +- .../logs/KnowledgeIngestRunPanel.vue | 4 +- .../logs/useKnowledgeIngestGraph.js | 42 +- web/src/components/shared/ConfirmDialog.vue | 92 +- .../components/shared/EnterpriseSelect.vue | 72 + web/src/components/shared/TableEmptyState.vue | 51 +- .../components/shared/TableLoadingState.vue | 20 +- .../components/shared/WorkbenchListIcon.vue | 2 +- .../TravelReimbursementInsightPanel.vue | 623 ++ .../travel/TravelReimbursementMessageItem.vue | 430 ++ .../travel/TravelRequestApprovalDialog.vue | 62 + .../travel/TravelRequestDeleteDialog.vue | 31 + .../travel/TravelRequestReturnDialog.vue | 23 + web/src/composables/useOverviewView.js | 10 +- web/src/composables/useSettings.js | 30 + web/src/composables/useThemeColors.js | 64 + web/src/composables/useThemeSkin.js | 282 + web/src/data/metrics.js | 28 +- web/src/main.js | 18 +- web/src/utils/settingsModelHelper.js | 9 + web/src/views/ArchiveCenterView.vue | 52 +- web/src/views/AuditView.vue | 1225 +--- web/src/views/BudgetCenterView.vue | 68 +- web/src/views/DocumentsCenterView.vue | 30 +- web/src/views/EmployeeManagementView.vue | 25 +- web/src/views/LlmSettingsPanel.vue | 37 +- web/src/views/LogsView.vue | 49 +- web/src/views/MailSettingsPanel.vue | 10 +- web/src/views/OverviewView.vue | 30 +- web/src/views/PoliciesView.vue | 25 +- web/src/views/RequestsView.vue | 15 +- web/src/views/SettingsView.vue | 65 +- .../views/TravelReimbursementCreateView.vue | 1025 +-- web/src/views/TravelRequestDetailView.vue | 57 +- web/src/views/scripts/ArchiveCenterView.js | 34 +- web/src/views/scripts/AuditView.js | 35 +- web/src/views/scripts/BudgetCenterView.js | 24 +- .../views/scripts/EmployeeManagementView.js | 22 +- web/src/views/scripts/LlmSettingsPanel.js | 4 + web/src/views/scripts/LoginView.js | 2 +- web/src/views/scripts/LogsView.js | 53 +- web/src/views/scripts/MailSettingsPanel.js | 12 + web/src/views/scripts/OverviewView.js | 10 +- web/src/views/scripts/PoliciesView.js | 42 +- web/src/views/scripts/RequestsView.js | 10 +- web/src/views/scripts/SettingsView.js | 3 +- .../scripts/TravelReimbursementCreateView.js | 126 +- .../views/scripts/TravelRequestDetailView.js | 10 +- web/src/views/scripts/auditViewMetadata.js | 2 +- web/src/views/scripts/auditViewModel.js | 2 +- .../documents-center-status-filter.test.mjs | 11 +- 112 files changed, 10983 insertions(+), 8996 deletions(-) create mode 100644 web/src/assets/styles/components/personal-workbench.css create mode 100644 web/src/assets/styles/components/sidebar-rail.css create mode 100644 web/src/assets/styles/components/top-bar.css create mode 100644 web/src/assets/styles/components/travel-reimbursement-insight-panel.css create mode 100644 web/src/assets/styles/components/travel-reimbursement-message-item.css create mode 100644 web/src/assets/styles/element-plus-theme.css create mode 100644 web/src/components/audit/AuditAssetList.vue create mode 100644 web/src/components/audit/AuditJsonRiskRuleDetail.vue create mode 100644 web/src/components/audit/AuditPickerFilter.vue create mode 100644 web/src/components/audit/AuditRuleDialogs.vue create mode 100644 web/src/components/audit/AuditSpreadsheetChangeDrawer.vue create mode 100644 web/src/components/audit/AuditSpreadsheetRuleDetail.vue create mode 100644 web/src/components/audit/AuditVersionTimelineDrawer.vue create mode 100644 web/src/components/shared/EnterpriseSelect.vue create mode 100644 web/src/components/travel/TravelReimbursementInsightPanel.vue create mode 100644 web/src/components/travel/TravelReimbursementMessageItem.vue create mode 100644 web/src/components/travel/TravelRequestApprovalDialog.vue create mode 100644 web/src/components/travel/TravelRequestDeleteDialog.vue create mode 100644 web/src/components/travel/TravelRequestReturnDialog.vue create mode 100644 web/src/composables/useThemeColors.js create mode 100644 web/src/composables/useThemeSkin.js diff --git a/server/storage/knowledge/.index.json b/server/storage/knowledge/.index.json index bc1e54a..47aeb04 100644 --- a/server/storage/knowledge/.index.json +++ b/server/storage/knowledge/.index.json @@ -14,13 +14,13 @@ "updated_at": "2026-05-17T09:28:28.999515+00:00", "uploaded_by": "admin", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.726523+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:08.579777+00:00", "ingest_completed_at": "2026-05-17T10:01:33.272539+00:00", "ingest_document_name": "远光《公司支出管理办法(2024)》.pdf", "ingest_document_updated_at": "2026-05-17T09:28:28.999515+00:00", "ingest_document_sha256": "67a74538bce0dec71ccbb947256cc2c9c0e672d148de49406b967ae1379dbece", - "ingest_agent_run_id": "run_3a0b0ecb941b4c8e" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "c7601043d9944ef2bcf4d3f67ed253f7", @@ -35,13 +35,13 @@ "updated_at": "2026-05-22T07:00:22.328877+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.731130+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:09.863684+00:00", "ingest_completed_at": "2026-05-22T09:22:25.565409+00:00", "ingest_document_name": "远光软件会计科目使用说明.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:22.328877+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_8c1ab050c9734d96" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "b0277cd76034437997fbf5219662725a", @@ -56,13 +56,13 @@ "updated_at": "2026-05-22T07:00:22.011016+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.735501+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:00:50.652735+00:00", "ingest_completed_at": "2026-05-23T14:30:33.605531+00:00", "ingest_document_name": "远光软件财务基础知识手册.docx", "ingest_document_updated_at": "2026-05-22T07:00:22.011016+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_8c1ab050c9734d96" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "23f56f159a3e4bc3b2338056544120dd", @@ -77,13 +77,13 @@ "updated_at": "2026-05-22T07:00:22.352133+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.739842+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:00:51.908821+00:00", "ingest_completed_at": "2026-05-22T09:23:11.334499+00:00", "ingest_document_name": "远光软件财务术语解释手册.docx", "ingest_document_updated_at": "2026-05-22T07:00:22.352133+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_8c1ab050c9734d96" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "09fbcae74d3b41e498a47e05b45262cb", @@ -98,13 +98,13 @@ "updated_at": "2026-05-22T07:00:22.304623+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.744555+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:13.581834+00:00", "ingest_completed_at": "2026-05-22T09:24:18.933073+00:00", "ingest_document_name": "远光软件高新技术企业税收优惠政策汇总.pdf", "ingest_document_updated_at": "2026-05-22T07:00:22.304623+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_8c1ab050c9734d96" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "5fb3c63fbfe244a280cf3316a20150cd", @@ -119,13 +119,13 @@ "updated_at": "2026-05-22T07:00:18.153373+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.762391+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:00:53.906324+00:00", "ingest_completed_at": "2026-05-22T16:01:43.168774+00:00", "ingest_document_name": "远光软件公司内部控制基本规范.pdf", "ingest_document_updated_at": "2026-05-22T07:00:18.153373+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "f4ae48231a974240bbaf6c9f3bfd4160", @@ -140,13 +140,13 @@ "updated_at": "2026-05-22T07:00:18.190399+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.773116+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:00:55.339114+00:00", "ingest_completed_at": "2026-05-22T16:03:00.735908+00:00", "ingest_document_name": "远光软件公司合同管理制度.docx", "ingest_document_updated_at": "2026-05-22T07:00:18.190399+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "b1d08d6a9dc6404aba9098f3b7287353", @@ -161,13 +161,13 @@ "updated_at": "2026-05-22T07:00:17.798679+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.784020+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:00:56.741808+00:00", "ingest_completed_at": "2026-05-22T16:03:46.921675+00:00", "ingest_document_name": "远光软件公司财务管理制度总则.docx", "ingest_document_updated_at": "2026-05-22T07:00:17.798679+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "c87fc4aabe524c6c81862c20aabe434c", @@ -182,13 +182,13 @@ "updated_at": "2026-05-22T07:00:18.531598+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.799323+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:19.014702+00:00", "ingest_completed_at": "2026-05-22T16:04:58.719410+00:00", "ingest_document_name": "远光软件公司资产管理制度.pdf", "ingest_document_updated_at": "2026-05-22T07:00:18.531598+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "13181df0179a4bacb12a2f65e3772d9b", @@ -203,13 +203,13 @@ "updated_at": "2026-05-22T07:00:18.221073+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.814611+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:00:59.485821+00:00", "ingest_completed_at": "2026-05-22T16:06:08.172318+00:00", "ingest_document_name": "远光软件公司采购管理办法.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:18.221073+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "396588b0cdd04c86a61ae0b9bd04e06c", @@ -224,13 +224,13 @@ "updated_at": "2026-05-22T07:00:19.734422+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.830249+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:00.774887+00:00", "ingest_completed_at": "2026-05-22T16:06:48.466110+00:00", "ingest_document_name": "远光软件公司差旅费管理办法.docx", "ingest_document_updated_at": "2026-05-22T07:00:19.734422+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "fe5f834f94244b77bb62171d580ecee3", @@ -245,13 +245,13 @@ "updated_at": "2026-05-22T07:00:20.095824+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.847094+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:02.037101+00:00", "ingest_completed_at": "2026-05-22T16:07:23.262328+00:00", "ingest_document_name": "远光软件出差审批流程说明.pdf", "ingest_document_updated_at": "2026-05-22T07:00:20.095824+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "be3fca61e2be421896405082c93cf86c", @@ -266,13 +266,13 @@ "updated_at": "2026-05-22T07:00:20.128471+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.865452+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:24.076574+00:00", "ingest_completed_at": "2026-05-22T16:08:02.190081+00:00", "ingest_document_name": "远光软件国际出差管理规定.docx", "ingest_document_updated_at": "2026-05-22T07:00:20.128471+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "c4421b3049b244a8a92cc53d502e530f", @@ -287,13 +287,13 @@ "updated_at": "2026-05-22T07:00:19.759954+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.888420+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:25.270086+00:00", "ingest_completed_at": "2026-05-22T16:09:23.091744+00:00", "ingest_document_name": "远光软件差旅费标准速查表.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:19.759954+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "e13cc0a8d6474b6caeeedc49c4304558", @@ -308,13 +308,13 @@ "updated_at": "2026-05-22T07:00:18.922298+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.905615+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:26.510710+00:00", "ingest_completed_at": "2026-05-22T16:11:04.764727+00:00", "ingest_document_name": "远光软件公司发票审核标准.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:18.922298+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "7170abfdde6f4e6abad2fc987564c2cf", @@ -329,13 +329,13 @@ "updated_at": "2026-05-22T07:00:18.560177+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.919568+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:06.719118+00:00", "ingest_completed_at": "2026-05-22T16:11:54.017817+00:00", "ingest_document_name": "远光软件公司发票管理规范.docx", "ingest_document_updated_at": "2026-05-22T07:00:18.560177+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "dd0d7b32e832446e8ce9caa06c442685", @@ -350,13 +350,13 @@ "updated_at": "2026-05-22T07:00:18.888128+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.934348+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:28.865726+00:00", "ingest_completed_at": "2026-05-22T16:12:23.821434+00:00", "ingest_document_name": "远光软件公司增值税发票操作指南.pdf", "ingest_document_updated_at": "2026-05-22T07:00:18.888128+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "f268a54ee05e4dfca33fd86bcc077216", @@ -371,13 +371,13 @@ "updated_at": "2026-05-22T07:00:18.953110+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.949214+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:30.095619+00:00", "ingest_completed_at": "2026-05-22T16:13:15.450300+00:00", "ingest_document_name": "远光软件公司电子发票管理办法.docx", "ingest_document_updated_at": "2026-05-22T07:00:18.953110+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "f3f74cb65a9a4a16933368218c5e25de", @@ -392,13 +392,13 @@ "updated_at": "2026-05-22T07:00:21.585718+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.963406+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:09.790447+00:00", "ingest_completed_at": "2026-05-22T16:13:44.636629+00:00", "ingest_document_name": "远光软件企业所得税汇算清缴操作手册.pdf", "ingest_document_updated_at": "2026-05-22T07:00:21.585718+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "56721ca1904b437486a609b85e3d9362", @@ -413,13 +413,13 @@ "updated_at": "2026-05-22T07:00:20.881351+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.976986+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:11.027818+00:00", "ingest_completed_at": "2026-05-22T16:14:50.092490+00:00", "ingest_document_name": "远光软件公司税务管理制度.docx", "ingest_document_updated_at": "2026-05-22T07:00:20.881351+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "2460661167ef456699ab259321db4156", @@ -434,13 +434,13 @@ "updated_at": "2026-05-22T07:00:21.606227+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:00.995972+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:33.826025+00:00", "ingest_completed_at": "2026-05-22T16:15:56.676286+00:00", "ingest_document_name": "远光软件研发费用加计扣除管理办法.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:21.606227+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "e30f54ea32704fbd9701cc931b447a06", @@ -455,13 +455,13 @@ "updated_at": "2026-05-22T07:00:21.202633+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:01.010947+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:13.991763+00:00", "ingest_completed_at": "2026-05-22T16:16:06.540773+00:00", "ingest_document_name": "远光软件软件产品增值税即征即退操作指南.pdf", "ingest_document_updated_at": "2026-05-22T07:00:21.202633+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "2d1cd10154e84cb38640dce31f33b529", @@ -476,13 +476,13 @@ "updated_at": "2026-05-22T07:00:22.379307+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:01.025910+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:15.257700+00:00", "ingest_completed_at": "2026-05-22T16:23:24.252614+00:00", "ingest_document_name": "远光软件公司预算管理制度.docx", "ingest_document_updated_at": "2026-05-22T07:00:22.379307+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "229b3a79fef14360ba3cbd0a55e5e20c", @@ -497,13 +497,13 @@ "updated_at": "2026-05-22T07:00:22.760169+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:01.044022+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:16.510610+00:00", "ingest_completed_at": "2026-05-22T16:23:29.997956+00:00", "ingest_document_name": "远光软件年度预算编制指南.pdf", "ingest_document_updated_at": "2026-05-22T07:00:22.760169+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "a40da5544dea4efcade070274b84a54e", @@ -518,13 +518,13 @@ "updated_at": "2026-05-22T07:00:22.848272+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.402454+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:38.728430+00:00", "ingest_completed_at": "2026-05-22T16:24:37.382612+00:00", "ingest_document_name": "远光软件预算执行分析报告模板.docx", "ingest_document_updated_at": "2026-05-22T07:00:22.848272+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "dcd982e40ce94105824e59ecbbae75cb", @@ -539,13 +539,13 @@ "updated_at": "2026-05-22T07:00:22.803708+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.417444+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:19.050297+00:00", "ingest_completed_at": "2026-05-22T16:24:45.161319+00:00", "ingest_document_name": "远光软件预算编制模板.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:22.803708+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "79cb9276398b4216ba17d5623aadf75f", @@ -560,13 +560,13 @@ "updated_at": "2026-05-22T07:00:21.971983+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.433923+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:20.323058+00:00", "ingest_completed_at": "2026-05-22T16:25:33.968414+00:00", "ingest_document_name": "远光软件财务共享服务SLA标准.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:21.971983+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "f841ca416b5d404994a7c4a310e35569", @@ -581,13 +581,13 @@ "updated_at": "2026-05-22T07:00:21.634300+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.450037+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:21.585474+00:00", "ingest_completed_at": "2026-05-22T16:26:05.301987+00:00", "ingest_document_name": "远光软件财务共享服务中心运营管理办法.docx", "ingest_document_updated_at": "2026-05-22T07:00:21.634300+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "d1ad784de58a4c4a802a0b9fbce29f62", @@ -602,13 +602,13 @@ "updated_at": "2026-05-22T07:00:21.945868+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.471635+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:43.752235+00:00", "ingest_completed_at": "2026-05-22T16:26:54.048075+00:00", "ingest_document_name": "远光软件财务共享服务操作手册.pdf", "ingest_document_updated_at": "2026-05-22T07:00:21.945868+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "ce50d015861f4633a634a2eae416fa2e", @@ -623,13 +623,13 @@ "updated_at": "2026-05-22T07:00:19.662743+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.489793+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:24.093834+00:00", "ingest_completed_at": "2026-05-22T16:27:31.775974+00:00", "ingest_document_name": "远光软件报销流程培训手册.pdf", "ingest_document_updated_at": "2026-05-22T07:00:19.662743+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "56a0e13b705e49468d46629f3b5f691a", @@ -644,13 +644,13 @@ "updated_at": "2026-05-22T07:00:19.323921+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.505506+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:25.246857+00:00", "ingest_completed_at": "2026-05-22T16:27:44.244066+00:00", "ingest_document_name": "远光软件新员工财务培训课件.pdf", "ingest_document_updated_at": "2026-05-22T07:00:19.323921+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "22ef5d13bb5e4307a8097628eaa3d398", @@ -665,13 +665,13 @@ "updated_at": "2026-05-22T07:00:18.988700+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.520887+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:26.471932+00:00", "ingest_completed_at": "2026-05-22T16:28:24.573683+00:00", "ingest_document_name": "远光软件财务制度培训手册.docx", "ingest_document_updated_at": "2026-05-22T07:00:18.988700+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "78d1a28f1c934f46b762fb1466d4be32", @@ -686,13 +686,13 @@ "updated_at": "2026-05-22T07:00:19.686485+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.542919+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:48.525207+00:00", "ingest_completed_at": "2026-05-22T16:29:03.349502+00:00", "ingest_document_name": "远光软件财务培训课程安排.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:19.686485+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "91fbf156593a4dcc956780962195ffd7", @@ -707,13 +707,13 @@ "updated_at": "2026-05-22T07:00:20.476077+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.558881+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:49.746825+00:00", "ingest_completed_at": "2026-05-22T16:29:29.050791+00:00", "ingest_document_name": "远光软件报销问题处理指引.xlsx", "ingest_document_updated_at": "2026-05-22T07:00:20.476077+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "a24793b7f7de4749a7c531d1713a4a2b", @@ -728,13 +728,13 @@ "updated_at": "2026-05-22T07:00:20.453567+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.575410+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:30.343781+00:00", "ingest_completed_at": "2026-05-22T16:35:03.548506+00:00", "ingest_document_name": "远光软件财务制度问答汇总.pdf", "ingest_document_updated_at": "2026-05-22T07:00:20.453567+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" }, { "id": "3acd9c2df63b4a438c7eab876269b25d", @@ -749,13 +749,13 @@ "updated_at": "2026-05-22T07:00:20.158497+00:00", "uploaded_by": "系统导入", "version_number": 1, - "ingest_status": 1, - "ingest_status_updated_at": "2026-05-26T02:39:17.593165+00:00", + "ingest_status": 4, + "ingest_status_updated_at": "2026-05-26T16:01:31.573128+00:00", "ingest_completed_at": "2026-05-22T16:35:27.056080+00:00", "ingest_document_name": "远光软件财务报销常见问题解答.docx", "ingest_document_updated_at": "2026-05-22T07:00:20.158497+00:00", "ingest_document_sha256": "", - "ingest_agent_run_id": "run_655cdac08d3d4a7f" + "ingest_agent_run_id": "run_7236fb72747742a3" } ] } \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json index a887d8d..ab6bdcd 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,3045 +1,3127 @@ -{ - "name": "x-financial-reimbursement-admin", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "x-financial-reimbursement-admin", - "version": "0.1.0", - "dependencies": { - "@antv/g6": "^5.1.1", - "@primevue/themes": "^4.5.4", - "@vitejs/plugin-vue": "^5.2.4", - "@vueuse/motion": "^3.0.3", - "chart.js": "^4.5.1", - "markdown-it": "^14.1.1", - "pg": "^8.13.1", - "primeicons": "^7.0.0", - "primevue": "^4.5.5", - "vite": "^5.4.19", - "vue": "^3.5.13", - "vue-chartjs": "^5.3.3", - "vue-router": "^4.5.1" - } - }, - "node_modules/@antv/algorithm": { - "version": "0.1.26", - "resolved": "https://registry.npmmirror.com/@antv/algorithm/-/algorithm-0.1.26.tgz", - "integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==", - "license": "MIT", - "dependencies": { - "@antv/util": "^2.0.13", - "tslib": "^2.0.0" - } - }, - "node_modules/@antv/algorithm/node_modules/@antv/util": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", - "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", - "license": "ISC", - "dependencies": { - "csstype": "^3.0.8", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/component": { - "version": "2.1.11", - "resolved": "https://registry.npmmirror.com/@antv/component/-/component-2.1.11.tgz", - "integrity": "sha512-dTdz8VAd3rpjOaGEZTluz82mtzrP4XCtNlNQyrxY7VNRNcjtvpTLDn57bUL2lRu1T+iklKvgbE2llMriWkq9vQ==", - "license": "MIT", - "dependencies": { - "@antv/g": "^6.1.11", - "@antv/scale": "^0.4.16", - "@antv/util": "^3.3.10", - "svg-path-parser": "^1.1.0" - } - }, - "node_modules/@antv/event-emitter": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", - "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==", - "license": "MIT" - }, - "node_modules/@antv/expr": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@antv/expr/-/expr-1.0.2.tgz", - "integrity": "sha512-vrfdmPHkTuiS5voVutKl2l06w1ihBh9A8SFdQPEE+2KMVpkymzGOF1eWpfkbGZ7tiFE15GodVdhhHomD/hdIwg==", - "license": "MIT" - }, - "node_modules/@antv/g": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/@antv/g/-/g-6.3.1.tgz", - "integrity": "sha512-WYEKqy86LHB2PzTmrZXrIsIe+3Epeds2f68zceQ+BJtRoGki7Sy4IhlC8LrUMztgfT1t3d/0L745NWZwITroKA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.7.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "html2canvas": "^1.4.1" - } - }, - "node_modules/@antv/g-canvas": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-2.2.0.tgz", - "integrity": "sha512-h7zVBBo2aO64DuGKvq9sG+yTU3sCUb9DALCVm7nz8qGPs8hhLuFOkKPEzUDNfNYZGJUGzY8UDtJ3QRGRFcvEQg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.7.0", - "@antv/g-math": "3.1.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-canvas/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/@antv/g-lite": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/@antv/g-lite/-/g-lite-2.7.0.tgz", - "integrity": "sha512-uSzgHYa5bwR5L2Au7/5tsOhFmXKZKLPBH90+Q9bP9teVs5VT4kOAi0isPSpDI8uhdDC2/VrfTWu5K9HhWI6FWw==", - "license": "MIT", - "dependencies": { - "@antv/g-math": "3.1.0", - "@antv/util": "^3.3.5", - "@antv/vendor": "^1.0.3", - "@babel/runtime": "^7.25.6", - "eventemitter3": "^5.0.1", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-lite/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/@antv/g-math": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-3.1.0.tgz", - "integrity": "sha512-DtN1Gj/yI0UiK18nSBsZX8RK0LszGwqfb+cBYWgE+ddyTm8dZnW4tPUhV7QXePsS6/A5hHC+JFpAAK7OEGo5ZQ==", - "license": "MIT", - "dependencies": { - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-math/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/@antv/g-plugin-dragndrop": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.1.1.tgz", - "integrity": "sha512-+aesDUJVQDs6UJ2bOBbDlaGAPCfHmU0MbrMTlQlfpwNplWueqtgVAZ3L57oZ2ZGHRWUHiRwZGPjXMBM3O2LELw==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.7.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-dragndrop/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/@antv/g6": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/@antv/g6/-/g6-5.1.1.tgz", - "integrity": "sha512-50bXxMUf4mChyOv4ePVeWZLwotih9VunKfp0a++Wofv/wCyY8fb9+CV2wouIBCOZnd5ydBRA4NNaX9yLJzqa2w==", - "license": "MIT", - "dependencies": { - "@antv/algorithm": "^0.1.26", - "@antv/component": "^2.1.7", - "@antv/event-emitter": "^0.1.3", - "@antv/g": "^6.1.28", - "@antv/g-canvas": "^2.0.48", - "@antv/g-plugin-dragndrop": "^2.0.38", - "@antv/graphlib": "^2.0.4", - "@antv/hierarchy": "^0.7.1", - "@antv/layout": "^2.0.0", - "@antv/util": "^3.3.11", - "bubblesets-js": "^2.3.4" - } - }, - "node_modules/@antv/graphlib": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/@antv/graphlib/-/graphlib-2.0.4.tgz", - "integrity": "sha512-zc/5oQlsdk42Z0ib1mGklwzhJ5vczLFiPa1v7DgJkTbgJ2YxRh9xdarf86zI49sKVJmgbweRpJs7Nu5bIiwv4w==", - "license": "MIT", - "dependencies": { - "@antv/event-emitter": "^0.1.3" - } - }, - "node_modules/@antv/hierarchy": { - "version": "0.7.1", - "resolved": "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.7.1.tgz", - "integrity": "sha512-7r22r+HxfcRZp79ZjGmsn97zgC1Iajrv0Mm9DIgx3lPfk+Kme2MG/+EKdZj1iEBsN0rJRzjWVPGL5YrBdVHchw==", - "license": "MIT" - }, - "node_modules/@antv/layout": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/@antv/layout/-/layout-2.0.0.tgz", - "integrity": "sha512-aCZ3UdNc40SfT7meFV7QTADY2HCnc0DShVw56CJNTI6oExUIVU736grPuL5Dhb8/JrVaU4Y83QPN/P7KafBzlw==", - "license": "MIT", - "dependencies": { - "@antv/event-emitter": "^0.1.3", - "@antv/expr": "^1.0.2", - "@antv/graphlib": "^2.0.0", - "@antv/util": "^3.3.2", - "comlink": "^4.4.1", - "d3-force": "^3.0.0", - "d3-force-3d": "^3.0.5", - "d3-octree": "^1.0.2", - "d3-quadtree": "^3.0.1", - "dagre": "^0.8.5", - "ml-matrix": "^6.10.4", - "tslib": "^2.8.1" - } - }, - "node_modules/@antv/layout/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/@antv/scale": { - "version": "0.4.16", - "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.4.16.tgz", - "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", - "license": "MIT", - "dependencies": { - "@antv/util": "^3.3.7", - "color-string": "^1.5.5", - "fecha": "^4.2.1" - } - }, - "node_modules/@antv/util": { - "version": "3.3.11", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-3.3.11.tgz", - "integrity": "sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "gl-matrix": "^3.3.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@antv/vendor": { - "version": "1.0.11", - "resolved": "https://registry.npmmirror.com/@antv/vendor/-/vendor-1.0.11.tgz", - "integrity": "sha512-LmhPEQ+aapk3barntaiIxJ5VHno/Tyab2JnfdcPzp5xONh/8VSfed4bo/9xKo5HcUAEydko38vYLfj6lJliLiw==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.2.1", - "@types/d3-color": "^3.1.3", - "@types/d3-dispatch": "^3.0.6", - "@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.0", - "@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-shape": "^3.1.7", - "@types/d3-time": "^3.0.4", - "@types/d3-timer": "^3.0.2", - "d3-array": "^3.2.4", - "d3-color": "^3.1.0", - "d3-dispatch": "^3.0.1", - "d3-dsv": "^3.0.1", - "d3-ease": "^3.0.1", - "d3-fetch": "^3.0.1", - "d3-force": "^3.0.0", - "d3-force-3d": "^3.0.5", - "d3-format": "^3.1.0", - "d3-geo": "^3.1.1", - "d3-geo-projection": "^4.0.0", - "d3-hierarchy": "^3.1.2", - "d3-interpolate": "^3.0.1", - "d3-path": "^3.1.0", - "d3-quadtree": "^3.0.1", - "d3-random": "^3.0.1", - "d3-regression": "^1.3.10", - "d3-scale": "^4.0.2", - "d3-scale-chromatic": "^3.1.0", - "d3-shape": "^3.2.0", - "d3-time": "^3.1.0", - "d3-timer": "^3.0.1" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", - "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.29.2", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.29.2.tgz", - "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "optional": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "optional": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@kurkle/color": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", - "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", - "license": "MIT" - }, - "node_modules/@nuxt/kit": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.2.tgz", - "integrity": "sha512-Bd6m6mrDrqpBEbX+g0rc66/ALd1sxlgdx5nfK9MAYO0yKLTOSK7McSYz1KcOYn3LQFCXOWfvXwaqih/b+REI1g==", - "license": "MIT", - "optional": true, - "dependencies": { - "c12": "^3.3.3", - "consola": "^3.4.2", - "defu": "^6.1.4", - "destr": "^2.0.5", - "errx": "^0.1.0", - "exsolve": "^1.0.8", - "ignore": "^7.0.5", - "jiti": "^2.6.1", - "klona": "^2.0.6", - "knitwork": "^1.3.0", - "mlly": "^1.8.1", - "ohash": "^2.0.11", - "pathe": "^2.0.3", - "pkg-types": "^2.3.0", - "rc9": "^3.0.0", - "scule": "^1.3.0", - "semver": "^7.7.4", - "tinyglobby": "^0.2.15", - "ufo": "^1.6.3", - "unctx": "^2.5.0", - "untyped": "^2.0.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@primeuix/styled": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@primeuix/styled/-/styled-0.7.4.tgz", - "integrity": "sha512-QSO/NpOQg8e9BONWRBx9y8VGMCMYz0J/uKfNJEya/RGEu7ARx0oYW0ugI1N3/KB1AAvyGxzKBzGImbwg0KUiOQ==", - "license": "MIT", - "dependencies": { - "@primeuix/utils": "^0.6.1" - }, - "engines": { - "node": ">=12.11.0" - } - }, - "node_modules/@primeuix/styles": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@primeuix/styles/-/styles-2.0.3.tgz", - "integrity": "sha512-2ykAB6BaHzR/6TwF8ShpJTsZrid6cVIEBVlookSdvOdmlWuevGu5vWOScgIwqWwlZcvkFYAGR/SUV3OHCTBMdw==", - "license": "MIT", - "dependencies": { - "@primeuix/styled": "^0.7.4" - } - }, - "node_modules/@primeuix/themes": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@primeuix/themes/-/themes-2.0.3.tgz", - "integrity": "sha512-3fS1883mtCWhgUgNf/feiaaDSOND4EBIOu9tZnzJlJ8QtYyL6eFLcA6V3ymCWqLVXQ1+lTVEZv1gl47FIdXReg==", - "license": "MIT", - "dependencies": { - "@primeuix/styled": "^0.7.4" - } - }, - "node_modules/@primeuix/utils": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@primeuix/utils/-/utils-0.6.4.tgz", - "integrity": "sha512-pZ5f+vj7wSzRhC7KoEQRU5fvYAe+RP9+m39CTscZ3UywCD1Y2o6Fe1rRgklMPSkzUcty2jzkA0zMYkiJBD1hgg==", - "license": "MIT", - "engines": { - "node": ">=12.11.0" - } - }, - "node_modules/@primevue/core": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/@primevue/core/-/core-4.5.5.tgz", - "integrity": "sha512-JpkXhq1ddc70JdsC3CC4dM+UbeeWuCW/8DpS9dNBfrOk824TLSlRlMEGFyVKqRMn5WPQvYLiy3xXfLQeNdSqhQ==", - "license": "MIT", - "dependencies": { - "@primeuix/styled": "^0.7.4", - "@primeuix/utils": "^0.6.2" - }, - "engines": { - "node": ">=12.11.0" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/@primevue/icons": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/@primevue/icons/-/icons-4.5.5.tgz", - "integrity": "sha512-eteOhTdAOXEYE9qW1AOrBBgDxQ2szHJxSkEK1XVdV2TKxGM5FQf03Ovms0VDyZTc16XBIgvwYjXJQS0BPbhPaA==", - "license": "MIT", - "dependencies": { - "@primeuix/utils": "^0.6.2", - "@primevue/core": "4.5.5" - }, - "engines": { - "node": ">=12.11.0" - } - }, - "node_modules/@primevue/themes": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/@primevue/themes/-/themes-4.5.4.tgz", - "integrity": "sha512-rUFZxMHLanTZdvZq4zgZPk+KRBZ3s7fE3bBK32OrZBkHQhEJmkJ7Ftd4w4QFlXyz1B7c+k5invZiOOCjwHXg9Q==", - "deprecated": "Deprecated. This package is no longer maintained. Please migrate to @primeuix/themes: https://www.npmjs.com/package/@primeuix/themes", - "license": "MIT", - "dependencies": { - "@primeuix/styled": "^0.7.4", - "@primeuix/themes": "^2.0.2" - }, - "engines": { - "node": ">=12.11.0" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", - "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", - "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", - "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", - "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", - "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", - "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", - "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", - "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", - "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", - "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", - "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", - "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", - "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", - "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", - "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", - "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", - "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", - "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", - "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", - "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", - "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", - "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", - "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", - "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", - "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-dispatch": { - "version": "3.0.7", - "resolved": "https://registry.npmmirror.com/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", - "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", - "license": "MIT" - }, - "node_modules/@types/d3-dsv": { - "version": "3.0.7", - "resolved": "https://registry.npmmirror.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", - "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-fetch": { - "version": "3.0.7", - "resolved": "https://registry.npmmirror.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", - "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", - "license": "MIT", - "dependencies": { - "@types/d3-dsv": "*" - } - }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "license": "MIT" - }, - "node_modules/@types/d3-format": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@types/d3-format/-/d3-format-3.0.4.tgz", - "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "license": "MIT" - }, - "node_modules/@types/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@types/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", - "license": "MIT", - "dependencies": { - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-hierarchy": { - "version": "3.1.7", - "resolved": "https://registry.npmmirror.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", - "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-quadtree": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", - "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "license": "MIT" - }, - "node_modules/@types/d3-random": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/@types/d3-random/-/d3-random-3.0.3.tgz", - "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmmirror.com/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "license": "MIT" - }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmmirror.com/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "license": "MIT" - }, - "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmmirror.com/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "license": "MIT" - }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", - "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", - "license": "MIT" - }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", - "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.33.tgz", - "integrity": "sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.2", - "@vue/shared": "3.5.33", - "entities": "^7.0.1", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-core/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.33.tgz", - "integrity": "sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.33", - "@vue/shared": "3.5.33" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.33.tgz", - "integrity": "sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.2", - "@vue/compiler-core": "3.5.33", - "@vue/compiler-dom": "3.5.33", - "@vue/compiler-ssr": "3.5.33", - "@vue/shared": "3.5.33", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.21", - "postcss": "^8.5.10", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.33.tgz", - "integrity": "sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.33", - "@vue/shared": "3.5.33" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "license": "MIT" - }, - "node_modules/@vue/reactivity": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.33.tgz", - "integrity": "sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A==", - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.33" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.33.tgz", - "integrity": "sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.33", - "@vue/shared": "3.5.33" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.33.tgz", - "integrity": "sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.33", - "@vue/runtime-core": "3.5.33", - "@vue/shared": "3.5.33", - "csstype": "^3.2.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.33.tgz", - "integrity": "sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw==", - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.33", - "@vue/shared": "3.5.33" - }, - "peerDependencies": { - "vue": "3.5.33" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.33.tgz", - "integrity": "sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ==", - "license": "MIT" - }, - "node_modules/@vueuse/core": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz", - "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", - "license": "MIT", - "dependencies": { - "@types/web-bluetooth": "^0.0.21", - "@vueuse/metadata": "13.9.0", - "@vueuse/shared": "13.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/@vueuse/metadata": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.9.0.tgz", - "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/motion": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@vueuse/motion/-/motion-3.0.3.tgz", - "integrity": "sha512-4B+ITsxCI9cojikvrpaJcLXyq0spj3sdlzXjzesWdMRd99hhtFI6OJ/1JsqwtF73YooLe0hUn/xDR6qCtmn5GQ==", - "license": "MIT", - "dependencies": { - "@vueuse/core": "^13.0.0", - "@vueuse/shared": "^13.0.0", - "defu": "^6.1.4", - "framesync": "^6.1.2", - "popmotion": "^11.0.5", - "style-value-types": "^5.1.2" - }, - "optionalDependencies": { - "@nuxt/kit": "^3.13.0" - }, - "peerDependencies": { - "vue": ">=3.0.0" - } - }, - "node_modules/@vueuse/shared": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", - "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "license": "MIT", - "optional": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/bubblesets-js": { - "version": "2.3.4", - "resolved": "https://registry.npmmirror.com/bubblesets-js/-/bubblesets-js-2.3.4.tgz", - "integrity": "sha512-DyMjHmpkS2+xcFNtyN00apJYL3ESdp9fTrkDr5+9Qg/GPqFmcWgGsK1akZnttE1XFxJ/VMy4DNNGMGYtmFp1Sg==", - "license": "MIT" - }, - "node_modules/c12": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz", - "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==", - "license": "MIT", - "optional": true, - "dependencies": { - "chokidar": "^5.0.0", - "confbox": "^0.2.4", - "defu": "^6.1.6", - "dotenv": "^17.3.1", - "exsolve": "^1.0.8", - "giget": "^3.2.0", - "jiti": "^2.6.1", - "ohash": "^2.0.11", - "pathe": "^2.0.3", - "perfect-debounce": "^2.1.0", - "pkg-types": "^2.3.0", - "rc9": "^3.0.1" - }, - "peerDependencies": { - "magicast": "*" - }, - "peerDependenciesMeta": { - "magicast": { - "optional": true - } - } - }, - "node_modules/chart.js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz", - "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", - "license": "MIT", - "dependencies": { - "@kurkle/color": "^0.3.0" - }, - "engines": { - "pnpm": ">=8" - } - }, - "node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "license": "MIT", - "optional": true, - "dependencies": { - "readdirp": "^5.0.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/citty": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", - "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "consola": "^3.2.3" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/comlink": { - "version": "4.4.2", - "resolved": "https://registry.npmmirror.com/comlink/-/comlink-4.4.2.tgz", - "integrity": "sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==", - "license": "Apache-2.0" - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/confbox": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", - "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", - "license": "MIT", - "optional": true - }, - "node_modules/consola": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", - "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", - "license": "MIT", - "optional": true, - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/css-line-break": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", - "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", - "license": "MIT", - "dependencies": { - "utrie": "^1.0.2" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-binarytree": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/d3-binarytree/-/d3-binarytree-1.0.2.tgz", - "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==", - "license": "MIT" - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "license": "ISC", - "dependencies": { - "d3-dsv": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force-3d": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/d3-force-3d/-/d3-force-3d-3.0.6.tgz", - "integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==", - "license": "MIT", - "dependencies": { - "d3-binarytree": "1", - "d3-dispatch": "1 - 3", - "d3-octree": "1", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo-projection": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", - "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", - "license": "ISC", - "dependencies": { - "commander": "7", - "d3-array": "1 - 3", - "d3-geo": "1.12.0 - 3" - }, - "bin": { - "geo2svg": "bin/geo2svg.js", - "geograticule": "bin/geograticule.js", - "geoproject": "bin/geoproject.js", - "geoquantize": "bin/geoquantize.js", - "geostitch": "bin/geostitch.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-octree": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/d3-octree/-/d3-octree-1.1.0.tgz", - "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==", - "license": "MIT" - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-regression": { - "version": "1.3.10", - "resolved": "https://registry.npmmirror.com/d3-regression/-/d3-regression-1.3.10.tgz", - "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==", - "license": "BSD-3-Clause" - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", - "license": "MIT", - "dependencies": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "node_modules/defu": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", - "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", - "license": "MIT" - }, - "node_modules/destr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", - "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", - "license": "MIT", - "optional": true - }, - "node_modules/dotenv": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", - "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", - "license": "BSD-2-Clause", - "optional": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errx": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz", - "integrity": "sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==", - "license": "MIT", - "optional": true - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "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" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "license": "MIT" - }, - "node_modules/exsolve": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", - "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", - "license": "MIT", - "optional": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" - }, - "node_modules/framesync": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", - "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", - "license": "MIT", - "dependencies": { - "tslib": "2.4.0" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/giget": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/giget/-/giget-3.2.0.tgz", - "integrity": "sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==", - "license": "MIT", - "optional": true, - "bin": { - "giget": "dist/cli.mjs" - } - }, - "node_modules/gl-matrix": { - "version": "3.4.4", - "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.4.tgz", - "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", - "license": "MIT" - }, - "node_modules/graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/hey-listen": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", - "license": "MIT" - }, - "node_modules/html2canvas": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", - "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", - "license": "MIT", - "dependencies": { - "css-line-break": "^2.1.0", - "text-segmentation": "^1.0.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-any-array": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-any-array/-/is-any-array-3.0.0.tgz", - "integrity": "sha512-o4h+tylWykC4BD1vaejp6gDxoM13bwW8FGuNs4yIKpj8xbBJcRxJx8vZpq0dCr7ZDEfeKjmsi/euolKhX6f/ww==", - "license": "MIT" - }, - "node_modules/is-arrayish": { - "version": "0.3.4", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.4.tgz", - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "license": "MIT" - }, - "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "license": "MIT", - "optional": true, - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/knitwork": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz", - "integrity": "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==", - "license": "MIT", - "optional": true - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/lodash": { - "version": "4.18.1", - "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.18.1.tgz", - "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", - "license": "MIT" - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/markdown-it": { - "version": "14.1.1", - "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.1.tgz", - "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "license": "MIT" - }, - "node_modules/ml-array-max": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ml-array-max/-/ml-array-max-2.0.0.tgz", - "integrity": "sha512-QQZ4kENwpWmyNb98UXRDFXrmtIXuXtt1+bSbda/2KA85+F+rrJP8hZk6QOkCQXM2Th9mUDYdq/PNByPdT9ID4A==", - "license": "MIT", - "dependencies": { - "is-any-array": "^3.0.0" - } - }, - "node_modules/ml-array-min": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ml-array-min/-/ml-array-min-2.0.0.tgz", - "integrity": "sha512-GRj6Ky6sW9vGL6yIjgsHmXZ9YgrdmcQ8nCxPqEGeKc6dkfYg1XDYxGFxADUjNuZyoCd5PUscWAS4N+cFaX6hFg==", - "license": "MIT", - "dependencies": { - "is-any-array": "^3.0.0" - } - }, - "node_modules/ml-array-rescale": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ml-array-rescale/-/ml-array-rescale-2.0.0.tgz", - "integrity": "sha512-2GGtKfSno94/kIloWGvpp/U5Q5vLvLrza+SAaGsLeo6Xj4mEbA6Gqx+oTfZFkxnd1grT2X007HfJNs3T5BsiVg==", - "license": "MIT", - "dependencies": { - "is-any-array": "^3.0.0", - "ml-array-max": "^2.0.0", - "ml-array-min": "^2.0.0" - } - }, - "node_modules/ml-matrix": { - "version": "6.12.2", - "resolved": "https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.12.2.tgz", - "integrity": "sha512-GC+BnW+pBh8Auap8goAxY0senAmF0IEoc3HNVSfnfbvGw0buuDIYb9kAKMS1l+GiwJ1rfK2bzJ8IHhwjzATSFA==", - "license": "MIT", - "dependencies": { - "is-any-array": "^3.0.0", - "ml-array-rescale": "^2.0.0" - } - }, - "node_modules/mlly": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", - "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", - "license": "MIT", - "optional": true, - "dependencies": { - "acorn": "^8.16.0", - "pathe": "^2.0.3", - "pkg-types": "^1.3.1", - "ufo": "^1.6.3" - } - }, - "node_modules/mlly/node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "license": "MIT", - "optional": true - }, - "node_modules/mlly/node_modules/pkg-types": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.4", - "pathe": "^2.0.1" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/ohash": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", - "license": "MIT", - "optional": true - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "license": "MIT", - "optional": true - }, - "node_modules/perfect-debounce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", - "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", - "license": "MIT", - "optional": true - }, - "node_modules/pg": { - "version": "8.20.0", - "resolved": "https://registry.npmmirror.com/pg/-/pg-8.20.0.tgz", - "integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==", - "license": "MIT", - "dependencies": { - "pg-connection-string": "^2.12.0", - "pg-pool": "^3.13.0", - "pg-protocol": "^1.13.0", - "pg-types": "2.2.0", - "pgpass": "1.0.5" - }, - "engines": { - "node": ">= 16.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.3.0" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz", - "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==", - "license": "MIT", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.12.0", - "resolved": "https://registry.npmmirror.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz", - "integrity": "sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==", - "license": "MIT" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "license": "ISC", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.13.0", - "resolved": "https://registry.npmmirror.com/pg-pool/-/pg-pool-3.13.0.tgz", - "integrity": "sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==", - "license": "MIT", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.13.0", - "resolved": "https://registry.npmmirror.com/pg-protocol/-/pg-protocol-1.13.0.tgz", - "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==", - "license": "MIT" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "license": "MIT", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-types": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", - "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", - "license": "MIT", - "optional": true, - "dependencies": { - "confbox": "^0.2.4", - "exsolve": "^1.0.8", - "pathe": "^2.0.3" - } - }, - "node_modules/popmotion": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.5.tgz", - "integrity": "sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==", - "license": "MIT", - "dependencies": { - "framesync": "6.1.2", - "hey-listen": "^1.0.8", - "style-value-types": "5.1.2", - "tslib": "2.4.0" - } - }, - "node_modules/postcss": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", - "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz", - "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/primeicons": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz", - "integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw==", - "license": "MIT" - }, - "node_modules/primevue": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/primevue/-/primevue-4.5.5.tgz", - "integrity": "sha512-Kv5REIewCdP806QaoU+4nBXfmpzOGFKkZ9qH4KsL6MjiAQVc4PUzypt8erl4r3Vzh3nr3aWZIxkxYRRsLGiX2A==", - "license": "MIT", - "dependencies": { - "@primeuix/styled": "^0.7.4", - "@primeuix/styles": "^2.0.3", - "@primeuix/utils": "^0.6.2", - "@primevue/core": "4.5.5", - "@primevue/icons": "4.5.5" - }, - "engines": { - "node": ">=12.11.0" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/rc9": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.0.1.tgz", - "integrity": "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "defu": "^6.1.6", - "destr": "^2.0.5" - } - }, - "node_modules/readdirp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", - "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/rollup": { - "version": "4.60.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", - "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.60.2", - "@rollup/rollup-android-arm64": "4.60.2", - "@rollup/rollup-darwin-arm64": "4.60.2", - "@rollup/rollup-darwin-x64": "4.60.2", - "@rollup/rollup-freebsd-arm64": "4.60.2", - "@rollup/rollup-freebsd-x64": "4.60.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", - "@rollup/rollup-linux-arm-musleabihf": "4.60.2", - "@rollup/rollup-linux-arm64-gnu": "4.60.2", - "@rollup/rollup-linux-arm64-musl": "4.60.2", - "@rollup/rollup-linux-loong64-gnu": "4.60.2", - "@rollup/rollup-linux-loong64-musl": "4.60.2", - "@rollup/rollup-linux-ppc64-gnu": "4.60.2", - "@rollup/rollup-linux-ppc64-musl": "4.60.2", - "@rollup/rollup-linux-riscv64-gnu": "4.60.2", - "@rollup/rollup-linux-riscv64-musl": "4.60.2", - "@rollup/rollup-linux-s390x-gnu": "4.60.2", - "@rollup/rollup-linux-x64-gnu": "4.60.2", - "@rollup/rollup-linux-x64-musl": "4.60.2", - "@rollup/rollup-openbsd-x64": "4.60.2", - "@rollup/rollup-openharmony-arm64": "4.60.2", - "@rollup/rollup-win32-arm64-msvc": "4.60.2", - "@rollup/rollup-win32-ia32-msvc": "4.60.2", - "@rollup/rollup-win32-x64-gnu": "4.60.2", - "@rollup/rollup-win32-x64-msvc": "4.60.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/scule": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", - "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", - "license": "MIT", - "optional": true - }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz", - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/style-value-types": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.1.2.tgz", - "integrity": "sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==", - "license": "MIT", - "dependencies": { - "hey-listen": "^1.0.8", - "tslib": "2.4.0" - } - }, - "node_modules/svg-path-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/svg-path-parser/-/svg-path-parser-1.1.0.tgz", - "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==", - "license": "MIT" - }, - "node_modules/text-segmentation": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", - "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", - "license": "MIT", - "dependencies": { - "utrie": "^1.0.2" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", - "license": "MIT", - "optional": true, - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "license": "0BSD" - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "license": "MIT" - }, - "node_modules/ufo": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", - "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", - "license": "MIT", - "optional": true - }, - "node_modules/unctx": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz", - "integrity": "sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==", - "license": "MIT", - "optional": true, - "dependencies": { - "acorn": "^8.15.0", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21", - "unplugin": "^2.3.11" - } - }, - "node_modules/unplugin": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", - "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", - "license": "MIT", - "optional": true, - "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "acorn": "^8.15.0", - "picomatch": "^4.0.3", - "webpack-virtual-modules": "^0.6.2" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/untyped": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz", - "integrity": "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==", - "license": "MIT", - "optional": true, - "dependencies": { - "citty": "^0.1.6", - "defu": "^6.1.4", - "jiti": "^2.4.2", - "knitwork": "^1.2.0", - "scule": "^1.3.0" - }, - "bin": { - "untyped": "dist/cli.mjs" - } - }, - "node_modules/utrie": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", - "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", - "license": "MIT", - "dependencies": { - "base64-arraybuffer": "^1.0.2" - } - }, - "node_modules/vite": { - "version": "5.4.21", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", - "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "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 - } - } - }, - "node_modules/vue": { - "version": "3.5.33", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.33.tgz", - "integrity": "sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.33", - "@vue/compiler-sfc": "3.5.33", - "@vue/runtime-dom": "3.5.33", - "@vue/server-renderer": "3.5.33", - "@vue/shared": "3.5.33" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-chartjs": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.3.tgz", - "integrity": "sha512-jqxtL8KZ6YJ5NTv6XzrzLS7osyegOi28UGNZW0h9OkDL7Sh1396ht4Dorh04aKrl2LiSalQ84WtqiG0RIJb0tA==", - "license": "MIT", - "peerDependencies": { - "chart.js": "^4.1.1", - "vue": "^3.0.0-0 || ^2.7.0" - } - }, - "node_modules/vue-router": { - "version": "4.5.1", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.1.tgz", - "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.6.4" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", - "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", - "license": "MIT", - "optional": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - } - } -} +{ + "name": "x-financial-reimbursement-admin", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "x-financial-reimbursement-admin", + "version": "0.1.0", + "dependencies": { + "@antv/g6": "^5.1.1", + "@element-plus/icons-vue": "^2.3.2", + "@vitejs/plugin-vue": "^5.2.4", + "@vueuse/motion": "^3.0.3", + "chart.js": "^4.5.1", + "element-plus": "^2.14.0", + "markdown-it": "^14.1.1", + "pg": "^8.13.1", + "primeicons": "^7.0.0", + "vite": "^5.4.19", + "vue": "^3.5.13", + "vue-chartjs": "^5.3.3", + "vue-router": "^4.5.1" + } + }, + "node_modules/@antv/algorithm": { + "version": "0.1.26", + "resolved": "https://registry.npmmirror.com/@antv/algorithm/-/algorithm-0.1.26.tgz", + "integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==", + "license": "MIT", + "dependencies": { + "@antv/util": "^2.0.13", + "tslib": "^2.0.0" + } + }, + "node_modules/@antv/algorithm/node_modules/@antv/util": { + "version": "2.0.17", + "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", + "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", + "license": "ISC", + "dependencies": { + "csstype": "^3.0.8", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/component": { + "version": "2.1.11", + "resolved": "https://registry.npmmirror.com/@antv/component/-/component-2.1.11.tgz", + "integrity": "sha512-dTdz8VAd3rpjOaGEZTluz82mtzrP4XCtNlNQyrxY7VNRNcjtvpTLDn57bUL2lRu1T+iklKvgbE2llMriWkq9vQ==", + "license": "MIT", + "dependencies": { + "@antv/g": "^6.1.11", + "@antv/scale": "^0.4.16", + "@antv/util": "^3.3.10", + "svg-path-parser": "^1.1.0" + } + }, + "node_modules/@antv/event-emitter": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", + "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==", + "license": "MIT" + }, + "node_modules/@antv/expr": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@antv/expr/-/expr-1.0.2.tgz", + "integrity": "sha512-vrfdmPHkTuiS5voVutKl2l06w1ihBh9A8SFdQPEE+2KMVpkymzGOF1eWpfkbGZ7tiFE15GodVdhhHomD/hdIwg==", + "license": "MIT" + }, + "node_modules/@antv/g": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/@antv/g/-/g-6.3.1.tgz", + "integrity": "sha512-WYEKqy86LHB2PzTmrZXrIsIe+3Epeds2f68zceQ+BJtRoGki7Sy4IhlC8LrUMztgfT1t3d/0L745NWZwITroKA==", + "license": "MIT", + "dependencies": { + "@antv/g-lite": "2.7.0", + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "gl-matrix": "^3.4.3", + "html2canvas": "^1.4.1" + } + }, + "node_modules/@antv/g-canvas": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-2.2.0.tgz", + "integrity": "sha512-h7zVBBo2aO64DuGKvq9sG+yTU3sCUb9DALCVm7nz8qGPs8hhLuFOkKPEzUDNfNYZGJUGzY8UDtJ3QRGRFcvEQg==", + "license": "MIT", + "dependencies": { + "@antv/g-lite": "2.7.0", + "@antv/g-math": "3.1.0", + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-canvas/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@antv/g-lite": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/@antv/g-lite/-/g-lite-2.7.0.tgz", + "integrity": "sha512-uSzgHYa5bwR5L2Au7/5tsOhFmXKZKLPBH90+Q9bP9teVs5VT4kOAi0isPSpDI8uhdDC2/VrfTWu5K9HhWI6FWw==", + "license": "MIT", + "dependencies": { + "@antv/g-math": "3.1.0", + "@antv/util": "^3.3.5", + "@antv/vendor": "^1.0.3", + "@babel/runtime": "^7.25.6", + "eventemitter3": "^5.0.1", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-lite/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@antv/g-math": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-3.1.0.tgz", + "integrity": "sha512-DtN1Gj/yI0UiK18nSBsZX8RK0LszGwqfb+cBYWgE+ddyTm8dZnW4tPUhV7QXePsS6/A5hHC+JFpAAK7OEGo5ZQ==", + "license": "MIT", + "dependencies": { + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-math/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@antv/g-plugin-dragndrop": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.1.1.tgz", + "integrity": "sha512-+aesDUJVQDs6UJ2bOBbDlaGAPCfHmU0MbrMTlQlfpwNplWueqtgVAZ3L57oZ2ZGHRWUHiRwZGPjXMBM3O2LELw==", + "license": "MIT", + "dependencies": { + "@antv/g-lite": "2.7.0", + "@antv/util": "^3.3.5", + "@babel/runtime": "^7.25.6", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-dragndrop/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@antv/g6": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/@antv/g6/-/g6-5.1.1.tgz", + "integrity": "sha512-50bXxMUf4mChyOv4ePVeWZLwotih9VunKfp0a++Wofv/wCyY8fb9+CV2wouIBCOZnd5ydBRA4NNaX9yLJzqa2w==", + "license": "MIT", + "dependencies": { + "@antv/algorithm": "^0.1.26", + "@antv/component": "^2.1.7", + "@antv/event-emitter": "^0.1.3", + "@antv/g": "^6.1.28", + "@antv/g-canvas": "^2.0.48", + "@antv/g-plugin-dragndrop": "^2.0.38", + "@antv/graphlib": "^2.0.4", + "@antv/hierarchy": "^0.7.1", + "@antv/layout": "^2.0.0", + "@antv/util": "^3.3.11", + "bubblesets-js": "^2.3.4" + } + }, + "node_modules/@antv/graphlib": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/@antv/graphlib/-/graphlib-2.0.4.tgz", + "integrity": "sha512-zc/5oQlsdk42Z0ib1mGklwzhJ5vczLFiPa1v7DgJkTbgJ2YxRh9xdarf86zI49sKVJmgbweRpJs7Nu5bIiwv4w==", + "license": "MIT", + "dependencies": { + "@antv/event-emitter": "^0.1.3" + } + }, + "node_modules/@antv/hierarchy": { + "version": "0.7.1", + "resolved": "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.7.1.tgz", + "integrity": "sha512-7r22r+HxfcRZp79ZjGmsn97zgC1Iajrv0Mm9DIgx3lPfk+Kme2MG/+EKdZj1iEBsN0rJRzjWVPGL5YrBdVHchw==", + "license": "MIT" + }, + "node_modules/@antv/layout": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@antv/layout/-/layout-2.0.0.tgz", + "integrity": "sha512-aCZ3UdNc40SfT7meFV7QTADY2HCnc0DShVw56CJNTI6oExUIVU736grPuL5Dhb8/JrVaU4Y83QPN/P7KafBzlw==", + "license": "MIT", + "dependencies": { + "@antv/event-emitter": "^0.1.3", + "@antv/expr": "^1.0.2", + "@antv/graphlib": "^2.0.0", + "@antv/util": "^3.3.2", + "comlink": "^4.4.1", + "d3-force": "^3.0.0", + "d3-force-3d": "^3.0.5", + "d3-octree": "^1.0.2", + "d3-quadtree": "^3.0.1", + "dagre": "^0.8.5", + "ml-matrix": "^6.10.4", + "tslib": "^2.8.1" + } + }, + "node_modules/@antv/layout/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/@antv/scale": { + "version": "0.4.16", + "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.4.16.tgz", + "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", + "license": "MIT", + "dependencies": { + "@antv/util": "^3.3.7", + "color-string": "^1.5.5", + "fecha": "^4.2.1" + } + }, + "node_modules/@antv/util": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/@antv/util/-/util-3.3.11.tgz", + "integrity": "sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "gl-matrix": "^3.3.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@antv/vendor": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/@antv/vendor/-/vendor-1.0.11.tgz", + "integrity": "sha512-LmhPEQ+aapk3barntaiIxJ5VHno/Tyab2JnfdcPzp5xONh/8VSfed4bo/9xKo5HcUAEydko38vYLfj6lJliLiw==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.2.1", + "@types/d3-color": "^3.1.3", + "@types/d3-dispatch": "^3.0.6", + "@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.0", + "@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-shape": "^3.1.7", + "@types/d3-time": "^3.0.4", + "@types/d3-timer": "^3.0.2", + "d3-array": "^3.2.4", + "d3-color": "^3.1.0", + "d3-dispatch": "^3.0.1", + "d3-dsv": "^3.0.1", + "d3-ease": "^3.0.1", + "d3-fetch": "^3.0.1", + "d3-force": "^3.0.0", + "d3-force-3d": "^3.0.5", + "d3-format": "^3.1.0", + "d3-geo": "^3.1.1", + "d3-geo-projection": "^4.0.0", + "d3-hierarchy": "^3.1.2", + "d3-interpolate": "^3.0.1", + "d3-path": "^3.1.0", + "d3-quadtree": "^3.0.1", + "d3-random": "^3.0.1", + "d3-regression": "^1.3.10", + "d3-scale": "^4.0.2", + "d3-scale-chromatic": "^3.1.0", + "d3-shape": "^3.2.0", + "d3-time": "^3.1.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz", + "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz", + "integrity": "sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "license": "MIT" + }, + "node_modules/@nuxt/kit": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.2.tgz", + "integrity": "sha512-Bd6m6mrDrqpBEbX+g0rc66/ALd1sxlgdx5nfK9MAYO0yKLTOSK7McSYz1KcOYn3LQFCXOWfvXwaqih/b+REI1g==", + "license": "MIT", + "optional": true, + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^3.0.0", + "scule": "^1.3.0", + "semver": "^7.7.4", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.8", + "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.8.tgz", + "integrity": "sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT" + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmmirror.com/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmmirror.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmmirror.com/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmmirror.com/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmmirror.com/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.24", + "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.33.tgz", + "integrity": "sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/shared": "3.5.33", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.33.tgz", + "integrity": "sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.33.tgz", + "integrity": "sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/compiler-core": "3.5.33", + "@vue/compiler-dom": "3.5.33", + "@vue/compiler-ssr": "3.5.33", + "@vue/shared": "3.5.33", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.10", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.33.tgz", + "integrity": "sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.33.tgz", + "integrity": "sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.33.tgz", + "integrity": "sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.33.tgz", + "integrity": "sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.33", + "@vue/runtime-core": "3.5.33", + "@vue/shared": "3.5.33", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.33.tgz", + "integrity": "sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.33", + "@vue/shared": "3.5.33" + }, + "peerDependencies": { + "vue": "3.5.33" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.33.tgz", + "integrity": "sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz", + "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.9.0", + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.9.0.tgz", + "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/motion": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vueuse/motion/-/motion-3.0.3.tgz", + "integrity": "sha512-4B+ITsxCI9cojikvrpaJcLXyq0spj3sdlzXjzesWdMRd99hhtFI6OJ/1JsqwtF73YooLe0hUn/xDR6qCtmn5GQ==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "^13.0.0", + "@vueuse/shared": "^13.0.0", + "defu": "^6.1.4", + "framesync": "^6.1.2", + "popmotion": "^11.0.5", + "style-value-types": "^5.1.2" + }, + "optionalDependencies": { + "@nuxt/kit": "^3.13.0" + }, + "peerDependencies": { + "vue": ">=3.0.0" + } + }, + "node_modules/@vueuse/shared": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "optional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/bubblesets-js": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/bubblesets-js/-/bubblesets-js-2.3.4.tgz", + "integrity": "sha512-DyMjHmpkS2+xcFNtyN00apJYL3ESdp9fTrkDr5+9Qg/GPqFmcWgGsK1akZnttE1XFxJ/VMy4DNNGMGYtmFp1Sg==", + "license": "MIT" + }, + "node_modules/c12": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz", + "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==", + "license": "MIT", + "optional": true, + "dependencies": { + "chokidar": "^5.0.0", + "confbox": "^0.2.4", + "defu": "^6.1.6", + "dotenv": "^17.3.1", + "exsolve": "^1.0.8", + "giget": "^3.2.0", + "jiti": "^2.6.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "rc9": "^3.0.1" + }, + "peerDependencies": { + "magicast": "*" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/chart.js": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz", + "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "optional": true, + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/comlink": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/comlink/-/comlink-4.4.2.tgz", + "integrity": "sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==", + "license": "Apache-2.0" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT", + "optional": true + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "optional": true, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-binarytree": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/d3-binarytree/-/d3-binarytree-1.0.2.tgz", + "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==", + "license": "MIT" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force-3d": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/d3-force-3d/-/d3-force-3d-3.0.6.tgz", + "integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==", + "license": "MIT", + "dependencies": { + "d3-binarytree": "1", + "d3-dispatch": "1 - 3", + "d3-octree": "1", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo-projection": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", + "license": "ISC", + "dependencies": { + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" + }, + "bin": { + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-octree": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/d3-octree/-/d3-octree-1.1.0.tgz", + "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==", + "license": "MIT" + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-regression": { + "version": "1.3.10", + "resolved": "https://registry.npmmirror.com/d3-regression/-/d3-regression-1.3.10.tgz", + "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "license": "MIT", + "dependencies": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, + "node_modules/dayjs": { + "version": "1.11.21", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.21.tgz", + "integrity": "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==", + "license": "MIT" + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT", + "optional": true + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/element-plus": { + "version": "2.14.0", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.14.0.tgz", + "integrity": "sha512-POgH+TtoreaEKWqYYAVQyE6i8rQMEFqAEublyF29dBA5yASWPLKY6EzfeqBTr2Uv26mPss4vSrMrNPyaK7LX5w==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^4.2.0", + "@element-plus/icons-vue": "^2.3.2", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.8", + "@types/lodash": "^4.17.24", + "@types/lodash-es": "^4.17.12", + "@vueuse/core": "14.3.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.20", + "lodash": "^4.18.1", + "lodash-es": "^4.18.1", + "lodash-unified": "^1.0.3", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0", + "vue-component-type-helpers": "^3.2.8" + }, + "peerDependencies": { + "vue": "^3.3.7" + } + }, + "node_modules/element-plus/node_modules/@vueuse/core": { + "version": "14.3.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-14.3.0.tgz", + "integrity": "sha512-aHfz47g0ZhMtTVHmIzMVpJy8ePhhOy68GY5bv110+5DVtZ+W7BsOx+m61UNQqfrWyPztIHIanWa3E2tib3NFIw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.3.0", + "@vueuse/shared": "14.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/element-plus/node_modules/@vueuse/metadata": { + "version": "14.3.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-14.3.0.tgz", + "integrity": "sha512-BwxmbAzwAVF50+MW57GXOUEV61nFBGnlBvrTqj49PqWJu3uw7hdu72ztXeZ33RdZtDY6kO+bfCAE1PCn88Tktw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/shared": { + "version": "14.3.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-14.3.0.tgz", + "integrity": "sha512-bZpge9eSXwa4ToSiqJ7j6KRwhAsneMFoSz3LMWKQDkqimm3D/tbFlrklrs/IOqC8tEcYmXQZJ6N0UrjhBirVCg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errx": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz", + "integrity": "sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==", + "license": "MIT", + "optional": true + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "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" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT", + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "license": "MIT", + "dependencies": { + "tslib": "2.4.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/giget": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-3.2.0.tgz", + "integrity": "sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==", + "license": "MIT", + "optional": true, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" + }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "license": "MIT" + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-any-array": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-any-array/-/is-any-array-3.0.0.tgz", + "integrity": "sha512-o4h+tylWykC4BD1vaejp6gDxoM13bwW8FGuNs4yIKpj8xbBJcRxJx8vZpq0dCr7ZDEfeKjmsi/euolKhX6f/ww==", + "license": "MIT" + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "optional": true, + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz", + "integrity": "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==", + "license": "MIT", + "optional": true + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/ml-array-max": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ml-array-max/-/ml-array-max-2.0.0.tgz", + "integrity": "sha512-QQZ4kENwpWmyNb98UXRDFXrmtIXuXtt1+bSbda/2KA85+F+rrJP8hZk6QOkCQXM2Th9mUDYdq/PNByPdT9ID4A==", + "license": "MIT", + "dependencies": { + "is-any-array": "^3.0.0" + } + }, + "node_modules/ml-array-min": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ml-array-min/-/ml-array-min-2.0.0.tgz", + "integrity": "sha512-GRj6Ky6sW9vGL6yIjgsHmXZ9YgrdmcQ8nCxPqEGeKc6dkfYg1XDYxGFxADUjNuZyoCd5PUscWAS4N+cFaX6hFg==", + "license": "MIT", + "dependencies": { + "is-any-array": "^3.0.0" + } + }, + "node_modules/ml-array-rescale": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ml-array-rescale/-/ml-array-rescale-2.0.0.tgz", + "integrity": "sha512-2GGtKfSno94/kIloWGvpp/U5Q5vLvLrza+SAaGsLeo6Xj4mEbA6Gqx+oTfZFkxnd1grT2X007HfJNs3T5BsiVg==", + "license": "MIT", + "dependencies": { + "is-any-array": "^3.0.0", + "ml-array-max": "^2.0.0", + "ml-array-min": "^2.0.0" + } + }, + "node_modules/ml-matrix": { + "version": "6.12.2", + "resolved": "https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.12.2.tgz", + "integrity": "sha512-GC+BnW+pBh8Auap8goAxY0senAmF0IEoc3HNVSfnfbvGw0buuDIYb9kAKMS1l+GiwJ1rfK2bzJ8IHhwjzATSFA==", + "license": "MIT", + "dependencies": { + "is-any-array": "^3.0.0", + "ml-array-rescale": "^2.0.0" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "license": "MIT", + "optional": true, + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT", + "optional": true + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==", + "license": "BSD-3-Clause" + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT", + "optional": true + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT", + "optional": true + }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "license": "MIT", + "optional": true + }, + "node_modules/pg": { + "version": "8.20.0", + "resolved": "https://registry.npmmirror.com/pg/-/pg-8.20.0.tgz", + "integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.12.0", + "pg-pool": "^3.13.0", + "pg-protocol": "^1.13.0", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.3.0" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz", + "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.12.0", + "resolved": "https://registry.npmmirror.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz", + "integrity": "sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.13.0", + "resolved": "https://registry.npmmirror.com/pg-pool/-/pg-pool-3.13.0.tgz", + "integrity": "sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.13.0", + "resolved": "https://registry.npmmirror.com/pg-protocol/-/pg-protocol-1.13.0.tgz", + "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", + "license": "MIT", + "optional": true, + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, + "node_modules/popmotion": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.5.tgz", + "integrity": "sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==", + "license": "MIT", + "dependencies": { + "framesync": "6.1.2", + "hey-listen": "^1.0.8", + "style-value-types": "5.1.2", + "tslib": "2.4.0" + } + }, + "node_modules/postcss": { + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", + "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/primeicons": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz", + "integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw==", + "license": "MIT" + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/rc9": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.0.1.tgz", + "integrity": "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "defu": "^6.1.6", + "destr": "^2.0.5" + } + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rollup": { + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT", + "optional": true + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/style-value-types": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.1.2.tgz", + "integrity": "sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==", + "license": "MIT", + "dependencies": { + "hey-listen": "^1.0.8", + "tslib": "2.4.0" + } + }, + "node_modules/svg-path-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/svg-path-parser/-/svg-path-parser-1.1.0.tgz", + "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==", + "license": "MIT" + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "license": "MIT", + "optional": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "license": "0BSD" + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT", + "optional": true + }, + "node_modules/unctx": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz", + "integrity": "sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==", + "license": "MIT", + "optional": true, + "dependencies": { + "acorn": "^8.15.0", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21", + "unplugin": "^2.3.11" + } + }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "license": "MIT", + "optional": true, + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/untyped": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz", + "integrity": "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==", + "license": "MIT", + "optional": true, + "dependencies": { + "citty": "^0.1.6", + "defu": "^6.1.4", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "scule": "^1.3.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "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 + } + } + }, + "node_modules/vue": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.33.tgz", + "integrity": "sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.33", + "@vue/compiler-sfc": "3.5.33", + "@vue/runtime-dom": "3.5.33", + "@vue/server-renderer": "3.5.33", + "@vue/shared": "3.5.33" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-chartjs": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.3.tgz", + "integrity": "sha512-jqxtL8KZ6YJ5NTv6XzrzLS7osyegOi28UGNZW0h9OkDL7Sh1396ht4Dorh04aKrl2LiSalQ84WtqiG0RIJb0tA==", + "license": "MIT", + "peerDependencies": { + "chart.js": "^4.1.1", + "vue": "^3.0.0-0 || ^2.7.0" + } + }, + "node_modules/vue-component-type-helpers": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/vue-component-type-helpers/-/vue-component-type-helpers-3.3.2.tgz", + "integrity": "sha512-l4Z2Y34m7nFMlx8vrslJaVtXxUpzgDMSESC7TakG/c5kwjYT/do+E0NcT2/vWDzaoIhsShg/2OKwX7Q4nbzC0g==", + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT", + "optional": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + } + } +} diff --git a/web/package.json b/web/package.json index 3782d15..69b2264 100644 --- a/web/package.json +++ b/web/package.json @@ -1,27 +1,27 @@ -{ - "name": "x-financial-reimbursement-admin", - "private": true, - "version": "0.1.0", - "type": "module", - "scripts": { - "start": "vite --host 0.0.0.0", - "dev": "vite --host 0.0.0.0", - "build": "vite build", - "preview": "vite preview --host 0.0.0.0" - }, - "dependencies": { - "@antv/g6": "^5.1.1", - "@primevue/themes": "^4.5.4", - "@vitejs/plugin-vue": "^5.2.4", - "@vueuse/motion": "^3.0.3", - "chart.js": "^4.5.1", - "markdown-it": "^14.1.1", - "pg": "^8.13.1", - "primeicons": "^7.0.0", - "primevue": "^4.5.5", - "vite": "^5.4.19", - "vue": "^3.5.13", - "vue-chartjs": "^5.3.3", - "vue-router": "^4.5.1" - } -} +{ + "name": "x-financial-reimbursement-admin", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "start": "vite --host 0.0.0.0", + "dev": "vite --host 0.0.0.0", + "build": "vite build", + "preview": "vite preview --host 0.0.0.0" + }, + "dependencies": { + "@antv/g6": "^5.1.1", + "@element-plus/icons-vue": "^2.3.2", + "@vitejs/plugin-vue": "^5.2.4", + "@vueuse/motion": "^3.0.3", + "chart.js": "^4.5.1", + "element-plus": "^2.14.0", + "markdown-it": "^14.1.1", + "pg": "^8.13.1", + "primeicons": "^7.0.0", + "vite": "^5.4.19", + "vue": "^3.5.13", + "vue-chartjs": "^5.3.3", + "vue-router": "^4.5.1" + } +} diff --git a/web/src/assets/header.svg b/web/src/assets/header.svg index 638581f..b27b7a7 100644 --- a/web/src/assets/header.svg +++ b/web/src/assets/header.svg @@ -1,8 +1,8 @@ - - + + diff --git a/web/src/assets/styles/app.css b/web/src/assets/styles/app.css index 85c9b06..35c8501 100644 --- a/web/src/assets/styles/app.css +++ b/web/src/assets/styles/app.css @@ -15,9 +15,9 @@ } .app { - --sidebar-expanded-width: 220px; + --sidebar-expanded-width: 184px; --sidebar-collapsed-width: 64px; - --sidebar-motion: 320ms cubic-bezier(0.22, 1, 0.36, 1); + --sidebar-motion: 220ms cubic-bezier(0.4, 0, 0.2, 1); height: var(--desktop-stage-height, 100dvh); min-height: var(--desktop-stage-height, 100dvh); @@ -27,18 +27,23 @@ } .app-sidebar { - flex: 0 0 auto; + flex: 0 0 var(--sidebar-expanded-width); width: var(--sidebar-expanded-width); min-width: 0; - overflow: hidden; - will-change: width; - transition: width var(--sidebar-motion); + position: relative; + overflow: visible; + z-index: 200; + will-change: width, flex-basis; + transition: + width var(--sidebar-motion), + flex-basis var(--sidebar-motion), + box-shadow 160ms var(--ease); } .app.sidebar-collapsed .app-sidebar { + flex-basis: var(--sidebar-collapsed-width); width: var(--sidebar-collapsed-width); overflow: visible; - position: relative; z-index: 200; } @@ -58,7 +63,7 @@ place-items: center; padding: 24px; background: - radial-gradient(circle at top left, rgba(16, 185, 129, 0.16), transparent 24rem), + radial-gradient(circle at top left, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14), transparent 24rem), radial-gradient(circle at bottom right, rgba(59, 130, 246, 0.14), transparent 28rem), #f8fafc; } @@ -89,9 +94,9 @@ min-height: 28px; align-items: center; padding: 0 10px; - border-radius: 999px; - background: rgba(16, 185, 129, 0.12); - color: #059669; + border-radius: 4px; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 12px; font-weight: 800; letter-spacing: 0.12em; @@ -173,18 +178,30 @@ } @media (max-width: 760px) { .app { - display: block; + display: flex; + width: 100vw; + overflow: hidden; } .app-sidebar { - width: 100%; + width: var(--sidebar-collapsed-width); + flex: 0 0 var(--sidebar-collapsed-width); transition: none; } + + .app > .main { + flex: 1 1 auto; + width: calc(100vw - var(--sidebar-collapsed-width)); + } + .workarea { padding: 18px 16px 28px; } } @media (prefers-reduced-motion: reduce) { .app-sidebar { - transition: none; + transition: + width 120ms ease-out !important, + flex-basis 120ms ease-out !important; + transition-duration: 120ms, 120ms !important; } } diff --git a/web/src/assets/styles/components/expense-application-dialog.css b/web/src/assets/styles/components/expense-application-dialog.css index 0b2a654..dd3539f 100644 --- a/web/src/assets/styles/components/expense-application-dialog.css +++ b/web/src/assets/styles/components/expense-application-dialog.css @@ -41,7 +41,7 @@ .application-dialog-eyebrow { display: block; margin-bottom: 4px; - color: #059669; + color: var(--theme-primary-active); font-size: 12px; font-weight: 800; } @@ -106,8 +106,8 @@ } .application-input-panel textarea:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .application-example-row { @@ -144,7 +144,7 @@ .primary-parse-btn, .confirm-btn { border: 0; - background: #059669; + background: var(--theme-gradient-primary); color: #fff; } @@ -181,7 +181,7 @@ } .ontology-panel-head strong { - color: #059669; + color: var(--theme-primary-active); } .ontology-empty-state { @@ -215,8 +215,8 @@ .ontology-chip { border-radius: 8px; - background: #eefbf5; - color: #047857; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); padding: 6px 10px; font-size: 12px; font-weight: 800; @@ -269,7 +269,7 @@ .application-policy-strip i { margin-top: 2px; - color: #059669; + color: var(--theme-primary); font-size: 20px; } diff --git a/web/src/assets/styles/components/personal-workbench.css b/web/src/assets/styles/components/personal-workbench.css new file mode 100644 index 0000000..9cace19 --- /dev/null +++ b/web/src/assets/styles/components/personal-workbench.css @@ -0,0 +1,705 @@ +.workbench { + min-width: 0; + display: grid; + gap: 16px; + padding-bottom: 10px; +} + +.assistant-hero { + position: relative; + overflow: hidden; + display: grid; + grid-template-columns: 228px minmax(0, 1fr); + gap: 18px; + padding: 20px 24px 20px 18px; + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); + background: + radial-gradient(circle at top left, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.12), transparent 34%), + radial-gradient(circle at right 20%, rgba(59, 130, 246, 0.07), transparent 28%), + linear-gradient(135deg, #f7fbff 0%, #ffffff 48%, #f5fbff 100%); +} + +.assistant-hero::before, +.assistant-hero::after { + content: ""; + position: absolute; + border-radius: 999px; + background: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.06); + pointer-events: none; +} + +.assistant-hero::before { + right: -48px; + bottom: -58px; + width: 220px; + height: 220px; +} + +.assistant-hero::after { + right: 92px; + top: -44px; + width: 140px; + height: 140px; +} + +.assistant-visual { + position: relative; + min-height: 196px; + display: flex; + align-items: flex-end; + justify-content: flex-start; + padding: 0 0 10px 8px; +} + +.assistant-visual::before { + content: ""; + position: absolute; + inset: auto auto -78px -58px; + width: 264px; + height: 228px; + border-radius: 50%; + background: radial-gradient(circle at 48% 38%, rgba(255, 255, 255, 0.92) 0%, rgba(224, 242, 254, 0.84) 58%, rgba(224, 242, 254, 0) 100%); + pointer-events: none; +} + +.assistant-visual::after { + content: ""; + position: absolute; + left: 52px; + bottom: 18px; + width: 132px; + height: 18px; + border-radius: 999px; + background: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14); + filter: blur(12px); + pointer-events: none; +} + +.assistant-glow { + position: absolute; + left: 24px; + bottom: 22px; + width: 176px; + height: 176px; + border-radius: 50%; + background: radial-gradient(circle, rgba(255, 255, 255, 0.98) 0%, rgba(224, 242, 254, 0.9) 58%, rgba(224, 242, 254, 0) 100%); + box-shadow: 0 24px 48px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.12); + pointer-events: none; +} + +.assistant-image { + position: relative; + z-index: 1; + width: 184px; + max-width: 100%; + height: auto; + object-fit: contain; + object-position: left bottom; + filter: drop-shadow(0 22px 28px rgba(15, 23, 42, 0.16)); +} + +.assistant-copy { + position: relative; + z-index: 1; + display: grid; + gap: 10px; + align-content: center; +} + +.assistant-copy h3 { + color: #0f172a; + font-size: 26px; + line-height: 1.25; + font-weight: 800; +} + +.assistant-copy p { + max-width: 760px; + color: #5b6b83; + font-size: 14px; + line-height: 1.6; +} + +.assistant-input { + display: flex; + align-items: center; + min-height: 48px; + padding: 4px 14px; + border: 1px solid rgba(148, 163, 184, 0.28); + border-radius: 4px; + background: rgba(255, 255, 255, 0.92); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7); +} + +.assistant-file-input { + display: none; +} + +.assistant-input textarea { + min-width: 0; + flex: 1; + height: 22px; + min-height: 22px; + max-height: 22px; + resize: none; + border: 0; + padding: 1px 0; + background: transparent; + color: #0f172a; + font-size: 15px; + line-height: 22px; + overflow: hidden; +} + +.assistant-input textarea::placeholder { + color: #94a3b8; +} + +.assistant-input textarea:focus { + outline: none; +} + +.hero-action, +.secondary-action, +.ghost-action, +.row-action, +.link-action, +.row-link { + border: 0; + background: transparent; +} + +.hero-action { + height: 40px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 0 16px; + border-radius: 4px; + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); + color: #fff; + font-size: 14px; + font-weight: 800; + white-space: nowrap; + box-shadow: 0 10px 22px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); +} + +.hero-action .mdi, +.secondary-action .mdi, +.ghost-action .mdi { + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 14px; + line-height: 1; +} + +.hero-action span, +.secondary-action span, +.ghost-action span { + display: inline-flex; + align-items: center; + line-height: 1; +} + +.assistant-tools { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.assistant-file-strip { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.assistant-file-note, +.assistant-file-chip { + display: inline-flex; + align-items: center; + min-height: 30px; + padding: 0 12px; + border-radius: 999px; + font-size: 12px; + font-weight: 700; +} + +.assistant-file-note { + background: var(--theme-primary-soft); + color: var(--theme-primary-active); +} + +.assistant-file-chip { + max-width: 220px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + border: 1px solid rgba(148, 163, 184, 0.24); + background: rgba(255, 255, 255, 0.9); + color: #475569; +} + +.assistant-file-clear { + border: 0; + background: transparent; + color: #64748b; + font-size: 12px; + font-weight: 700; + cursor: pointer; +} + +.ghost-action { + height: 40px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 0 16px; + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22); + border-radius: 4px; + background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 255, 0.92)); + color: var(--theme-primary-active); + font-size: 14px; + font-weight: 700; + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.9), + 0 6px 14px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); +} + +.ghost-action .mdi { + color: var(--theme-primary); +} + +.secondary-action { + height: 40px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 0 16px; + border: 1px solid rgba(59, 130, 246, 0.18); + border-radius: 4px; + background: linear-gradient(180deg, rgba(244, 249, 255, 0.96), rgba(234, 244, 255, 0.9)); + color: #1d4ed8; + font-size: 14px; + font-weight: 700; + white-space: nowrap; + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.92), + 0 6px 14px rgba(37, 99, 235, 0.08); +} + +.secondary-action .mdi { + color: #2563eb; +} + +.hero-action:disabled, +.secondary-action:disabled, +.ghost-action:disabled { + cursor: not-allowed; + opacity: 0.68; + box-shadow: none; +} + +.workbench-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 20px; +} + +.list-panel, +.policy-panel { + padding: 20px 22px; +} + +.section-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-bottom: 16px; +} + +.section-head h3 { + color: #0f172a; + font-size: 17px; + font-weight: 700; +} + +.title-with-badge { + display: inline-flex; + align-items: center; + gap: 8px; + min-width: 0; +} + +.alert-badge { + min-width: 22px; + height: 22px; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0 7px; + border-radius: 999px; + background: #ef4444; + color: #fff; + font-size: 12px; + font-weight: 800; + line-height: 1; + box-shadow: 0 6px 14px rgba(239, 68, 68, 0.22); +} + +.link-action { + display: inline-flex; + align-items: center; + gap: 4px; + color: var(--theme-primary-active); + font-size: 14px; + font-weight: 700; +} + +.list-body { + display: grid; +} + +.todo-row, +.progress-row { + display: grid; + grid-template-columns: 56px minmax(0, 1fr) auto; + gap: 14px; + align-items: center; + padding: 14px 0; + border-top: 1px solid #edf2f7; +} + +.todo-row:first-child, +.progress-row:first-child { + padding-top: 4px; + border-top: 0; +} + +.todo-copy { + min-width: 0; +} + +.todo-copy strong { + display: block; + color: #0f172a; + font-size: 15px; + font-weight: 700; + line-height: 1.4; +} + +.todo-copy p { + margin-top: 4px; + color: #6b7280; + font-size: 14px; + line-height: 1.5; +} + +.todo-advice { + display: flex; + align-items: flex-start; + gap: 8px; + flex-wrap: wrap; +} + +.todo-advice-label { + display: inline-flex; + align-items: center; + min-height: 22px; + padding: 0 8px; + border-radius: 999px; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); + font-size: 12px; + font-weight: 800; + white-space: nowrap; +} + +.todo-advice-text { + color: #64748b; +} + +.row-action { + height: 38px; + padding: 0 16px; + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.36); + border-radius: 4px; + color: var(--theme-primary-active); + font-size: 14px; + font-weight: 700; + white-space: nowrap; +} + +.progress-row { + grid-template-columns: 56px minmax(0, 1fr) minmax(84px, auto) minmax(104px, auto); + gap: 14px 16px; +} + +.progress-copy strong { + margin-bottom: 2px; +} + +.progress-amount { + color: #0f172a; + font-size: 20px; + font-weight: 800; + line-height: 1; + text-align: right; + font-variant-numeric: tabular-nums; + white-space: nowrap; +} + +.progress-status { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 104px; + min-height: 34px; + padding: 6px 14px; + border-radius: 999px; + font-size: 13px; + font-weight: 800; + white-space: nowrap; + justify-self: end; +} + +.progress-status.success, +.policy-status.success { + background: var(--success-soft); + color: var(--success); +} + +.progress-status.info, +.policy-status.info { + background: #eff6ff; + color: #3b82f6; +} + +.progress-status.mint { + background: var(--success-soft); + color: var(--success); +} + +.policy-table { + border: 1px solid #e7edf5; + border-radius: 4px; + overflow: hidden; +} + +.policy-row { + display: grid; + grid-template-columns: 2.2fr 2.4fr 1fr; + gap: 16px; + align-items: center; + min-height: 56px; + padding: 0 18px; + border-top: 1px solid #edf2f7; +} + +.policy-head { + min-height: 44px; + background: #f8fbff; + color: #64748b; + font-size: 12px; + font-weight: 800; + border-top: 0; +} + +.policy-row strong, +.policy-row span { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.policy-row strong { + color: #0f172a; + font-size: 14px; + font-weight: 700; +} + +.policy-row span { + color: #64748b; + font-size: 14px; +} + +.policy-title-cell, +.policy-summary-cell { + justify-self: stretch; + text-align: left; +} + +.policy-date-cell { + justify-self: center; + text-align: center; +} + +@media (max-width: 1320px) { + .assistant-copy h3 { + font-size: 24px; + } + + .policy-row { + grid-template-columns: 1.8fr 1.8fr 1fr; + } +} + +@media (max-width: 1440px) { + .workbench { + gap: 14px; + } + + .assistant-hero { + gap: 16px; + padding: 18px 20px 18px 16px; + } + + .assistant-copy h3 { + font-size: 24px; + } + + .assistant-visual { + min-height: 184px; + } + + .assistant-image { + width: 172px; + } + + .workbench-grid { + gap: 16px; + } + + .list-panel, + .policy-panel { + padding: 18px 20px; + } + + .policy-row { + min-height: 52px; + padding: 0 16px; + } +} + +@media (max-width: 1080px) { + .assistant-hero { + grid-template-columns: 1fr; + gap: 8px; + } + + .assistant-visual { + min-height: 188px; + justify-content: center; + padding: 0 0 8px; + } + + .assistant-visual::before, + .assistant-visual::after, + .assistant-glow { + left: 50%; + transform: translateX(-50%); + } + + .assistant-visual::before { + inset: auto auto -82px 50%; + } + + .assistant-image { + width: 176px; + } + + .workbench-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 860px) { + .assistant-hero, + .list-panel, + .policy-panel { + padding: 18px; + } + + .assistant-input { + flex-direction: column; + align-items: stretch; + padding: 14px; + } + + .assistant-visual { + min-height: 160px; + } + + .assistant-glow { + width: 148px; + height: 148px; + } + + .assistant-image { + width: 150px; + } + + .assistant-input textarea { + height: 40px; + min-height: 40px; + max-height: 40px; + line-height: 1.5; + } + + .hero-action, + .secondary-action, + .ghost-action, + .row-action { + width: 100%; + justify-content: center; + } + + .assistant-file-chip { + max-width: 100%; + } + + .todo-row, + .progress-row { + grid-template-columns: 56px minmax(0, 1fr); + } + + .progress-amount { + grid-column: 2; + text-align: left; + font-size: 18px; + } + + .row-action, + .progress-status { + grid-column: 2; + justify-self: start; + } + + .policy-table { + border: 0; + border-radius: 0; + } + + .policy-head { + display: none; + } + + .policy-row { + grid-template-columns: 1fr; + gap: 8px; + padding: 16px 0; + border-top: 1px solid #edf2f7; + } + + .policy-row strong, + .policy-row span { + white-space: normal; + } +} diff --git a/web/src/assets/styles/components/risk-rule-test-dialog.css b/web/src/assets/styles/components/risk-rule-test-dialog.css index 951c990..f75e7dd 100644 --- a/web/src/assets/styles/components/risk-rule-test-dialog.css +++ b/web/src/assets/styles/components/risk-rule-test-dialog.css @@ -174,7 +174,7 @@ .risk-sim-message-row.user .risk-sim-bubble { grid-column: 1; justify-self: end; - background: #0f766e; + background: var(--theme-primary); color: #fff; } @@ -191,7 +191,7 @@ border: 1px solid #dbe5ef; border-radius: 12px; background: #fff; - color: #0f766e; + color: var(--theme-primary-active); } .risk-sim-message-row.user .risk-sim-avatar { @@ -483,8 +483,8 @@ .risk-sim-recognized-fields em { padding: 3px 7px; border-radius: 999px; - background: #ecfdf5; - color: #047857; + background: var(--success-soft); + color: var(--success-hover); font-size: 11px; font-style: normal; font-weight: 850; @@ -574,9 +574,9 @@ } .risk-sim-file-chip.recognized { - border-color: #bbf7d0; - background: #ecfdf5; - color: #047857; + border-color: var(--success-line); + background: var(--success-soft); + color: var(--success-hover); } .risk-sim-file-chip.failed { @@ -611,8 +611,8 @@ } .risk-sim-send-btn { - border-color: #0f766e; - background: #0f766e; + border-color: var(--theme-primary); + background: var(--theme-primary); color: #fff; } @@ -634,8 +634,8 @@ } .risk-sim-composer-shell:focus-within { - border-color: rgba(15, 118, 110, 0.58); - box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1); + border-color: rgba(var(--theme-primary-rgb), 0.58); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .risk-sim-composer-shell textarea { @@ -699,8 +699,8 @@ } .risk-sim-step.done i { - background: #ecfdf5; - color: #047857; + background: var(--success-soft); + color: var(--success-hover); } .risk-sim-step.running i { @@ -823,8 +823,8 @@ } .risk-sim-primary-btn { - border: 1px solid #0f766e; - background: #0f766e; + border: 1px solid var(--theme-primary); + background: var(--theme-primary); color: #fff; } diff --git a/web/src/assets/styles/components/sidebar-rail.css b/web/src/assets/styles/components/sidebar-rail.css new file mode 100644 index 0000000..79d6e75 --- /dev/null +++ b/web/src/assets/styles/components/sidebar-rail.css @@ -0,0 +1,533 @@ +.rail { + --rail-motion-duration: 220ms; + --rail-motion-ease: cubic-bezier(0.4, 0, 0.2, 1); + --rail-fade-duration: 110ms; + --rail-label-delay: 55ms; + + position: sticky; + top: 0; + width: 100%; + height: var(--desktop-stage-height, 100dvh); + min-height: var(--desktop-stage-height, 100dvh); + min-width: 0; + display: flex; + flex-direction: column; + overflow: visible; + background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.96)), #fff; + border-right: 1px solid #dbe4ee; + box-shadow: 1px 0 0 rgba(15, 23, 42, 0.02); + z-index: 20; + contain: layout; + transform: translateZ(0); + transition: + background 240ms var(--ease), + box-shadow 240ms var(--ease); +} + +.rail-brand { + position: relative; + min-height: 112px; + display: flex; + align-items: flex-start; + justify-content: flex-start; + gap: 12px; + padding: 54px 16px 8px; + overflow: visible; + transition: + min-height var(--rail-motion-duration) var(--rail-motion-ease), + padding var(--rail-motion-duration) var(--rail-motion-ease), + gap var(--rail-motion-duration) var(--rail-motion-ease); + will-change: min-height, padding, gap; +} + +.brand-mark { + flex: 0 0 auto; + width: 32px; + height: 32px; + display: grid; + place-items: center; + color: var(--theme-primary-active); + border-radius: 4px; + overflow: hidden; + transform: translateY(-8px); + transition: + color 160ms var(--ease), + transform var(--rail-motion-duration) var(--rail-motion-ease); + will-change: transform; +} + +.custom-logo { + width: 100%; + height: 100%; + object-fit: contain; +} + +.brand-mark svg { + width: 32px; + height: 32px; + fill: currentColor; +} + +.brand-name { + flex: 1 1 auto; + min-width: 0; + max-width: 124px; + color: #0f172a; + font-size: 16px; + font-weight: 800; + white-space: nowrap; + overflow: hidden; + transform: translateY(-8px); + transition: + max-width var(--rail-motion-duration) var(--rail-motion-ease), + opacity var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay), + transform var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay); + will-change: max-width, opacity, transform; +} + +.rail-collapse-btn { + position: absolute; + right: -14px; + top: 55px; + z-index: 30; + width: 28px; + height: 28px; + display: inline-grid; + place-items: center; + cursor: pointer; + border: 1px solid #dbe4ee; + border-radius: 999px; + background: rgba(255, 255, 255, 0.96); + color: #64748b; + box-shadow: + 0 8px 18px rgba(15, 23, 42, 0.12), + 0 0 0 3px rgba(248, 250, 252, 0.92); + transition: + top var(--rail-motion-duration) var(--rail-motion-ease), + right var(--rail-motion-duration) var(--rail-motion-ease), + width var(--rail-motion-duration) var(--rail-motion-ease), + height var(--rail-motion-duration) var(--rail-motion-ease), + transform var(--rail-motion-duration) var(--rail-motion-ease), + background 180ms var(--ease), + border-color 180ms var(--ease), + color 180ms var(--ease), + box-shadow 180ms var(--ease); +} + +.rail-collapse-btn:hover { + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.28); + background: #fff; + color: var(--theme-primary-active); + box-shadow: + 0 10px 22px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.16), + 0 0 0 3px rgba(248, 250, 252, 0.96); +} + +.rail-collapse-btn .mdi { + font-size: 17px; + line-height: 1; +} + +.rail-nav { + display: flex; + flex-direction: column; + gap: 8px; + padding: 4px 8px 16px; + overflow-y: auto; + overflow-x: hidden; + flex: 1; + transition: + padding var(--rail-motion-duration) var(--rail-motion-ease), + gap var(--rail-motion-duration) var(--rail-motion-ease); + will-change: padding, gap; +} + +.nav-btn { + width: 100%; + min-height: 48px; + position: relative; + display: flex; + align-items: center; + gap: 12px; + padding: 0; + border: 1px solid transparent; + border-radius: 4px; + background: transparent; + color: #64748b; + text-align: left; + overflow: hidden; + transition: + gap var(--rail-motion-duration) var(--rail-motion-ease), + background 180ms var(--ease), + border-color 180ms var(--ease), + color 180ms var(--ease); + will-change: gap; +} + +.nav-btn:hover { + background: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); + color: var(--theme-primary-active); +} + +.nav-btn.active { + background: var(--theme-primary-soft); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); + color: var(--theme-primary-active); +} + +.nav-icon { + flex: 0 0 48px; + width: 48px; + height: 36px; + display: grid; + place-items: center; + border-radius: 4px; + color: currentColor; + transition: color 180ms var(--ease); +} + +.nav-btn :deep(svg) { + width: 19px; + height: 19px; + stroke: currentColor; + stroke-width: 2; + fill: none; + stroke-linecap: round; + stroke-linejoin: round; +} + +.nav-label { + flex: 1; + min-width: 0; + max-width: 128px; + color: currentColor; + font-size: 14px; + font-weight: 700; + white-space: nowrap; + overflow: hidden; + opacity: 1; + transition: + max-width var(--rail-motion-duration) var(--rail-motion-ease), + opacity var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay), + transform var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay); + will-change: max-width, opacity, transform; +} + +.nav-badge { + flex: 0 0 auto; + min-width: 34px; + height: 22px; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0 8px; + border-radius: 999px; + background: #ff5b67; + color: #fff; + font-size: 12px; + font-weight: 800; + transition: + min-width var(--rail-motion-duration) var(--rail-motion-ease), + max-width var(--rail-motion-duration) var(--rail-motion-ease), + padding var(--rail-motion-duration) var(--rail-motion-ease), + opacity var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay); + will-change: min-width, max-width, padding, opacity; +} + +.nav-unread-dot { + flex: 0 0 auto; + width: 8px; + height: 8px; + border: 2px solid #fff; + border-radius: 999px; + background: #ef4444; + box-shadow: 0 6px 14px rgba(239, 68, 68, 0.26); +} + +.rail-user { + position: relative; + min-width: 0; + min-height: 78px; + margin: 0; + padding: 16px 20px 18px; + border-top: 1px solid #edf2f7; + transition: padding var(--rail-motion-duration) var(--rail-motion-ease); +} + +.user-summary { + position: relative; + min-width: 0; + min-height: 42px; + display: flex; + align-items: center; + gap: 10px; + padding: 4px; + color: #64748b; + border-radius: 4px; + cursor: pointer; + transition: + gap var(--rail-motion-duration) var(--rail-motion-ease), + padding var(--rail-motion-duration) var(--rail-motion-ease), + background 180ms var(--ease); +} + +.rail-user:hover .user-summary { + background: rgba(255, 255, 255, 0.72); +} + +.user-avatar { + flex: 0 0 36px; + width: 36px; + height: 36px; + display: grid; + place-items: center; + border: 2px solid #fff; + border-radius: 999px; + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); + box-shadow: 0 6px 14px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); + color: #fff; + font-size: 14px; + font-weight: 800; + transition: + flex-basis var(--rail-motion-duration) var(--rail-motion-ease), + width var(--rail-motion-duration) var(--rail-motion-ease), + height var(--rail-motion-duration) var(--rail-motion-ease); +} + +.user-copy { + flex: 1; + min-width: 0; + max-width: 116px; + display: flex; + flex-direction: column; + gap: 2px; + opacity: 1; + transition: + max-width var(--rail-motion-duration) var(--rail-motion-ease), + opacity var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay), + transform var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay); + will-change: max-width, opacity, transform; +} + +.user-copy strong { + color: #334155; + font-size: 14px; + font-weight: 750; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.user-copy span { + color: #64748b; + font-size: 12px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.user-summary .mdi { + flex: 0 0 18px; + font-size: 18px; + transition: + max-width var(--rail-motion-duration) var(--rail-motion-ease), + opacity var(--rail-fade-duration) var(--rail-motion-ease) var(--rail-label-delay); + will-change: max-width, opacity; +} + +.user-menu { + position: absolute; + right: 20px; + bottom: calc(100% - 6px); + min-width: 132px; + padding: 8px; + border: 1px solid rgba(226, 232, 240, 0.96); + border-radius: 4px; + background: rgba(255, 255, 255, 0.98); + box-shadow: 0 16px 32px rgba(15, 23, 42, 0.1); + opacity: 0; + transform: translateY(8px); + pointer-events: none; + transition: all 180ms var(--ease); + z-index: 4; +} + +.rail-user:hover .user-menu { + opacity: 1; + transform: translateY(0); + pointer-events: auto; +} + +.user-menu-item { + width: 100%; + height: 38px; + display: flex; + align-items: center; + gap: 8px; + padding: 0 12px; + border: 0; + border-radius: 4px; + background: transparent; + color: #dc2626; + font-size: 13px; + font-weight: 700; + transition: all 180ms var(--ease); +} + +/* ========================================= */ +/* COLLAPSED STATE */ +/* ========================================= */ + +.rail-collapsed .rail-brand { + min-height: 136px; + justify-content: flex-start; + gap: 0; + padding: 52px 16px 8px; +} + +.rail-collapsed .brand-mark { + width: 32px; + height: 32px; + margin: 0; + transform: translateY(-6px); +} + +.rail-collapsed .brand-mark svg { + width: 32px; + height: 32px; +} + +.rail-collapsed .brand-name { + position: absolute; + width: 1px; + height: 1px; + max-width: 0; + margin: 0; + opacity: 0; + overflow: hidden; + clip: rect(0 0 0 0); + pointer-events: none; + transform: translateX(-6px); + transition-delay: 0ms; +} + +.rail-collapsed .rail-collapse-btn { + top: 96px; + right: -14px; + width: 28px; + height: 28px; + transform: none; +} + +.rail-collapsed .rail-nav { + gap: 8px; + padding: 4px 8px 16px; +} + +.rail-collapsed .nav-btn { + justify-content: flex-start; + gap: 0; + transform: translateX(0); +} + +.rail-collapsed .nav-icon { + width: 48px; + height: 36px; + flex: 0 0 48px; + transform: translateX(0); +} + +.rail-collapsed .nav-label { + max-width: 0; + opacity: 0; + transform: translateX(-6px); + transition-delay: 0ms; +} + +.rail-collapsed .nav-badge { + max-width: 0; + min-width: 0; + padding: 0; + opacity: 0; + overflow: hidden; + transition-delay: 0ms; +} + +.rail-collapsed .nav-unread-dot { + position: absolute; + top: 10px; + right: 11px; + width: 9px; + height: 9px; +} + +.rail-collapsed { + overflow: visible; +} + +.rail-collapsed .rail-user { + position: relative; + z-index: 6; + padding: 14px 8px; + overflow: visible; +} + +.rail-collapsed .user-summary { + justify-content: center; + padding: 4px; + gap: 0; +} + +.rail-user-menu-floating { + position: fixed; + z-index: 12000; + min-width: 132px; + padding: 8px; + border: 1px solid rgba(226, 232, 240, 0.96); + border-radius: 4px; + background: rgba(255, 255, 255, 0.98); + box-shadow: 0 16px 32px rgba(15, 23, 42, 0.14); + transform: translateY(-50%); + animation: railUserMenuIn 180ms var(--rail-motion-ease) both; +} + +.rail-user-menu-floating .user-menu-item { + width: 100%; +} + +@keyframes railUserMenuIn { + from { + opacity: 0; + transform: translateY(-50%) translateX(-6px); + } + + to { + opacity: 1; + transform: translateY(-50%) translateX(0); + } +} + +.rail-collapsed .user-copy, +.rail-collapsed .user-summary .mdi { + max-width: 0; + opacity: 0; + overflow: hidden; + transform: translateX(-6px); + transition-delay: 0ms; +} + +@media (max-width: 980px) { + .rail { + position: relative; + height: auto; + } +} + +@media (prefers-reduced-motion: reduce) { + .rail *, + .rail *::before, + .rail *::after { + transition-duration: 120ms !important; + animation-duration: 120ms !important; + } +} diff --git a/web/src/assets/styles/components/top-bar.css b/web/src/assets/styles/components/top-bar.css new file mode 100644 index 0000000..94c838d --- /dev/null +++ b/web/src/assets/styles/components/top-bar.css @@ -0,0 +1,459 @@ +.topbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; + padding: 18px 24px 20px; + background: #fff; +} + +.topbar.chat-mode { + padding-bottom: 16px; + border-bottom: 1px solid #eef2f7; +} + +.title-group { + min-width: 0; +} + +.eyebrow { + display: inline-block; + margin-bottom: 8px; + padding: 3px 10px; + border-radius: 6px; + background: linear-gradient(135deg, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.12), rgba(59, 130, 246, 0.08)); + color: var(--theme-primary-active); + font-size: 11px; + font-weight: 800; + letter-spacing: 1.2px; + text-transform: uppercase; +} + +.topbar h1 { + color: #0f172a; + font-size: 26px; + font-weight: 800; + letter-spacing: 0; + line-height: 1.2; +} + +.topbar p { + margin-top: 6px; + max-width: 720px; + color: #64748b; + font-size: 14px; + line-height: 1.5; +} + +.top-actions { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 14px; + flex-wrap: wrap; +} + +.range-combo { + position: relative; + display: inline-flex; + align-items: center; + gap: 8px; +} + +.range-shell { + height: 42px; + display: inline-flex; + align-items: center; + padding: 3px; + border: 1px solid #d7e0ea; + border-radius: 4px; + background: #fff; + box-shadow: 0 1px 2px rgba(15, 23, 42, .04); +} + +.range-meta { + height: 34px; + display: inline-flex; + align-items: center; + gap: 8px; + padding: 0 12px; + border-right: 1px solid #e2e8f0; + color: #334155; + font-size: 13px; + font-weight: 650; + white-space: nowrap; +} + +.range-meta .mdi { + color: var(--theme-primary); +} + +.range-tabs { + display: inline-flex; + align-items: center; + gap: 2px; + padding-left: 3px; +} + +.range-tabs button { + height: 34px; + min-width: 54px; + padding: 0 14px; + border: 0; + border-radius: 4px; + background: transparent; + color: #64748b; + font-size: 13px; + font-weight: 700; + white-space: nowrap; + transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease; +} + +.range-tabs button:hover:not(.active) { + background: #f1f5f9; + color: #334155; +} + +.range-tabs button.active { + background: var(--theme-primary); + color: #fff; + box-shadow: 0 6px 14px rgba(var(--theme-primary-rgb, 58, 124, 165), .18); +} + +.custom-range-wrap { + position: relative; +} + +.custom-range-btn { + height: 42px; + display: inline-flex; + align-items: center; + gap: 8px; + padding: 0 13px; + border: 1px solid #d7e0ea; + border-radius: 4px; + background: #fff; + color: #334155; + font-size: 13px; + font-weight: 750; + white-space: nowrap; +} + +.custom-range-btn:hover, +.custom-range-btn.active { + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), .34); + background: #f5fbff; + color: var(--theme-primary-active); +} + +.calendar-popover { + position: absolute; + top: calc(100% + 10px); + right: 0; + width: 336px; + z-index: 40; + display: grid; + gap: 14px; + padding: 16px; + border: 1px solid #d7e0ea; + border-radius: 4px; + background: #fff; + box-shadow: 0 18px 42px rgba(15, 23, 42, .16); +} + +.calendar-popover header, +.calendar-popover footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.calendar-popover header strong { + color: #0f172a; + font-size: 15px; +} + +.calendar-popover header button { + width: 30px; + height: 30px; + display: grid; + place-items: center; + border: 0; + border-radius: 4px; + background: transparent; + color: #64748b; +} + +.date-fields { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; +} + +.date-fields label { + display: grid; + gap: 6px; +} + +.date-fields span { + color: #64748b; + font-size: 12px; + font-weight: 700; +} + +.date-fields input { + width: 100%; + height: 38px; + padding: 0 9px; + border: 1px solid #d7e0ea; + border-radius: 4px; + color: #0f172a; + font-size: 13px; +} + +.ghost-btn, +.apply-btn { + height: 36px; + padding: 0 14px; + border-radius: 8px; + font-size: 13px; + font-weight: 750; +} + +.ghost-btn { + border: 1px solid #d7e0ea; + background: #fff; + color: #334155; +} + +.apply-btn { + border: 0; + background: var(--theme-primary); + color: #fff; +} + +.apply-btn:disabled { + cursor: not-allowed; + background: #cbd5e1; +} + +.kpi-chips { + display: flex; + gap: 10px; +} + +.detail-alert-strip { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 10px; + flex-wrap: wrap; +} + +.detail-alert-pill { + display: inline-flex; + align-items: center; + gap: 6px; + min-height: 32px; + padding: 0 12px; + border: 1px solid #fed7aa; + border-radius: 999px; + background: #fff7ed; + color: #ea580c; + font-size: 12px; + font-weight: 800; + white-space: nowrap; +} + +.detail-alert-pill i { + font-size: 14px; +} + +.detail-alert-pill.success { + border-color: var(--success-line); + background: var(--success-soft); + color: var(--success); +} + +.detail-alert-pill.danger { + border-color: #fecaca; + background: #fff1f2; + color: #dc2626; +} + +.kpi-chip { + display: grid; + grid-template-columns: auto auto; + grid-template-rows: auto auto; + gap: 2px 10px; + padding: 8px 16px; + border-radius: 4px; + background: linear-gradient(135deg, color-mix(in srgb, var(--chip-color) 8%, #fff), color-mix(in srgb, var(--chip-color) 3%, #f8fafc)); + border: 1px solid color-mix(in srgb, var(--chip-color) 18%, #e2e8f0); +} + +.chip-value { + grid-row: 1 / 3; + align-self: center; + color: #0f172a; + font-size: 22px; + font-weight: 850; + line-height: 1; +} + +.chip-value small { + font-size: 13px; + font-weight: 700; + margin-left: 2px; +} + +.chip-label { + color: #64748b; + font-size: 12px; + font-weight: 700; +} + +.chip-delta { + color: #94a3b8; + font-size: 11px; + font-weight: 700; +} + +.chip-delta.up { color: var(--success); } +.chip-delta.down { color: #f59e0b; } + +.topbar-spacer { + flex: 1; + min-width: 0; +} + +.create-top-btn { + height: 40px; + display: inline-flex; + align-items: center; + gap: 8px; + padding: 0 18px; + border: 0; + border-radius: 8px; + background: var(--theme-primary); + color: #fff; + font-size: 14px; + font-weight: 750; + box-shadow: 0 8px 18px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); + white-space: nowrap; +} + +.create-top-btn:hover { + background: var(--theme-primary-active); +} + +@media (max-width: 1120px) { + .range-combo { + width: 100%; + justify-content: flex-end; + } +} + +@media (max-width: 960px) { + .topbar { + flex-direction: column; + align-items: stretch; + } + + .top-actions, + .search-wrap, + .search-wrap.wide, + .detail-alert-strip, + .month-chip, + .qa-filter, + .new-question-btn { + width: 100%; + } + + .range-combo { + justify-content: stretch; + } + + .range-shell { + flex: 1; + } + + .range-meta { + flex: 1; + } + + .custom-range-btn { + width: 100%; + justify-content: center; + } + + .calendar-popover { + right: auto; + left: 0; + } +} + +@media (max-width: 640px) { + .topbar { + gap: 14px; + padding: 16px 16px 14px; + } + + .topbar h1 { + font-size: 24px; + } + + .kpi-chips { + width: 100%; + overflow-x: auto; + padding-bottom: 2px; + scrollbar-width: thin; + } + + .kpi-chip { + min-width: 118px; + padding: 8px 12px; + } + + .chip-label, + .chip-delta { + white-space: nowrap; + } + + .range-combo { + display: grid; + gap: 8px; + } + + .range-shell { + height: auto; + display: grid; + gap: 4px; + } + + .range-meta { + width: 100%; + border-right: 0; + border-bottom: 1px solid #e2e8f0; + justify-content: center; + } + + .range-tabs { + width: 100%; + padding-left: 0; + } + + .range-tabs button { + flex: 1; + padding: 0 8px; + } + + .calendar-popover { + width: min(336px, calc(100vw - 32px)); + } + + .date-fields { + grid-template-columns: 1fr; + } +} diff --git a/web/src/assets/styles/components/travel-reimbursement-insight-panel.css b/web/src/assets/styles/components/travel-reimbursement-insight-panel.css new file mode 100644 index 0000000..9000ff7 --- /dev/null +++ b/web/src/assets/styles/components/travel-reimbursement-insight-panel.css @@ -0,0 +1,381 @@ +.insight-panel-shell { + flex: none; + display: flex; + width: clamp(300px, 28vw, 420px); + min-width: 0; + min-height: 0; + max-width: 100%; + overflow: hidden; + transition: width 360ms cubic-bezier(0.22, 1, 0.36, 1); +} + +.insight-panel-shell.collapsed { + width: 0; +} + +.insight-panel { + flex: 1; + min-width: 0; + min-height: 0; + display: grid; + grid-template-rows: auto minmax(0, 1fr); + overflow: hidden; + border: 1px solid rgba(189, 201, 214, 0.74); + border-radius: 16px; + background: #ffffff; + box-shadow: 0 14px 32px rgba(148, 163, 184, 0.16); +} + +.insight-head { + display: grid; + gap: 12px; + padding: 16px; + border-bottom: 1px solid #e2e8f0; + background: linear-gradient(180deg, #f8fbff, #ffffff); +} + +.insight-head h3 { + margin: 6px 0 0; + color: #0f172a; + font-size: var(--wb-fs-insight-title, 17px); + font-weight: 850; +} + +.insight-head p { + margin: 6px 0 0; + color: #64748b; + font-size: var(--wb-fs-insight-body, 12px); + line-height: 1.55; +} + +.insight-body { + min-height: 0; + display: grid; + gap: 12px; + align-content: start; + padding: 14px; + overflow-y: auto; +} + +.intent-pill, +.flow-status-chip, +.status-pill { + min-height: 26px; + display: inline-flex; + align-items: center; + padding: 0 10px; + border-radius: 999px; + background: #eff6ff; + color: #2563eb; + font-size: 11px; + font-weight: 800; +} + +.confidence-card, +.insight-card, +.review-side-card, +.review-flow-panel { + display: grid; + gap: 10px; + padding: 12px; + border: 1px solid #e2e8f0; + border-radius: 12px; + background: #ffffff; +} + +.confidence-card { + grid-template-columns: minmax(0, 1fr) auto; + align-items: center; + background: #f8fbff; +} + +.confidence-card span, +.card-head p, +.note-block p, +.review-side-head p, +.review-side-risk-summary, +.flow-step-tool, +.flow-step-detail, +.flow-step-card time { + margin: 0; + color: #64748b; + font-size: var(--wb-fs-insight-body, 12px); + line-height: 1.55; +} + +.confidence-card strong, +.card-head h4, +.note-block strong, +.review-side-head strong, +.flow-step-card strong, +.review-side-metric-copy strong, +.review-side-category-copy strong { + color: #0f172a; + font-weight: 850; +} + +.card-head, +.review-side-head, +.flow-step-card header, +.review-document-switch-head, +.review-flow-summary { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 10px; +} + +.card-head h4 { + margin: 0; + font-size: var(--wb-fs-insight-h4, 14px); +} + +.note-block { + display: grid; + gap: 6px; + padding: 10px; + border-radius: 10px; + background: #f8fbff; +} + +.capability-chip-row, +.citation-stack, +.knowledge-question-list, +.review-flow-list, +.review-side-risk-list, +.review-document-warning-list { + display: grid; + gap: 8px; +} + +.risk-chip, +.review-document-meta-chip, +.review-side-confidence { + min-height: 24px; + display: inline-flex; + align-items: center; + padding: 0 8px; + border-radius: 999px; + background: #eff6ff; + color: #2563eb; + font-size: 11px; + font-weight: 800; +} + +.citation-card, +.knowledge-question-btn, +.review-side-metric-card, +.review-side-category-card, +.review-side-risk-item, +.flow-step-card, +.review-document-preview-card { + border: 1px solid #e2e8f0; + border-radius: 10px; + background: #ffffff; +} + +.knowledge-question-btn, +.review-side-metric-card, +.review-side-category-card, +.review-side-risk-item { + width: 100%; + display: grid; + gap: 8px; + padding: 10px; + color: #334155; + font: inherit; + text-align: left; +} + +.knowledge-question-btn { + grid-template-columns: 30px minmax(0, 1fr) auto; + align-items: center; +} + +.knowledge-question-index { + width: 30px; + height: 30px; + display: grid; + place-items: center; + border-radius: 8px; + background: #eff6ff; + color: #2563eb; + font-size: 11px; + font-weight: 850; +} + +.review-side-grid, +.review-side-category-grid, +.review-document-edit-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); + gap: 8px; +} + +.review-side-metric-card { + grid-template-columns: 30px minmax(0, 1fr) auto; + align-items: start; +} + +.review-side-metric-icon, +.review-side-risk-icon { + width: 30px; + height: 30px; + display: grid; + place-items: center; + border-radius: 8px; + background: #eff6ff; + color: var(--theme-primary, #3a7ca5); +} + +.review-side-metric-copy, +.review-side-category-copy, +.review-side-risk-copy { + display: grid; + gap: 4px; + min-width: 0; +} + +.review-side-metric-copy small, +.review-side-edit-hint, +.review-side-category-copy p { + margin: 0; + color: #64748b; + font-size: 11px; + line-height: 1.45; +} + +.review-side-category-card.active { + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.55); + background: var(--theme-primary-soft, #eaf4fa); +} + +.review-insight-tools, +.review-document-nav, +.review-document-meta-chip-row { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.review-insight-switch-icon-btn, +.flow-icon-btn, +.review-document-nav-btn, +.review-side-save-pill { + border: 1px solid #cbd5e1; + border-radius: 8px; + background: #ffffff; + color: #334155; +} + +.review-insight-switch-icon-btn, +.flow-icon-btn, +.review-document-nav-btn { + width: 32px; + height: 32px; + display: grid; + place-items: center; +} + +.review-insight-switch-icon-btn.active, +.review-side-save-pill { + border-color: var(--theme-primary, #3a7ca5); + background: var(--theme-primary, #3a7ca5); + color: #ffffff; +} + +.review-flow-list { + position: relative; +} + +.flow-step-item { + display: grid; + grid-template-columns: 28px minmax(0, 1fr); + gap: 8px; +} + +.flow-step-rail span { + width: 26px; + height: 26px; + display: grid; + place-items: center; + border-radius: 999px; + background: #eff6ff; + color: #2563eb; + font-size: 11px; + font-weight: 850; +} + +.flow-step-card { + padding: 10px; +} + +.flow-empty-state, +.review-side-empty, +.review-document-preview-placeholder { + display: grid; + place-items: center; + gap: 8px; + padding: 18px; + border: 1px dashed #cbd5e1; + border-radius: 10px; + background: #f8fbff; + color: #64748b; + text-align: center; +} + +.review-inline-input, +.review-document-edit-field input, +.review-document-edit-field textarea { + width: 100%; + min-height: 34px; + border: 1px solid #cbd5e1; + border-radius: 8px; + background: #ffffff; + color: #0f172a; + font: inherit; +} + +.review-document-edit-field { + display: grid; + gap: 6px; +} + +.review-document-edit-field span { + color: #64748b; + font-size: 11px; + font-weight: 800; +} + +.review-document-scroll { + display: grid; + gap: 10px; +} + +.review-document-preview-card { + min-height: 140px; + display: grid; + place-items: center; + overflow: hidden; + background: #f8fbff; +} + +.review-document-preview-card img { + max-width: 100%; + max-height: 240px; + object-fit: contain; +} + +.review-side-save-pill { + min-height: 34px; + padding: 0 12px; + font-size: 12px; + font-weight: 800; +} + +@media (max-width: 1440px) { + .insight-panel-shell:not(.collapsed) { + width: 100%; + max-height: min(34dvh, 360px); + } +} diff --git a/web/src/assets/styles/components/travel-reimbursement-message-item.css b/web/src/assets/styles/components/travel-reimbursement-message-item.css new file mode 100644 index 0000000..17192ff --- /dev/null +++ b/web/src/assets/styles/components/travel-reimbursement-message-item.css @@ -0,0 +1,469 @@ +.message-row { + display: grid; + grid-template-columns: 38px minmax(0, 1fr); + align-items: start; + gap: 12px; +} + +.message-row.user { + grid-template-columns: minmax(0, 1fr) 38px; +} + +.message-row.user .message-avatar { + order: 2; +} + +.message-row.user .message-bubble { + order: 1; + justify-self: end; + background: linear-gradient(135deg, #eaf3ff, #f7fbff); + border-color: rgba(96, 165, 250, 0.3); +} + +.message-avatar { + width: 38px; + height: 38px; + display: grid; + place-items: center; + border-radius: 999px; + overflow: hidden; + background: #eff6ff; + box-shadow: 0 8px 18px rgba(148, 163, 184, 0.22); +} + +.message-avatar img { + width: 100%; + height: 100%; + display: block; + object-fit: cover; +} + +.message-bubble { + max-width: min(100%, 760px); + padding: 12px 14px; + border: 1px solid #d8e4f0; + border-radius: 14px; + background: #ffffff; + color: #24324a; + font-size: var(--wb-fs-bubble, 13px); + line-height: 1.62; + box-shadow: 0 10px 22px rgba(148, 163, 184, 0.14); +} + +.message-bubble-application-preview { + max-width: min(100%, 980px); +} + +.message-bubble-review-risk-low, +.message-bubble-review-risk-medium, +.message-bubble-review-risk-high { + background: #ffffff; +} + +.message-bubble-review-risk-low { + border-color: rgba(37, 99, 235, 0.56); +} + +.message-bubble-review-risk-medium { + border-color: rgba(217, 119, 6, 0.58); +} + +.message-bubble-review-risk-high { + border-color: rgba(220, 38, 38, 0.58); +} + +.message-meta { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-bottom: 8px; +} + +.message-meta strong { + color: #0f172a; + font-size: var(--wb-fs-bubble-meta, 12px); + font-weight: 800; +} + +.message-meta time { + color: #64748b; + font-size: var(--wb-fs-bubble-time, 11px); + font-weight: 700; +} + +.message-answer-content { + color: #24324a; +} + +.message-answer-markdown :deep(p), +.message-answer-markdown :deep(li), +.message-answer-markdown :deep(td), +.message-answer-markdown :deep(th), +.message-answer-markdown :deep(blockquote) { + margin: 0; + color: inherit; + line-height: 1.62; +} + +.message-answer-markdown :deep(p + p), +.message-answer-markdown :deep(p + ul), +.message-answer-markdown :deep(ul + p), +.message-answer-markdown :deep(ol + p) { + margin-top: 8px; +} + +.message-answer-markdown :deep(strong) { + color: #0f172a; + font-weight: 850; +} + +.welcome-quick-actions { + margin-top: 14px; + padding-top: 12px; + border-top: 1px solid #e2e8f0; +} + +.welcome-quick-actions-title { + margin: 0 0 12px; + color: #64748b; + font-size: var(--wb-fs-chip, 12px); + font-weight: 750; +} + +.welcome-quick-action-grid, +.message-suggested-actions, +.message-detail-chip-row, +.message-files { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.welcome-quick-action-btn, +.message-suggested-action-btn, +.review-footer-btn, +.expense-query-record-card, +.expense-query-risk-chip { + border: 1px solid #cbd5e1; + background: #ffffff; + color: #334155; + font: inherit; +} + +.welcome-quick-action-btn, +.review-footer-btn { + min-height: 32px; + display: inline-flex; + align-items: center; + gap: 6px; + padding: 0 12px; + border-radius: 8px; + font-size: var(--wb-fs-chip, 12px); + font-weight: 750; +} + +.welcome-quick-action-btn i { + color: var(--theme-primary, #3a7ca5); + font-size: 15px; +} + +.welcome-quick-action-btn:hover:not(:disabled), +.message-suggested-action-btn:hover:not(:disabled), +.review-footer-btn:hover:not(:disabled) { + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.55); + background: var(--theme-primary-soft, #eaf4fa); + color: var(--theme-primary-active, #2f6d95); +} + +.message-meta-row { + display: flex; + flex-wrap: wrap; + gap: 6px; + margin-top: 10px; +} + +.message-meta-chip, +.message-risk-chip, +.file-chip { + min-height: 26px; + display: inline-flex; + align-items: center; + gap: 5px; + padding: 0 9px; + border-radius: 999px; + background: #eff6ff; + color: #2563eb; + font-size: 11px; + font-weight: 750; +} + +.message-suggested-actions { + margin-top: 12px; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); +} + +.message-suggested-action-btn { + min-height: 54px; + display: grid; + grid-template-columns: 30px minmax(0, 1fr) auto; + align-items: center; + gap: 10px; + padding: 10px 12px; + border-radius: 10px; + text-align: left; +} + +.message-suggested-action-icon { + width: 30px; + height: 30px; + display: grid; + place-items: center; + border-radius: 8px; + background: #eff6ff; + color: var(--theme-primary, #3a7ca5); +} + +.message-suggested-action-copy { + display: grid; + gap: 3px; + min-width: 0; +} + +.message-suggested-action-title { + color: #0f172a; + font-size: 12px; + font-weight: 800; +} + +.message-suggested-action-btn small { + color: #64748b; + font-size: 11px; + line-height: 1.4; +} + +.message-detail-block, +.application-preview-table, +.draft-preview { + margin-top: 12px; + padding: 12px; + border: 1px solid #e2e8f0; + border-radius: 12px; + background: #f8fbff; +} + +.message-detail-block > strong, +.expense-query-block > strong { + display: block; + margin-bottom: 8px; + color: #0f172a; + font-size: 12px; + font-weight: 850; +} + +.application-preview-table { + display: grid; + padding: 0; + overflow: hidden; +} + +.application-preview-row { + display: grid; + grid-template-columns: minmax(96px, 0.42fr) minmax(0, 1fr); + min-height: 38px; + border-top: 1px solid #e2e8f0; +} + +.application-preview-row:first-child { + border-top: 0; +} + +.application-preview-row.head { + background: #eff6ff; + color: #334155; + font-size: 12px; + font-weight: 850; +} + +.application-preview-row > span { + display: flex; + align-items: center; + gap: 8px; + min-width: 0; + padding: 8px 10px; +} + +.application-preview-label { + color: #64748b; + border-right: 1px solid #e2e8f0; +} + +.application-preview-value { + color: #0f172a; + font-weight: 750; +} + +.application-preview-input { + width: 100%; + min-height: 32px; + border: 1px solid #cbd5e1; + border-radius: 8px; + background: #ffffff; + color: #0f172a; +} + +.application-preview-edit-btn { + width: 28px; + height: 28px; + display: inline-grid; + place-items: center; + border: 1px solid #cbd5e1; + border-radius: 8px; + background: #ffffff; + color: #2563eb; +} + +.expense-query-record-list, +.message-citation-list { + display: grid; + gap: 8px; +} + +.expense-query-record-card { + width: 100%; + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + gap: 10px; + padding: 10px; + border-radius: 10px; + text-align: left; +} + +.expense-query-record-main { + display: grid; + gap: 6px; + min-width: 0; +} + +.expense-query-record-top, +.expense-query-record-meta, +.expense-query-summary-row { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 8px; +} + +.expense-query-record-top strong { + color: #0f172a; + font-size: 12px; + font-weight: 850; +} + +.expense-query-record-card p, +.expense-query-record-meta span, +.expense-query-window-label, +.expense-query-hint { + margin: 0; + color: #64748b; + font-size: 11px; + line-height: 1.45; +} + +.expense-query-record-status, +.expense-query-summary-chip { + min-height: 22px; + display: inline-flex; + align-items: center; + padding: 0 8px; + border-radius: 999px; + background: #eff6ff; + color: #2563eb; + font-size: 11px; + font-weight: 800; +} + +.expense-query-empty { + display: flex; + align-items: center; + gap: 8px; + color: #64748b; + font-size: 12px; +} + +.review-plain-followup, +.draft-preview { + display: grid; + gap: 8px; +} + +.review-plain-lead { + margin: 0; + color: #0f172a; + font-size: 14px; + font-weight: 850; +} + +.review-plain-summary, +.review-plain-note { + margin: 0; + color: #64748b; + font-size: 12px; + line-height: 1.55; +} + +.review-plain-list { + display: grid; + gap: 6px; + margin: 0; + padding-left: 18px; + color: #334155; + font-size: 12px; +} + +.review-footer-actions { + margin-top: 10px; +} + +.review-footer-btn.primary { + border-color: var(--theme-primary, #3a7ca5); + background: var(--theme-primary, #3a7ca5); + color: #ffffff; +} + +.draft-preview header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; +} + +.draft-preview pre { + margin: 0; + overflow: auto; + color: #334155; + font-size: 12px; + line-height: 1.5; + white-space: pre-wrap; +} + +@media (max-width: 760px) { + .message-row, + .message-row.user { + grid-template-columns: 1fr; + } + + .message-avatar { + display: none; + } + + .message-row.user .message-bubble { + justify-self: stretch; + } + + .message-bubble { + max-width: 100%; + border-radius: 12px; + } +} diff --git a/web/src/assets/styles/element-plus-theme.css b/web/src/assets/styles/element-plus-theme.css new file mode 100644 index 0000000..0413175 --- /dev/null +++ b/web/src/assets/styles/element-plus-theme.css @@ -0,0 +1,131 @@ +:root { + --theme-primary: #3a7ca5; + --theme-primary-hover: #2f6d95; + --theme-primary-active: #255b7d; + --theme-primary-soft: #eaf4fa; + --theme-primary-soft-strong: #d4e8f3; + --theme-primary-rgb: 58, 124, 165; + --theme-focus-ring: rgba(58, 124, 165, 0.12); + --el-color-primary: var(--theme-primary); + --el-color-primary-light-3: var(--theme-primary-hover); + --el-color-primary-light-5: var(--theme-primary-light-5); + --el-color-primary-light-7: var(--theme-primary-soft-strong); + --el-color-primary-light-8: var(--theme-primary-soft); + --el-color-primary-light-9: var(--theme-primary-light-9); + --el-color-primary-dark-2: var(--theme-primary-active); + --el-color-success: var(--success); + --el-color-success-light-9: var(--success-soft); + --el-color-warning: var(--warning); + --el-color-warning-light-9: var(--warning-soft); + --el-color-danger: var(--danger); + --el-color-danger-light-9: var(--danger-soft); + --el-color-info: var(--info); + --el-border-radius-base: 4px; + --el-border-radius-small: 3px; + --el-border-radius-round: 4px; + --el-border-color: var(--line-strong); + --el-border-color-light: var(--line); + --el-border-color-lighter: #edf2f7; + --el-fill-color-light: var(--bg); + --el-fill-color-lighter: var(--surface-soft); + --el-fill-color-blank: var(--surface); + --el-text-color-primary: var(--ink); + --el-text-color-regular: var(--text); + --el-text-color-secondary: var(--muted); + --el-font-family: Inter, "SF Pro Text", "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif; + --el-font-size-base: 14px; + --el-box-shadow-light: 0 8px 22px rgba(15, 23, 42, 0.08); + --el-box-shadow-lighter: 0 4px 14px rgba(15, 23, 42, 0.06); + --el-transition-duration: 180ms; + --el-transition-function-ease-in-out-bezier: cubic-bezier(0.2, 0, 0, 1); +} + +.el-button { + font-weight: 600; + letter-spacing: 0; +} + +.el-button, +.el-input__wrapper, +.el-select__wrapper, +.el-textarea__inner, +.el-date-editor.el-input__wrapper, +.el-popover.el-popper, +.el-popper.is-light, +.el-message-box, +.el-dialog { + border-radius: 4px; +} + +.el-input__wrapper, +.el-select__wrapper { + min-height: 34px; + box-shadow: 0 0 0 1px var(--el-border-color) inset; + transition: + box-shadow 160ms var(--ease), + background-color 160ms var(--ease), + border-color 160ms var(--ease); +} + +.el-input__wrapper:hover, +.el-select__wrapper:hover { + box-shadow: 0 0 0 1px #b8c2d2 inset; +} + +.el-input__wrapper.is-focus, +.el-select__wrapper.is-focused { + box-shadow: + 0 0 0 1px var(--el-color-primary) inset, + 0 0 0 3px var(--theme-focus-ring); +} + +.el-select-dropdown, +.el-picker__popper, +.el-dropdown__popper, +.el-popover.el-popper { + border: 1px solid rgba(148, 163, 184, 0.26); + box-shadow: 0 16px 36px rgba(15, 23, 42, 0.12); +} + +.el-select-dropdown__item { + height: 34px; + color: #334155; + font-size: 13px; + line-height: 34px; +} + +.el-select-dropdown__item.is-hovering { + background: #f1f5f9; +} + +.el-select-dropdown__item.is-selected { + background: var(--theme-primary-soft); + color: var(--theme-primary-active); + font-weight: 700; +} + +.el-scrollbar__bar { + opacity: 0.28; +} + +.el-overlay { + background-color: rgba(15, 23, 42, 0.42); +} + +.el-dialog, +.el-message-box { + box-shadow: 0 24px 70px rgba(15, 23, 42, 0.18); +} + +.el-table { + --el-table-header-bg-color: #f8fafc; + --el-table-header-text-color: #334155; + --el-table-row-hover-bg-color: #f8fafc; + color: #334155; +} + +.el-pagination { + --el-pagination-button-bg-color: #ffffff; + --el-pagination-hover-color: var(--theme-primary-active); + font-weight: 600; +} diff --git a/web/src/assets/styles/global.css b/web/src/assets/styles/global.css index ce7e677..580779e 100644 --- a/web/src/assets/styles/global.css +++ b/web/src/assets/styles/global.css @@ -7,21 +7,64 @@ --muted: #64748b; --line: #e2e8f0; --line-strong: #cbd5e1; - --primary: #10b981; - --primary-soft: #ecfdf5; - --secondary: #3b82f6; + --primary: #3a7ca5; + --primary-hover: #2f6d95; + --primary-active: #255b7d; + --primary-soft: #eaf4fa; + --primary-soft-strong: #d4e8f3; + --primary-rgb: 58, 124, 165; + --secondary: #4f6f9f; + --secondary-rgb: 79, 111, 159; + --theme-primary: var(--primary); + --theme-primary-hover: var(--primary-hover); + --theme-primary-active: var(--primary-active); + --theme-primary-soft: var(--primary-soft); + --theme-primary-soft-strong: var(--primary-soft-strong); + --theme-primary-light-5: color-mix(in srgb, var(--theme-primary) 52%, white); + --theme-primary-light-9: color-mix(in srgb, var(--theme-primary) 8%, white); + --theme-primary-contrast: #ffffff; + --theme-primary-shadow: rgba(var(--theme-primary-rgb), 0.16); + --theme-gradient-primary: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); + --theme-primary-rgb: var(--primary-rgb); + --theme-secondary: var(--secondary); + --theme-secondary-rgb: var(--secondary-rgb); + --theme-focus-ring: rgba(var(--theme-primary-rgb), 0.12); --purple: #8b5cf6; --orange: #f59e0b; --red: #ef4444; - --success: #10b981; - --success-soft: #ecfdf5; - --warning: #f59e0b; - --warning-soft: #fffbeb; + --success: #2f855a; + --success-hover: #276749; + --success-active: #22543d; + --success-soft: #f0f7f2; + --success-line: #cde6d5; + --success-rgb: 47, 133, 90; + --warning: #b7791f; + --warning-hover: #975a16; + --warning-active: #7b4514; + --warning-soft: #fff8eb; + --warning-line: #efd9af; + --warning-rgb: 183, 121, 31; --danger: #ef4444; + --danger-hover: #dc2626; + --danger-active: #b91c1c; --danger-soft: #fef2f2; + --danger-line: #fecaca; + --danger-rgb: 239, 68, 68; + --info: #475569; + --info-hover: #334155; + --info-active: #1e293b; + --info-soft: #f1f5f9; + --info-line: #cbd5e1; + --info-rgb: 71, 85, 105; + --chart-primary: var(--theme-primary); + --chart-primary-rgb: var(--theme-primary-rgb); + --chart-blue: #4f6f9f; + --chart-purple: #6e7fa6; + --chart-amber: #b58b4c; + --chart-danger: var(--danger); --nav: #0b1220; --nav-muted: #7d89a5; - --radius: 8px; + --radius: 4px; --ease: cubic-bezier(.2, .8, .2, 1); --desktop-ui-scale: 1; --desktop-ui-inverse-scale: 1; @@ -38,7 +81,7 @@ body { margin: 0; min-height: 100dvh; color: var(--text); background: var(--bg); .mdi { line-height: 1; vertical-align: middle; } button, input, select, textarea { font: inherit; } button { cursor: pointer; } -button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(16,185,129,.20); outline-offset: 2px; } +button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--theme-focus-ring, rgba(58,124,165,.18)); outline-offset: 2px; } .eyebrow { color: var(--primary); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; } h1, h2, h3, p { margin: 0; } @@ -60,7 +103,7 @@ h1 { margin-top: 4px; color: var(--ink); font-size: 24px; line-height: 1.25; fon } .btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(16,24,40,.08); } .btn:active, .mini-btn:active, .chip:active, .nav-btn:active { transform: scale(.97); } -.btn.primary { border-color: transparent; background: var(--primary); color: #fff; box-shadow: 0 12px 24px rgba(51,92,255,.22); } +.btn.primary { border-color: transparent; background: var(--theme-primary); color: #fff; box-shadow: 0 10px 20px rgba(var(--theme-primary-rgb, 58, 124, 165), .18); } .btn.success { border-color: transparent; background: var(--success); color: #fff; } .btn.danger { border-color: rgba(180,35,24,.18); background: var(--danger-soft); color: var(--danger); } .btn.ghost { background: transparent; } @@ -110,13 +153,13 @@ h1 { margin-top: 4px; color: var(--ink); font-size: 24px; line-height: 1.25; fon display: inline-grid; place-items: center; border: 3px solid #e2e8f0; - border-top-color: #10b981; + border-top-color: var(--primary); border-radius: 50%; animation: table-spinner-rotate .8s linear infinite !important; } .table-loading.sky .table-loading__spinner { - border-top-color: #0ea5e9; + border-top-color: var(--primary); } .table-loading.detail .table-loading__spinner { diff --git a/web/src/assets/styles/views/approval-center-view-part2.css b/web/src/assets/styles/views/approval-center-view-part2.css index 0766248..d9b9bb7 100644 --- a/web/src/assets/styles/views/approval-center-view-part2.css +++ b/web/src/assets/styles/views/approval-center-view-part2.css @@ -16,8 +16,8 @@ } .opinion-wrap textarea:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, .12); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); outline: none; } @@ -55,8 +55,8 @@ .risk-total span { font-weight: 750; } .risk-total.high { - background: #fee2e2; - color: #dc2626; + background: var(--danger-soft); + color: var(--danger-hover); } .risk-total.high strong { font-size: 16px; font-weight: 900; } @@ -87,8 +87,8 @@ flex-shrink: 0; } -.risk-row.high .risk-icon { background: #fef2f2; color: #ef4444; } -.risk-row.medium .risk-icon { background: #fff7ed; color: #f97316; } +.risk-row.high .risk-icon { background: var(--danger-soft); color: var(--danger); } +.risk-row.medium .risk-icon { background: var(--warning-soft); color: var(--warning-active); } .risk-text { flex: 1; @@ -105,8 +105,8 @@ flex-shrink: 0; } -.risk-level.high { background: #fef2f2; color: #ef4444; } -.risk-level.medium { background: #fff7ed; color: #f97316; } +.risk-level.high { background: var(--danger-soft); color: var(--danger); } +.risk-level.medium { background: var(--warning-soft); color: var(--warning-active); } /* ── Side Dual ── */ .side-dual { @@ -134,7 +134,7 @@ .reminder-list li i { margin-top: 2px; - color: #f59e0b; + color: var(--warning); font-size: 14px; flex-shrink: 0; } @@ -195,35 +195,35 @@ .action-btn.supplement { background: #fff; - border-color: #fed7aa; - color: #ea580c; + border-color: var(--warning-line); + color: var(--warning-active); } .action-btn.supplement:hover { - background: #fff7ed; - box-shadow: 0 4px 12px rgba(234, 88, 12, .12); + background: var(--warning-soft); + box-shadow: 0 4px 12px rgba(var(--warning-rgb), .12); } .action-btn.reject { background: #fff; - border-color: #fecaca; - color: #ef4444; + border-color: var(--danger-line); + color: var(--danger); } .action-btn.reject:hover { - background: #fef2f2; - box-shadow: 0 4px 12px rgba(239, 68, 68, .12); + background: var(--danger-soft); + box-shadow: 0 4px 12px rgba(var(--danger-rgb), .12); } .action-btn.approve { - background: #059669; + background: var(--theme-primary); color: #fff; - box-shadow: 0 4px 16px rgba(5, 150, 105, .25); + box-shadow: 0 4px 16px var(--theme-primary-shadow); } .action-btn.approve:hover { - background: #047857; - box-shadow: 0 8px 24px rgba(5, 150, 105, .30); + background: var(--theme-primary-active); + box-shadow: 0 8px 24px rgba(var(--theme-primary-rgb), .30); } .action-btn:active { transform: scale(.97); } diff --git a/web/src/assets/styles/views/approval-center-view.css b/web/src/assets/styles/views/approval-center-view.css index 07cf677..5306a16 100644 --- a/web/src/assets/styles/views/approval-center-view.css +++ b/web/src/assets/styles/views/approval-center-view.css @@ -34,15 +34,15 @@ font-weight: 750; } -.status-tabs button.active { color: #059669; } +.status-tabs button.active { color: var(--theme-primary-active); } .status-tabs button.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; - border-radius: 999px 999px 0 0; - background: #10b981; + border-radius: 2px 2px 0 0; + background: var(--theme-primary); } .list-toolbar { @@ -86,8 +86,8 @@ } .list-search input:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.14); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); outline: none; } @@ -108,7 +108,7 @@ } .filter-btn { min-width: 104px; justify-content: space-between; } -.filter-btn:hover, .page-size:hover { border-color: rgba(16, 185, 129, .32); color: #0f9f78; } +.filter-btn:hover, .page-size:hover { border-color: rgba(var(--theme-primary-rgb), .32); color: var(--theme-primary-active); } .hint { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; color: #64748b; font-size: 13px; } @@ -119,7 +119,7 @@ overflow-y: auto; border: 1px solid #edf2f7; border-radius: 10px; - background: linear-gradient(180deg, #fcfefd 0%, #f4f8f6 100%); + background: linear-gradient(180deg, #fcfeff 0%, #f4f8fc 100%); display: flex; flex-direction: column; align-items: stretch; @@ -145,13 +145,13 @@ padding: 28px 20px; text-align: center; color: #64748b; - background: linear-gradient(180deg, #fcfffd 0%, #f5f9f7 100%); + background: linear-gradient(180deg, #fcfeff 0%, #f5f9fc 100%); align-self: center; } .table-state .mdi { font-size: 28px; - color: #10b981; + color: var(--theme-primary); } .table-state strong { @@ -167,7 +167,7 @@ } .table-state.error .mdi { - color: #ef4444; + color: var(--danger); } .state-action { @@ -176,10 +176,10 @@ align-items: center; justify-content: center; padding: 0 14px; - border: 1px solid rgba(16, 185, 129, 0.28); + border: 1px solid rgba(var(--theme-primary-rgb), 0.28); border-radius: 8px; background: #fff; - color: #059669; + color: var(--theme-primary-active); font-size: 13px; font-weight: 760; } @@ -207,11 +207,11 @@ th { tbody tr { cursor: pointer; } tbody tr:hover, tbody tr.spotlight { - background: linear-gradient(90deg, rgba(16, 185, 129, .08), rgba(16, 185, 129, .03)); + background: linear-gradient(90deg, rgba(var(--theme-primary-rgb), .08), rgba(var(--theme-primary-rgb), .03)); } tbody tr:last-child td { border-bottom: 0; } -.doc-id { color: #1d4ed8; font-weight: 800; } +.doc-id { color: var(--theme-primary-active); font-weight: 800; } .person { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; } @@ -219,7 +219,7 @@ tbody tr:last-child td { border-bottom: 0; } width: 24px; height: 24px; display: grid; place-items: center; border-radius: 999px; - background: #dbeafe; color: #1d4ed8; + background: var(--theme-primary-soft); color: var(--theme-primary-active); font-size: 12px; font-weight: 900; } @@ -231,26 +231,26 @@ tbody tr:last-child td { border-bottom: 0; } font-size: 12px; font-weight: 750; white-space: nowrap; } -.risk-tag.low { background: #dcfce7; color: #059669; } -.risk-tag.medium { background: #ffedd5; color: #f97316; } -.risk-tag.high { background: #fee2e2; color: #ef4444; } +.risk-tag.low { background: var(--success-soft); color: var(--success); } +.risk-tag.medium { background: var(--warning-soft); color: var(--warning-active); } +.risk-tag.high { background: var(--danger-soft); color: var(--danger); } .sla { font-size: 13px; font-weight: 850; } -.sla.safe { color: #059669; } -.sla.warning { color: #f97316; } -.sla.danger { color: #ef4444; } +.sla.safe { color: var(--success); } +.sla.warning { color: var(--warning-active); } +.sla.danger { color: var(--danger); } -.status-tag.pending { background: #eff6ff; color: #2563eb; } -.status-tag.urgent { background: #fff7ed; color: #f97316; } -.status-tag.done { background: #ecfdf5; color: #059669; } +.status-tag.pending { background: var(--theme-primary-soft); color: var(--theme-primary-active); } +.status-tag.urgent { background: var(--warning-soft); color: var(--warning-active); } +.status-tag.done { background: var(--success-soft); color: var(--success); } .more-btn { width: auto; height: auto; display: inline-flex; align-items: center; justify-content: center; border: 0; background: transparent; - color: #2563eb; font-size: 13px; font-weight: 800; + color: var(--theme-primary-active); font-size: 13px; font-weight: 800; } -.more-btn:hover { color: #059669; } +.more-btn:hover { color: var(--theme-primary-active); } .list-foot { display: grid; @@ -272,8 +272,8 @@ tbody tr:last-child td { border-bottom: 0; } font-size: 14px; font-weight: 800; transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease; } -.pager button:hover:not(.active) { background: #fff; color: #059669; box-shadow: 0 1px 4px rgba(15, 23, 42, .08); } -.pager button.active { background: #059669; color: #fff; box-shadow: 0 8px 16px rgba(5, 150, 105, .20); } +.pager button:hover:not(.active) { background: #fff; color: var(--theme-primary-active); box-shadow: 0 1px 4px rgba(15, 23, 42, .08); } +.pager button.active { background: var(--theme-primary); color: #fff; box-shadow: 0 8px 16px var(--theme-primary-shadow); } .pager span { color: #64748b; font-weight: 800; } .page-size { @@ -318,8 +318,8 @@ tbody tr:last-child td { border-bottom: 0; } display: grid; place-items: center; border-radius: 999px; - background: linear-gradient(135deg, #dbeafe, #ecfdf5); - color: #0f766e; + background: linear-gradient(135deg, var(--theme-primary-soft-strong), var(--theme-primary-soft)); + color: var(--theme-primary-active); font-size: 26px; font-weight: 900; } @@ -334,8 +334,8 @@ tbody tr:last-child td { border-bottom: 0; } margin-left: 8px; padding: 3px 9px; border-radius: 6px; - background: #dcfce7; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 12px; } @@ -377,16 +377,16 @@ tbody tr:last-child td { border-bottom: 0; } font-weight: 850; } -.risk-pill.high { background: #fee2e2; color: #ef4444; } -.risk-pill.medium { background: #ffedd5; color: #f97316; } -.risk-pill.low { background: #dcfce7; color: #059669; } -.state-pill { background: #dbeafe; color: #2563eb; } +.risk-pill.high { background: var(--danger-soft); color: var(--danger); } +.risk-pill.medium { background: var(--warning-soft); color: var(--warning-active); } +.risk-pill.low { background: var(--success-soft); color: var(--success); } +.state-pill { background: var(--theme-primary-soft); color: var(--theme-primary-active); } .countdown { display: inline-flex; align-items: center; gap: 6px; - color: #f97316 !important; + color: var(--warning-active) !important; } .hero-summary-panel { @@ -417,7 +417,7 @@ tbody tr:last-child td { border-bottom: 0; } } .hero-summary-icon { - color: #059669; + color: var(--theme-primary); font-size: 14px; } @@ -456,8 +456,8 @@ tbody tr:last-child td { border-bottom: 0; } width: 8px; height: 8px; border-radius: 999px; - background: #10b981; - box-shadow: 0 0 0 4px rgba(16, 185, 129, .12); + background: var(--theme-primary); + box-shadow: 0 0 0 4px rgba(var(--theme-primary-rgb), .12); } .progress-line { @@ -485,7 +485,7 @@ tbody tr:last-child td { border-bottom: 0; } background: #dbe4ee; } -.progress-step.active::before { background: #10b981; } +.progress-step.active::before { background: var(--theme-primary); } .progress-step:first-child::before { left: 50%; } .progress-step:last-child::before { right: 50%; } @@ -507,20 +507,20 @@ tbody tr:last-child td { border-bottom: 0; } position: absolute; inset: -4px; z-index: -1; - border: 2px solid rgba(16, 185, 129, .42); + border: 2px solid rgba(var(--theme-primary-rgb), .42); border-radius: 999px; pointer-events: none; } .progress-step.active span { - background: #059669; + background: var(--theme-primary-active); color: #fff; } .progress-step.current span { - background: #10b981 !important; + background: var(--theme-primary) !important; color: #fff !important; - box-shadow: 0 0 0 4px rgba(16, 185, 129, .15) !important; + box-shadow: 0 0 0 4px rgba(var(--theme-primary-rgb), .15) !important; animation: breathe-dot 3s ease-in-out infinite !important; transform-origin: center !important; } @@ -528,11 +528,11 @@ tbody tr:last-child td { border-bottom: 0; } @keyframes breathe-dot { 0%, 100% { transform: scale(1); - box-shadow: 0 4px 12px rgba(16, 185, 129, .3), 0 0 0 4px rgba(16, 185, 129, .15); + box-shadow: 0 4px 12px rgba(var(--theme-primary-rgb), .3), 0 0 0 4px rgba(var(--theme-primary-rgb), .15); } 50% { transform: scale(1.12); - box-shadow: 0 4px 20px rgba(16, 185, 129, .5), 0 0 0 10px rgba(16, 185, 129, .08); + box-shadow: 0 4px 20px rgba(var(--theme-primary-rgb), .5), 0 0 0 10px rgba(var(--theme-primary-rgb), .08); } } @@ -541,11 +541,11 @@ tbody tr:last-child td { border-bottom: 0; } font-size: 12px; } -.progress-step.current strong { color: #059669; } +.progress-step.current strong { color: var(--theme-primary-active); } .progress-step small { font-size: 11px; } .progress-step.current small { - color: #059669; + color: var(--theme-primary-active); } .detail-grid { @@ -596,9 +596,9 @@ tbody tr:last-child td { border-bottom: 0; } min-width: 102px; min-height: 34px; padding: 0 12px; - border-radius: 999px; - background: #ecfdf5; - color: #047857; + border-radius: 4px; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 14px; font-weight: 900; } @@ -689,19 +689,19 @@ tbody tr:last-child td { border-bottom: 0; } width: max-content; margin-top: 7px; padding: 2px 8px; - border-radius: 999px; + border-radius: 4px; font-size: 11px; font-weight: 800; } .over-tag.ok { - background: #ecfdf5; - color: #059669; + background: var(--success-soft); + color: var(--success); } .over-tag.bad { - background: #fef2f2; - color: #ef4444; + background: var(--danger-soft); + color: var(--danger); } .expense-attachment-main { @@ -717,22 +717,22 @@ tbody tr:last-child td { border-bottom: 0; } align-items: center; min-height: 24px; padding: 0 8px; - border-radius: 999px; + border-radius: 4px; font-size: 11px; font-weight: 800; white-space: nowrap; } -.attachment-pill.ok { background: #ecfdf5; color: #059669; } -.attachment-pill.partial { background: #fff7ed; color: #ea580c; } -.attachment-pill.missing { background: #fef2f2; color: #ef4444; } -.attachment-pill.neutral { background: #eef2ff; color: #4f46e5; } +.attachment-pill.ok { background: var(--success-soft); color: var(--success); } +.attachment-pill.partial { background: var(--warning-soft); color: var(--warning-active); } +.attachment-pill.missing { background: var(--danger-soft); color: var(--danger); } +.attachment-pill.neutral { background: var(--info-soft); color: var(--info); } .inline-action { min-height: 24px; padding: 0 8px; border: 1px solid #dbe4ee; - border-radius: 999px; + border-radius: 4px; background: #fff; color: #334155; font-size: 11px; @@ -740,13 +740,13 @@ tbody tr:last-child td { border-bottom: 0; } } .inline-action:hover { - border-color: rgba(16, 185, 129, .36); - color: #047857; + border-color: rgba(var(--theme-primary-rgb), .36); + color: var(--theme-primary-active); } -.risk-inline-tag.low { background: #ecfdf5; color: #059669; } -.risk-inline-tag.medium { background: #fff7ed; color: #ea580c; } -.risk-inline-tag.high { background: #fef2f2; color: #dc2626; } +.risk-inline-tag.low { background: var(--success-soft); color: var(--success); } +.risk-inline-tag.medium { background: var(--warning-soft); color: var(--warning-active); } +.risk-inline-tag.high { background: var(--danger-soft); color: var(--danger-hover); } .expense-risk p { margin-top: 6px; @@ -773,7 +773,7 @@ tbody tr:last-child td { border-bottom: 0; } align-items: center; gap: 6px; padding: 6px 10px; - border-radius: 999px; + border-radius: 4px; background: #fff; border: 1px solid #e2e8f0; color: #334155; @@ -782,7 +782,7 @@ tbody tr:last-child td { border-bottom: 0; } } .expense-file-chip i { - color: #059669; + color: var(--theme-primary); font-size: 12px; } @@ -814,13 +814,13 @@ tbody tr:last-child td { border-bottom: 0; } } .detail-attachment.missing { - border-color: #fb923c; + border-color: var(--warning-line); border-style: dashed; - background: #fff7ed; + background: var(--warning-soft); } -.detail-attachment i { color: #059669; font-size: 24px; } -.detail-attachment.missing i { color: #f97316; } +.detail-attachment i { color: var(--theme-primary); font-size: 24px; } +.detail-attachment.missing i { color: var(--warning-active); } .detail-attachment strong { display: block; @@ -862,7 +862,7 @@ tbody tr:last-child td { border-bottom: 0; } font-weight: 750; } -.risk-card header b { color: #ef4444; } +.risk-card header b { color: var(--danger); } .risk-list { display: grid; @@ -883,9 +883,9 @@ tbody tr:last-child td { border-bottom: 0; } } .risk-list div:last-child { border-bottom: 0; } -.risk-list i { color: #f97316; } -.risk-list b.high { color: #ef4444; } -.risk-list b.medium { color: #f97316; } +.risk-list i { color: var(--warning-active); } +.risk-list b.high { color: var(--danger); } +.risk-list b.medium { color: var(--warning-active); } .risk-note { margin-top: 12px; @@ -951,24 +951,24 @@ tbody tr:last-child td { border-bottom: 0; } .approve-action { min-width: 92px; - border: 1px solid #059669; - background: #059669; + border: 1px solid var(--theme-primary); + background: var(--theme-primary); color: #fff; - box-shadow: 0 4px 10px rgba(5, 150, 105, .14); + box-shadow: 0 4px 10px var(--theme-primary-shadow); } .reject-action { min-width: 86px; - border: 1px solid #fecaca; + border: 1px solid var(--danger-line); background: #fff; - color: #ef4444; + color: var(--danger); } .supplement-action { min-width: 86px; - border: 1px solid #fed7aa; + border: 1px solid var(--warning-line); background: #fff; - color: #ea580c; + color: var(--warning-active); } /* ────────── Detail Modal Overlay ────────── */ @@ -1020,9 +1020,9 @@ tbody tr:last-child td { border-bottom: 0; } .req-badge { padding: 6px 14px; border-radius: 3px; - background: #eff6ff; - border-left: 3px solid #1d4ed8; - color: #1d4ed8; + background: var(--theme-primary-soft); + border-left: 3px solid var(--theme-primary-active); + color: var(--theme-primary-active); font-size: 13px; font-weight: 850; letter-spacing: .02em; @@ -1058,23 +1058,23 @@ tbody tr:last-child td { border-bottom: 0; } } .header-indicator.high { - background: #fee2e2; - color: #dc2626; + background: var(--danger-soft); + color: var(--danger-hover); } .header-indicator.medium { - background: #ffedd5; - color: #ea580c; + background: var(--warning-soft); + color: var(--warning-active); } .header-indicator.low { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success); } .header-indicator.status { - background: #dbeafe; - color: #1d4ed8; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .close-btn { @@ -1128,14 +1128,14 @@ tbody tr:last-child td { border-bottom: 0; } .progress-node.done .node-dot, .progress-node.active .node-dot { - background: #059669; + background: var(--theme-primary-active); color: #fff; - box-shadow: 0 4px 12px rgba(5, 150, 105, .25); + box-shadow: 0 4px 12px var(--theme-primary-shadow); } .progress-node.current .node-dot { - background: #10b981; - box-shadow: 0 4px 12px rgba(5, 150, 105, .25), 0 0 0 5px rgba(5, 150, 105, .1); + background: var(--theme-primary); + box-shadow: 0 4px 12px var(--theme-primary-shadow), 0 0 0 5px rgba(var(--theme-primary-rgb), .1); animation: breathe-pulse 2s ease-in-out infinite; } @@ -1143,12 +1143,12 @@ tbody tr:last-child td { border-bottom: 0; } 0%, 100% { opacity: 1; transform: scale(1); - box-shadow: 0 4px 12px rgba(5, 150, 105, .25), 0 0 0 4px rgba(5, 150, 105, .15); + box-shadow: 0 4px 12px var(--theme-primary-shadow), 0 0 0 4px rgba(var(--theme-primary-rgb), .15); } 50% { opacity: 0.7; transform: scale(1.1); - box-shadow: 0 4px 12px rgba(5, 150, 105, .4), 0 0 0 10px rgba(5, 150, 105, .08); + box-shadow: 0 4px 12px rgba(var(--theme-primary-rgb), .4), 0 0 0 10px rgba(var(--theme-primary-rgb), .08); } } @@ -1166,7 +1166,7 @@ tbody tr:last-child td { border-bottom: 0; } white-space: nowrap; } -.progress-node.current .node-label strong { color: #059669; } +.progress-node.current .node-label strong { color: var(--theme-primary-active); } .node-label small { color: #94a3b8; @@ -1185,7 +1185,7 @@ tbody tr:last-child td { border-bottom: 0; } transition: background 300ms ease; } -.node-line.filled { background: #10b981; } +.node-line.filled { background: var(--theme-primary); } /* ── Modal Body ── */ .modal-body { @@ -1220,10 +1220,10 @@ tbody tr:last-child td { border-bottom: 0; } transition: background 160ms ease; } -.metric-block:hover { background: #fafffe; } +.metric-block:hover { background: #f8fbff; } .metric-block.amount { - background: #ecfdf5; + background: var(--theme-primary-soft); } .metric-label { @@ -1245,9 +1245,9 @@ tbody tr:last-child td { border-bottom: 0; } } .metric-value.sla { display: flex; align-items: center; gap: 6px; font-size: 20px; } -.metric-value.sla.safe { color: #059669; } -.metric-value.sla.warning { color: #f59e0b; } -.metric-value.sla.danger { color: #ef4444; } +.metric-value.sla.safe { color: var(--success); } +.metric-value.sla.warning { color: var(--warning); } +.metric-value.sla.danger { color: var(--danger); } /* ── Content Card ── */ .content-card { @@ -1284,7 +1284,7 @@ tbody tr:last-child td { border-bottom: 0; } } .card-title i { - color: #059669; + color: var(--theme-primary); font-size: 18px; } @@ -1297,15 +1297,15 @@ tbody tr:last-child td { border-bottom: 0; } .card-badge { padding: 4px 10px; border-radius: 6px; - background: #f0fdf4; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 12px; font-weight: 800; } .card-badge.warn { - background: #fff7ed; - color: #ea580c; + background: var(--warning-soft); + color: var(--warning-active); } /* ── Summary Grid ── */ @@ -1325,14 +1325,14 @@ tbody tr:last-child td { border-bottom: 0; } transition: background 160ms ease; } -.summary-cell:hover { background: #fafffe; } +.summary-cell:hover { background: #f8fbff; } .cell-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 4px; - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary); font-size: 18px; flex-shrink: 0; } @@ -1402,7 +1402,7 @@ tbody tr:last-child td { border-bottom: 0; } } .total-amount { - color: #059669 !important; + color: var(--theme-primary-active) !important; font-size: 16px; } @@ -1416,8 +1416,8 @@ tbody tr:last-child td { border-bottom: 0; } font-weight: 800; } -.over-badge.ok { background: #ecfdf5; color: #059669; } -.over-badge.bad { background: #fef2f2; color: #ef4444; } +.over-badge.ok { background: var(--success-soft); color: var(--success); } +.over-badge.bad { background: var(--danger-soft); color: var(--danger); } /* ── Attachments (sidebar list) ── */ .attachment-list-side { @@ -1440,8 +1440,8 @@ tbody tr:last-child td { border-bottom: 0; } .attachment-row:hover { background: #fafbfd; } .attachment-row.missing { - border: 1px dashed #fbbf24; - background: #fffbeb; + border: 1px dashed var(--warning-line); + background: var(--warning-soft); } .file-icon-sm { @@ -1452,9 +1452,9 @@ tbody tr:last-child td { border-bottom: 0; } flex-shrink: 0; } -.file-icon-sm.pdf { background: #fef2f2; color: #ef4444; } -.file-icon-sm.img { background: #ecfdf5; color: #059669; } -.file-icon-sm.miss { background: #fff7ed; color: #f59e0b; } +.file-icon-sm.pdf { background: var(--danger-soft); color: var(--danger); } +.file-icon-sm.img { background: var(--theme-primary-soft); color: var(--theme-primary); } +.file-icon-sm.miss { background: var(--warning-soft); color: var(--warning); } .file-detail strong { display: block; diff --git a/web/src/assets/styles/views/archive-center-view.css b/web/src/assets/styles/views/archive-center-view.css index fe3a10f..8e66f5a 100644 --- a/web/src/assets/styles/views/archive-center-view.css +++ b/web/src/assets/styles/views/archive-center-view.css @@ -1,7 +1,7 @@ .archive-page .status-tag.archived { - color: #0f766e; - background: rgba(16, 185, 129, 0.12); - border: 1px solid rgba(16, 185, 129, 0.22); + color: var(--theme-primary-active); + background: var(--theme-primary-soft); + border: 1px solid rgba(var(--theme-primary-rgb), 0.22); } .archive-page .risk-tag.none { @@ -9,44 +9,45 @@ color: #64748b; } -.archive-dropdown-filter { - position: relative; +.archive-filter-control { + display: inline-flex; } -.archive-dropdown-menu { - position: absolute; - top: calc(100% + 8px); - left: 0; - z-index: 12; - min-width: 148px; - max-height: 280px; +.archive-filter-trigger { + gap: 10px; +} + +.archive-filter-trigger:focus-visible { + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); + outline: none; +} + +:global(.archive-filter-menu) { + min-width: 156px; +} + +:global(.archive-filter-menu .el-dropdown-menu) { padding: 6px; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12); - overflow-y: auto; } -.archive-dropdown-option { - display: block; - width: 100%; - min-height: 36px; - padding: 0 12px; - border: 0; - border-radius: 8px; - background: transparent; +:global(.archive-filter-option) { + min-height: 34px; + border-radius: 4px; color: #334155; font-size: 13px; font-weight: 600; - text-align: left; - cursor: pointer; } -.archive-dropdown-option:hover, -.archive-dropdown-option.active { - background: rgba(16, 185, 129, 0.1); - color: #047857; +:global(.archive-filter-option .mdi-check) { + margin-right: 8px; + color: var(--theme-primary-active); +} + +:global(.archive-filter-option.is-active), +:global(.archive-filter-option:hover) { + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .archive-page .hint { diff --git a/web/src/assets/styles/views/audit-view-part2.css b/web/src/assets/styles/views/audit-view-part2.css index 14b4251..30872c6 100644 --- a/web/src/assets/styles/views/audit-view-part2.css +++ b/web/src/assets/styles/views/audit-view-part2.css @@ -56,8 +56,8 @@ } .compare-sheet-list b.success { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .compare-sheet-list b.danger { @@ -106,8 +106,8 @@ } .compare-table-wrap td b.success { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .compare-table-wrap td b.warning { @@ -151,8 +151,8 @@ .review-submit-form input:focus, .review-submit-form select:focus { outline: 0; - border-color: rgba(16, 185, 129, 0.5); - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12); + border-color: rgba(var(--theme-primary-rgb), 0.5); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .review-submit-test-state, @@ -182,7 +182,7 @@ } .review-submit-test-state strong.passed { - color: #047857; + color: var(--success-hover); } .review-submit-test-state p { @@ -335,7 +335,7 @@ gap: 8px; margin-top: 14px; padding: 10px 12px; - border: 1px solid rgba(14, 165, 233, 0.22); + border: 1px solid rgba(58, 124, 165, 0.22); border-radius: 12px; background: linear-gradient(180deg, rgba(240, 249, 255, 0.96), rgba(224, 242, 254, 0.9)); color: #075985; @@ -417,10 +417,10 @@ min-height: 38px; margin-bottom: 10px; padding: 0 12px; - border: 1px solid #e0f2fe; + border: 1px solid #eaf4fa; border-radius: 10px; background: #f0f9ff; - color: #0369a1; + color: #255b7d; font-size: 12px; font-weight: 700; } @@ -451,8 +451,8 @@ } .reviewer-card { - border-color: rgba(16, 185, 129, 0.24); - background: linear-gradient(180deg, #ffffff, #f8fffc); + border-color: rgba(var(--theme-primary-rgb), 0.24); + background: linear-gradient(180deg, #ffffff, var(--theme-primary-soft)); } .review-list { @@ -515,7 +515,7 @@ .version-row.active { border-radius: 10px; - background: rgba(16, 185, 129, 0.08); + background: var(--theme-primary-soft); } .version-main { @@ -564,8 +564,8 @@ justify-content: center; padding: 0 7px; border-radius: 999px; - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); font-size: 11px; font-weight: 850; } @@ -599,8 +599,8 @@ } .version-state.success { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .version-state.warning { @@ -814,8 +814,8 @@ .test-state.success, .tool-state.safe { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .test-state.warning, @@ -908,7 +908,7 @@ width: 16px; height: 16px; margin-top: 3px; - accent-color: #0f766e; + accent-color: var(--theme-primary); } .risk-rule-create-toggle span { @@ -963,8 +963,8 @@ .risk-rule-create-form select:focus, .risk-rule-create-form textarea:focus { outline: 0; - border-color: rgba(16, 185, 129, 0.5); - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12); + border-color: rgba(var(--theme-primary-rgb), 0.5); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .risk-rule-create-form input:not([type='checkbox'])::placeholder, @@ -984,7 +984,7 @@ } .publish-summary strong { - color: #059669; + color: var(--theme-primary-active); font-size: 14px; font-weight: 850; } @@ -1031,8 +1031,8 @@ } .minor-action.success-action { - border-color: rgba(5, 150, 105, 0.26); - color: #059669; + border-color: rgba(var(--success-rgb), 0.26); + color: var(--success-hover); } .minor-action.enable-action { @@ -1041,8 +1041,8 @@ } .minor-action.enable-action.is-on { - border-color: rgba(5, 150, 105, 0.26); - color: #059669; + border-color: rgba(var(--success-rgb), 0.26); + color: var(--success-hover); } .minor-action.enable-action i { @@ -1167,10 +1167,10 @@ } .major-action { - border: 1px solid #059669; - background: #059669; + border: 1px solid var(--theme-primary); + background: var(--theme-primary); color: #fff; - box-shadow: 0 4px 12px rgba(5, 150, 105, .16); + box-shadow: 0 4px 12px var(--theme-primary-shadow); } .back-action:hover, @@ -1216,8 +1216,8 @@ } .mini-btn.primary { - border-color: #059669; - background: #059669; + border-color: var(--theme-primary); + background: var(--theme-primary); color: #fff; } @@ -1584,8 +1584,8 @@ } .json-risk-mode-pill.low { - background: #ecfdf5; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .json-risk-editor-body { @@ -1760,8 +1760,8 @@ } .json-risk-meta-badge.test-passed { - background: #ecfdf5; - color: #047857; + background: var(--success-soft); + color: var(--success-hover); } .json-risk-meta-badge.test-pending { @@ -1785,8 +1785,8 @@ } .meta-status-indicator.is-active .indicator-dot { - background: #10b981; - box-shadow: 0 0 4px rgba(16, 185, 129, 0.4); + background: var(--success); + box-shadow: 0 0 4px rgba(var(--success-rgb), 0.4); } .json-risk-editor-toolbar { diff --git a/web/src/assets/styles/views/audit-view.css b/web/src/assets/styles/views/audit-view.css index 7f34403..56fb1bb 100644 --- a/web/src/assets/styles/views/audit-view.css +++ b/web/src/assets/styles/views/audit-view.css @@ -66,7 +66,7 @@ bottom: -13px; height: 3px; border-radius: 999px; - background: #10b981; + background: var(--theme-primary); } .list-toolbar { @@ -93,7 +93,7 @@ gap: 8px; padding: 0 11px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; background: #fff; color: #64748b; } @@ -118,8 +118,8 @@ } .search-filter:focus-within { - border-color: rgba(16, 185, 129, 0.48); - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1); + border-color: rgba(var(--theme-primary-rgb), 0.48); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .picker-trigger, @@ -127,7 +127,7 @@ .create-btn, .row-action { min-height: 38px; - border-radius: 8px; + border-radius: 4px; font-size: 13px; font-weight: 760; } @@ -166,9 +166,9 @@ .picker-trigger:hover, .picker-filter.open .picker-trigger { - border-color: rgba(16, 185, 129, 0.34); - background: #f6fffb; - color: #0f9f78; + border-color: rgba(var(--theme-primary-rgb), 0.34); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .picker-popover { @@ -181,7 +181,7 @@ gap: 14px; padding: 16px; border: 1px solid #d7e0ea; - border-radius: 12px; + border-radius: 4px; background: #fff; box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16); } @@ -204,7 +204,7 @@ display: grid; place-items: center; border: 0; - border-radius: 8px; + border-radius: 4px; background: transparent; color: #64748b; } @@ -227,7 +227,7 @@ align-items: center; padding: 0 12px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; background: #fff; color: #334155; font-size: 13px; @@ -237,9 +237,9 @@ .picker-option:hover, .picker-option.active { - border-color: rgba(16, 185, 129, 0.32); - background: rgba(16, 185, 129, 0.08); - color: #059669; + border-color: rgba(var(--theme-primary-rgb), 0.32); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .toolbar-actions { @@ -259,8 +259,8 @@ } .ghost-filter-btn:hover { - border-color: rgba(16, 185, 129, 0.28); - color: #059669; + border-color: rgba(var(--theme-primary-rgb), 0.28); + color: var(--theme-primary-active); } .create-btn { @@ -269,9 +269,9 @@ gap: 8px; padding: 0 14px; border: 0; - background: #059669; + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 18px rgba(5, 150, 105, 0.18); + box-shadow: 0 8px 18px var(--theme-primary-shadow); } .create-btn:disabled { @@ -307,8 +307,8 @@ align-items: center; padding: 0 10px; border-radius: 999px; - background: rgba(16, 185, 129, 0.1); - color: #047857; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 12px; font-weight: 800; } @@ -376,7 +376,7 @@ } .table-state.empty i { - color: #0ea5e9; + color: #3a7ca5; } .table-state p, @@ -402,10 +402,10 @@ align-items: center; justify-content: center; padding: 0 14px; - border: 1px solid rgba(16, 185, 129, 0.28); + border: 1px solid rgba(var(--theme-primary-rgb), 0.28); border-radius: 8px; background: #fff; - color: #059669; + color: var(--theme-primary-active); font-size: 13px; font-weight: 760; } @@ -487,7 +487,7 @@ tbody tr.is-disabled:hover { font-weight: 900; } -.skill-avatar.emerald { background: linear-gradient(135deg, #10b981, #059669); } +.skill-avatar.primary { background: var(--theme-gradient-primary); } .skill-avatar.rose { background: linear-gradient(135deg, #f43f5e, #e11d48); } .skill-avatar.violet { background: linear-gradient(135deg, #8b5cf6, #7c3aed); } .skill-avatar.blue { background: linear-gradient(135deg, #3b82f6, #2563eb); } @@ -529,8 +529,8 @@ tbody tr.is-disabled:hover { } .status-pill.success { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .status-pill.warning { @@ -544,8 +544,8 @@ tbody tr.is-disabled:hover { } .status-pill.info { - background: #e0f2fe; - color: #0284c7; + background: #eaf4fa; + color: #2f6d95; } .status-pill.danger { @@ -560,13 +560,13 @@ tbody tr.is-disabled:hover { .row-action { padding: 0 12px; - border: 1px solid rgba(16, 185, 129, 0.32); + border: 1px solid rgba(var(--theme-primary-rgb), 0.32); background: #fff; - color: #059669; + color: var(--theme-primary-active); } .row-action:hover { - background: rgba(16, 185, 129, 0.08); + background: var(--theme-primary-soft); } .detail-scroll { @@ -620,7 +620,7 @@ tbody tr.is-disabled:hover { font-weight: 800; } -.skill-badge.emerald { background: linear-gradient(135deg, #10b981, #059669); } +.skill-badge.primary { background: var(--theme-gradient-primary); } .skill-badge.rose { background: linear-gradient(135deg, #f43f5e, #e11d48); } .skill-badge.violet { background: linear-gradient(135deg, #8b5cf6, #7c3aed); } .skill-badge.blue { background: linear-gradient(135deg, #3b82f6, #2563eb); } @@ -658,9 +658,9 @@ tbody tr.is-disabled:hover { gap: 6px; margin-top: 12px; padding: 12px 14px; - border: 1px solid rgba(16, 185, 129, 0.16); + border: 1px solid rgba(var(--theme-primary-rgb), 0.16); border-radius: 12px; - background: linear-gradient(180deg, #f8fffc, #ffffff); + background: linear-gradient(180deg, var(--theme-primary-soft), #ffffff); } .review-note-block strong { @@ -695,7 +695,7 @@ tbody tr.is-disabled:hover { } .hero-review-meta i { - color: #059669; + color: var(--theme-primary); font-size: 15px; } @@ -1041,12 +1041,12 @@ tbody tr.is-disabled:hover { } .version-pair-card.published { - background: rgba(16, 185, 129, 0.1); + background: var(--success-soft); } .version-pair-card.published b { - background: #dcfce7; - color: #059669; + background: var(--success-line); + color: var(--success-hover); } .version-pair-card.working { @@ -1115,8 +1115,8 @@ tbody tr.is-disabled:hover { } .change-center-item.active { - border-color: rgba(16, 185, 129, 0.35); - background: rgba(16, 185, 129, 0.05); + border-color: rgba(var(--theme-primary-rgb), 0.35); + background: var(--theme-primary-soft); } .change-center-item > button { @@ -1176,13 +1176,13 @@ tbody tr.is-disabled:hover { } .change-record-item:hover { - border-color: rgba(16, 185, 129, 0.35); + border-color: rgba(var(--theme-primary-rgb), 0.35); box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08); transform: translateY(-1px); } .change-record-item:focus-visible { - outline: 3px solid rgba(16, 185, 129, 0.18); + outline: 3px solid var(--theme-focus-ring); outline-offset: 1px; } @@ -1387,8 +1387,8 @@ tbody tr.is-disabled:hover { } .rule-timeline-item > i.success { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .rule-timeline-item > i.warning { @@ -1459,15 +1459,6 @@ tbody tr.is-disabled:hover { font-weight: 850; } -.compare-toolbar select { - width: 100%; - min-height: 40px; - padding: 0 12px; - border: 1px solid #cbd5e1; - border-radius: 12px; - background: #fff; -} - .compare-toolbar i { margin-bottom: 10px; color: #94a3b8; @@ -1512,4 +1503,3 @@ tbody tr.is-disabled:hover { display: grid; gap: 10px; } - diff --git a/web/src/assets/styles/views/backend-unavailable-view.css b/web/src/assets/styles/views/backend-unavailable-view.css index 7005b65..ddeec01 100644 --- a/web/src/assets/styles/views/backend-unavailable-view.css +++ b/web/src/assets/styles/views/backend-unavailable-view.css @@ -4,7 +4,7 @@ place-items: center; padding: 32px; background: - radial-gradient(circle at top, rgba(16, 185, 129, 0.16), transparent 32%), + radial-gradient(circle at top, rgba(var(--theme-primary-rgb), 0.16), transparent 32%), linear-gradient(180deg, #08130f 0%, #0f1f18 100%); } @@ -27,8 +27,8 @@ place-items: center; margin: 0 auto; border-radius: 20px; - background: linear-gradient(135deg, rgba(16, 185, 129, 0.2), rgba(5, 150, 105, 0.28)); - color: #4ade80; + background: linear-gradient(135deg, rgba(var(--theme-primary-rgb), 0.2), rgba(var(--theme-primary-rgb), 0.28)); + color: var(--theme-primary-soft-strong); font-size: 32px; } @@ -56,13 +56,13 @@ justify-content: center; gap: 8px; padding: 0 18px; - border: 1px solid rgba(16, 185, 129, 0.2); + border: 1px solid rgba(var(--theme-primary-rgb), 0.2); border-radius: 10px; - background: #059669; + background: var(--theme-primary); color: #fff; font-size: 14px; font-weight: 760; - box-shadow: 0 16px 30px rgba(5, 150, 105, 0.2); + box-shadow: 0 16px 30px var(--theme-primary-shadow); } .retry-btn:disabled { diff --git a/web/src/assets/styles/views/budget-center-dialog.css b/web/src/assets/styles/views/budget-center-dialog.css index 2ea0bb1..cb4579c 100644 --- a/web/src/assets/styles/views/budget-center-dialog.css +++ b/web/src/assets/styles/views/budget-center-dialog.css @@ -111,13 +111,11 @@ .budget-edit-form-grid label.required > span::after { content: "*"; margin-left: 3px; - color: #ef4444; + color: var(--danger); } -.budget-edit-form-grid select, .budget-edit-textarea textarea, -.budget-edit-table input, -.budget-edit-table select { +.budget-edit-table input { width: 100%; border: 1px solid #dbe4ee; border-radius: 6px; @@ -128,17 +126,15 @@ transition: border-color 160ms ease, box-shadow 160ms ease; } -.budget-edit-form-grid select { - height: 38px; - padding: 0 34px 0 12px; +.budget-edit-form-grid .enterprise-select, +.budget-edit-table .enterprise-select { + width: 100%; } -.budget-edit-form-grid select:focus, .budget-edit-textarea textarea:focus, -.budget-edit-table input:focus, -.budget-edit-table select:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, .12); +.budget-edit-table input:focus { + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .budget-edit-textarea { @@ -207,7 +203,7 @@ } .budget-edit-table th i { - color: #ef4444; + color: var(--danger); font-style: normal; } @@ -217,8 +213,7 @@ .budget-edit-table th:nth-child(4) { width: 120px; } .budget-edit-table th:nth-child(6) { width: 68px; } -.budget-edit-table input, -.budget-edit-table select { +.budget-edit-table input { height: 34px; padding: 0 10px; text-align: center; @@ -242,8 +237,8 @@ } .budget-row-delete:hover { - background: #fef2f2; - color: #dc2626; + background: var(--danger-soft); + color: var(--danger-hover); } .budget-add-row-btn { @@ -253,10 +248,10 @@ display: inline-flex; align-items: center; gap: 5px; - border: 1px solid rgba(16, 185, 129, .42); + border: 1px solid rgba(var(--theme-primary-rgb), .42); border-radius: 6px; background: #fff; - color: #059669; + color: var(--theme-primary-active); font-size: 13px; font-weight: 800; cursor: pointer; @@ -284,7 +279,7 @@ } .budget-edit-total strong { - color: #059669; + color: var(--theme-primary-active); font-size: 16px; font-weight: 800; } @@ -315,16 +310,16 @@ } .budget-edit-draft { - border: 1px solid #10b981; + border: 1px solid var(--theme-primary); background: #fff; - color: #059669; + color: var(--theme-primary-active); } .budget-edit-publish { border: 0; - background: linear-gradient(135deg, #10b981, #059669); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; - box-shadow: 0 10px 24px rgba(5, 150, 105, .20); + box-shadow: 0 10px 24px var(--theme-primary-shadow); } .budget-dialog-fade-enter-active, @@ -421,10 +416,6 @@ font-size: 12px; } - .budget-edit-form-grid select { - height: 34px; - } - .budget-edit-textarea { margin-top: 8px; } @@ -441,8 +432,7 @@ padding: 6px 8px; } - .budget-edit-table input, - .budget-edit-table select { + .budget-edit-table input { height: 30px; padding: 0 8px; } diff --git a/web/src/assets/styles/views/budget-center-view.css b/web/src/assets/styles/views/budget-center-view.css index c9f7bb6..e87b7e0 100644 --- a/web/src/assets/styles/views/budget-center-view.css +++ b/web/src/assets/styles/views/budget-center-view.css @@ -14,7 +14,7 @@ } .budget-summary-card { - --accent: #10b981; + --accent: var(--theme-primary); position: relative; min-height: 112px; padding: 12px 14px 10px; @@ -35,16 +35,16 @@ transform: translateY(-1px); } -.budget-summary-card.green { - --accent: #10b981; +.budget-summary-card.primary { + --accent: var(--theme-primary); } -.budget-summary-card.blue { - --accent: #3b82f6; +.budget-summary-card.info { + --accent: var(--theme-secondary); } -.budget-summary-card.orange { - --accent: #f59e0b; +.budget-summary-card.warning { + --accent: var(--warning); } .budget-summary-head { @@ -134,13 +134,13 @@ } .comparison-pill.up { - background: rgba(22, 163, 74, .08); - color: #16a34a; + background: var(--success-soft); + color: var(--success); } .comparison-pill.down { - background: rgba(239, 68, 68, .08); - color: #dc2626; + background: var(--danger-soft); + color: var(--danger-hover); } .budget-filter-bar { @@ -173,35 +173,15 @@ white-space: nowrap; } -.budget-filter-bar select { - min-height: 38px; +.budget-filter-bar .enterprise-select { min-width: 128px; - border: 1px solid #d7e0ea; - border-radius: 8px; - background: #fff; - color: #334155; - padding: 0 34px 0 14px; - font-size: 14px; - font-weight: 750; - transition: border-color 160ms ease, box-shadow 160ms ease, color 160ms ease; -} - -.budget-filter-bar select:hover { - border-color: rgba(16, 185, 129, .32); - color: #0f9f78; -} - -.budget-filter-bar select:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, .14); - outline: none; } .budget-primary-btn { min-height: 40px; border: 0; - border-radius: 10px; - background: linear-gradient(135deg, #10b981, #059669); + border-radius: 8px; + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; padding: 0 18px; display: inline-flex; @@ -212,13 +192,13 @@ font-weight: 800; white-space: nowrap; cursor: pointer; - box-shadow: 0 10px 24px rgba(5, 150, 105, .2); + box-shadow: 0 10px 24px var(--theme-primary-shadow); transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease; } .budget-primary-btn:hover { transform: translateY(-1px); - box-shadow: 0 14px 28px rgba(5, 150, 105, .24); + box-shadow: 0 14px 28px rgba(var(--theme-primary-rgb), .24); filter: saturate(1.02); } @@ -241,8 +221,8 @@ } .budget-ghost-btn:hover { - border-color: rgba(16, 185, 129, .32); - color: #0f9f78; + border-color: rgba(var(--theme-primary-rgb), .32); + color: var(--theme-primary-active); box-shadow: 0 1px 4px rgba(15, 23, 42, .08); } @@ -330,8 +310,8 @@ } .department-list button.active { - background: #e9f7f1; - color: #07965f; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .budget-table-wrap { @@ -392,24 +372,24 @@ } .budget-rate em.ok { - background: #13a66b; + background: var(--success); } .budget-rate em.warn { - background: #f2a51a; + background: var(--warning); } .budget-rate em.danger { - background: #ef4444; + background: var(--danger); } .budget-warning-red { - color: #e24b4b !important; + color: var(--danger) !important; font-weight: 800; } .budget-warning-yellow { - color: #e3a008 !important; + color: var(--warning-active) !important; font-weight: 800; } @@ -423,7 +403,7 @@ .budget-row-actions button { border: 0; background: transparent; - color: #1c7ed6; + color: var(--theme-primary-active); font-size: 14px; font-weight: 800; } @@ -467,14 +447,14 @@ .budget-pager button:hover:not(.active):not(:disabled) { background: #fff; - color: #059669; + color: var(--theme-primary-active); box-shadow: 0 1px 4px rgba(15, 23, 42, .08); } .budget-pager button.active { - background: #059669; + background: var(--theme-primary-active); color: #fff; - box-shadow: 0 8px 16px rgba(5, 150, 105, .20); + box-shadow: 0 8px 16px var(--theme-primary-shadow); } .budget-pager button:disabled { @@ -502,19 +482,8 @@ transition: border-color 160ms ease, color 160ms ease; } -.budget-page-size:hover { - border-color: rgba(16, 185, 129, .32); - color: #0f9f78; -} - -.budget-page-size select { - appearance: none; - border: 0; - background: transparent; - color: inherit; - font: inherit; - outline: none; - cursor: pointer; +.budget-page-size-select { + width: 112px; } .budget-bottom-grid { @@ -526,7 +495,7 @@ .budget-card-head button { border: 0; background: transparent; - color: #1c7ed6; + color: var(--theme-primary-active); font-size: 14px; font-weight: 800; } @@ -549,11 +518,11 @@ width: 10px; height: 10px; border-radius: 3px; - background: #13a66b; + background: var(--theme-primary); } .legend-line.occupied { - background: #f59e0b; + background: var(--warning); } .legend-line.available { @@ -587,11 +556,11 @@ .budget-alert-empty-icon { width: 44px; height: 44px; - border-radius: 12px; + border-radius: 8px; display: grid; place-items: center; - background: #e9f7f1; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 24px; } @@ -629,15 +598,15 @@ } .budget-alert-row i.danger { - background: #ef4444; + background: var(--danger); } .budget-alert-row i.warn { - background: #f59e0b; + background: var(--warning); } .budget-alert-row i.ok { - background: #13a66b; + background: var(--success); } .budget-alert-row strong { @@ -718,7 +687,7 @@ } .budget-filter-bar label, - .budget-filter-bar select, + .budget-filter-bar .enterprise-select, .budget-filter-set, .budget-action-set, .budget-primary-btn, diff --git a/web/src/assets/styles/views/chat-view.css b/web/src/assets/styles/views/chat-view.css index bb13649..2bb2f55 100644 --- a/web/src/assets/styles/views/chat-view.css +++ b/web/src/assets/styles/views/chat-view.css @@ -7,14 +7,14 @@ .conversation-list, .info-panel { display: grid; grid-template-rows: auto minmax(0, 1fr); } .side-panel header, .info-panel header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; } .side-panel h3, .info-panel h3 { display: inline-flex; align-items: center; gap: 8px; color: #0f172a; font-size: 17px; font-weight: 850; } -.outline-action, .info-panel header button { height: 34px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d8e3ed; border-radius: 8px; background: #fff; color: #0f9f78; font-size: 13px; font-weight: 750; white-space: nowrap; } +.outline-action, .info-panel header button { height: 34px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d8e3ed; border-radius: 8px; background: #fff; color: var(--theme-primary-active); font-size: 13px; font-weight: 750; white-space: nowrap; } .outline-action { padding: 0 12px; } .info-panel header button { border: 0; color: #64748b; } .session-scroll, .top-question-list, .similar-scroll { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; } .session-scroll { display: grid; align-content: start; gap: 4px; padding-right: 4px; } .session-row { width: 100%; min-height: 48px; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: #334155; text-align: left; } -.session-row.active, .session-row:hover { background: #eaf8f1; color: #0f8f68; } -.session-row span { color: #10b981; } +.session-row.active, .session-row:hover { background: var(--theme-primary-light-9); color: var(--theme-primary-active); } +.session-row span { color: var(--theme-primary); } .session-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 700; } .session-row time { color: #94a3b8; font-size: 12px; } .chat-panel { height: 100%; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; overflow: hidden; } @@ -22,20 +22,20 @@ .talk-row { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; align-items: start; } .avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 999px; color: #fff; font-size: 15px; font-weight: 850; } .user-avatar { background: linear-gradient(135deg, #26364d, #61748a); } -.assistant-avatar { background: #10b981; font-size: 20px; } +.assistant-avatar { background: var(--theme-primary); font-size: 20px; } .talk-content header { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; } .talk-content header strong { color: #334155; font-size: 14px; font-weight: 800; } .talk-content header time { color: #94a3b8; font-size: 12px; } -.user-question { display: inline-block; margin: 0; padding: 9px 16px; border-radius: 8px; background: #e8f5ef; color: #334155; font-size: 14px; line-height: 1.5; } +.user-question { display: inline-block; margin: 0; padding: 9px 16px; border-radius: 8px; background: var(--theme-primary-light-9); color: #334155; font-size: 14px; line-height: 1.5; } .answer-card, .agent-answer-markdown { max-width: 760px; border: 1px solid #dce5ef; border-radius: 10px; background: #fff; color: #334155; box-shadow: 0 8px 24px rgba(15, 23, 42, .04); } .answer-card { display: grid; gap: 10px; padding: 13px 18px; } .answer-card.compact { gap: 10px; } -.answer-card h4 { margin: 0 0 5px; color: #10a272; font-size: 13px; font-weight: 850; } +.answer-card h4 { margin: 0 0 5px; color: var(--theme-primary-active); font-size: 13px; font-weight: 850; } .answer-card p, .answer-card ul { margin: 0; font-size: 14px; line-height: 1.58; } .answer-card ul { padding-left: 18px; } .answer-card footer { display: flex; align-items: center; justify-content: flex-end; gap: 10px; color: #64748b; font-size: 12px; } .answer-card footer button { width: 28px; height: 28px; display: grid; place-items: center; border: 0; border-radius: 6px; background: transparent; color: #64748b; } -.answer-card footer button:hover { background: #f1f5f9; color: #0f9f78; } +.answer-card footer button:hover { background: #f1f5f9; color: var(--theme-primary-active); } .agent-answer-content { max-width: 760px; display: grid; gap: 10px; } .agent-answer-markdown { padding: 12px 16px; overflow-x: auto; font-size: 14px; } .agent-answer-markdown :deep(h1), @@ -59,20 +59,20 @@ .agent-answer-markdown :deep(li) { line-height: 1.65; } .agent-answer-markdown :deep(ul), .agent-answer-markdown :deep(ol) { padding-left: 22px; } -.agent-answer-markdown :deep(blockquote) { padding: 10px 12px; border-left: 4px solid #86efac; border-radius: 0 10px 10px 0; background: #f0fdf4; color: #475569; } +.agent-answer-markdown :deep(blockquote) { padding: 10px 12px; border-left: 4px solid var(--theme-primary-soft-strong); border-radius: 0 10px 10px 0; background: var(--theme-primary-light-9); color: #475569; } .agent-answer-markdown :deep(strong) { color: #0f172a; } .agent-answer-markdown :deep(code) { padding: 2px 6px; border-radius: 6px; background: #e2e8f0; font-size: 12px; } .agent-answer-markdown :deep(pre) { overflow-x: auto; padding: 12px; border-radius: 10px; background: #0f172a; color: #e2e8f0; } .agent-answer-markdown :deep(pre code) { padding: 0; background: transparent; color: inherit; } -.agent-answer-markdown :deep(a) { color: #059669; text-decoration: underline; } +.agent-answer-markdown :deep(a) { color: var(--theme-primary-active); text-decoration: underline; } .agent-answer-markdown :deep(table) { width: auto; max-width: 100%; border: 1px solid #dce5ef; border-radius: 10px; border-collapse: collapse; background: #fff; box-shadow: 0 8px 24px rgba(15, 23, 42, .04); font-size: 13px; } .agent-answer-markdown :deep(th), .agent-answer-markdown :deep(td) { padding: 10px 12px; border-bottom: 1px solid #e2e8f0; text-align: left; white-space: nowrap; } -.agent-answer-markdown :deep(th) { background: #eef7f2; color: #0f172a; font-weight: 800; } +.agent-answer-markdown :deep(th) { background: var(--theme-primary-light-9); color: #0f172a; font-weight: 800; } .agent-answer-markdown :deep(td) { color: #334155; font-weight: 650; } .agent-answer-markdown :deep(tbody tr:last-child td) { border-bottom: 0; } .agent-meta-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; max-width: 760px; } -.agent-meta-chip { min-height: 26px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 999px; background: #eef7f2; color: #0f766e; font-size: 12px; font-weight: 760; } +.agent-meta-chip { min-height: 26px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 999px; background: var(--theme-primary-light-9); color: var(--theme-primary-active); font-size: 12px; font-weight: 760; } .agent-detail-block { max-width: 760px; margin-top: 10px; display: grid; gap: 8px; } .agent-detail-block > strong { color: #0f172a; font-size: 12px; font-weight: 820; } .agent-citation-disclosure { overflow: hidden; border: 1px solid #dce5ef; border-radius: 10px; background: #fff; } @@ -103,22 +103,22 @@ .prompt-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; overflow-x: auto; } .prompt-toolbar span { flex: 0 0 auto; color: #64748b; font-size: 13px; font-weight: 800; } .prompt-toolbar button { height: 34px; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 0 14px; border: 1px solid #dce5ef; border-radius: 8px; background: #fff; color: #334155; font-size: 13px; font-weight: 750; } -.prompt-toolbar button i { color: #10b981; } +.prompt-toolbar button i { color: var(--theme-primary); } .prompt-toolbar .icon-refresh { width: 34px; padding: 0; justify-content: center; } .composer { min-height: 64px; display: grid; grid-template-columns: minmax(0, 1fr) 48px; align-items: center; gap: 10px; padding: 8px; border: 1px solid #cbd8e5; border-radius: 8px; background: linear-gradient(180deg, #fff, #fbfdff); box-shadow: 0 1px 2px rgba(15, 23, 42, .04); transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; } -.composer:focus-within { border-color: rgba(16, 185, 129, .58); background: #fff; box-shadow: 0 0 0 3px rgba(16, 185, 129, .11), 0 10px 24px rgba(15, 23, 42, .06); } +.composer:focus-within { border-color: rgba(var(--theme-primary-rgb), .58); background: #fff; box-shadow: 0 0 0 3px var(--theme-focus-ring), 0 10px 24px rgba(15, 23, 42, .06); } .composer textarea { height: 48px; min-height: 48px; resize: none; border: 0; padding: 5px 8px; background: transparent; color: #0f172a; font-size: 14px; line-height: 1.55; } .composer textarea::placeholder { color: #94a3b8; } .composer textarea:focus { outline: none; } -.send-button { width: 48px; height: 48px; display: grid; place-items: center; border: 0; border-radius: 8px; background: #10b981; color: #fff; font-size: 20px; box-shadow: 0 8px 18px rgba(16, 185, 129, .20); transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease; } -.send-button:hover { background: #0ea672; box-shadow: 0 10px 22px rgba(16, 185, 129, .24); } +.send-button { width: 48px; height: 48px; display: grid; place-items: center; border: 0; border-radius: 8px; background: var(--theme-primary); color: #fff; font-size: 20px; box-shadow: 0 8px 18px var(--theme-primary-shadow); transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease; } +.send-button:hover { background: var(--theme-primary-hover); box-shadow: 0 10px 22px rgba(var(--theme-primary-rgb), .24); } .send-button:active { transform: scale(.96); } .send-button:disabled { background: #94a3b8; box-shadow: none; transform: none; } .hot-top-panel h3 i { color: #ef4444; } .top-question-list { display: grid; align-content: start; gap: 8px; padding-right: 4px; } .top-question-list button { min-height: 42px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 14px; align-items: center; gap: 10px; padding: 0 8px; border: 1px solid #e2e8f0; border-radius: 8px; background: #fff; color: #334155; text-align: left; } -.top-question-list button:hover { border-color: rgba(16, 185, 129, .32); color: #0f9f78; } -.top-question-list strong { color: #10b981; font-size: 13px; font-weight: 850; font-variant-numeric: tabular-nums; } +.top-question-list button:hover { border-color: rgba(var(--theme-primary-rgb), .32); color: var(--theme-primary-active); } +.top-question-list strong { color: var(--theme-primary); font-size: 13px; font-weight: 850; font-variant-numeric: tabular-nums; } .top-question-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 750; } .top-question-list i { color: #94a3b8; } .similar-panel { display: grid; } @@ -127,19 +127,19 @@ .similar-row:first-child { border-top: 0; } .similar-row span { min-width: 0; display: inline-flex; align-items: center; gap: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 700; } .similar-row span i { color: #64748b; font-size: 17px; } -.similar-row strong { height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: #e8f8f0; color: #15945f; font-size: 13px; font-weight: 850; } +.similar-row strong { height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: var(--theme-primary-light-9); color: var(--theme-primary-active); font-size: 13px; font-weight: 850; } .similar-row > i { color: #94a3b8; } .semantic-debug-panel { display: grid; grid-template-rows: auto minmax(0, 1fr); } .semantic-debug-body { min-height: 0; display: grid; grid-template-rows: auto auto auto auto minmax(0, 1fr); gap: 12px; } .semantic-debug-input { display: grid; gap: 8px; } .semantic-debug-input span { color: #334155; font-size: 13px; font-weight: 800; } .semantic-debug-input textarea { min-height: 98px; resize: vertical; padding: 12px 13px; border: 1px solid #d7e0ea; border-radius: 10px; background: linear-gradient(180deg, #ffffff, #f7fbff); color: #0f172a; font-size: 13px; line-height: 1.6; } -.semantic-debug-input textarea:focus { outline: none; border-color: rgba(16, 185, 129, .48); box-shadow: 0 0 0 3px rgba(16, 185, 129, .11); } +.semantic-debug-input textarea:focus { outline: none; border-color: rgba(var(--theme-primary-rgb), .48); box-shadow: 0 0 0 3px var(--theme-focus-ring); } .semantic-debug-actions { display: flex; flex-wrap: wrap; gap: 8px; } .semantic-chip { min-height: 30px; padding: 0 10px; border: 1px solid #d8e3ed; border-radius: 999px; background: #f8fbff; color: #334155; font-size: 12px; font-weight: 760; text-align: left; } -.semantic-chip:hover { border-color: rgba(16, 185, 129, .32); background: #eefbf5; color: #0f8f68; } +.semantic-chip:hover { border-color: rgba(var(--theme-primary-rgb), .32); background: var(--theme-primary-light-9); color: var(--theme-primary-active); } .semantic-debug-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; } -.semantic-parse-btn { min-height: 36px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; border: 0; border-radius: 9px; background: linear-gradient(135deg, #0f766e, #10b981); color: #fff; font-size: 13px; font-weight: 800; box-shadow: 0 10px 20px rgba(16, 185, 129, .18); } +.semantic-parse-btn { min-height: 36px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; border: 0; border-radius: 9px; background: var(--theme-gradient-primary); color: #fff; font-size: 13px; font-weight: 800; box-shadow: 0 10px 20px var(--theme-primary-shadow); } .semantic-parse-btn:disabled { background: #cbd5e1; box-shadow: none; } .semantic-inline-meta { color: #64748b; font-size: 12px; } .semantic-debug-error { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fff1f2; color: #be123c; font-size: 12px; line-height: 1.55; } @@ -150,7 +150,7 @@ .semantic-result-card strong { color: #0f172a; font-size: 14px; font-weight: 850; word-break: break-word; } .semantic-field-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .semantic-field-list section { min-height: 72px; padding: 12px; border-radius: 10px; background: #f8fafc; } -.semantic-field-list h4, .semantic-json-block h4 { margin: 0 0 6px; color: #0f766e; font-size: 12px; font-weight: 850; letter-spacing: .02em; } +.semantic-field-list h4, .semantic-json-block h4 { margin: 0 0 6px; color: var(--theme-primary-active); font-size: 12px; font-weight: 850; letter-spacing: .02em; } .semantic-field-list p { margin: 0; color: #334155; font-size: 12px; line-height: 1.6; word-break: break-word; } .semantic-json-block { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; } .semantic-json-block pre { min-height: 0; margin: 0; padding: 12px; overflow: auto; border-radius: 10px; background: #0f172a; color: #d7f7ea; font-size: 11px; line-height: 1.55; } diff --git a/web/src/assets/styles/views/documents-center-view.css b/web/src/assets/styles/views/documents-center-view.css index 6bf2d2f..dc60a1d 100644 --- a/web/src/assets/styles/views/documents-center-view.css +++ b/web/src/assets/styles/views/documents-center-view.css @@ -36,7 +36,7 @@ } .status-tabs button.active { - color: #059669; + color: var(--theme-primary-active); } .status-tabs button.active::after { @@ -47,7 +47,7 @@ bottom: -1px; height: 3px; border-radius: 999px 999px 0 0; - background: #10b981; + background: var(--theme-primary); } .scope-tab-badge { @@ -101,7 +101,7 @@ height: 38px; padding: 0 12px 0 36px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; background: #fff; color: #0f172a; font-size: 13px; @@ -113,13 +113,12 @@ } .list-search input:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.14); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px rgba(58, 124, 165, 0.14); outline: none; } -.filter-btn, -.page-size { +.filter-btn { min-height: 38px; display: inline-flex; align-items: center; @@ -127,7 +126,7 @@ gap: 9px; padding: 0 14px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; background: #fff; color: #334155; font-size: 14px; @@ -140,10 +139,9 @@ justify-content: space-between; } -.filter-btn:hover, -.page-size:hover { - border-color: rgba(16, 185, 129, .32); - color: #0f9f78; +.filter-btn:hover { + border-color: rgba(58, 124, 165, .32); + color: var(--theme-primary-active); } .document-filter, @@ -152,12 +150,11 @@ } .document-filter-menu, -.date-range-popover, -.page-size-dropdown { +.date-range-popover { position: absolute; z-index: 40; border: 1px solid #d7e0ea; - border-radius: 10px; + border-radius: 4px; background: #fff; box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12); overflow: hidden; @@ -172,14 +169,13 @@ overflow-y: auto; } -.document-filter-menu button, -.page-size-dropdown button { +.document-filter-menu button { display: block; width: 100%; min-height: 36px; padding: 0 12px; border: 0; - border-radius: 8px; + border-radius: 4px; background: transparent; color: #334155; font-size: 13px; @@ -190,8 +186,8 @@ .document-filter-menu button:hover, .document-filter-menu button.active { - background: rgba(16, 185, 129, 0.1); - color: #047857; + background: rgba(58, 124, 165, 0.1); + color: var(--theme-primary-active); } .date-range-trigger { @@ -233,7 +229,7 @@ display: grid; place-items: center; border: 0; - border-radius: 8px; + border-radius: 4px; background: transparent; color: #64748b; } @@ -260,7 +256,7 @@ height: 38px; padding: 0 9px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; color: #0f172a; font-size: 13px; } @@ -269,7 +265,7 @@ .apply-btn { height: 36px; padding: 0 14px; - border-radius: 8px; + border-radius: 4px; font-size: 13px; font-weight: 750; } @@ -282,7 +278,7 @@ .apply-btn { border: 0; - background: #10b981; + background: var(--theme-primary); color: #fff; } @@ -300,12 +296,12 @@ padding: 0 18px; border: 0; border-radius: 10px; - background: linear-gradient(135deg, #10b981, #059669); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; - box-shadow: 0 10px 24px rgba(5, 150, 105, 0.2); + box-shadow: 0 10px 24px var(--theme-primary-shadow); transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease; } @@ -318,13 +314,13 @@ .create-request-btn:hover { transform: translateY(-1px); - box-shadow: 0 14px 28px rgba(5, 150, 105, 0.24); + box-shadow: 0 14px 28px var(--theme-primary-shadow); filter: saturate(1.02); } .create-request-btn.secondary:hover { - border-color: rgba(16, 185, 129, .32); - color: #047857; + border-color: rgba(58, 124, 165, .32); + color: var(--theme-primary-active); box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08); } @@ -345,7 +341,7 @@ } .status-filter-trigger > .mdi:first-child { - color: #10b981; + color: var(--theme-primary); } .status-filter-menu { @@ -388,7 +384,7 @@ .table-state .mdi { font-size: 28px; - color: #10b981; + color: var(--theme-primary); } .table-state strong { @@ -469,7 +465,7 @@ tbody tr { } tbody tr:hover { - background: linear-gradient(90deg, rgba(16, 185, 129, .08), rgba(16, 185, 129, .03)); + background: linear-gradient(90deg, rgba(58, 124, 165, .08), rgba(58, 124, 165, .03)); } tbody tr:last-child td { @@ -477,7 +473,7 @@ tbody tr:last-child td { } .doc-id { - color: #059669; + color: var(--theme-primary-active); font-weight: 800; } @@ -526,8 +522,8 @@ tbody tr:last-child td { } .doc-kind-tag.reimbursement { - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); } .doc-kind-tag.application { @@ -546,8 +542,8 @@ tbody tr:last-child td { .type-tag.travel, .type-tag.hotel, .type-tag.transport { - background: #ecfdf5; - color: #047857; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); } .type-tag.entertainment, @@ -589,9 +585,9 @@ tbody tr:last-child td { .status-tag.success, .status-tag.archived { - border-color: #bbf7d0; - background: #ecfdf5; - color: #059669; + border-color: var(--success-line); + background: var(--success-soft); + color: var(--success-active); } .status-tag.warning, @@ -650,14 +646,14 @@ tbody tr:last-child td { .pager button:hover:not(.active) { background: #fff; - color: #059669; + color: var(--theme-primary-active); box-shadow: 0 1px 4px rgba(15, 23, 42, .08); } .pager button.active { - background: #059669; + background: var(--theme-primary-active); color: #fff; - box-shadow: 0 8px 16px rgba(5, 150, 105, .20); + box-shadow: 0 8px 16px var(--theme-primary-shadow); } .pager button:disabled { @@ -665,40 +661,11 @@ tbody tr:last-child td { cursor: not-allowed; } -.page-size-wrap { - position: relative; +.page-size-select { + width: 118px; justify-self: end; } -.page-size { - min-width: 112px; - border-radius: 10px; - background: #fff; - box-shadow: 0 1px 2px rgba(15, 23, 42, .04); -} - -.page-size-dropdown { - right: 0; - bottom: calc(100% + 6px); - display: grid; -} - -.page-size-dropdown button { - border-radius: 0; - text-align: center; - padding: 0 20px; -} - -.page-size-dropdown button:hover { - background: #f0fdf4; - color: #059669; -} - -.page-size-dropdown button.active { - background: #059669; - color: #fff; -} - @media (max-width: 1200px) { .document-toolbar, .list-foot { @@ -730,7 +697,7 @@ tbody tr:last-child td { .document-status-filter, .list-search, .filter-btn, - .page-size { + .page-size-select { width: 100%; } diff --git a/web/src/assets/styles/views/employee-management-view.css b/web/src/assets/styles/views/employee-management-view.css index c208021..0f429bc 100644 --- a/web/src/assets/styles/views/employee-management-view.css +++ b/web/src/assets/styles/views/employee-management-view.css @@ -55,7 +55,7 @@ } .status-tabs button.active { - color: #059669; + color: var(--theme-primary-active); } .status-tabs button.active::after { @@ -66,7 +66,7 @@ bottom: -1px; height: 3px; border-radius: 999px 999px 0 0; - background: #10b981; + background: var(--theme-primary); } .status-tabs button small { @@ -84,8 +84,8 @@ } .status-tabs button.active small { - background: rgba(16, 185, 129, 0.12); - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .list-toolbar { @@ -124,7 +124,7 @@ height: 38px; padding: 0 12px 0 36px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; background: #fff; color: #0f172a; font-size: 13px; @@ -136,8 +136,8 @@ .list-search input:focus { outline: none; - border-color: rgba(16, 185, 129, 0.6); - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12); + border-color: rgba(var(--theme-primary-rgb), 0.6); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .picker-trigger, @@ -147,7 +147,7 @@ .create-btn, .row-action { min-height: 38px; - border-radius: 8px; + border-radius: 4px; font-size: 14px; font-weight: 750; } @@ -164,7 +164,7 @@ gap: 9px; padding: 0 34px 0 12px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; background: #fff; color: #334155; white-space: nowrap; @@ -187,9 +187,9 @@ .picker-trigger:hover, .picker-filter.open .picker-trigger { - border-color: rgba(16, 185, 129, 0.34); - background: #f6fffb; - color: #0f9f78; + border-color: rgba(var(--theme-primary-rgb), 0.34); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .toolbar-actions { @@ -208,7 +208,7 @@ gap: 14px; padding: 16px; border: 1px solid #d7e0ea; - border-radius: 12px; + border-radius: 4px; background: #fff; box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16); } @@ -231,7 +231,7 @@ display: grid; place-items: center; border: 0; - border-radius: 8px; + border-radius: 4px; background: transparent; color: #64748b; } @@ -254,7 +254,7 @@ align-items: center; padding: 0 12px; border: 1px solid #d7e0ea; - border-radius: 8px; + border-radius: 4px; background: #fff; color: #334155; font-size: 13px; @@ -263,14 +263,14 @@ } .picker-option:hover { - border-color: rgba(16, 185, 129, 0.28); - background: #f0fdf4; - color: #047857; + border-color: rgba(var(--theme-primary-rgb), 0.28); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .picker-option.active { - border-color: #10b981; - background: #10b981; + border-color: var(--theme-primary); + background: var(--theme-primary); color: #fff; } @@ -279,9 +279,9 @@ align-items: center; gap: 7px; padding: 0 14px; - border: 1px solid rgba(5, 150, 105, 0.16); - background: #f8fffb; - color: #047857; + border: 1px solid rgba(var(--theme-primary-rgb), 0.18); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .template-btn, @@ -297,9 +297,9 @@ .template-btn:hover, .export-btn:hover { - border-color: rgba(16, 185, 129, 0.34); - background: #f6fffb; - color: #0f9f78; + border-color: rgba(var(--theme-primary-rgb), 0.34); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .create-btn { @@ -308,9 +308,9 @@ gap: 8px; padding: 0 14px; border: 0; - background: #059669; + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 18px rgba(5, 150, 105, 0.18); + box-shadow: 0 8px 18px var(--theme-primary-shadow); } .create-btn:disabled, @@ -445,86 +445,25 @@ .pager button:hover:not(.active) { background: #fff; - color: #059669; + color: var(--theme-primary-active); box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08); } .pager button.active { - background: #059669; + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 16px rgba(5, 150, 105, 0.2); + box-shadow: 0 8px 16px var(--theme-primary-shadow); } .page-nav { color: #64748b; } -.page-size { - min-height: 38px; - display: inline-flex; - align-items: center; - justify-content: center; - gap: 9px; - min-width: 112px; - padding: 0 14px; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - color: #334155; - font-size: 14px; - font-weight: 750; - white-space: nowrap; - box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); -} - -.page-size:hover { - border-color: rgba(16, 185, 129, 0.32); - color: #0f9f78; -} - -.page-size-wrap { - position: relative; +.page-size-select { + width: 112px; justify-self: end; } -.page-size-dropdown { - position: absolute; - bottom: calc(100% + 6px); - right: 0; - z-index: 40; - display: grid; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14); - overflow: hidden; -} - -.page-size-dropdown button { - height: 36px; - display: grid; - place-items: center; - border: 0; - border-radius: 0; - background: transparent; - color: #334155; - font-size: 13px; - font-weight: 750; - white-space: nowrap; - padding: 0 20px; - transition: background 120ms ease, color 120ms ease; -} - -.page-size-dropdown button:hover { - background: #f0fdf4; - color: #059669; -} - -.page-size-dropdown button.active { - background: #059669; - color: #fff; -} - .table-state { width: 100%; min-height: 220px; @@ -539,7 +478,7 @@ .table-state i { font-size: 26px; - color: #059669; + color: var(--theme-primary); } .table-state.error i { @@ -559,10 +498,10 @@ .state-action { min-height: 36px; padding: 0 14px; - border: 1px solid rgba(5, 150, 105, 0.22); + border: 1px solid rgba(var(--theme-primary-rgb), 0.22); border-radius: 8px; - background: #ecfdf5; - color: #047857; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 13px; font-weight: 760; } @@ -644,7 +583,7 @@ tbody tr:hover { } tbody tr.spotlight { - background: linear-gradient(90deg, rgba(16, 185, 129, 0.05), rgba(59, 130, 246, 0.03)); + background: linear-gradient(90deg, rgba(var(--theme-primary-rgb), 0.05), rgba(var(--theme-primary-rgb), 0.02)); } tbody tr:last-child td { @@ -665,7 +604,7 @@ tbody tr:last-child td { display: grid; place-items: center; border-radius: 11px; - background: linear-gradient(135deg, #10b981, #059669); + background: var(--theme-gradient-primary); color: #fff; font-size: 13px; font-weight: 900; @@ -709,8 +648,8 @@ tbody tr:last-child td { } .status-pill.success { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .status-pill.warning { @@ -733,8 +672,8 @@ tbody tr:last-child td { } .role-pill { - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .more-pill { @@ -744,9 +683,9 @@ tbody tr:last-child td { .row-action { padding: 0 12px; - border: 1px solid rgba(16, 185, 129, 0.32); + border: 1px solid rgba(var(--theme-primary-rgb), 0.32); background: #fff; - color: #059669; + color: var(--theme-primary-active); } .detail-scroll { @@ -774,7 +713,7 @@ tbody tr:last-child td { display: grid; place-items: center; border-radius: 18px; - background: linear-gradient(135deg, #10b981, #047857); + background: var(--theme-gradient-primary); color: #fff; font-size: 24px; font-weight: 900; @@ -950,8 +889,8 @@ tbody tr:last-child td { .manager-picker.open .manager-picker-trigger, .manager-picker-trigger:hover { - border-color: rgba(16, 185, 129, 0.34); - background: #f6fffb; + border-color: rgba(var(--theme-primary-rgb), 0.34); + background: var(--theme-primary-soft); } .manager-picker-label { @@ -987,8 +926,8 @@ tbody tr:last-child td { .manager-picker-panel input[type='search']:focus { outline: none; - border-color: rgba(16, 185, 129, 0.6); - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12); + border-color: rgba(var(--theme-primary-rgb), 0.6); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .manager-picker-options { @@ -1022,8 +961,8 @@ tbody tr:last-child td { .manager-picker-option:hover, .manager-picker-option.active { - border-color: rgba(16, 185, 129, 0.32); - background: linear-gradient(180deg, rgba(240, 253, 244, 0.85), #ffffff); + border-color: rgba(var(--theme-primary-rgb), 0.32); + background: linear-gradient(180deg, var(--theme-primary-soft), #ffffff); } .manager-picker-empty { @@ -1051,8 +990,8 @@ tbody tr:last-child td { } .role-card.active { - border-color: rgba(16, 185, 129, 0.32); - background: linear-gradient(180deg, rgba(240, 253, 244, 0.85), #ffffff); + border-color: rgba(var(--theme-primary-rgb), 0.32); + background: linear-gradient(180deg, var(--theme-primary-soft), #ffffff); } .role-card input { @@ -1174,7 +1113,7 @@ td.cell-updated { } .publish-summary strong { - color: #059669; + color: var(--theme-primary-active); font-size: 14px; font-weight: 850; } @@ -1221,10 +1160,10 @@ td.cell-updated { } .major-action { - border: 1px solid #059669; - background: #059669; + border: 1px solid var(--theme-primary); + background: var(--theme-primary); color: #fff; - box-shadow: 0 4px 12px rgba(5, 150, 105, 0.16); + box-shadow: 0 4px 12px var(--theme-primary-shadow); } .minor-action:disabled, @@ -1286,7 +1225,7 @@ td.cell-updated { width: min(280px, calc(100vw - 64px)); } - .page-size, + .page-size-select, .pager { justify-self: stretch; } diff --git a/web/src/assets/styles/views/log-detail-view.css b/web/src/assets/styles/views/log-detail-view.css index 3d7bef3..d8803b9 100644 --- a/web/src/assets/styles/views/log-detail-view.css +++ b/web/src/assets/styles/views/log-detail-view.css @@ -61,7 +61,7 @@ } .detail-state i { - color: #10b981; + color: var(--theme-primary); font-size: 28px; } @@ -212,8 +212,8 @@ } .trace-step.active { - border-color: rgba(16, 185, 129, 0.32); - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.08); + border-color: rgba(var(--theme-primary-rgb), 0.32); + box-shadow: 0 0 0 3px rgba(var(--theme-primary-rgb), 0.08); } .step-index { @@ -224,7 +224,7 @@ justify-content: center; border-radius: 999px; background: #ecfeff; - color: #0f766e; + color: var(--theme-primary-active); font-size: 12px; font-weight: 800; } @@ -287,8 +287,8 @@ } .status-pill.success { - background: rgba(22, 163, 74, 0.12); - color: #166534; + background: rgba(var(--success-rgb), 0.12); + color: var(--success-active); } .status-pill.warning, diff --git a/web/src/assets/styles/views/login-view.css b/web/src/assets/styles/views/login-view.css index 168fd93..ea33124 100644 --- a/web/src/assets/styles/views/login-view.css +++ b/web/src/assets/styles/views/login-view.css @@ -9,8 +9,8 @@ padding: 48px clamp(40px, 5vw, 86px); overflow: hidden; background: - linear-gradient(120deg, rgba(236,253,245,.72), transparent 34%), - linear-gradient(105deg, #f8fafc 0%, #f4fbf8 44%, #f8fafc 100%); + linear-gradient(120deg, rgba(var(--theme-primary-rgb, 58, 124, 165), .10), transparent 34%), + linear-gradient(105deg, #f8fafc 0%, #f5faff 44%, #f8fafc 100%); } .login-page::before { @@ -21,8 +21,8 @@ background: linear-gradient(90deg, rgba(15,23,42,.045) 1px, transparent 1px), linear-gradient(0deg, rgba(15,23,42,.04) 1px, transparent 1px), - radial-gradient(circle at 28% 72%, rgba(16,185,129,.12), transparent 28%), - radial-gradient(circle at 75% 22%, rgba(245,158,11,.08), transparent 30%); + radial-gradient(circle at 28% 72%, rgba(var(--theme-primary-rgb, 58, 124, 165), .10), transparent 28%), + radial-gradient(circle at 75% 22%, rgba(37,99,235,.06), transparent 30%); background-size: 72px 72px, 72px 72px, auto, auto; mask-image: linear-gradient(100deg, rgba(0,0,0,.7), rgba(0,0,0,.32) 48%, rgba(0,0,0,.16)); pointer-events: none; @@ -37,11 +37,11 @@ width: min(820px, 58vw); height: min(560px, 64vh); border: 1px solid rgba(148,163,184,.22); - border-radius: 18px; + border-radius: 8px; background: linear-gradient(90deg, transparent 0 28%, rgba(15,23,42,.055) 28% calc(28% + 1px), transparent calc(28% + 1px)), repeating-linear-gradient(0deg, transparent 0 35px, rgba(15,23,42,.05) 36px), - linear-gradient(135deg, rgba(255,255,255,.74), rgba(236,253,245,.32)); + linear-gradient(135deg, rgba(255,255,255,.74), rgba(var(--theme-primary-rgb, 58, 124, 165), .10)); box-shadow: 0 34px 80px rgba(15,23,42,.08); transform: rotate(-7deg); pointer-events: none; @@ -65,7 +65,7 @@ height: 34px; display: inline-grid; place-items: center; - color: #059669; + color: var(--theme-primary-active); } :deep(.logo-mark svg) { @@ -86,7 +86,7 @@ } .eyebrow-text { - color: #059669; + color: var(--theme-primary-active); font-size: 14px; font-weight: 900; letter-spacing: .08em; @@ -131,7 +131,7 @@ width: 230px; height: 62px; border-radius: 50%; - background: linear-gradient(90deg, rgba(16,185,129,.16), rgba(245,158,11,.12)); + background: linear-gradient(90deg, rgba(var(--theme-primary-rgb, 58, 124, 165), .14), rgba(37,99,235,.08)); filter: blur(4px); } @@ -139,10 +139,10 @@ position: absolute; z-index: 0; display: block; - border: 1px solid rgba(16,185,129,.18); + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), .22); border-left: 0; border-bottom: 0; - border-radius: 0 22px 0 0; + border-radius: 0 8px 0 0; } .flow-line::after { @@ -153,8 +153,8 @@ width: 8px; height: 8px; border-radius: 999px; - background: #10b981; - box-shadow: 0 0 0 5px rgba(16,185,129,.12); + background: var(--theme-primary); + box-shadow: 0 0 0 5px rgba(var(--theme-primary-rgb, 58, 124, 165), .12); } .flow-a { @@ -197,7 +197,7 @@ display: grid; gap: 7px; padding: 17px 18px; - border-radius: 14px; + border-radius: 8px; } .metric-card span { @@ -219,7 +219,7 @@ font-weight: 700; } -.up { color: #059669; } +.up { color: var(--success); } .danger { color: #ef4444; } .amount { left: 20px; top: 20px; } @@ -252,7 +252,7 @@ width: 220px; height: 214px; padding: 28px 28px; - border-radius: 16px; + border-radius: 8px; transform: rotate(2deg); } @@ -281,10 +281,10 @@ display: grid; place-items: center; border-radius: 999px; - background: linear-gradient(135deg, #6ee7b7, #059669); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; font-size: 27px; - box-shadow: 0 14px 28px rgba(5,150,105,.25); + box-shadow: 0 14px 28px rgba(var(--theme-primary-rgb, 58, 124, 165), .22); } .shield-art { @@ -337,7 +337,7 @@ gap: 12px; padding: 12px 14px; border: 1px solid rgba(215, 224, 234, .82); - border-radius: 13px; + border-radius: 6px; background: rgba(255,255,255,.76); box-shadow: 0 12px 30px rgba(65, 88, 110, .08); backdrop-filter: blur(16px); @@ -352,7 +352,7 @@ font-size: 21px; } -.feature-strip .green { background: #dff7ee; color: #059669; } +.feature-strip .primary { background: var(--theme-primary-soft); color: var(--theme-primary-active); } .feature-strip .red { background: #fee2e2; color: #ef4444; } .feature-strip .blue { background: #dbeafe; color: #3b82f6; } @@ -379,7 +379,7 @@ display: grid; padding: 58px 60px 44px; border: 1px solid rgba(215, 224, 234, .96); - border-radius: 20px; + border-radius: 8px; background: rgba(255,255,255,.86); box-shadow: 0 24px 64px rgba(65, 88, 110, .16); backdrop-filter: blur(18px); @@ -450,9 +450,9 @@ } .field input:focus { - border-color: #10b981; + border-color: var(--theme-primary); background: #fff; - box-shadow: 0 0 0 3px rgba(16,185,129,.13); + box-shadow: 0 0 0 3px var(--theme-focus-ring, rgba(58, 124, 165, .14)); outline: none; } @@ -471,7 +471,7 @@ .field-icon-btn:hover { background: #f1f5f9; - color: #059669; + color: var(--theme-primary-active); } .form-meta { @@ -503,7 +503,7 @@ .remember input { width: 16px; height: 16px; - accent-color: #059669; + accent-color: var(--theme-primary); } .link-btn { @@ -529,13 +529,13 @@ .submit-btn { margin-top: 4px; border: 0; - background: linear-gradient(135deg, #10b981, #059669); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; - box-shadow: 0 16px 30px rgba(5,150,105,.20); + box-shadow: 0 16px 30px rgba(var(--theme-primary-rgb, 58, 124, 165), .20); } .submit-btn:hover { - background: linear-gradient(135deg, #13c990, #047857); + background: linear-gradient(135deg, var(--theme-primary-hover), var(--theme-primary-active)); } .submit-btn:disabled, @@ -571,13 +571,13 @@ } .sso-btn { - border: 1px solid #10b981; + border: 1px solid var(--theme-primary); background: rgba(255,255,255,.78); - color: #059669; + color: var(--theme-primary-active); } .sso-btn:hover { - background: #ecfdf5; + background: var(--theme-primary-soft); } .security-note { @@ -689,7 +689,7 @@ .login-card { padding: 32px 22px 24px; - border-radius: 14px; + border-radius: 8px; } .card-head h2 { diff --git a/web/src/assets/styles/views/logs-view.css b/web/src/assets/styles/views/logs-view.css index 7a8c4e6..b238bac 100644 --- a/web/src/assets/styles/views/logs-view.css +++ b/web/src/assets/styles/views/logs-view.css @@ -70,7 +70,7 @@ .console-tabs button:hover, .console-tabs button.active { - color: #0f766e; + color: var(--theme-primary-active); } .console-tabs button.active::after { @@ -81,7 +81,7 @@ bottom: -11px; height: 2px; border-radius: 999px; - background: #10b981; + background: var(--theme-primary); } .console-toolbar { @@ -102,7 +102,6 @@ font-weight: 700; } -.filter-field select, .field-input { min-height: 38px; border: 1px solid #d8e1eb; @@ -110,12 +109,6 @@ background: #fff; } -.filter-field select { - padding: 0 12px; - color: #0f172a; - font-size: 13px; -} - .field-input { display: flex; align-items: center; @@ -148,7 +141,7 @@ } .toolbar-btn.primary { - background: linear-gradient(135deg, #0f9f8d, #10b981); + background: var(--theme-gradient-primary); border-color: transparent; color: #fff; } @@ -247,12 +240,12 @@ } .log-table tbody tr:hover { - background: rgba(16, 185, 129, 0.04); + background: rgba(var(--theme-primary-rgb), 0.04); } .log-table tbody tr.active { - background: rgba(16, 185, 129, 0.08); - box-shadow: inset 3px 0 0 #10b981; + background: rgba(var(--theme-primary-rgb), 0.08); + box-shadow: inset 3px 0 0 var(--theme-primary); } .log-table tbody td { @@ -363,14 +356,14 @@ .pager button:hover:not(.active):not(:disabled) { background: #fff; - color: #059669; + color: var(--theme-primary-active); box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08); } .pager button.active { - background: #059669; + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 16px rgba(5, 150, 105, 0.2); + box-shadow: 0 8px 16px var(--theme-primary-shadow); } .page-nav:disabled { @@ -378,63 +371,11 @@ opacity: 0.45; } -.page-size-wrap { - position: relative; +.page-size-select { + width: 112px; justify-self: end; } -.page-size { - min-width: 112px; - min-height: 38px; - display: inline-flex; - align-items: center; - justify-content: center; - gap: 9px; - padding: 0 14px; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - color: #334155; - font-size: 14px; - font-weight: 750; - box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); -} - -.page-size-dropdown { - position: absolute; - right: 0; - bottom: calc(100% + 6px); - z-index: 40; - display: grid; - overflow: hidden; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14); -} - -.page-size-dropdown button { - height: 36px; - padding: 0 20px; - border: 0; - border-radius: 0; - background: transparent; - color: #334155; - font-size: 13px; - font-weight: 750; - white-space: nowrap; -} - -.page-size-dropdown button:hover { - background: #f0fdf4; - color: #059669; -} - -.page-size-dropdown button.active { - background: #059669; - color: #fff; -} - .analytics-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 0.48fr); @@ -473,8 +414,8 @@ align-items: center; padding: 0 9px; border-radius: 999px; - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); font-size: 12px; font-weight: 700; } @@ -540,7 +481,7 @@ } .trend-line.total { - stroke: #10b981; + stroke: var(--theme-primary); } .trend-line.failed { @@ -644,9 +585,9 @@ } .status-pill.success { - background: rgba(22, 163, 74, 0.12); - border-color: rgba(22, 163, 74, 0.2); - color: #166534; + background: rgba(var(--success-rgb), 0.12); + border-color: rgba(var(--success-rgb), 0.2); + color: var(--success-active); } .status-pill.warning { @@ -761,8 +702,7 @@ } .pager, - .page-size, - .page-size-wrap { + .page-size-select { justify-self: stretch; } } diff --git a/web/src/assets/styles/views/overview-view.css b/web/src/assets/styles/views/overview-view.css index b2f7600..5a3713f 100644 --- a/web/src/assets/styles/views/overview-view.css +++ b/web/src/assets/styles/views/overview-view.css @@ -98,8 +98,8 @@ } .kpi-badge.down { - background: rgba(22, 163, 74, 0.08); - color: #16a34a; + background: rgba(var(--success-rgb), 0.08); + color: var(--success); } .kpi-badge .mdi { @@ -157,9 +157,13 @@ .card-head h3 { color: #1e293b; - font-size: 16px; + font-size: 15px; font-weight: 600; line-height: 1.35; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + flex: 1; } .card-head .mdi { @@ -169,14 +173,7 @@ } .card-select { - height: 30px; - min-width: 82px; - padding: 0 8px; - border: 1px solid #cbd5e1; - border-radius: 4px; - background: #fff; - color: #334155; - font-size: 14px; + width: 110px; } .panel-note { @@ -226,8 +223,8 @@ display: grid; place-items: center; border-radius: 999px; - background: #e2f6ef; - color: #047857; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); font-size: 13px; font-weight: 700; flex: 0 0 auto; @@ -272,8 +269,8 @@ } .status-tag.success { - background: rgba(16,185,129,.10); - color: #16a34a; + background: rgba(var(--success-rgb), .10); + color: var(--success); } .text-link { @@ -286,7 +283,7 @@ border: 0; border-top: 1px solid #f1f5f9; background: transparent; - color: #10b981; + color: var(--theme-primary); font-size: 14px; } diff --git a/web/src/assets/styles/views/policies-view.css b/web/src/assets/styles/views/policies-view.css index e7c9800..3c14120 100644 --- a/web/src/assets/styles/views/policies-view.css +++ b/web/src/assets/styles/views/policies-view.css @@ -130,11 +130,11 @@ text-align: left; } -.folder-tree button.active { - background: #dcfce7; - color: #059669; - font-weight: 850; -} +.folder-tree button.active { + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); + font-weight: 850; +} .folder-tree b { min-width: 24px; @@ -159,10 +159,10 @@ align-items: center; justify-content: center; gap: 8px; - border: 1px solid rgba(16, 185, 129, .28); + border: 1px solid rgba(var(--theme-primary-rgb), .28); border-radius: 8px; - background: #f0fdf4; - color: #059669; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); font-size: 13px; font-weight: 850; } @@ -178,9 +178,9 @@ } .knowledge-sync-btn:not(:disabled):hover { - border-color: rgba(16, 185, 129, 0.38); - background: #ecfdf5; - color: #047857; + border-color: rgba(var(--theme-primary-rgb), 0.38); + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); } .folder-sync-meta { @@ -298,10 +298,10 @@ th { background: #f8fbff; } -.doc-row.selected { - background: linear-gradient(90deg, rgba(16, 185, 129, 0.08), rgba(59, 130, 246, 0.04)); - box-shadow: inset 3px 0 0 #10b981; -} +.doc-row.selected { + background: linear-gradient(90deg, rgba(var(--theme-primary-rgb), 0.08), rgba(59, 130, 246, 0.04)); + box-shadow: inset 3px 0 0 var(--theme-primary); +} .file-name { display: inline-flex; @@ -315,8 +315,8 @@ th { .viewer-filetype.pdf { color: #ef4444; } .file-name .word, .viewer-filetype.word { color: #2563eb; } -.file-name .excel, -.viewer-filetype.excel { color: #10b981; } +.file-name .excel, +.viewer-filetype.excel { color: var(--success); } .doc-tag { display: inline-flex; @@ -342,8 +342,8 @@ th { } .state-tag.success { - background: #dcfce7; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .state-tag.muted { @@ -394,7 +394,7 @@ th { } .more-btn.ingest { - color: #0f766e; + color: var(--theme-primary-active); } .more-btn.llm-wiki-view { @@ -462,17 +462,17 @@ th { transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease; } -.pager button:hover:not(.active) { - background: #fff; - color: #059669; - box-shadow: 0 1px 4px rgba(15, 23, 42, .08); -} - -.pager button.active { - background: #059669; - color: #fff; - box-shadow: 0 8px 16px rgba(5, 150, 105, .20); -} +.pager button:hover:not(.active) { + background: #fff; + color: var(--theme-primary-active); + box-shadow: 0 1px 4px rgba(15, 23, 42, .08); +} + +.pager button.active { + background: var(--theme-primary); + color: #fff; + box-shadow: 0 8px 16px var(--theme-primary-shadow); +} .list-foot .page-summary { color: #64748b; @@ -484,73 +484,10 @@ th { color: #64748b; } -.page-size-wrap { - position: relative; - justify-self: end; -} - -.page-size { - justify-self: end; - min-width: 112px; - min-height: 38px; - display: inline-flex; - align-items: center; - justify-content: center; - gap: 9px; - padding: 0 14px; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - box-shadow: 0 1px 2px rgba(15, 23, 42, .04); - color: #334155; - font-size: 14px; - font-weight: 750; - white-space: nowrap; - transition: border-color 160ms ease, color 160ms ease; -} - -.page-size:hover { - border-color: rgba(16, 185, 129, .32); - color: #0f9f78; -} - -.page-size-dropdown { - position: absolute; - bottom: calc(100% + 6px); - right: 0; - z-index: 40; - display: grid; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - box-shadow: 0 12px 32px rgba(15, 23, 42, .14); - overflow: hidden; -} - -.page-size-dropdown button { - height: 36px; - display: grid; - place-items: center; - border: 0; - border-radius: 0; - background: transparent; - color: #334155; - font-size: 13px; - font-weight: 750; - white-space: nowrap; - padding: 0 20px; - transition: background 120ms ease, color 120ms ease; -} - -.page-size-dropdown button:hover { - background: #f0fdf4; - color: #059669; -} - -.page-size-dropdown button.active { - background: #059669; - color: #fff; -} +.page-size-select { + width: 112px; + justify-self: end; +} .preview-panel { height: 100%; @@ -671,7 +608,7 @@ th { .llm-wiki-overlay { background: - radial-gradient(circle at top, rgba(15, 118, 110, 0.12), transparent 30%), + radial-gradient(circle at top, rgba(var(--theme-primary-rgb), 0.12), transparent 30%), rgba(15, 23, 42, 0.58); } @@ -706,8 +643,8 @@ th { } .llm-wiki-count { - background: #ecfdf5; - color: #047857; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); } .llm-wiki-stat-grid { @@ -838,8 +775,8 @@ th { .llm-wiki-editor:focus { outline: none; - border-color: rgba(16, 185, 129, 0.42); - box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.12); + border-color: rgba(var(--theme-primary-rgb), 0.42); + box-shadow: 0 0 0 4px var(--theme-focus-ring); } .llm-wiki-candidate-list { @@ -1253,8 +1190,7 @@ th { } .pager, - .page-size-wrap, - .page-size { + .page-size-select { justify-self: stretch; } diff --git a/web/src/assets/styles/views/requests-view.css b/web/src/assets/styles/views/requests-view.css index fbfb3e7..81e5d39 100644 --- a/web/src/assets/styles/views/requests-view.css +++ b/web/src/assets/styles/views/requests-view.css @@ -47,8 +47,8 @@ } .list-search input:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.14); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); outline: none; } @@ -70,7 +70,7 @@ } .status-tabs button.active { - color: #059669; + color: var(--theme-primary-active); } .status-tabs button.active::after { @@ -81,7 +81,7 @@ bottom: -1px; height: 3px; border-radius: 999px 999px 0 0; - background: #10b981; + background: var(--theme-primary); } .list-toolbar { @@ -108,23 +108,22 @@ padding: 0 18px; border: 0; border-radius: 10px; - background: linear-gradient(135deg, #10b981, #059669); + background: var(--theme-gradient-primary); color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; - box-shadow: 0 10px 24px rgba(5, 150, 105, 0.2); + box-shadow: 0 10px 24px var(--theme-primary-shadow); transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease; } .create-request-btn:hover { transform: translateY(-1px); - box-shadow: 0 14px 28px rgba(5, 150, 105, 0.24); + box-shadow: 0 14px 28px rgba(var(--theme-primary-rgb), 0.24); filter: saturate(1.02); } -.filter-btn, -.page-size { +.filter-btn { min-height: 38px; display: inline-flex; align-items: center; @@ -232,8 +231,8 @@ } .date-range-fields input:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, .12); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); outline: none; } @@ -254,7 +253,7 @@ .apply-btn { border: 0; - background: #10b981; + background: var(--theme-primary); color: #fff; } @@ -263,10 +262,9 @@ background: #cbd5e1; } -.filter-btn:hover, -.page-size:hover { - border-color: rgba(16, 185, 129, .32); - color: #0f9f78; +.filter-btn:hover { + border-color: rgba(var(--theme-primary-rgb), .32); + color: var(--theme-primary-active); } .hint { @@ -289,7 +287,7 @@ overflow-y: auto; border: 1px solid #edf2f7; border-radius: 10px; - background: linear-gradient(180deg, #fcfefd 0%, #f4f8f6 100%); + background: linear-gradient(180deg, #fcfefd 0%, var(--theme-primary-light-9) 100%); display: flex; flex-direction: column; align-items: stretch; @@ -316,13 +314,13 @@ padding: 28px 20px; text-align: center; color: #64748b; - background: linear-gradient(180deg, #fcfffd 0%, #f5f9f7 100%); + background: linear-gradient(180deg, #fcfffd 0%, var(--theme-primary-light-9) 100%); align-self: center; } .table-state .mdi { font-size: 28px; - color: #10b981; + color: var(--theme-primary); } .table-state strong { @@ -399,7 +397,7 @@ tbody tr { } tbody tr:hover { - background: linear-gradient(90deg, rgba(16, 185, 129, .08), rgba(16, 185, 129, .03)); + background: linear-gradient(90deg, rgba(var(--theme-primary-rgb), .08), rgba(var(--theme-primary-rgb), .03)); } tbody tr:last-child td { @@ -407,7 +405,7 @@ tbody tr:last-child td { } .doc-id { - color: #059669; + color: var(--theme-primary-active); font-weight: 800; } @@ -424,8 +422,8 @@ tbody tr:last-child td { } .type-tag.travel { - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); } .type-tag.entertainment { @@ -435,8 +433,8 @@ tbody tr:last-child td { .type-tag.hotel, .type-tag.transport { - background: #ecfdf5; - color: #047857; + background: var(--theme-primary-light-9); + color: var(--theme-primary-active); } .type-tag.meal { @@ -479,9 +477,9 @@ tbody tr:last-child td { } .status-tag.success { - border-color: #bbf7d0; - background: #ecfdf5; - color: #059669; + border-color: var(--success-line); + background: var(--success-soft); + color: var(--success-hover); } .status-tag.warning { @@ -546,69 +544,23 @@ tbody tr:last-child td { .pager button:hover:not(.active) { background: #fff; - color: #059669; + color: var(--theme-primary-active); box-shadow: 0 1px 4px rgba(15, 23, 42, .08); } .pager button.active { - background: #059669; + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 16px rgba(5, 150, 105, .20); + box-shadow: 0 8px 16px var(--theme-primary-shadow); } .page-nav { color: #64748b; } -.page-size { +.page-size-select { + width: 112px; justify-self: end; - min-width: 112px; - border-radius: 10px; - background: #fff; - box-shadow: 0 1px 2px rgba(15, 23, 42, .04); -} - -.page-size-wrap { - position: relative; - justify-self: end; -} - -.page-size-dropdown { - position: absolute; - bottom: calc(100% + 6px); - right: 0; - z-index: 40; - display: grid; - border: 1px solid #d7e0ea; - border-radius: 10px; - background: #fff; - box-shadow: 0 12px 32px rgba(15, 23, 42, .14); - overflow: hidden; -} - -.page-size-dropdown button { - height: 36px; - display: grid; - place-items: center; - border: 0; - border-radius: 0; - background: transparent; - color: #334155; - font-size: 13px; - font-weight: 750; - white-space: nowrap; - padding: 0 20px; - transition: background 120ms ease, color 120ms ease; -} - -.page-size-dropdown button:hover { - background: #f0fdf4; - color: #059669; -} - -.page-size-dropdown button.active { - background: #059669; - color: #fff; } @media (max-width: 1200px) { @@ -629,7 +581,7 @@ tbody tr:last-child td { } .filter-btn, - .page-size { + .page-size-select { width: 100%; } @@ -643,7 +595,7 @@ tbody tr:last-child td { } .pager, - .page-size { + .page-size-select { justify-self: stretch; } } diff --git a/web/src/assets/styles/views/settings-view-form.css b/web/src/assets/styles/views/settings-view-form.css index 7b25c26..6cdddf9 100644 --- a/web/src/assets/styles/views/settings-view-form.css +++ b/web/src/assets/styles/views/settings-view-form.css @@ -1,9 +1,9 @@ -/* 设置页表单/卡片/开关 — 供 SettingsView 与子面板各自 scoped 引入 */ +/* 设置页表单、卡片与开关样式,供 SettingsView 及子面板 scoped 引入 */ .settings-card { padding: 0; border: 1px solid #e2e8f0; - border-radius: 12px; + border-radius: 6px; background: #ffffff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02), 0 4px 16px rgba(0, 0, 0, 0.03); overflow: hidden; @@ -99,13 +99,12 @@ font-style: normal; } -.field input, -.field select { +.field input { width: 100%; min-height: 44px; padding: 0 14px; border: 1px solid #cbd5e1; - border-radius: 12px; + border-radius: 4px; background: #ffffff; color: #0f172a; font-size: 13px; @@ -117,11 +116,10 @@ color: #94a3b8; } -.field input:focus, -.field select:focus { +.field input:focus { outline: none; - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.08); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); background: #ffffff; } @@ -138,7 +136,7 @@ gap: 16px; padding: 16px 20px; border: 1px solid #e2e8f0; - border-radius: 16px; + border-radius: 6px; background: #ffffff; text-align: left; transition: all 0.25s ease; @@ -147,9 +145,9 @@ } .switch-row:hover { - border-color: rgba(16, 185, 129, 0.25); - background: linear-gradient(180deg, #ffffff 0%, rgba(16, 185, 129, 0.01) 100%); - box-shadow: 0 4px 12px rgba(16, 185, 129, 0.03); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.25); + background: linear-gradient(180deg, #ffffff 0%, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.02) 100%); + box-shadow: 0 4px 12px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.04); transform: translateY(-1px); } @@ -198,7 +196,7 @@ } .switch-btn.active { - background-color: #10b981; + background-color: var(--theme-primary); } .switch-btn.active i { diff --git a/web/src/assets/styles/views/settings-view-hermes.css b/web/src/assets/styles/views/settings-view-hermes.css index adafa55..2753abb 100644 --- a/web/src/assets/styles/views/settings-view-hermes.css +++ b/web/src/assets/styles/views/settings-view-hermes.css @@ -8,9 +8,9 @@ /* Master Control Hero Card Active Hover & Color */ .hermes-hero-card.active { - border-color: rgba(16, 185, 129, 0.25); - background: linear-gradient(180deg, #ffffff 0%, rgba(16, 185, 129, 0.02) 100%); - box-shadow: 0 1px 3px rgba(16, 185, 129, 0.01), 0 8px 24px rgba(16, 185, 129, 0.05); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.25); + background: linear-gradient(180deg, #ffffff 0%, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.02) 100%); + box-shadow: 0 1px 3px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.01), 0 8px 24px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.05); } .hermes-hero-card .model-icon-box { @@ -18,9 +18,9 @@ } .hermes-hero-card .model-icon-box.active { - background: rgba(16, 185, 129, 0.1); - color: #10b981; - border-color: rgba(16, 185, 129, 0.15); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); } /* Pulse Dot */ @@ -37,19 +37,19 @@ } .status-pulse-dot.active { - background-color: #10b981; + background-color: var(--theme-primary); animation: pulse-ring 1.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) infinite; } @keyframes pulse-ring { 0% { - box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); + box-shadow: 0 0 0 0 rgba(var(--theme-primary-rgb, 58, 124, 165), 0.36); } 70% { - box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); + box-shadow: 0 0 0 6px rgba(var(--theme-primary-rgb, 58, 124, 165), 0); } 100% { - box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); + box-shadow: 0 0 0 0 rgba(var(--theme-primary-rgb, 58, 124, 165), 0); } } @@ -65,8 +65,8 @@ } .status-badge.active { - background: rgba(16, 185, 129, 0.1); - color: #10b981; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } /* Task Section */ @@ -93,7 +93,7 @@ padding: 20px; background: #ffffff; border: 1px solid #e2e8f0; - border-radius: 16px; + border-radius: 6px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.01), 0 2px 8px rgba(0, 0, 0, 0.02); transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); } @@ -117,7 +117,7 @@ justify-content: center; width: 44px; height: 44px; - border-radius: 12px; + border-radius: 6px; font-size: 20px; transition: all 0.3s ease; } @@ -185,13 +185,13 @@ .frequency-badge.active { background: #f0f9ff; - color: #0284c7; + color: #2f6d95; } .time-picker-wrapper input[type="time"] { padding: 5px 8px; border: 1px solid #e2e8f0; - border-radius: 8px; + border-radius: 4px; background: #f8fafc; color: #334155; font-size: 12px; @@ -207,9 +207,9 @@ } .time-picker-wrapper input[type="time"]:focus { - border-color: #10b981; + border-color: var(--theme-primary); background: #ffffff; - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.08); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .time-picker-placeholder { diff --git a/web/src/assets/styles/views/settings-view.css b/web/src/assets/styles/views/settings-view.css index 7194041..218a1d8 100644 --- a/web/src/assets/styles/views/settings-view.css +++ b/web/src/assets/styles/views/settings-view.css @@ -10,7 +10,7 @@ display: grid; grid-template-columns: 240px minmax(0, 1fr); overflow: hidden; - border-radius: 24px; + border-radius: 4px; background: #ffffff; border: 1px solid #e2e8f0; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02), 0 4px 16px rgba(0, 0, 0, 0.03); @@ -35,7 +35,7 @@ } .nav-kicker { - color: #10b981; + color: var(--primary); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; @@ -70,7 +70,7 @@ display: block; padding: 10px 14px; border: 1px solid transparent; - border-radius: 12px; + border-radius: 4px; background: transparent; color: #334155; text-align: left; @@ -84,9 +84,9 @@ } .settings-nav-item.active { - background: #ecfdf5; - color: #059669; - border-color: rgba(16, 185, 129, 0.12); + background: var(--primary-soft); + color: var(--primary-active); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22); } .nav-item-copy { @@ -109,7 +109,7 @@ } .settings-nav-item.active .nav-item-copy small { - color: #059669; + color: var(--primary-active); opacity: 0.8; } @@ -144,9 +144,9 @@ align-items: center; min-height: 24px; padding: 0 10px; - border-radius: 99px; - background: #ecfdf5; - color: #059669; + border-radius: 4px; + background: var(--primary-soft); + color: var(--primary-active); font-size: 12px; font-weight: 700; } @@ -181,20 +181,20 @@ gap: 8px; padding: 0 20px; border: 0; - border-radius: 12px; - background: #10b981; + border-radius: 4px; + background: var(--primary); color: #ffffff; font-size: 13px; font-weight: 700; - box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15); + box-shadow: 0 4px 12px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.16); transition: all 0.2s ease; cursor: pointer; } .save-button:hover { transform: translateY(-1px); - box-shadow: 0 6px 20px rgba(16, 185, 129, 0.25); - background: #059669; + box-shadow: 0 6px 20px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22); + background: var(--primary-hover); } .settings-content { @@ -219,10 +219,10 @@ justify-content: center; gap: 6px; padding: 0 12px; - border: 1px solid rgba(16, 185, 129, 0.2); - border-radius: 10px; - background: #ecfdf5; - color: #059669; + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22); + border-radius: 4px; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 12.5px; font-weight: 700; transition: all 0.2s ease; @@ -231,10 +231,10 @@ .test-button:hover:not(:disabled) { transform: translateY(-1px); - border-color: #10b981; - background: #10b981; + border-color: var(--theme-primary); + background: var(--theme-primary); color: #ffffff; - box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15); + box-shadow: 0 4px 12px rgba(58, 124, 165, 0.15); } .test-button:disabled { @@ -259,7 +259,7 @@ gap: 10px; padding: 0 40px 0 14px; border: 1px solid #cbd5e1; - border-radius: 12px; + border-radius: 4px; background: #ffffff; color: #0f172a; font-size: 13px; @@ -287,18 +287,18 @@ .session-picker-trigger:hover, .session-picker-filter.open .session-picker-trigger { - border-color: #10b981; + border-color: var(--theme-primary); background: #ffffff; - color: #059669; + color: var(--theme-primary-active); } .session-picker-filter.open .session-picker-trigger { - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.08); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .session-picker-filter.open .session-picker-trigger .mdi, .session-picker-trigger:hover .mdi { - color: #059669; + color: var(--theme-primary-active); } .session-picker-popover { @@ -311,7 +311,7 @@ gap: 12px; padding: 16px; border: 1px solid #cbd5e1; - border-radius: 12px; + border-radius: 4px; background: #ffffff; box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.05); } @@ -335,7 +335,7 @@ display: grid; place-items: center; border: 0; - border-radius: 8px; + border-radius: 4px; background: transparent; color: #64748b; cursor: pointer; @@ -360,7 +360,7 @@ align-items: center; padding: 0 12px; border: 1px solid #cbd5e1; - border-radius: 8px; + border-radius: 4px; background: #ffffff; color: #334155; font-size: 13px; @@ -372,9 +372,123 @@ .session-picker-option:hover, .session-picker-option.active { - border-color: #10b981; - background: #ecfdf5; - color: #059669; + border-color: var(--theme-primary); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); +} + +.skin-option-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 12px; +} + +.skin-option { + min-height: 104px; + display: grid; + grid-template-columns: auto minmax(0, 1fr) auto; + align-items: center; + gap: 14px; + padding: 16px; + border: 1px solid #d8dee8; + border-radius: 4px; + background: #ffffff; + color: #334155; + text-align: left; + transition: + border-color 160ms var(--ease), + background 160ms var(--ease), + box-shadow 160ms var(--ease); +} + +.skin-option:hover, +.skin-option.active { + border-color: var(--primary); + background: var(--theme-primary-light-9); + box-shadow: 0 0 0 3px var(--theme-focus-ring); +} + +.skin-swatch { + width: 64px; + height: 38px; + display: grid; + grid-template-columns: 1.3fr 1fr 1fr 1fr; + grid-template-rows: 1fr; + border: 1px solid #d8dee8; + border-radius: 4px; + overflow: hidden; + background: #ffffff; +} + +.skin-swatch i + i { + border-left: 1px solid rgba(255, 255, 255, 0.72); +} + +.skin-copy { + display: grid; + gap: 4px; +} + +.skin-copy strong { + color: #111827; + font-size: 14px; + font-weight: 700; +} + +.skin-copy small { + color: #64748b; + font-size: 12px; + line-height: 1.45; +} + +.skin-current { + min-height: 24px; + display: inline-flex; + align-items: center; + padding: 0 8px; + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.26); + border-radius: 4px; + background: var(--primary-soft); + color: var(--primary-active); + font-size: 12px; + font-weight: 700; +} + +.skin-preview-panel { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 16px; + border: 1px solid #d8dee8; + border-radius: 4px; + background: linear-gradient(180deg, #ffffff 0%, var(--theme-primary-light-9) 100%); +} + +.skin-preview-panel div { + display: grid; + gap: 4px; +} + +.skin-preview-panel strong { + color: #111827; + font-size: 14px; +} + +.skin-preview-panel span { + color: #64748b; + font-size: 12px; +} + +.skin-preview-action { + min-height: 34px; + padding: 0 14px; + border: 1px solid var(--primary); + border-radius: 4px; + background: var(--theme-gradient-primary); + color: #fff; + font-size: 13px; + font-weight: 700; } .secret-bound-state { @@ -382,7 +496,7 @@ display: inline-flex; align-items: center; gap: 6px; - color: #059669; + color: var(--theme-primary-active); font-size: 12px; font-weight: 600; line-height: 1.45; @@ -398,7 +512,7 @@ gap: 8px; margin-top: 16px; padding: 12px 14px; - border-radius: 12px; + border-radius: 6px; font-size: 12px; font-weight: 600; line-height: 1.6; @@ -410,13 +524,13 @@ } .test-feedback.is-success { - background: #ecfdf5; - color: #059669; + background: var(--success-soft); + color: var(--success-hover); } .test-feedback.is-error { - background: #fef2f2; - color: #b91c1c; + background: var(--danger-soft); + color: var(--danger-active); } .test-feedback.is-testing { @@ -434,13 +548,13 @@ display: grid; place-items: center; border: 1px dashed #cbd5e1; - border-radius: 20px; + border-radius: 8px; background: linear-gradient(45deg, #f8fafc 25%, transparent 25%, transparent 75%, #f8fafc 75%, #f8fafc), linear-gradient(45deg, #f8fafc 25%, transparent 25%, transparent 75%, #f8fafc 75%, #f8fafc); background-position: 0 0, 9px 9px; background-size: 18px 18px; - color: #10b981; + color: var(--theme-primary); font-size: 32px; } @@ -450,9 +564,9 @@ align-items: center; gap: 18px; padding: 24px; - border: 1px solid rgba(16, 185, 129, 0.15); - border-radius: 20px; - background: linear-gradient(135deg, rgba(16, 185, 129, 0.04) 0%, rgba(59, 130, 246, 0.02) 100%); + border: 1px solid rgba(58, 124, 165, 0.15); + border-radius: 8px; + background: linear-gradient(135deg, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.06) 0%, rgba(var(--theme-secondary-rgb, 37, 99, 235), 0.03) 100%); } .preview-icon { @@ -460,11 +574,11 @@ height: 64px; display: grid; place-items: center; - border-radius: 16px; - background: linear-gradient(135deg, #10b981 0%, #059669 100%); + border-radius: 8px; + background: var(--theme-gradient-primary); color: #ffffff; font-size: 28px; - box-shadow: 0 8px 20px rgba(16, 185, 129, 0.15); + box-shadow: 0 8px 20px var(--theme-primary-shadow); } .preview-copy strong { @@ -495,9 +609,9 @@ align-items: center; justify-content: center; padding: 0 10px; - border-radius: 999px; - background: #ecfdf5; - color: #059669; + border-radius: 4px; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 11px; font-weight: 700; white-space: nowrap; @@ -515,7 +629,7 @@ min-height: 34px; padding: 0 16px; border: 1px solid #cbd5e1; - border-radius: 999px; + border-radius: 4px; background: #ffffff; color: #64748b; font-size: 12px; @@ -525,16 +639,16 @@ } .level-chip:hover { - border-color: #10b981; - color: #10b981; - background: #ecfdf5; + border-color: var(--theme-primary); + color: var(--theme-primary); + background: var(--theme-primary-soft); } .level-chip.active { - border-color: #10b981; - background: #10b981; + border-color: var(--theme-primary); + background: var(--theme-primary); color: #ffffff; - box-shadow: 0 4px 12px rgba(16, 185, 129, 0.2); + box-shadow: 0 4px 12px var(--theme-primary-shadow); } .range-shell { @@ -544,13 +658,13 @@ gap: 14px; padding: 0 14px; border: 1px solid #cbd5e1; - border-radius: 12px; + border-radius: 4px; background: #ffffff; } .range-shell input[type='range'] { flex: 1 1 auto; - accent-color: #10b981; + accent-color: var(--theme-primary); cursor: pointer; } @@ -566,7 +680,7 @@ margin-bottom: 20px; } -/* 大语言模型配置卡片特定图标与标题排版 */ +/* 大语言模型配置卡片图标与标题排版 */ .card-title-with-icon { display: flex; align-items: center; @@ -578,7 +692,7 @@ height: 40px; display: grid; place-items: center; - border-radius: 10px; + border-radius: 6px; font-size: 18px; flex: 0 0 auto; background: #f8fafc; @@ -681,7 +795,7 @@ .settings-card { padding: 20px 16px; - border-radius: 16px; + border-radius: 6px; } .settings-nav { diff --git a/web/src/assets/styles/views/setup-view.css b/web/src/assets/styles/views/setup-view.css index 6c83698..717eb66 100644 --- a/web/src/assets/styles/views/setup-view.css +++ b/web/src/assets/styles/views/setup-view.css @@ -3,8 +3,8 @@ display: grid; grid-template-columns: minmax(320px, 392px) minmax(0, 1fr); background: - radial-gradient(circle at top left, rgba(16, 185, 129, 0.24), transparent 24rem), - radial-gradient(circle at 36% 14%, rgba(16, 185, 129, 0.16), transparent 18rem), + radial-gradient(circle at top left, rgba(var(--theme-primary-rgb), 0.24), transparent 24rem), + radial-gradient(circle at 36% 14%, rgba(var(--theme-primary-rgb), 0.16), transparent 18rem), linear-gradient(135deg, #04110d 0%, #0b1f18 26%, #10281f 26%, #eef5f1 26%, #f6fbf8 100%); } @@ -38,10 +38,10 @@ inset: 0; border-radius: 18px; background: - linear-gradient(145deg, rgba(209, 250, 229, 0.96), rgba(52, 211, 153, 0.88)), - linear-gradient(145deg, rgba(16, 185, 129, 0.4), rgba(5, 150, 105, 0.6)); + linear-gradient(145deg, color-mix(in srgb, var(--theme-primary-soft) 96%, white), rgba(var(--theme-primary-rgb), 0.58)), + linear-gradient(145deg, rgba(var(--theme-primary-rgb), 0.4), rgba(var(--theme-primary-rgb), 0.6)); box-shadow: - 0 18px 36px rgba(16, 185, 129, 0.2), + 0 18px 36px rgba(var(--theme-primary-rgb), 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.46); transform: rotate(-8deg); } @@ -51,7 +51,7 @@ position: absolute; inset: 7px; border-radius: 14px; - border: 1px solid rgba(4, 120, 87, 0.22); + border: 1px solid rgba(var(--theme-primary-rgb), 0.22); } .setup-brand-core { @@ -64,7 +64,7 @@ align-items: center; justify-content: center; background: rgba(3, 32, 24, 0.92); - color: #d1fae5; + color: var(--theme-primary-soft-strong); font-size: 15px; font-weight: 800; letter-spacing: 0.14em; @@ -77,22 +77,22 @@ font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; - color: rgba(167, 243, 208, 0.86); + color: color-mix(in srgb, var(--theme-primary-soft) 86%, transparent); } .setup-kicker-light { - color: rgba(209, 250, 229, 0.82); + color: color-mix(in srgb, var(--theme-primary-soft) 82%, transparent); } .setup-context h1 { - color: #f4fff8; + color: #f8fafc; font-size: clamp(1.9rem, 2.4vw, 2.5rem); line-height: 1.08; text-shadow: 0 12px 36px rgba(2, 12, 8, 0.34); } .setup-lead { - color: rgba(220, 252, 231, 0.84); + color: rgba(226, 232, 240, 0.84); font-size: 14px; line-height: 1.8; } @@ -105,13 +105,13 @@ .setup-nav-item { width: 100%; padding: 14px 14px 14px 12px; - border: 1px solid rgba(110, 231, 183, 0.12); + border: 1px solid rgba(var(--theme-primary-rgb), 0.14); border-radius: 8px; display: grid; grid-template-columns: 44px minmax(0, 1fr) 18px; align-items: center; gap: 12px; - background: linear-gradient(160deg, rgba(10, 23, 18, 0.82), rgba(15, 39, 31, 0.72)); + background: linear-gradient(160deg, rgba(10, 18, 27, 0.82), rgba(16, 31, 43, 0.72)); color: inherit; text-align: left; transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease; @@ -119,16 +119,16 @@ .setup-nav-item:hover { transform: translateY(-1px); - border-color: rgba(110, 231, 183, 0.22); + border-color: rgba(var(--theme-primary-rgb), 0.28); } .setup-nav-item.is-active { - border-color: rgba(16, 185, 129, 0.4); + border-color: rgba(var(--theme-primary-rgb), 0.4); box-shadow: 0 14px 28px rgba(3, 10, 7, 0.22); } .setup-nav-item.is-complete { - background: linear-gradient(160deg, rgba(8, 31, 23, 0.96), rgba(12, 58, 44, 0.86)); + background: linear-gradient(160deg, rgba(10, 25, 36, 0.96), rgba(20, 50, 68, 0.86)); } .setup-nav-index { @@ -138,8 +138,8 @@ display: inline-flex; align-items: center; justify-content: center; - background: rgba(16, 185, 129, 0.16); - color: #d1fae5; + background: rgba(var(--theme-primary-rgb), 0.16); + color: var(--theme-primary-soft-strong); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; @@ -151,12 +151,12 @@ } .setup-nav-copy strong { - color: #f0fdf4; + color: var(--theme-primary-soft); font-size: 14px; } .setup-nav-copy small { - color: rgba(209, 250, 229, 0.72); + color: color-mix(in srgb, var(--theme-primary-soft) 72%, transparent); font-size: 12px; line-height: 1.55; } @@ -175,13 +175,13 @@ } .setup-progress strong { - color: #f0fdf4; + color: var(--theme-primary-soft); font-size: 15px; } .setup-progress p { margin-top: 8px; - color: rgba(209, 250, 229, 0.72); + color: color-mix(in srgb, var(--theme-primary-soft) 72%, transparent); font-size: 13px; line-height: 1.65; } @@ -195,7 +195,7 @@ } .setup-complete p { - color: rgba(209, 250, 229, 0.76); + color: color-mix(in srgb, var(--theme-primary-soft) 76%, transparent); font-size: 13px; line-height: 1.6; } @@ -208,7 +208,7 @@ display: flex; align-items: center; gap: 8px; - color: rgba(209, 250, 229, 0.86); + color: color-mix(in srgb, var(--theme-primary-soft) 86%, transparent); font-size: 13px; line-height: 1.5; } @@ -219,7 +219,7 @@ align-content: start; gap: 24px; background: - radial-gradient(circle at top left, rgba(16, 185, 129, 0.08), transparent 16rem), + radial-gradient(circle at top left, rgba(var(--theme-primary-rgb), 0.08), transparent 16rem), linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0)); } @@ -229,7 +229,7 @@ align-items: flex-start; gap: 16px; padding: 20px 22px; - border: 1px solid rgba(16, 185, 129, 0.14); + border: 1px solid rgba(var(--theme-primary-rgb), 0.14); border-radius: 8px; background: linear-gradient(135deg, #063b2e, #0f5f49); box-shadow: 0 16px 34px rgba(6, 59, 46, 0.16); @@ -253,20 +253,20 @@ min-height: 32px; padding: 0 12px; border-radius: 999px; - background: rgba(240, 253, 244, 0.14); - color: #d1fae5; + background: rgba(255, 255, 255, 0.12); + color: var(--theme-primary-soft-strong); font-size: 12px; font-weight: 700; - border: 1px solid rgba(209, 250, 229, 0.18); + border: 1px solid color-mix(in srgb, var(--theme-primary-soft) 18%, transparent); } .setup-chip.is-success { - background: rgba(16, 185, 129, 0.22); + background: rgba(var(--theme-primary-rgb), 0.22); } .setup-form { padding: 30px 32px; - border: 1px solid rgba(16, 185, 129, 0.18); + border: 1px solid rgba(var(--theme-primary-rgb), 0.18); border-radius: 8px; background: linear-gradient(180deg, rgba(244, 255, 248, 0.98), rgba(255, 255, 255, 0.94)); box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12), 0 1px 0 rgba(255, 255, 255, 0.6) inset; @@ -329,7 +329,7 @@ .optional-block { padding: 18px 18px 0; - border: 1px dashed rgba(16, 185, 129, 0.22); + border: 1px dashed rgba(var(--theme-primary-rgb), 0.22); border-radius: 8px; background: rgba(240, 253, 244, 0.52); } @@ -353,8 +353,8 @@ border-radius: 999px; display: inline-flex; align-items: center; - background: rgba(16, 185, 129, 0.12); - color: #047857; + background: rgba(var(--theme-primary-rgb), 0.12); + color: var(--theme-primary-active); font-size: 12px; font-weight: 700; } @@ -375,8 +375,8 @@ } .field input:focus { - border-color: #10b981; - box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.12); + border-color: var(--theme-primary); + box-shadow: 0 0 0 4px var(--theme-focus-ring); } .field-span-2 { @@ -406,7 +406,7 @@ inset: 0 auto auto 0; width: 100%; height: 3px; - background: linear-gradient(90deg, rgba(209, 250, 229, 0.92), rgba(16, 185, 129, 0.48)); + background: linear-gradient(90deg, color-mix(in srgb, var(--theme-primary-soft) 92%, transparent), rgba(var(--theme-primary-rgb), 0.48)); } .setup-runtime article:nth-child(1) { @@ -452,11 +452,11 @@ white-space: pre-line; } -.setup-status.is-success { - border: 1px solid rgba(16, 185, 129, 0.18); - background: #ecfdf5; - color: #047857; -} +.setup-status.is-success { + border: 1px solid rgba(var(--theme-primary-rgb), 0.18); + background: var(--success-soft); + color: var(--success-active); +} .setup-status.is-danger { border: 1px solid rgba(239, 68, 68, 0.18); @@ -502,19 +502,19 @@ } .primary-btn { - background: linear-gradient(135deg, #10b981, #0f766e); + background: var(--theme-gradient-primary); color: #fff; - box-shadow: 0 14px 28px rgba(16, 185, 129, 0.24); + box-shadow: 0 14px 28px rgba(var(--theme-primary-rgb), 0.24); } .secondary-btn { background: rgba(240, 253, 244, 0.94); color: #1f4f41; - border-color: rgba(16, 185, 129, 0.18); + border-color: rgba(var(--theme-primary-rgb), 0.18); } .secondary-btn-strong { - background: linear-gradient(135deg, rgba(16, 185, 129, 0.14), rgba(5, 150, 105, 0.12)); + background: linear-gradient(135deg, rgba(var(--theme-primary-rgb), 0.14), rgba(var(--theme-primary-rgb), 0.12)); color: #065f46; } @@ -553,7 +553,7 @@ grid-template-rows: auto minmax(0, 1fr); gap: 20px; background: - radial-gradient(circle at top right, rgba(16, 185, 129, 0.16), transparent 18rem), + radial-gradient(circle at top right, rgba(var(--theme-primary-rgb), 0.16), transparent 18rem), linear-gradient(180deg, #05251d 0%, #081611 100%); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.42); } @@ -574,7 +574,7 @@ .setup-startup-head span { display: block; margin-top: 8px; - color: rgba(209, 250, 229, 0.78); + color: color-mix(in srgb, var(--theme-primary-soft) 78%, transparent); font-size: 13px; line-height: 1.6; } @@ -628,7 +628,7 @@ .setup-startup-step .pi { margin-top: 2px; - color: rgba(209, 250, 229, 0.46); + color: color-mix(in srgb, var(--theme-primary-soft) 46%, transparent); } .setup-startup-step strong { @@ -639,7 +639,7 @@ .setup-startup-step span { display: block; margin-top: 4px; - color: rgba(209, 250, 229, 0.68); + color: color-mix(in srgb, var(--theme-primary-soft) 68%, transparent); font-size: 12px; line-height: 1.5; } @@ -653,11 +653,11 @@ } .setup-startup-step.is-success { - border-color: rgba(16, 185, 129, 0.32); + border-color: rgba(var(--theme-primary-rgb), 0.32); } .setup-startup-step.is-success .pi { - color: #34d399; + color: var(--theme-primary-light-5); } .setup-startup-step.is-error { @@ -714,7 +714,7 @@ .setup-page { grid-template-columns: 1fr; background: - radial-gradient(circle at top right, rgba(16, 185, 129, 0.2), transparent 22rem), + radial-gradient(circle at top right, rgba(var(--theme-primary-rgb), 0.2), transparent 22rem), linear-gradient(180deg, #04110d 0%, #10281f 36%, #eef5f1 36%, #f6fbf8 100%); } diff --git a/web/src/assets/styles/views/travel-reimbursement-create-view-part2.css b/web/src/assets/styles/views/travel-reimbursement-create-view-part2.css index b3d5b0a..de0a6ed 100644 --- a/web/src/assets/styles/views/travel-reimbursement-create-view-part2.css +++ b/web/src/assets/styles/views/travel-reimbursement-create-view-part2.css @@ -35,8 +35,8 @@ } .travel-calculator-field input:focus { - border-color: rgba(59, 130, 246, 0.46); - box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.46); + box-shadow: 0 0 0 3px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.1); outline: none; } @@ -145,7 +145,7 @@ .composer-date-apply-btn { border: 0; - background: linear-gradient(135deg, #22c55e, #10b981); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; } @@ -182,9 +182,9 @@ min-height: 28px; padding: 0 8px 0 10px; border-radius: 999px; - border: 1px solid rgba(59, 130, 246, 0.28); - background: linear-gradient(135deg, rgba(59, 130, 246, 0.14), rgba(16, 185, 129, 0.12)); - color: #1d4ed8; + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.28); + background: linear-gradient(135deg, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14), rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08)); + color: var(--theme-primary-active); font-size: 11px; font-weight: 800; flex: none; @@ -192,7 +192,7 @@ .composer-biz-time-tag i { font-size: 14px; - color: #2563eb; + color: var(--theme-primary); } .composer-biz-time-tag-label { @@ -422,10 +422,10 @@ } .send-btn { - background: linear-gradient(135deg, #22c55e, #10b981); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; font-size: var(--wb-fs-tool-icon); - box-shadow: 0 8px 18px rgba(16, 185, 129, 0.18); + box-shadow: 0 8px 18px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); } .send-btn:disabled { @@ -468,8 +468,8 @@ height: 150px; border-radius: 0 0 0 140px; background: - radial-gradient(circle at 0 100%, rgba(16, 185, 129, 0.14), transparent 54%), - linear-gradient(135deg, rgba(16, 185, 129, 0.14), rgba(96, 165, 250, 0.06)); + radial-gradient(circle at 0 100%, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14), transparent 54%), + linear-gradient(135deg, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14), rgba(96, 165, 250, 0.06)); opacity: 0.9; pointer-events: none; } @@ -502,11 +502,11 @@ align-items: center; padding: 0 10px; border-radius: 999px; - background: rgba(240, 253, 244, 0.95); - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 11px; font-weight: 800; - border: 1px solid rgba(16, 185, 129, 0.12); + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.16); } .review-insight-title-row { @@ -617,8 +617,8 @@ } .intent-pill.draft { - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .intent-pill.approval { @@ -719,7 +719,7 @@ } .review-side-intent-row i { - color: #059669; + color: var(--theme-primary); font-size: 16px; } @@ -765,9 +765,9 @@ .review-side-metric-card.editable:hover, .review-side-metric-card.editing { - border-color: rgba(16, 185, 129, 0.34); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.34); background: #ffffff; - box-shadow: 0 4px 12px rgba(16, 185, 129, 0.08); + box-shadow: 0 4px 12px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); transform: translateY(-1px); } @@ -786,9 +786,9 @@ .review-side-metric-card.editable:hover .review-side-metric-icon, .review-side-metric-card.editing .review-side-metric-icon { - color: #059669; - border-color: rgba(16, 185, 129, 0.22); - background: #ecfdf5; + color: var(--theme-primary); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22); + background: var(--theme-primary-soft); } .review-side-metric-card.invalid .review-side-metric-icon { @@ -820,7 +820,7 @@ width: 100%; min-height: 34px; padding: 0 10px; - border: 1px solid rgba(16, 185, 129, 0.2); + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.2); border-radius: 10px; background: rgba(255, 255, 255, 0.96); color: #0f172a; @@ -844,8 +844,8 @@ .review-inline-input:focus { outline: none; - border-color: rgba(16, 185, 129, 0.42); - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.08); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.42); + box-shadow: 0 0 0 3px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); } .review-inline-select-list { @@ -869,9 +869,9 @@ } .review-inline-select-option.active { - border-color: rgba(16, 185, 129, 0.36); - background: rgba(240, 253, 244, 0.94); - color: #047857; + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.36); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .review-inline-error { @@ -900,7 +900,7 @@ } .review-side-edit-hint.upload { - color: #059669; + color: var(--theme-primary-active); } .review-side-metric-card:hover .review-side-edit-hint, @@ -935,7 +935,7 @@ } .review-side-confidence { - color: #10b981; + color: var(--success); font-size: 12px; font-weight: 900; } @@ -961,9 +961,9 @@ } .review-side-category-card.active { - border-color: rgba(52, 211, 153, 0.62); - background: rgba(240, 253, 244, 0.9); - box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.08); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.5); + background: var(--theme-primary-soft); + box-shadow: inset 0 0 0 1px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); } .review-side-category-copy { @@ -988,7 +988,7 @@ } .review-side-group-check { - color: #10b981; + color: var(--theme-primary); font-size: 18px; } @@ -1014,9 +1014,9 @@ } .review-other-category-option.active { - border-color: rgba(16, 185, 129, 0.36); - background: rgba(240, 253, 244, 0.94); - color: #047857; + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.36); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .review-side-risk-card { @@ -1064,8 +1064,8 @@ display: grid; place-items: center; border-radius: 10px; - background: rgba(14, 165, 233, 0.12); - color: #0284c7; + background: rgba(58, 124, 165, 0.12); + color: #2f6d95; font-size: 16px; } @@ -1080,8 +1080,8 @@ } .review-side-risk-item.low .review-side-risk-icon { - background: rgba(14, 165, 233, 0.12); - color: #0284c7; + background: rgba(58, 124, 165, 0.12); + color: #2f6d95; } .review-side-risk-copy { @@ -1121,7 +1121,7 @@ padding: 0; border: 0; background: transparent; - color: #059669; + color: var(--theme-primary-active); font-size: 12px; font-weight: 850; } @@ -1173,10 +1173,10 @@ align-items: center; gap: 6px; padding: 0 14px; - border: 1px solid rgba(16, 185, 129, 0.22); + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22); border-radius: 999px; background: rgba(255, 255, 255, 0.94); - color: #059669; + color: var(--theme-primary-active); font-size: 12px; font-weight: 850; box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08); @@ -1270,8 +1270,8 @@ align-items: center; padding: 0 10px; border-radius: 999px; - background: rgba(236, 253, 245, 0.92); - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 11px; font-weight: 850; } @@ -1296,9 +1296,9 @@ } .review-document-meta-chip.confidence { - background: rgba(236, 253, 245, 0.92); - color: #047857; - border-color: rgba(167, 243, 208, 0.92); + background: var(--success-soft); + color: var(--success); + border-color: color-mix(in srgb, var(--success) 28%, transparent); } .review-document-scroll { @@ -1404,8 +1404,8 @@ .review-document-edit-field input:focus, .review-document-edit-field textarea:focus { outline: none; - border-color: rgba(16, 185, 129, 0.36); - box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.08); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.36); + box-shadow: 0 0 0 4px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); } .review-document-edit-field textarea { @@ -1482,8 +1482,8 @@ } .knowledge-question-btn:hover:not(:disabled) { - border-color: rgba(16, 185, 129, 0.3); - background: rgba(240, 253, 244, 0.9); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.3); + background: var(--theme-primary-soft); transform: translateY(-1px); } @@ -1495,7 +1495,7 @@ .knowledge-question-btn i { justify-self: end; - color: #059669; + color: var(--theme-primary); font-size: 16px; } diff --git a/web/src/assets/styles/views/travel-reimbursement-create-view-part3.css b/web/src/assets/styles/views/travel-reimbursement-create-view-part3.css index 11a2203..d89c007 100644 --- a/web/src/assets/styles/views/travel-reimbursement-create-view-part3.css +++ b/web/src/assets/styles/views/travel-reimbursement-create-view-part3.css @@ -24,8 +24,8 @@ } .status-pill.success { - background: #ecfdf5; - color: #059669; + background: var(--success-soft); + color: var(--success); } .status-pill.warning { @@ -94,9 +94,12 @@ background: #cbd5e1; } -.timeline-list li.done .timeline-dot, +.timeline-list li.done .timeline-dot { + background: var(--success); +} + .timeline-list li.current .timeline-dot { - background: #10b981; + background: var(--theme-primary); } .timeline-list strong { @@ -347,8 +350,8 @@ background: linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(251, 248, 243, 0.82) 100%); } -/* 已删除:review-alert-chip-row 相关样式(冗余气泡) */ -/* 已删除:主对话框中的风险提示(与右侧边栏重复,已移除) */ +/* 已删除 review-alert-chip-row 相关冗余样式 */ +/* 已删除主对话框中的风险提示,避免与右侧栏重复 */ /* 风险提示样式已统一到 review-pending-item */ .review-risk-brief-list { @@ -402,12 +405,12 @@ display: grid; place-items: center; border-radius: 10px; - background: rgba(236, 253, 245, 0.95); - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 16px; } -/* 风险级别的图标样式(已删除主对话框中的风险提示,保留样式备用) */ +/* 风险级别图标样式保留备用 */ .review-pending-icon.high { background: rgba(254, 226, 226, 0.95); color: #dc2626; @@ -473,9 +476,9 @@ } .review-pending-status.ready { - background: rgba(240, 253, 244, 0.96); - color: #059669; - border: 1px solid #86efac; + background: var(--success-soft); + color: var(--success); + border: 1px solid color-mix(in srgb, var(--success) 28%, transparent); } .review-footer-actions { @@ -507,10 +510,10 @@ } .review-footer-btn.primary { - border-color: rgba(16, 185, 129, 0.26); - background: linear-gradient(135deg, #10b981, #059669); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.26); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; - box-shadow: 0 6px 14px rgba(16, 185, 129, 0.16); + box-shadow: 0 6px 14px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.16); } .review-footer-btn:disabled { @@ -555,10 +558,10 @@ .review-inline-btn.primary, .primary-dialog-btn { - border: 1px solid rgba(16, 185, 129, 0.22); - background: linear-gradient(135deg, #10b981, #059669); + border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), 0.22); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; - box-shadow: 0 10px 22px rgba(16, 185, 129, 0.18); + box-shadow: 0 10px 22px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); } .review-inline-btn.secondary, @@ -593,7 +596,7 @@ .review-inline-guidance { margin: 0; - color: #0f766e; + color: var(--theme-primary-active); font-size: 12px; line-height: 1.7; } @@ -608,8 +611,8 @@ } .review-status-banner.ready { - border-color: #bbf7d0; - background: linear-gradient(180deg, #f5fffa 0%, #ecfdf5 100%); + border-color: color-mix(in srgb, var(--success) 28%, transparent); + background: linear-gradient(180deg, #ffffff 0%, var(--success-soft) 100%); } .review-status-banner.pending { @@ -921,8 +924,8 @@ } .action-card.primary { - border-color: #bbf7d0; - background: #f0fdf4; + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.28); + background: var(--theme-primary-soft); } .action-card.secondary { @@ -987,7 +990,7 @@ } .recognition-bubble-label { - color: #0f766e; + color: var(--theme-primary-active); font-size: 11px; font-weight: 850; letter-spacing: 0.02em; @@ -1064,7 +1067,7 @@ width: min(720px, calc(100vw - 40px)); border-radius: 24px; background: - radial-gradient(circle at top right, rgba(16, 185, 129, 0.08), transparent 28%), + radial-gradient(circle at top right, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08), transparent 28%), linear-gradient(180deg, #fbfdff 0%, #f6f9fc 100%); box-shadow: 0 24px 80px rgba(15, 23, 42, 0.22), diff --git a/web/src/assets/styles/views/travel-reimbursement-create-view-part4.css b/web/src/assets/styles/views/travel-reimbursement-create-view-part4.css index 720fa20..0b8a8a2 100644 --- a/web/src/assets/styles/views/travel-reimbursement-create-view-part4.css +++ b/web/src/assets/styles/views/travel-reimbursement-create-view-part4.css @@ -14,7 +14,7 @@ overflow: hidden; border-radius: 24px; background: - radial-gradient(circle at top right, rgba(16, 185, 129, 0.08), transparent 28%), + radial-gradient(circle at top right, rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08), transparent 28%), linear-gradient(180deg, #fbfdff 0%, #f6f9fc 100%); box-shadow: 0 24px 80px rgba(15, 23, 42, 0.22), @@ -109,14 +109,14 @@ .welcome-quick-action-btn:hover:not(:disabled) { transform: translateY(-1px); - border-color: #10b981; - background: #ecfdf5; - color: #059669; - box-shadow: 0 4px 12px rgba(16, 185, 129, 0.1); + border-color: var(--theme-primary); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); + box-shadow: 0 4px 12px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.1); } .welcome-quick-action-btn:hover:not(:disabled) i { - color: #059669; + color: var(--theme-primary-active); } .welcome-quick-action-btn:disabled { @@ -136,7 +136,7 @@ } .welcome-card i { - color: #10b981; + color: var(--theme-primary); font-size: var(--wb-fs-welcome); } @@ -177,7 +177,7 @@ transform: translateY(8px); } -/* 笔记本 / 中等屏:工作台正文字号整体下调一档 */ +/* 笔记本和中等屏:工作台正文字号整体下调一档 */ @media (max-width: 1680px) { .assistant-modal-stage { --wb-fs-title: 19px; @@ -226,7 +226,7 @@ } } -/* 大屏:左右分栏;右侧详情区宽度随视口收缩 */ +/* 大屏:左右分栏,右侧详情区宽度随视口收缩 */ @media (min-width: 1441px) and (max-width: 1680px) { .insight-panel-shell { width: clamp(280px, 26vw, 360px); @@ -272,7 +272,7 @@ } } -/* 矮屏笔记本(如 1366×768):压缩顶栏与间距,把高度留给对话列表 */ +/* 矮屏笔记本:压缩顶部栏与间距,把高度留给对话列表 */ @media (max-height: 820px) { .assistant-modal-stage { --wb-fs-title: 17px; @@ -386,24 +386,6 @@ padding: 16px; } - .message-row, - .message-row.user { - grid-template-columns: 34px minmax(0, 1fr); - } - - .message-row.user .message-avatar { - order: 0; - } - - .message-row.user .message-bubble { - order: 0; - justify-self: stretch; - } - - .message-suggested-actions { - grid-template-columns: 1fr; - } - .composer { padding: 0 16px 16px; } diff --git a/web/src/assets/styles/views/travel-reimbursement-create-view.css b/web/src/assets/styles/views/travel-reimbursement-create-view.css index b3d953a..a1b15e5 100644 --- a/web/src/assets/styles/views/travel-reimbursement-create-view.css +++ b/web/src/assets/styles/views/travel-reimbursement-create-view.css @@ -1,5 +1,5 @@ .assistant-overlay { - /* 距屏幕边 10–18px,随视口微调;高度用 dvh 适配笔记本浏览器工具栏 */ + /* 距屏幕边缘 10-18px,随视口微调;高度使用 dvh 适配浏览器工具栏 */ --assistant-viewport-inset: clamp(10px, 1.25vmin, 18px); position: fixed; inset: 0; @@ -13,11 +13,10 @@ padding: var(--assistant-viewport-inset); box-sizing: border-box; background: - radial-gradient(circle at 18% 14%, rgba(16, 185, 129, 0.18), transparent 24%), - radial-gradient(circle at 82% 12%, rgba(59, 130, 246, 0.12), transparent 28%), - rgba(97, 110, 131, 0.34); - backdrop-filter: blur(18px) saturate(1.02); - -webkit-backdrop-filter: blur(18px) saturate(1.02); + linear-gradient(180deg, rgba(239, 246, 255, 0.98) 0%, rgba(248, 250, 252, 0.98) 100%), + rgba(241, 245, 249, 0.98); + backdrop-filter: none; + -webkit-backdrop-filter: none; } .assistant-modal { @@ -39,7 +38,7 @@ } .assistant-modal-stage { - /* 工作台字号令牌:笔记本断点见文末 @media */ + /* 工作台字号令牌:笔记本断点见后续 media */ --wb-fs-title: 22px; --wb-fs-desc: 13px; --wb-fs-badge: 12px; @@ -70,14 +69,12 @@ transform: none; border-radius: 24px; background: - radial-gradient(circle at top right, rgba(16, 185, 129, 0.14), transparent 26%), - radial-gradient(circle at top left, rgba(59, 130, 246, 0.10), transparent 24%), - linear-gradient(180deg, rgba(241, 246, 245, 0.92) 0%, rgba(230, 237, 235, 0.88) 100%); + linear-gradient(180deg, #f8fbff 0%, #edf5ff 100%); box-shadow: 0 28px 72px rgba(15, 23, 42, 0.22), 0 10px 28px rgba(15, 23, 42, 0.09), inset 0 1px 0 rgba(255, 255, 255, 0.42); - border: 1px solid rgba(255, 255, 255, 0.44); + border: 1px solid rgba(191, 219, 254, 0.88); background-clip: padding-box; overflow: hidden; isolation: isolate; @@ -108,11 +105,11 @@ justify-content: center; padding: 0 14px; border-radius: 999px; - background: linear-gradient(135deg, #22c55e, #10b981); + background: linear-gradient(135deg, var(--theme-primary), var(--theme-primary-active)); color: #fff; font-size: var(--wb-fs-badge); font-weight: 800; - box-shadow: 0 8px 16px rgba(16, 185, 129, 0.14); + box-shadow: 0 8px 16px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14); white-space: nowrap; } @@ -160,16 +157,16 @@ } .assistant-toggle-btn { - border-color: rgba(16, 185, 129, 0.18); - background: rgba(245, 252, 249, 0.96); - color: #166534; + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.18); + background: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); + color: var(--theme-primary-active); font-size: 16px; - box-shadow: 0 8px 18px rgba(16, 185, 129, 0.1); + box-shadow: 0 8px 18px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.1); } .assistant-toggle-btn:hover:not(:disabled) { - background: rgba(236, 253, 245, 0.98); - border-color: rgba(16, 185, 129, 0.28); + background: var(--theme-primary-soft); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.28); } .assistant-toggle-btn:disabled, @@ -254,8 +251,8 @@ } .flow-status-chip.completed { - background: #ecfdf5; - color: #059669; + background: var(--success-soft); + color: var(--success); } .flow-status-chip.failed { @@ -337,7 +334,7 @@ } .flow-step-item.completed .flow-step-rail span { - background: #10b981; + background: var(--success); color: #fff; } @@ -405,13 +402,13 @@ } .flow-step-status.completed { - background: #ecfdf5; - color: #059669; + background: var(--success-soft); + color: var(--success); } .flow-step-status.running { - background: #eff6ff; - color: #2563eb; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .flow-step-status.failed { @@ -497,13 +494,13 @@ min-width: 0; min-height: 0; border: 1px solid rgba(189, 201, 214, 0.74); - border-radius: 24px; - background: rgba(248, 251, 251, 0.84); + border-radius: 16px; + background: #ffffff; box-shadow: 0 14px 32px rgba(148, 163, 184, 0.16), 0 2px 6px rgba(15, 23, 42, 0.05); - backdrop-filter: blur(22px); - -webkit-backdrop-filter: blur(22px); + backdrop-filter: none; + -webkit-backdrop-filter: none; } .dialog-panel { @@ -512,8 +509,7 @@ grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; background: - radial-gradient(circle at top right, rgba(59, 130, 246, 0.07), transparent 22%), - linear-gradient(180deg, rgba(252, 253, 253, 0.88) 0%, rgba(243, 247, 248, 0.84) 100%); + linear-gradient(180deg, #ffffff 0%, #f8fbff 100%); transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1); @@ -564,18 +560,18 @@ } .shortcut-chip i { - color: #059669; + color: var(--theme-primary); } .shortcut-chip.active { - border-color: rgba(5, 150, 105, 0.38); - background: rgba(16, 185, 129, 0.1); - color: #047857; + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.38); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); box-shadow: none; } .shortcut-chip.active i { - color: #047857; + color: var(--theme-primary-active); } .shortcut-chip:disabled { @@ -593,17 +589,6 @@ overflow-y: auto; } -.message-row { - display: grid; - grid-template-columns: 38px minmax(0, 1fr); - align-items: start; - gap: 12px; -} - -.message-row.user { - grid-template-columns: minmax(0, 1fr) 38px; -} - .message-row.user .message-avatar { order: 2; background: transparent; @@ -850,13 +835,13 @@ } .application-preview-row.highlight .application-preview-label { - background: #f0fdf4; - color: #047857; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .application-preview-row.highlight .application-preview-value { - background: #f7fee7; - color: #166534; + background: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.08); + color: var(--theme-primary-active); font-weight: 780; } @@ -1138,9 +1123,9 @@ place-items: center; border-radius: 10px; background: #f1f5f9; - color: #0f766e; + color: var(--theme-primary-active); font-size: 18px; - box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.08); + box-shadow: inset 0 0 0 1px rgba(var(--theme-primary-rgb), 0.08); } .message-suggested-action-copy { @@ -1171,7 +1156,7 @@ } .message-suggested-action-btn:hover:not(:disabled) { - border-color: rgba(20, 184, 166, 0.72); + border-color: rgba(var(--theme-primary-rgb), 0.42); background: #ffffff; box-shadow: 0 10px 24px rgba(15, 23, 42, 0.09); transform: translateY(-1px); @@ -1179,35 +1164,35 @@ .message-suggested-action-btn:hover:not(:disabled) .message-suggested-action-icon, .message-suggested-action-btn:focus-visible .message-suggested-action-icon { - background: #ccfbf1; - color: #0f766e; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .message-suggested-action-btn:hover:not(:disabled) .message-suggested-action-arrow, .message-suggested-action-btn:focus-visible .message-suggested-action-arrow { - color: #0f766e; + color: var(--theme-primary-active); transform: translateX(2px); } .message-suggested-action-btn:focus-visible { - outline: 3px solid rgba(20, 184, 166, 0.18); + outline: 3px solid var(--theme-focus-ring); outline-offset: 2px; - border-color: #14b8a6; + border-color: var(--theme-primary); } .message-suggested-action-btn.selected { - border-color: rgba(13, 148, 136, 0.78); - background: #f0fdfa; - box-shadow: inset 0 0 0 1px rgba(13, 148, 136, 0.18); + border-color: rgba(var(--theme-primary-rgb), 0.52); + background: var(--theme-primary-light-9); + box-shadow: inset 0 0 0 1px var(--theme-primary-shadow); } .message-suggested-action-btn.selected .message-suggested-action-icon { - background: #99f6e4; - color: #115e59; + background: var(--theme-primary-soft-strong); + color: var(--theme-primary-active); } .message-suggested-action-btn.selected .message-suggested-action-arrow { - color: #0f766e; + color: var(--theme-primary-active); } .message-suggested-action-btn.locked:not(.selected) { @@ -1268,8 +1253,8 @@ } .message-action-chip { - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .message-detail-block { @@ -1376,8 +1361,8 @@ } .expense-query-summary-chip.completed { - background: #dcfce7; - color: #15803d; + background: var(--success-soft); + color: var(--success); } .expense-query-summary-chip.other { @@ -1491,8 +1476,8 @@ } .expense-query-record-status.completed { - background: #dcfce7; - color: #15803d; + background: var(--success-soft); + color: var(--success); } .expense-query-record-card p { @@ -1801,10 +1786,10 @@ } .tool-btn.composer-side-btn.active { - border-color: rgba(59, 130, 246, 0.42); - background: rgba(239, 246, 255, 0.96); - color: #2563eb; - box-shadow: 0 6px 14px rgba(59, 130, 246, 0.14); + border-color: rgba(var(--theme-primary-rgb, 58, 124, 165), 0.42); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); + box-shadow: 0 6px 14px rgba(var(--theme-primary-rgb, 58, 124, 165), 0.14); } .composer-date-popover { diff --git a/web/src/assets/styles/views/travel-request-detail-view-part2.css b/web/src/assets/styles/views/travel-request-detail-view-part2.css index edb98ee..e7593df 100644 --- a/web/src/assets/styles/views/travel-request-detail-view-part2.css +++ b/web/src/assets/styles/views/travel-request-detail-view-part2.css @@ -51,8 +51,8 @@ width: 6px; height: 6px; border-radius: 999px; - background: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12); + background: var(--success); + box-shadow: 0 0 0 3px rgba(var(--success-rgb), 0.12); } .validation-section--risk .validation-section-title { @@ -69,13 +69,13 @@ gap: 6px; margin: 0; padding: 0 0 0 18px; - color: #0f766e; + color: var(--success-hover); font-size: 13px; line-height: 1.55; } .validation-list li::marker { - color: #14b8a6; + color: var(--success); } .validation-section--risk .risk-advice-list { @@ -383,7 +383,7 @@ padding: 18px; overflow: auto; background: - linear-gradient(180deg, rgba(240, 253, 244, .5) 0%, rgba(255, 255, 255, 0) 140px), + linear-gradient(180deg, color-mix(in srgb, var(--theme-primary-soft) 55%, transparent) 0%, rgba(255, 255, 255, 0) 140px), #fff; } @@ -415,8 +415,8 @@ display: grid; place-items: center; border-radius: 999px; - background: #ecfdf5; - color: #059669; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 18px; } @@ -471,9 +471,9 @@ } .ai-composer-surface:focus-within { - border-color: rgba(16, 185, 129, .58); + border-color: rgba(var(--theme-primary-rgb), .58); background: #fff; - box-shadow: 0 0 0 3px rgba(16, 185, 129, .11), 0 10px 24px rgba(15, 23, 42, .06); + box-shadow: 0 0 0 3px var(--theme-focus-ring), 0 10px 24px rgba(15, 23, 42, .06); } .ai-composer textarea { @@ -552,14 +552,14 @@ .ai-send-btn { border: 0; - background: #10b981; + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 18px rgba(16, 185, 129, .20); + box-shadow: 0 8px 18px var(--theme-primary-shadow); } .ai-send-btn:hover { - background: #0ea672; - box-shadow: 0 10px 22px rgba(16, 185, 129, .24); + background: var(--theme-primary-active); + box-shadow: 0 10px 22px rgba(var(--theme-primary-rgb), .24); } .ai-upload-btn:active, @@ -650,7 +650,7 @@ .ai-preview-empty i { font-size: 32px; - color: #10b981; + color: var(--theme-primary); } .ai-preview-actions { @@ -681,10 +681,10 @@ } .ai-preview-primary { - border: 1px solid #059669; - background: #059669; + border: 1px solid var(--theme-primary); + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 20px rgba(5, 150, 105, .18); + box-shadow: 0 8px 20px var(--theme-primary-shadow); } .ai-preview-secondary:hover { @@ -692,7 +692,7 @@ } .ai-preview-primary:hover { - background: #047857; + background: var(--theme-primary-active); } .ai-preview-secondary:disabled, @@ -957,7 +957,7 @@ } .validation-pill.ready { - background: #f0fdf4; - border-color: #bbf7d0; - color: #166534; + background: var(--success-soft); + border-color: var(--success-line); + color: var(--success-active); } diff --git a/web/src/assets/styles/views/travel-request-detail-view.css b/web/src/assets/styles/views/travel-request-detail-view.css index 9cc4dc4..d89c919 100644 --- a/web/src/assets/styles/views/travel-request-detail-view.css +++ b/web/src/assets/styles/views/travel-request-detail-view.css @@ -112,9 +112,9 @@ min-height: 24px; padding: 0 9px; border-radius: 999px; - background: #ecfdf5; - border: 1px solid rgba(16, 185, 129, .16); - color: #10b981; + background: var(--theme-primary-soft); + border: 1px solid rgba(var(--theme-primary-rgb), .16); + color: var(--theme-primary-active); font-size: 11px; font-weight: 800; } @@ -265,8 +265,8 @@ width: 8px; height: 8px; border-radius: 999px; - background: #10b981; - box-shadow: 0 0 0 4px rgba(16, 185, 129, .12); + background: var(--theme-primary); + box-shadow: 0 0 0 4px var(--theme-focus-ring); } .progress-line { @@ -309,7 +309,7 @@ right: 0; z-index: 0; height: 2px; - background: #10b981; + background: var(--theme-primary); opacity: 0; } @@ -346,20 +346,20 @@ position: absolute; inset: -4px; z-index: -1; - border: 2px solid rgba(16, 185, 129, .42); + border: 2px solid rgba(var(--theme-primary-rgb), .42); border-radius: 999px; pointer-events: none; } .progress-step.active span { - background: #059669; + background: var(--theme-primary-active); color: #fff; } .progress-step.current span { - background: #10b981 !important; + background: var(--theme-primary) !important; color: #fff !important; - box-shadow: 0 0 0 4px rgba(16, 185, 129, .15) !important; + box-shadow: 0 0 0 4px var(--theme-focus-ring) !important; animation: breathe-dot 3.2s ease-in-out infinite !important; transform-origin: center !important; } @@ -367,11 +367,11 @@ @keyframes breathe-dot { 0%, 100% { transform: scale(1); - box-shadow: 0 4px 12px rgba(16, 185, 129, .3), 0 0 0 4px rgba(16, 185, 129, .15); + box-shadow: 0 4px 12px rgba(var(--theme-primary-rgb), .3), 0 0 0 4px var(--theme-focus-ring); } 50% { transform: scale(1.12); - box-shadow: 0 4px 20px rgba(16, 185, 129, .5), 0 0 0 10px rgba(16, 185, 129, .08); + box-shadow: 0 4px 20px rgba(var(--theme-primary-rgb), .5), 0 0 0 10px rgba(var(--theme-primary-rgb), .08); } } @@ -382,7 +382,7 @@ text-align: center; } -.progress-step.current strong { color: #059669; } +.progress-step.current strong { color: var(--theme-primary-active); } .progress-step-copy { width: 100%; @@ -414,16 +414,16 @@ } .progress-step.done .progress-step-status { - border-color: rgba(16, 185, 129, .2); - background: #ecfdf5; - color: #047857; + border-color: rgba(var(--theme-primary-rgb), .2); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .progress-step.current .progress-step-status { - border-color: rgba(5, 150, 105, .22); - background: #059669; + border-color: rgba(var(--theme-primary-rgb), .22); + background: var(--theme-primary); color: #fff; - box-shadow: 0 8px 18px rgba(5, 150, 105, .14); + box-shadow: 0 8px 18px var(--theme-primary-shadow); } .progress-step:not(.done):not(.current) .progress-step-status { @@ -432,7 +432,7 @@ } .progress-step.current small { - color: #059669; + color: var(--theme-primary-active); } .progress-step-meta { @@ -535,14 +535,14 @@ .smart-entry-btn.secondary { background: #fff; - color: #0f766e; - border-color: rgba(16, 185, 129, .24); + color: var(--theme-primary-active); + border-color: rgba(var(--theme-primary-rgb), .24); } .smart-entry-btn:hover { - border-color: rgba(16, 185, 129, .36); - background: #f0fdf4; - color: #047857; + border-color: rgba(var(--theme-primary-rgb), .36); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .detail-total { @@ -553,8 +553,8 @@ min-height: 34px; padding: 0 12px; border-radius: 999px; - background: #ecfdf5; - color: #047857; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 14px; font-weight: 900; } @@ -643,16 +643,16 @@ } .application-detail-fact.highlight span { - background: #eefcf6; - color: #047857; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .application-detail-fact.highlight strong { - background: #f6fef9; + background: color-mix(in srgb, var(--theme-primary-soft) 55%, #ffffff); } .application-detail-fact.emphasis strong { - color: #047857; + color: var(--theme-primary-active); font-weight: 850; } @@ -663,13 +663,13 @@ .detail-note-editor textarea { min-height: 92px; - border-color: rgba(16, 185, 129, .28); + border-color: rgba(var(--theme-primary-rgb), .28); background: #fff; } .detail-note-editor textarea:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, .12); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); outline: none; } @@ -692,8 +692,8 @@ } .leader-approval-card { - border-color: rgba(5, 150, 105, .18); - background: linear-gradient(180deg, #ffffff 0%, #f7fdfb 100%); + border-color: rgba(var(--theme-primary-rgb), .18); + background: linear-gradient(180deg, #ffffff 0%, var(--theme-primary-soft) 100%); } .leader-approval-card textarea { @@ -704,8 +704,8 @@ .leader-approval-card textarea:focus { outline: 0; - border-color: rgba(5, 150, 105, .5); - box-shadow: 0 0 0 3px rgba(5, 150, 105, .1); + border-color: rgba(var(--theme-primary-rgb), .5); + box-shadow: 0 0 0 3px var(--theme-focus-ring); } .leader-opinion-meta { @@ -721,7 +721,7 @@ .leader-opinion-meta strong { flex: 0 0 auto; - color: #047857; + color: var(--theme-primary-active); font-weight: 850; } @@ -758,7 +758,7 @@ } .application-leader-opinion-head strong { - color: #047857; + color: var(--theme-primary-active); font-weight: 800; font-size: 14px; } @@ -812,12 +812,12 @@ } .detail-expense-table tbody tr.system-generated-row td { - background: #f0fdf4; - border-bottom-color: #bbf7d0; + background: var(--success-soft); + border-bottom-color: var(--success-line); } .detail-expense-table tbody tr.system-generated-row:hover td { - background: #ecfdf5; + background: var(--success-soft); } .detail-expense-table .col-time { width: 11%; } @@ -893,8 +893,8 @@ .editor-input:focus, .editor-select:focus { - border-color: #10b981; - box-shadow: 0 0 0 3px rgba(16, 185, 129, .12); + border-color: var(--theme-primary); + box-shadow: 0 0 0 3px var(--theme-focus-ring); outline: none; } @@ -966,8 +966,8 @@ } .over-tag.system { - background: #dcfce7; - color: #047857; + background: var(--success-soft); + color: var(--success-hover); } .expense-total-under-table { @@ -977,10 +977,10 @@ gap: 12px; margin-top: 12px; padding: 12px 14px; - border: 1px solid #d1fae5; + border: 1px solid rgba(var(--theme-primary-rgb), .22); border-radius: 8px; - background: #f0fdf4; - color: #0f766e; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .expense-total-under-table span { @@ -990,7 +990,7 @@ } .expense-total-under-table strong { - color: #047857; + color: var(--theme-primary-active); font-size: 17px; font-weight: 900; } @@ -1050,8 +1050,8 @@ } .attachment-recognition-pill.pass { - background: #ecfdf5; - color: #047857; + background: var(--success-soft); + color: var(--success-hover); } .attachment-recognition-pill.medium { @@ -1101,9 +1101,9 @@ } .icon-action.upload { - background: #ecfdf5; - border-color: rgba(16, 185, 129, .24); - color: #047857; + background: var(--theme-primary-soft); + border-color: rgba(var(--theme-primary-rgb), .24); + color: var(--theme-primary-active); } .icon-action.preview { @@ -1133,14 +1133,14 @@ } .inline-action.accent { - border-color: rgba(16, 185, 129, .24); - background: #ecfdf5; - color: #047857; + border-color: rgba(var(--theme-primary-rgb), .24); + background: var(--theme-primary-soft); + color: var(--theme-primary-active); } .inline-action.primary { - border-color: #10b981; - background: #10b981; + border-color: var(--theme-primary); + background: var(--theme-primary); color: #fff; } @@ -1151,13 +1151,13 @@ } .inline-action:hover { - border-color: rgba(16, 185, 129, .36); - color: #047857; + border-color: rgba(var(--theme-primary-rgb), .36); + color: var(--theme-primary-active); } .inline-action.primary:hover { - border-color: #059669; - background: #059669; + border-color: var(--theme-primary-active); + background: var(--theme-primary-active); color: #fff; } @@ -1179,8 +1179,8 @@ min-height: 28px; padding: 0 9px; border-radius: 8px; - background: #dcfce7; - color: #047857; + background: var(--success-soft); + color: var(--success-hover); font-size: 11px; font-weight: 850; white-space: nowrap; @@ -1194,8 +1194,8 @@ min-height: 28px; padding: 0 9px; border-radius: 8px; - background: #ecfdf5; - color: #047857; + background: var(--success-soft); + color: var(--success-hover); font-size: 11px; font-weight: 850; white-space: nowrap; @@ -1217,7 +1217,7 @@ } .risk-inline-tag.pass, -.risk-inline-tag.low { background: #ecfdf5; color: #059669; } +.risk-inline-tag.low { background: var(--success-soft); color: var(--success-hover); } .risk-inline-tag.medium { background: #fff7ed; color: #ea580c; } .risk-inline-tag.high { background: #fef2f2; color: #dc2626; } @@ -1248,7 +1248,7 @@ } .risk-suggestion { - color: #0f766e; + color: var(--success-hover); font-weight: 700; } @@ -1284,10 +1284,10 @@ grid-template-rows: auto minmax(0, 1fr); gap: 14px; padding: 22px; - border: 1px solid rgba(16, 185, 129, .14); + border: 1px solid rgba(var(--theme-primary-rgb), .14); border-radius: 24px; background: - radial-gradient(circle at top left, rgba(16, 185, 129, .12), transparent 36%), + radial-gradient(circle at top left, rgba(var(--theme-primary-rgb), .12), transparent 36%), linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(247, 250, 252, .98)); box-shadow: 0 28px 56px rgba(15, 23, 42, .2); } @@ -1338,8 +1338,8 @@ min-height: 28px; padding: 0 10px; border-radius: 999px; - background: rgba(16, 185, 129, .12); - color: #047857; + background: var(--theme-primary-soft); + color: var(--theme-primary-active); font-size: 12px; font-weight: 800; } @@ -1547,10 +1547,10 @@ .approve-action { min-width: 92px; - border: 1px solid #059669; - background: #059669; + border: 1px solid var(--success); + background: var(--success); color: #fff; - box-shadow: 0 4px 10px rgba(5, 150, 105, .14); + box-shadow: 0 4px 10px rgba(var(--success-rgb), .14); } .reject-action { diff --git a/web/src/components/audit/AuditAssetList.vue b/web/src/components/audit/AuditAssetList.vue new file mode 100644 index 0000000..e791740 --- /dev/null +++ b/web/src/components/audit/AuditAssetList.vue @@ -0,0 +1,334 @@ +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+ +

{{ hintText }}

+ +
+ + {{ token }} + +
+ +
+
+ +
+ +
+ +

{{ errorMessage }}

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ tableColumns.name }}{{ tableColumns.category }}{{ tableColumns.owner }}{{ tableColumns.scope }}{{ tableColumns.runtime }}{{ tableColumns.version }}{{ tableColumns.status || '状态' }}{{ tableColumns.metric }}是否上线是否启用{{ tableColumns.updatedAt || '最近更新' }}
+
+ {{ skill.short }} +
+ {{ skill.name }} + {{ skill.listSubtitle || skill.summary }} +
+
+
{{ skill.category }} + + {{ skill.riskLevelLabel || '-' }} + + + {{ skill.scope }}{{ skill.model }}{{ skill.versionDisplay || skill.version }} + {{ skill.status }} + {{ skill.hitRate }} + {{ skill.isOnlineLabel }} + + {{ skill.isEnabledLabel }} + {{ skill.updatedAt }}
+
+ + + + + + + + + diff --git a/web/src/components/audit/AuditJsonRiskRuleDetail.vue b/web/src/components/audit/AuditJsonRiskRuleDetail.vue new file mode 100644 index 0000000..a53c260 --- /dev/null +++ b/web/src/components/audit/AuditJsonRiskRuleDetail.vue @@ -0,0 +1,173 @@ + + + + + + diff --git a/web/src/components/audit/AuditPickerFilter.vue b/web/src/components/audit/AuditPickerFilter.vue new file mode 100644 index 0000000..2d12168 --- /dev/null +++ b/web/src/components/audit/AuditPickerFilter.vue @@ -0,0 +1,60 @@ + + + + + + diff --git a/web/src/components/audit/AuditRuleDialogs.vue b/web/src/components/audit/AuditRuleDialogs.vue new file mode 100644 index 0000000..450e1bb --- /dev/null +++ b/web/src/components/audit/AuditRuleDialogs.vue @@ -0,0 +1,293 @@ + + + + + + diff --git a/web/src/components/audit/AuditSpreadsheetChangeDrawer.vue b/web/src/components/audit/AuditSpreadsheetChangeDrawer.vue new file mode 100644 index 0000000..31e8fcd --- /dev/null +++ b/web/src/components/audit/AuditSpreadsheetChangeDrawer.vue @@ -0,0 +1,112 @@ + + + + + + diff --git a/web/src/components/audit/AuditSpreadsheetRuleDetail.vue b/web/src/components/audit/AuditSpreadsheetRuleDetail.vue new file mode 100644 index 0000000..1c8a578 --- /dev/null +++ b/web/src/components/audit/AuditSpreadsheetRuleDetail.vue @@ -0,0 +1,159 @@ + + + + + + diff --git a/web/src/components/audit/AuditVersionTimelineDrawer.vue b/web/src/components/audit/AuditVersionTimelineDrawer.vue new file mode 100644 index 0000000..8418109 --- /dev/null +++ b/web/src/components/audit/AuditVersionTimelineDrawer.vue @@ -0,0 +1,71 @@ + + + + + + diff --git a/web/src/components/business/PersonalWorkbench.vue b/web/src/components/business/PersonalWorkbench.vue index 14b4fe5..86dc334 100644 --- a/web/src/components/business/PersonalWorkbench.vue +++ b/web/src/components/business/PersonalWorkbench.vue @@ -347,8 +347,8 @@ const todoItems = [ suggestion: '补充客户单位、客户人数、我方陪同人员', action: '去补充', iconKey: 'hospitality', - color: '#0d9668', - accent: '#6ee7b7' + color: 'var(--theme-primary-active)', + accent: 'var(--theme-primary-soft-strong)' }, { title: '差旅报销单待提交', @@ -356,8 +356,8 @@ const todoItems = [ suggestion: '补齐出发交通,可直接生成报销单', action: '继续填写', iconKey: 'travelDraft', - color: '#15803d', - accent: '#86efac' + color: 'var(--success-hover)', + accent: 'var(--success-line)' }, { title: '有 5 张票据未关联报销单', @@ -365,8 +365,8 @@ const todoItems = [ suggestion: '其中 3 张疑似交通费,可合并生成交通报销', action: '去整理', iconKey: 'receipts', - color: '#2563eb', - accent: '#93c5fd' + color: 'var(--chart-blue)', + accent: 'var(--theme-primary-soft-strong)' } ] @@ -381,8 +381,8 @@ const progressItems = [ status: '主管审批中', tone: 'success', iconKey: 'flight', - color: '#0d9668', - accent: '#6ee7b7' + color: 'var(--theme-primary-active)', + accent: 'var(--theme-primary-soft-strong)' }, { id: 'transport', @@ -392,8 +392,8 @@ const progressItems = [ status: '财务复核中', tone: 'info', iconKey: 'transport', - color: '#2563eb', - accent: '#93c5fd' + color: 'var(--chart-blue)', + accent: 'var(--theme-primary-soft-strong)' }, { id: 'office', @@ -403,8 +403,8 @@ const progressItems = [ status: '已到账', tone: 'mint', iconKey: 'procurement', - color: '#059669', - accent: '#a7f3d0' + color: 'var(--success)', + accent: 'var(--success-line)' } ] @@ -453,710 +453,4 @@ watch( ) - + diff --git a/web/src/components/charts/BarChart.vue b/web/src/components/charts/BarChart.vue index 3cfbca0..2e28329 100644 --- a/web/src/components/charts/BarChart.vue +++ b/web/src/components/charts/BarChart.vue @@ -28,12 +28,22 @@ import { BarElement, Tooltip } from 'chart.js' +import { resolveCssColor, useThemeColors } from '../../composables/useThemeColors.js' ChartJS.register(CategoryScale, LinearScale, BarElement, Tooltip) const props = defineProps({ items: { type: Array, required: true } }) +const themeColors = useThemeColors() +const resolvedItems = computed(() => { + const fallback = themeColors.value.chartPrimary + + return props.items.map((item) => ({ + ...item, + resolvedColor: resolveCssColor(item.color, fallback) + })) +}) const medalClass = (idx) => { if (idx === 0) return 'gold' @@ -56,10 +66,10 @@ const formatValue = (value) => { } const chartData = computed(() => ({ - labels: props.items.map((i) => i.name || i.shortName), + labels: resolvedItems.value.map((i) => i.name || i.shortName), datasets: [{ - data: props.items.map((i) => i.value || i.amount), - backgroundColor: props.items.map((i) => i.color), + data: resolvedItems.value.map((i) => i.value || i.amount), + backgroundColor: resolvedItems.value.map((i) => i.resolvedColor), borderRadius: 6, borderSkipped: false, barPercentage: 0.7, @@ -169,4 +179,4 @@ const chartOptions = { position: relative; height: 240px; } - \ No newline at end of file + diff --git a/web/src/components/charts/BudgetTrendChart.vue b/web/src/components/charts/BudgetTrendChart.vue index 67740a6..2d1cef2 100644 --- a/web/src/components/charts/BudgetTrendChart.vue +++ b/web/src/components/charts/BudgetTrendChart.vue @@ -16,6 +16,7 @@ import { Tooltip } from 'chart.js' import { useAnimationProgress } from '../../composables/useAnimationProgress.js' +import { useThemeColors } from '../../composables/useThemeColors.js' ChartJS.register(CategoryScale, LinearScale, BarElement, Tooltip, Legend) @@ -34,6 +35,7 @@ const progress = useAnimationProgress([ () => props.occupied, () => props.available ], 1000) +const themeColors = useThemeColors() const currency = (value) => Number(value || 0).toLocaleString('zh-CN', { @@ -77,7 +79,7 @@ const chartData = computed(() => ({ { label: '已使用', data: scaleSeries(usedPercent.value), - backgroundColor: '#13a66b', + backgroundColor: themeColors.value.chartPrimary, borderRadius: 5, borderSkipped: false, stack: 'budgetUsage', @@ -86,7 +88,7 @@ const chartData = computed(() => ({ { label: '已占用', data: scaleSeries(occupiedPercent.value), - backgroundColor: '#f59e0b', + backgroundColor: themeColors.value.warning, borderRadius: 5, borderSkipped: false, stack: 'budgetUsage', diff --git a/web/src/components/charts/DonutChart.vue b/web/src/components/charts/DonutChart.vue index 8ce96ea..f3667d3 100644 --- a/web/src/components/charts/DonutChart.vue +++ b/web/src/components/charts/DonutChart.vue @@ -9,7 +9,7 @@
- + {{ item.name }} {{ item.display }}
@@ -27,6 +27,7 @@ import { Legend } from 'chart.js' import { useAnimationProgress } from '../../composables/useAnimationProgress.js' +import { resolveCssColor, useThemeColors } from '../../composables/useThemeColors.js' ChartJS.register(ArcElement, Tooltip, Legend) @@ -37,12 +38,21 @@ const props = defineProps({ }) const progress = useAnimationProgress([() => props.items], 1150) +const themeColors = useThemeColors() +const resolvedItems = computed(() => { + const fallback = themeColors.value.chartPrimary + + return props.items.map((item) => ({ + ...item, + resolvedColor: resolveCssColor(item.color, fallback) + })) +}) const chartData = computed(() => ({ - labels: props.items.map((i) => i.name), + labels: resolvedItems.value.map((i) => i.name), datasets: [{ - data: props.items.map((i) => Math.max(Number((i.value * progress.value).toFixed(1)), 0.001)), - backgroundColor: props.items.map((i) => i.color), + data: resolvedItems.value.map((i) => Math.max(Number((i.value * progress.value).toFixed(1)), 0.001)), + backgroundColor: resolvedItems.value.map((i) => i.resolvedColor), borderWidth: 0, cutout: '68%', spacing: 3, diff --git a/web/src/components/charts/GaugeChart.vue b/web/src/components/charts/GaugeChart.vue index fc50ce9..f4837b2 100644 --- a/web/src/components/charts/GaugeChart.vue +++ b/web/src/components/charts/GaugeChart.vue @@ -33,6 +33,7 @@ import { Tooltip } from 'chart.js' import { useAnimationProgress } from '../../composables/useAnimationProgress.js' +import { useThemeColors } from '../../composables/useThemeColors.js' ChartJS.register(ArcElement, Tooltip) @@ -46,12 +47,13 @@ const props = defineProps({ const ratioValue = computed(() => Number(props.ratio)) const progress = useAnimationProgress([() => props.ratio], 1150) const animatedRatio = computed(() => Number((ratioValue.value * progress.value).toFixed(0))) +const themeColors = useThemeColors() const chartData = computed(() => ({ labels: ['已执行', '剩余'], datasets: [{ data: [animatedRatio.value, 100 - animatedRatio.value], - backgroundColor: ['#10b981', '#e2e8f0'], + backgroundColor: [themeColors.value.chartPrimary, '#e2e8f0'], borderWidth: 0 }] })) @@ -101,7 +103,7 @@ const chartOptions = { } .gauge-center strong { - color: #10b981; + color: var(--chart-primary); font-size: 22px; font-weight: 700; line-height: 1; diff --git a/web/src/components/charts/LogTrendChart.vue b/web/src/components/charts/LogTrendChart.vue index db98a67..b0a1f8b 100644 --- a/web/src/components/charts/LogTrendChart.vue +++ b/web/src/components/charts/LogTrendChart.vue @@ -1,8 +1,8 @@ diff --git a/web/src/views/BudgetCenterView.vue b/web/src/views/BudgetCenterView.vue index b3f8ad7..fd9b0b3 100644 --- a/web/src/views/BudgetCenterView.vue +++ b/web/src/views/BudgetCenterView.vue @@ -35,27 +35,19 @@
@@ -158,14 +150,13 @@
- + 共 {{ totalBudgetRows }} 条,当前第 {{ budgetPage }} / {{ totalBudgetPages }} 页 @@ -232,23 +223,15 @@
-
- -
- -
-
+ @@ -258,6 +241,7 @@