From 9625974d334e5af466089d0c8f4de9cc6b1d4361 Mon Sep 17 00:00:00 2001 From: SilenceLurker Date: Sun, 18 Jan 2026 04:31:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E8=B0=83=E6=95=B4=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Amily2-AdditionalFeatures.html | 876 ++++---- .../Memorisation-forms.html | 856 ++++---- assets/{ => amily-data-table}/table.css | 1800 ++++++++--------- .../amily2-glossary.css | 0 .../amily2-glossary.html | 0 ui/drawer.js | 6 +- 6 files changed, 1769 insertions(+), 1769 deletions(-) rename assets/{ => amily-additional-features}/Amily2-AdditionalFeatures.html (98%) rename assets/{ => amily-data-table}/Memorisation-forms.html (98%) rename assets/{ => amily-data-table}/table.css (96%) rename assets/{ => amily-glossary-system}/amily2-glossary.css (100%) rename assets/{ => amily-glossary-system}/amily2-glossary.html (100%) diff --git a/assets/Amily2-AdditionalFeatures.html b/assets/amily-additional-features/Amily2-AdditionalFeatures.html similarity index 98% rename from assets/Amily2-AdditionalFeatures.html rename to assets/amily-additional-features/Amily2-AdditionalFeatures.html index bc7dee6..dcd5b1a 100644 --- a/assets/Amily2-AdditionalFeatures.html +++ b/assets/amily-additional-features/Amily2-AdditionalFeatures.html @@ -1,438 +1,438 @@ - -
- -
- 内阁密室 -
-
-
- - -
- 皇家史册管理员 - -
-
- - -
- -
- - -
- - -
- -
- -
- -
- - -
- - - 设定始终在你的上下文中保留的最新消息数量。 -
-
-
- 手动敕令司 - - -
- - - - - - -
- -
- - - - - - -
- - - 提示:若“起始层”留空,则仅操作“结束层”所指定的单层。 - -
- - -
- 总结与律法 -
- -
- -
- - - - -
- 更推荐使用独立档案,会生成一个新的世界书执行总结逻辑。 -
- -
-
- - -
-
- - -
- -
- - -
-
-
-
- - -
- Ngms API 调用系统 - - 独立的API调用系统,可与主系统并行使用,支持全兼容和SillyTavern预设两种模式。 - - -
- - -
- - -
- -
- 手动敕史局 - - 赋予你选取任意对话、熔铸为永恒史册的至高权力。 - - - -
- � 微言录 (Small Summary) - - -
-
- - -
- -
-
- -
- - -
-
- - -
- -
- - - - - - -
- -
- - -
- -
- - -
- - -
-
- - -
- - - - -
- - -
- - -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - - 【自动批量】将立即清算所有未记录的历史。 【静默总结】则在您聊天时,于后台默默守护史册的完整。 - - - -
-
- - -
- -
- 📚 史册归档与回溯 - - 管理多条时间线的史册,随时封存或重启旧的历史。 - - -
- -
- -
-
- -
- - -
-
-
- - - -
- - -
- -
- 💎 宏史卷 (史册精炼) - - -
-
- - -
- -
-
- -
- - -
-
- - -
- -
- -
- -
- - -
-
- -
- -
- - -
-
-
- - - - -
- - -
-
- -
- - - - -
+ +
+ +
+ 内阁密室 +
+
+
+ + +
+ 皇家史册管理员 + +
+
+ + +
+ +
+ + +
+ + +
+ +
+ +
+ +
+ + +
+ + + 设定始终在你的上下文中保留的最新消息数量。 +
+
+
+ 手动敕令司 + + +
+ + + - + + +
+ +
+ + + - + + +
+ + + 提示:若“起始层”留空,则仅操作“结束层”所指定的单层。 + +
+ + +
+ 总结与律法 +
+ +
+ +
+ + + + +
+ 更推荐使用独立档案,会生成一个新的世界书执行总结逻辑。 +
+ +
+
+ + +
+
+ + +
+ +
+ + +
+
+
+
+ + +
+ Ngms API 调用系统 + + 独立的API调用系统,可与主系统并行使用,支持全兼容和SillyTavern预设两种模式。 + + +
+ + +
+ + +
+ +
+ 手动敕史局 + + 赋予你选取任意对话、熔铸为永恒史册的至高权力。 + + + +
+ � 微言录 (Small Summary) + + +
+
+ + +
+ +
+
+ +
+ + +
+
+ + +
+ +
+ + + - + + +
+ +
+ + +
+ +
+ + +
+ + +
+
+ + +
+ + + + +
+ + +
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + + + 【自动批量】将立即清算所有未记录的历史。 【静默总结】则在您聊天时,于后台默默守护史册的完整。 + + + +
+
+ + +
+ +
+ 📚 史册归档与回溯 + + 管理多条时间线的史册,随时封存或重启旧的历史。 + + +
+ +
+ +
+
+ +
+ + +
+
+
+ + + +
+ + +
+ +
+ 💎 宏史卷 (史册精炼) + + +
+
+ + +
+ +
+
+ +
+ + +
+
+ + +
+ +
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + + + +
+ + +
+
+ +
+ + + + +
diff --git a/assets/Memorisation-forms.html b/assets/amily-data-table/Memorisation-forms.html similarity index 98% rename from assets/Memorisation-forms.html rename to assets/amily-data-table/Memorisation-forms.html index ee2c656..26db55c 100644 --- a/assets/Memorisation-forms.html +++ b/assets/amily-data-table/Memorisation-forms.html @@ -1,428 +1,428 @@ - - - - - Amily2 表格编辑器 - - - - - -
-
- 内存储司 · 表格核心 -
- -
-
- -
-
- 中枢决策室 - -
- - - - -
- -
-
-
- - - - - -
- - - - - - -
- - -
-
- - -
-
- - -
-
- -
-
- - -
- -
- - -
- -
- -
- -
- - - - -
-
- - - - -
- -
- - -
-
- -
- 勾选需要注入的条目。 -
-
- -
-
- - -
-
- - -
-
- - -
-
- -
- - - - - - -
-
- - - - - -
- - - - - - - -
-

说明:可以导出不含剧情的"纯净预设"用于分享,或导出包含剧情的"完整备份"用于存档。

- -
- - -
- 历史记录清理 -
- -
- - -
- - 警告:此操作将永久删除指定楼层之前所有消息中存储的表格快照。这可以显著减小聊天记录文件的大小,但会导致无法回退到这些楼层的表格状态。当前最新的表格状态不会受影响。 - -
-
- -
- - -
- Nccs API 系统 - -
- - -
- - -
- -
- -
- - - -
-

说明:导入下载的主题JSON文件,或将当前的外观导出分享。

-
- - -
-
- 规则提示词 -
- -
- - -
-
-
- -
- 流程提示词 -
- -
- - -
-
-
- -
- -
- -
- - - - -
- - -
- - - - - -
-
-
-
-
- -
- -
-
- -
- -
- -
-
- - - + + + + + Amily2 表格编辑器 + + + + + +
+
+ 内存储司 · 表格核心 +
+ +
+
+ +
+
+ 中枢决策室 + +
+ + + + +
+ +
+
+
+ + + + + +
+ + + + + + +
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+ +
+ + +
+ +
+ +
+ +
+ + + + +
+
+ + + + +
+ +
+ + +
+
+ +
+ 勾选需要注入的条目。 +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + + + + + +
+
+ + + + + +
+ + + + + + + +
+

说明:可以导出不含剧情的"纯净预设"用于分享,或导出包含剧情的"完整备份"用于存档。

+ +
+ + +
+ 历史记录清理 +
+ +
+ + +
+ + 警告:此操作将永久删除指定楼层之前所有消息中存储的表格快照。这可以显著减小聊天记录文件的大小,但会导致无法回退到这些楼层的表格状态。当前最新的表格状态不会受影响。 + +
+
+ +
+ + +
+ Nccs API 系统 + +
+ + +
+ + +
+ +
+ +
+ + + +
+

说明:导入下载的主题JSON文件,或将当前的外观导出分享。

+
+ + +
+
+ 规则提示词 +
+ +
+ + +
+
+
+ +
+ 流程提示词 +
+ +
+ + +
+
+
+ +
+ +
+ +
+ + + + +
+ + +
+ + + + + +
+
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ + + diff --git a/assets/table.css b/assets/amily-data-table/table.css similarity index 96% rename from assets/table.css rename to assets/amily-data-table/table.css index 7eb1d46..3997da2 100644 --- a/assets/table.css +++ b/assets/amily-data-table/table.css @@ -1,900 +1,900 @@ -:root { - --amily2-bg-color: #2C2C2C; - --amily2-button-color: #4A4A4A; - --amily2-text-color: #E0E0E0; - - /* Global Table Variables */ - --am2-gap-main: 10px; - --am2-padding-main: 8px 5px; - - --am2-container-bg: rgba(0, 0, 0, 0.2); - --am2-container-border: 1px solid rgba(255, 255, 255, 0.2); - --am2-container-border-radius: 12px; - --am2-container-padding: 10px 5px; - --am2-container-shadow: inset 0 0 15px rgba(0,0,0,0.2); - - --am2-title-font-size: 1.1em; - --am2-title-font-weight: bold; - --am2-title-text-shadow: 0 0 5px rgba(200, 200, 255, 0.3); - --am2-title-gradient-start: #c0bde4; - --am2-title-gradient-end: #dfdff0; - --am2-title-icon-color: #9e8aff; - --am2-title-icon-margin: 10px; - - --am2-table-bg: rgba(40, 40, 45, 0.8); - --am2-table-border: 1px solid rgba(255, 255, 255, 0.15); - --am2-table-cell-padding: 4px 6px; - - --am2-header-bg: rgba(255, 255, 255, 0.1); - --am2-header-color: #ececec; - --am2-row-even-bg: rgba(0, 0, 0, 0.15); - --am2-row-hover-bg: rgba(255, 255, 255, 0.1); - --am2-header-editable-bg: rgba(172, 216, 255, 0.1); - --am2-header-editable-focus-bg: rgba(172, 216, 255, 0.25); - --am2-header-editable-focus-outline: 1px solid #79b8ff; - - --am2-cell-editable-bg: rgba(255, 255, 172, 0.1); - --am2-cell-editable-focus-bg: rgba(255, 255, 172, 0.25); - --am2-cell-editable-focus-outline: 1px solid #ffc107; - - --am2-index-col-bg: rgba(0, 0, 0, 0.2); - --am2-index-col-color: #9e8aff; - --am2-index-col-width: 40px; - --am2-index-col-padding: 4px 5px; - - --am2-controls-gap: 5px; - --am2-controls-margin-bottom: 10px; - - --am2-cell-highlight-bg: rgba(144, 238, 144, 0.3); -} - -#amily2_memorisation_forms_panel { - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - gap: var(--am2-gap-main); - padding: var(--am2-padding-main); - box-sizing: border-box; - min-width: 0; -} - -#upper-controls-wrapper { -} - -#amily2_memorisation_forms_panel #all-tables-container { - overflow-y: auto; - padding: var(--am2-container-padding); - border: var(--am2-container-border); - border-radius: var(--am2-container-border-radius); - background: transparent; - box-shadow: var(--am2-container-shadow); -} - -.amily2-table-header-container { - background-color: rgba(50, 50, 55, 0.9); - border: 1px solid rgba(255, 255, 255, 0.15); - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 8px 8px 0 0; - padding: 8px 12px; - margin-bottom: 0; - display: flex; - justify-content: space-between; - align-items: center; -} - -#amily2_memorisation_forms_panel #all-tables-container h3 { - font-size: 1em; - font-weight: bold; - padding: 0; - margin: 0; - color: #e0e0e0; - text-shadow: none; - display: flex; - align-items: center; - white-space: nowrap; - flex-shrink: 0; -} - -#amily2_memorisation_forms_panel #all-tables-container h3 > i { - margin-right: 8px; - color: #9e8aff; -} - -#amily2_memorisation_forms_panel .table-controls { - display: flex; - flex-direction: row; - gap: 5px; - justify-content: flex-end; - margin-bottom: 0; - transition: box-shadow 0.5s ease-in-out; - table-layout: fixed; - width: 100%; - box-shadow: 0 4px 15px rgba(0,0,0,0.3); - border-radius: 8px; - overflow: hidden; - border: 1px solid rgba(255, 255, 255, 0.1); -} - -#amily2_memorisation_forms_panel table[id^="amily2-table-"] tr:nth-child(even) { - background-color: var(--am2-row-even-bg); -} - -#amily2_memorisation_forms_panel table[id^="amily2-table-"] tr:hover { - background-color: var(--am2-row-hover-bg); -} - -#amily2_memorisation_forms_panel table[id^="amily2-table-"] th, -#amily2_memorisation_forms_panel table[id^="amily2-table-"] td { - border-right: var(--am2-table-border); - border-bottom: var(--am2-table-border); - padding: 0; - text-align: left; - vertical-align: middle; -} - -#amily2_memorisation_forms_panel table[id^="amily2-table-"] th:last-child, -#amily2_memorisation_forms_panel table[id^="amily2-table-"] td:last-child { - border-right: none; -} - -#amily2_memorisation_forms_panel table[id^="amily2-table-"] tr:last-child td { - border-bottom: none; -} - -.amily2-cell-content { - padding: var(--am2-table-cell-padding); - white-space: normal; - word-break: break-word; - height: auto; - max-height: 120px; /* Limit cell height */ - overflow-y: auto; /* Allow scrolling for long content */ - line-height: 1.3; -} - -/* Custom scrollbar for cell content */ -.amily2-cell-content::-webkit-scrollbar { - width: 4px; -} - -.amily2-cell-content::-webkit-scrollbar-track { - background: rgba(0, 0, 0, 0.1); -} - -.amily2-cell-content::-webkit-scrollbar-thumb { - background: rgba(255, 255, 255, 0.2); - border-radius: 2px; -} - -.amily2-cell-content::-webkit-scrollbar-thumb:hover { - background: rgba(255, 255, 255, 0.4); -} - -#amily2_memorisation_forms_panel table[id^="amily2-table-"] th { - background-color: var(--am2-header-bg); - color: var(--am2-header-color); - font-weight: 600; - position: relative; - font-size: 0.95em; - letter-spacing: 0.5px; - border-bottom: 2px solid rgba(158, 138, 255, 0.4) !important; /* Accent color border */ - padding: 6px 8px; /* Direct padding for th */ -} - -#amily2_memorisation_forms_panel .amily2-resizer { - position: absolute; - top: 0; - right: -5px; /* Center the larger handle on the border */ - width: 10px; /* Increase hit area for easier grabbing */ - height: 100%; - cursor: col-resize; - user-select: none; - background-color: transparent; /* Make the larger hit area invisible until hovered */ - transition: background-color 0.2s ease; -} - -#amily2_memorisation_forms_panel .amily2-resizer:hover, -#amily2_memorisation_forms_panel .amily2-resizer:active { - background-color: rgba(158, 138, 255, 0.5); -} - -#amily2_memorisation_forms_panel .index-col { - background-color: var(--am2-index-col-bg); - text-align: center !important; - font-weight: bold; - color: var(--am2-index-col-color); - padding: var(--am2-table-cell-padding); - word-break: normal; - position: relative; - cursor: pointer; - border-right: 1px solid rgba(255, 255, 255, 0.1); - font-family: monospace; - font-size: 1.1em; -} - -#amily2_memorisation_forms_panel th[contenteditable="true"] { - background-color: var(--am2-header-editable-bg); - transition: background-color 0.3s; -} - -#amily2_memorisation_forms_panel th[contenteditable="true"]:focus { - background-color: var(--am2-header-editable-focus-bg); - outline: var(--am2-header-editable-focus-outline); -} - -#amily2_memorisation_forms_panel td[contenteditable="true"] { - background-color: var(--am2-cell-editable-bg); - transition: background-color 0.3s; -} - -#amily2_memorisation_forms_panel td[contenteditable="true"]:focus { - background-color: var(--am2-cell-editable-focus-bg); - outline: var(--am2-cell-editable-focus-outline); -} - -#amily2_memorisation_forms_panel .menu_button { - background: var(--am2-button-bg, var(--amily2-button-color)); - background-image: var(--am2-button-gradient, none); - background-size: 200% 100%; - background-position: 0% 50%; - border: 1px solid var(--am2-button-border-color, rgba(255, 255, 255, 0.2)) !important; - color: var(--am2-button-text-color, var(--amily2-text-color)) !important; - padding: 8px 15px; - border-radius: 8px; - cursor: pointer; - font-weight: bold; - transition: all 0.4s ease-out !important; -} - -#amily2_memorisation_forms_panel .menu_button:hover { - background-color: var(--am2-button-hover-bg, rgba(255, 255, 255, 0.2)); - background-position: 100% 50%; - border-color: var(--am2-button-hover-border-color, #fff) !important; - transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(0,0,0,0.4); -} - -#amily2_memorisation_forms_panel .menu_button.danger { - background: var(--am2-button-danger-bg, rgba(255, 82, 82, 0.2)) !important; - border-color: var(--am2-button-danger-border-color, rgba(255, 82, 82, 0.5)) !important; -} - -#amily2_memorisation_forms_panel .menu_button.danger:hover { - background: var(--am2-button-danger-hover-bg, rgba(255, 82, 82, 0.4)) !important; - border-color: var(--am2-button-danger-hover-border-color, #ff5252) !important; -} - -/* 【延迟删除】恢复按钮的成功样式 */ -#amily2_memorisation_forms_panel .menu_button.success { - background: var(--am2-button-success-bg, rgba(40, 167, 69, 0.2)) !important; - border-color: var(--am2-button-success-border-color, rgba(40, 167, 69, 0.5)) !important; -} - -#amily2_memorisation_forms_panel .menu_button.success:hover { - background: var(--am2-button-success-hover-bg, rgba(40, 167, 69, 0.4)) !important; - border-color: var(--am2-button-success-hover-border-color, #28a745) !important; -} - -#amily2_memorisation_forms_panel .menu_button.small_button { - padding: 5px 12px; - font-size: 0.9em; - border-radius: 6px; - writing-mode: horizontal-tb !important; - white-space: nowrap; -} - -#amily2_memorisation_forms_panel .hly-log-display { - background: transparent; - border-radius: 8px; - padding: 12px; - border: 1px solid #444; - max-height: 100px; - overflow-y: auto; - font-size: 0.9em; - color: var(--amily2-text-color); - display: flex; - flex-direction: column; - gap: 5px; - margin-bottom: 10px; -} - -#amily2_memorisation_forms_panel .hly-log-entry { - margin: 0; - padding: 4px 8px; - border-radius: 4px; - line-height: 1.5; - text-shadow: 1px 1px 2px rgba(0,0,0,0.5); -} - -#amily2_memorisation_forms_panel .hly-log-entry .fa-solid { - margin-right: 8px; - width: 16px; - text-align: center; -} - -#amily2_memorisation_forms_panel .log-info { - color: #a0c4ff; - border-left: 3px solid #6b9eff; -} - -#amily2_memorisation_forms_panel .log-success { - color: #a8d8b4; - border-left: 3px solid #5cb85c; -} - -#amily2_memorisation_forms_panel .log-error { - color: #ffadad; - border-left: 3px solid #d9534f; -} - -#amily2_memorisation_forms_panel .log-warn { - color: #ffd6a5; - border-left: 3px solid #f0ad4e; -} - - -.settings-group { - border: 1px solid rgba(255, 255, 255, 0.2); - border-radius: 12px; - padding: 12px; - margin: 0; -} - -.settings-group > legend { - color: var(--amily2-text-color); - font-weight: bold; - padding: 0 10px; - margin-left: 10px; - font-size: 1.1em; -} - -.settings-group > legend > i { - margin-right: 8px; - color: #9e8aff; -} - -.central-control-wrapper { - display: flex; - flex-direction: row; - gap: 15px; -} - -.central-control-wrapper .control-section { - flex: 1; - display: flex; - flex-direction: column; -} - -.central-control-wrapper #ai-template-section .hly-textarea { - flex-grow: 1; - height: 100%; - min-height: 150px; -} - -.central-control-wrapper .vertical-divider { - width: 1px; - background-color: rgba(255, 255, 255, 0.2); - align-self: stretch; -} - - -.inline-settings-grid { - display: grid; - grid-template-columns: auto 1fr; - gap: 8px 12px; - align-items: center; -} - -.inline-settings-grid label { - font-weight: bold; - text-align: right; - white-space: nowrap; -} - -.inline-settings-grid .text_pole { - width: 100%; -} - - -#amily2_memorisation_forms_panel.prompt-editor-area { - display: flex; - flex-direction: column; - gap: 8px; -} - -#amily2_memorisation_forms_panel.editor-buttons-panel { - display: flex; - justify-content: flex-end; - gap: 8px; -} - - -#add-table-placeholder { - width: 100%; - padding: 20px 0; - border: 2px dashed rgba(255, 255, 255, 0.3); - border-radius: 12px; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - transition: all 0.3s ease; - margin-top: 20px; -} - -#add-table-placeholder i { - font-size: 2em; - color: rgba(255, 255, 255, 0.4); - transition: all 0.3s ease; -} - -#add-table-placeholder:hover { - background-color: rgba(255, 255, 255, 0.05); - border-color: rgba(255, 255, 255, 0.6); -} - -#add-table-placeholder:hover i { - color: rgba(255, 255, 255, 0.8); - transform: scale(1.1); -} - - -#amily2-action-center { - display: flex !important; - flex-direction: row !important; - gap: 10px !important; -} - - -.sinan-navigation-deck { - display: flex; - border-bottom: 1px solid rgba(255, 255, 255, 0.2); - margin-bottom: 15px; -} - -.sinan-nav-item { - padding: 10px 20px; - cursor: pointer; - border: none; - background-color: transparent; - color: var(--amily2-text-color); - font-size: 1em; - border-bottom: 3px solid transparent; - transition: all 0.3s ease; -} - -.sinan-nav-item:hover { - background-color: rgba(255, 255, 255, 0.05); - color: var(--amily2-text-color); -} - -.sinan-nav-item.active { - color: #9e8aff; - border-bottom-color: #9e8aff; - font-weight: bold; -} - -.sinan-nav-item i { - margin-right: 8px; -} - -.sinan-content-wrapper { - padding: 10px; -} - -.sinan-tab-pane { - display: none; - animation: fadeIn 0.5s; -} - -.sinan-tab-pane.active { - display: block; -} - -.action-center-buttons { - display: flex; - flex-wrap: wrap; - gap: 15px; - justify-content: center; -} - -.action-center-buttons .menu_button { - flex-grow: 1; - min-width: 180px; -} - -.notes { - font-size: 0.9em; - color: var(--amily2-text-color); - margin-top: 15px; - text-align: center; -} - -@keyframes fadeIn { - from { opacity: 0; } - to { opacity: 1; } -} - -.control-block-with-switch { - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px; - background-color: rgba(255, 255, 255, 0.05); - border-radius: 8px; -} - -.control-block-with-switch label { - font-weight: bold; - color: var(--amily2-text-color); -} - -.toggle-switch { - position: relative; - display: inline-block; - width: 50px; - height: 28px; -} - -.toggle-switch input { - opacity: 0; - width: 0; - height: 0; -} - -#amily2_memorisation_forms_panel .slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #555; - transition: .4s; - border-radius: 28px; -} -#amily2_memorisation_forms_panel .slider:before { - position: absolute; - content: ""; - height: 20px; - width: 20px; - left: 4px; - top: 50%; - background-color: var(--amily2-text-color); - border-radius: 50%; - transition: .4s; - transform: translateY(-50%); -} - -#amily2_memorisation_forms_panel input:checked + .slider { - background-color: #8a72ff; -} - -#amily2_memorisation_forms_panel input:focus + .slider { - box-shadow: 0 0 1px #8a72ff; -} - -#amily2_memorisation_forms_panel input:checked + .slider:before { - transform: translateX(22px) translateY(-50%); -} - -.amily2-context-menu { - display: none; - z-index: 9999; - flex-direction: column; - gap: 0; - padding: 4px; - background-color: rgba(30, 30, 40, 0.98); - border: 1px solid rgba(255, 255, 255, 0.5); - border-radius: 6px; - box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); - width: max-content; -} - -.amily2-row-context-menu { - position: absolute; - top: 0; - left: 100%; - z-index: 10000; - display: none; /* Initially hidden */ - flex-direction: column; - gap: 4px; - padding: 8px; - width: max-content; - background-color: rgba(30, 30, 40, 0.98); - border: 1px solid rgba(255, 255, 255, 0.5); - border-radius: 6px; - box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); -} - -/* Now controlled by a class on the parent TD for consistency */ -td.amily2-menu-open .amily2-row-context-menu { - display: flex; -} - -.amily2-context-menu.amily2-menu-active { - display: flex; -} - -th .amily2-context-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 10000; - display: none; - grid-template-columns: repeat(2, 1fr); - gap: 4px; - padding: 8px; - width: max-content; - background-color: rgba(30, 30, 40, 0.98); - border: 1px solid rgba(255, 255, 255, 0.5); - border-radius: 6px; - box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); -} - -th.amily2-menu-open .amily2-context-menu { - display: grid; -} - -#amily2_memorisation_forms_panel .amily2-context-menu .menu_button { - white-space: nowrap; - border: none !important; - border-radius: 0 !important; - padding: 4px 8px !important; - font-size: 0.85em !important; - background: transparent !important; - transition: background-color 0.2s ease !important; - text-align: left !important; - font-weight: normal !important; - transform: none !important; - box-shadow: none !important; - margin: 0 !important; -} - -#amily2_memorisation_forms_panel .amily2-context-menu .menu_button:hover { - background: rgba(255, 255, 255, 0.15) !important; - transform: none !important; - box-shadow: none !important; -} - -/* This rule is now part of the main .amily2-row-context-menu block above */ - -@media (max-width: 768px) { - #amily2_memorisation_forms_panel { - padding: 0; - } - - #upper-controls-wrapper { - padding: var(--am2-padding-main); - } - - #amily2_memorisation_forms_panel #all-tables-container { - padding: 10px 2px; - } - - /* Make resizer easier to touch on mobile */ - #amily2_memorisation_forms_panel .amily2-resizer { - width: 15px; - right: -7px; /* Adjust position to keep it centered on the border */ - } -} - -#amily2_memorisation_forms_panel .cell-highlight { - background-color: var(--am2-cell-highlight-bg, rgba(144, 238, 144, 0.3)) !important; - transition: background-color 0.3s ease-in-out; -} - - -/* 自定义列名编辑对话框样式 */ -.custom-input-dialog { - border: none; - border-radius: 12px; - background: rgba(30, 30, 40, 0.95); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6); - width: 90vw; - max-width: 450px; - padding: 0; -} - -.custom-input-dialog .popup-body { - background: rgba(40, 45, 60, 0.9); - border-radius: 12px; - border: 1px solid rgba(255, 255, 255, 0.15); -} - -.custom-input-dialog #column-name-input { - transition: all 0.3s ease; -} - -.custom-input-dialog #column-name-input:focus { - border-color: rgba(158, 138, 255, 0.8) !important; - box-shadow: 0 0 8px rgba(158, 138, 255, 0.3); - outline: none; -} - -.custom-input-dialog .popup-button-ok:hover { - background: rgba(158, 138, 255, 0.5) !important; - border-color: rgba(158, 138, 255, 0.8) !important; - transform: translateY(-1px); -} - -.custom-input-dialog .popup-button-cancel:hover { - background: rgba(120, 120, 120, 0.4) !important; - border-color: rgba(120, 120, 120, 0.6) !important; - transform: translateY(-1px); -} - -/* Nccs API 按钮行样式 */ -.nccs-button-row { - display: flex; - gap: 10px; - justify-content: center; - align-items: center; - margin-top: 15px; -} - -.nccs-button-row .menu_button { - min-width: 120px; - height: 35px; - border-radius: 20px; - background: linear-gradient(45deg, rgba(74, 158, 255, 0.6), rgba(138, 114, 255, 0.6)); - border: 1px solid rgba(74, 158, 255, 0.8) !important; - color: #fff !important; - font-weight: bold; - transition: all 0.3s ease; - display: flex; - align-items: center; - justify-content: center; - gap: 5px; -} - -.nccs-button-row .menu_button:hover { - background: linear-gradient(45deg, rgba(74, 158, 255, 0.8), rgba(138, 114, 255, 0.8)); - transform: translateY(-2px); - box-shadow: 0 4px 15px rgba(74, 158, 255, 0.4); -} - -.nccs-button-row .menu_button.secondary { - background: linear-gradient(45deg, rgba(120, 120, 120, 0.6), rgba(160, 160, 160, 0.6)); - border: 1px solid rgba(120, 120, 120, 0.8) !important; -} - -.nccs-button-row .menu_button.secondary:hover { - background: linear-gradient(45deg, rgba(120, 120, 120, 0.8), rgba(160, 160, 160, 0.8)); - box-shadow: 0 4px 15px rgba(120, 120, 120, 0.4); -} - -/* Styles for tables injected into chat messages */ -#amily2-chat-table-container { - margin-top: 10px; - padding: 10px; - border: 1px solid var(--am2-container-border, rgba(255, 255, 255, 0.2)); - border-radius: 8px; - background-color: rgba(0, 0, 0, 0.2); - backdrop-filter: blur(5px); - -webkit-backdrop-filter: blur(5px); - overflow-x: auto; /* Ensure horizontal scrolling on small screens */ -} - -.amily2-chat-table { - margin-bottom: 15px; -} - -.amily2-chat-table:last-child { - margin-bottom: 0; -} - -.amily2-chat-table h4 { - font-size: 1em; - font-weight: bold; - color: var(--am2-header-color, #e0e0e0); - margin-bottom: 8px; - padding-bottom: 5px; - border-bottom: 1px solid var(--am2-table-border, rgba(255, 255, 255, 0.25)); -} - -.amily2-chat-table table { - width: 100%; - border-collapse: collapse; - font-size: 0.9em; -} - -.amily2-chat-table th, -.amily2-chat-table td { - border: 1px solid rgba(255, 255, 255, 0.2); - padding: 5px 8px; - text-align: left; - vertical-align: top; -} - -.amily2-chat-table th { - background-color: rgba(255, 255, 255, 0.1); - font-weight: bold; - border-bottom: 1px solid rgba(255, 255, 255, 0.3); -} - -/* Styles for collapsible in-chat tables */ -.amily2-chat-table-summary { - cursor: pointer; - font-weight: bold; - padding: 5px; - border-radius: 4px; - transition: background-color 0.2s ease; - list-style: none; /* Hide the default triangle */ - display: block; -} - -.amily2-chat-table-summary::-webkit-details-marker { - display: none; /* Hide the default triangle in Chrome/Safari */ -} - -.amily2-chat-table-summary:before { - content: '▶'; - margin-right: 8px; - font-size: 0.8em; - display: inline-block; - transition: transform 0.2s ease; -} - -.amily2-chat-table-details[open] > .amily2-chat-table-summary:before { - transform: rotate(90deg); -} - -.amily2-chat-table-summary:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -@media (max-width: 768px) { - .amily2-chat-table th, - .amily2-chat-table td { - padding: 4px 6px; /* Reduce padding on mobile */ - font-size: 0.85em; /* Slightly smaller font on mobile */ - } - - #amily2-chat-table-container { - padding: 5px; /* Reduce container padding on mobile */ - } - - /* On mobile, allow text wrapping to prevent overflow */ - .amily2-chat-table th, - .amily2-chat-table td { - white-space: normal; - word-break: break-all; - } -} - -.amily2-chat-table td.amily2-cell-highlight { - background-color: var(--am2-cell-highlight-bg, rgba(144, 238, 144, 0.3)); - transition: background-color 0.5s ease-in-out; -} - -#amily2-chat-table-container.mobile-table-view .amily2-chat-table th, -#amily2-chat-table-container.mobile-table-view .amily2-chat-table td { - white-space: nowrap; -} - -.pending-deletion-row { - background-color: rgba(255, 82, 82, 0.15) !important; - transition: background-color 0.3s ease; -} - -.pending-deletion-row:hover { - background-color: rgba(255, 82, 82, 0.25) !important; -} - -.pending-deletion-row td { - opacity: 0.7; -} -h3.table-updated { - color: #87CEFA !important; - text-shadow: 0 0 8px #00BFFF, 0 0 12px rgba(0, 191, 255, 0.5); - transition: color 0.4s ease-in-out, text-shadow 0.4s ease-in-out; -} +:root { + --amily2-bg-color: #2C2C2C; + --amily2-button-color: #4A4A4A; + --amily2-text-color: #E0E0E0; + + /* Global Table Variables */ + --am2-gap-main: 10px; + --am2-padding-main: 8px 5px; + + --am2-container-bg: rgba(0, 0, 0, 0.2); + --am2-container-border: 1px solid rgba(255, 255, 255, 0.2); + --am2-container-border-radius: 12px; + --am2-container-padding: 10px 5px; + --am2-container-shadow: inset 0 0 15px rgba(0,0,0,0.2); + + --am2-title-font-size: 1.1em; + --am2-title-font-weight: bold; + --am2-title-text-shadow: 0 0 5px rgba(200, 200, 255, 0.3); + --am2-title-gradient-start: #c0bde4; + --am2-title-gradient-end: #dfdff0; + --am2-title-icon-color: #9e8aff; + --am2-title-icon-margin: 10px; + + --am2-table-bg: rgba(40, 40, 45, 0.8); + --am2-table-border: 1px solid rgba(255, 255, 255, 0.15); + --am2-table-cell-padding: 4px 6px; + + --am2-header-bg: rgba(255, 255, 255, 0.1); + --am2-header-color: #ececec; + --am2-row-even-bg: rgba(0, 0, 0, 0.15); + --am2-row-hover-bg: rgba(255, 255, 255, 0.1); + --am2-header-editable-bg: rgba(172, 216, 255, 0.1); + --am2-header-editable-focus-bg: rgba(172, 216, 255, 0.25); + --am2-header-editable-focus-outline: 1px solid #79b8ff; + + --am2-cell-editable-bg: rgba(255, 255, 172, 0.1); + --am2-cell-editable-focus-bg: rgba(255, 255, 172, 0.25); + --am2-cell-editable-focus-outline: 1px solid #ffc107; + + --am2-index-col-bg: rgba(0, 0, 0, 0.2); + --am2-index-col-color: #9e8aff; + --am2-index-col-width: 40px; + --am2-index-col-padding: 4px 5px; + + --am2-controls-gap: 5px; + --am2-controls-margin-bottom: 10px; + + --am2-cell-highlight-bg: rgba(144, 238, 144, 0.3); +} + +#amily2_memorisation_forms_panel { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + gap: var(--am2-gap-main); + padding: var(--am2-padding-main); + box-sizing: border-box; + min-width: 0; +} + +#upper-controls-wrapper { +} + +#amily2_memorisation_forms_panel #all-tables-container { + overflow-y: auto; + padding: var(--am2-container-padding); + border: var(--am2-container-border); + border-radius: var(--am2-container-border-radius); + background: transparent; + box-shadow: var(--am2-container-shadow); +} + +.amily2-table-header-container { + background-color: rgba(50, 50, 55, 0.9); + border: 1px solid rgba(255, 255, 255, 0.15); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px 8px 0 0; + padding: 8px 12px; + margin-bottom: 0; + display: flex; + justify-content: space-between; + align-items: center; +} + +#amily2_memorisation_forms_panel #all-tables-container h3 { + font-size: 1em; + font-weight: bold; + padding: 0; + margin: 0; + color: #e0e0e0; + text-shadow: none; + display: flex; + align-items: center; + white-space: nowrap; + flex-shrink: 0; +} + +#amily2_memorisation_forms_panel #all-tables-container h3 > i { + margin-right: 8px; + color: #9e8aff; +} + +#amily2_memorisation_forms_panel .table-controls { + display: flex; + flex-direction: row; + gap: 5px; + justify-content: flex-end; + margin-bottom: 0; + transition: box-shadow 0.5s ease-in-out; + table-layout: fixed; + width: 100%; + box-shadow: 0 4px 15px rgba(0,0,0,0.3); + border-radius: 8px; + overflow: hidden; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +#amily2_memorisation_forms_panel table[id^="amily2-table-"] tr:nth-child(even) { + background-color: var(--am2-row-even-bg); +} + +#amily2_memorisation_forms_panel table[id^="amily2-table-"] tr:hover { + background-color: var(--am2-row-hover-bg); +} + +#amily2_memorisation_forms_panel table[id^="amily2-table-"] th, +#amily2_memorisation_forms_panel table[id^="amily2-table-"] td { + border-right: var(--am2-table-border); + border-bottom: var(--am2-table-border); + padding: 0; + text-align: left; + vertical-align: middle; +} + +#amily2_memorisation_forms_panel table[id^="amily2-table-"] th:last-child, +#amily2_memorisation_forms_panel table[id^="amily2-table-"] td:last-child { + border-right: none; +} + +#amily2_memorisation_forms_panel table[id^="amily2-table-"] tr:last-child td { + border-bottom: none; +} + +.amily2-cell-content { + padding: var(--am2-table-cell-padding); + white-space: normal; + word-break: break-word; + height: auto; + max-height: 120px; /* Limit cell height */ + overflow-y: auto; /* Allow scrolling for long content */ + line-height: 1.3; +} + +/* Custom scrollbar for cell content */ +.amily2-cell-content::-webkit-scrollbar { + width: 4px; +} + +.amily2-cell-content::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.1); +} + +.amily2-cell-content::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 2px; +} + +.amily2-cell-content::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.4); +} + +#amily2_memorisation_forms_panel table[id^="amily2-table-"] th { + background-color: var(--am2-header-bg); + color: var(--am2-header-color); + font-weight: 600; + position: relative; + font-size: 0.95em; + letter-spacing: 0.5px; + border-bottom: 2px solid rgba(158, 138, 255, 0.4) !important; /* Accent color border */ + padding: 6px 8px; /* Direct padding for th */ +} + +#amily2_memorisation_forms_panel .amily2-resizer { + position: absolute; + top: 0; + right: -5px; /* Center the larger handle on the border */ + width: 10px; /* Increase hit area for easier grabbing */ + height: 100%; + cursor: col-resize; + user-select: none; + background-color: transparent; /* Make the larger hit area invisible until hovered */ + transition: background-color 0.2s ease; +} + +#amily2_memorisation_forms_panel .amily2-resizer:hover, +#amily2_memorisation_forms_panel .amily2-resizer:active { + background-color: rgba(158, 138, 255, 0.5); +} + +#amily2_memorisation_forms_panel .index-col { + background-color: var(--am2-index-col-bg); + text-align: center !important; + font-weight: bold; + color: var(--am2-index-col-color); + padding: var(--am2-table-cell-padding); + word-break: normal; + position: relative; + cursor: pointer; + border-right: 1px solid rgba(255, 255, 255, 0.1); + font-family: monospace; + font-size: 1.1em; +} + +#amily2_memorisation_forms_panel th[contenteditable="true"] { + background-color: var(--am2-header-editable-bg); + transition: background-color 0.3s; +} + +#amily2_memorisation_forms_panel th[contenteditable="true"]:focus { + background-color: var(--am2-header-editable-focus-bg); + outline: var(--am2-header-editable-focus-outline); +} + +#amily2_memorisation_forms_panel td[contenteditable="true"] { + background-color: var(--am2-cell-editable-bg); + transition: background-color 0.3s; +} + +#amily2_memorisation_forms_panel td[contenteditable="true"]:focus { + background-color: var(--am2-cell-editable-focus-bg); + outline: var(--am2-cell-editable-focus-outline); +} + +#amily2_memorisation_forms_panel .menu_button { + background: var(--am2-button-bg, var(--amily2-button-color)); + background-image: var(--am2-button-gradient, none); + background-size: 200% 100%; + background-position: 0% 50%; + border: 1px solid var(--am2-button-border-color, rgba(255, 255, 255, 0.2)) !important; + color: var(--am2-button-text-color, var(--amily2-text-color)) !important; + padding: 8px 15px; + border-radius: 8px; + cursor: pointer; + font-weight: bold; + transition: all 0.4s ease-out !important; +} + +#amily2_memorisation_forms_panel .menu_button:hover { + background-color: var(--am2-button-hover-bg, rgba(255, 255, 255, 0.2)); + background-position: 100% 50%; + border-color: var(--am2-button-hover-border-color, #fff) !important; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0,0,0,0.4); +} + +#amily2_memorisation_forms_panel .menu_button.danger { + background: var(--am2-button-danger-bg, rgba(255, 82, 82, 0.2)) !important; + border-color: var(--am2-button-danger-border-color, rgba(255, 82, 82, 0.5)) !important; +} + +#amily2_memorisation_forms_panel .menu_button.danger:hover { + background: var(--am2-button-danger-hover-bg, rgba(255, 82, 82, 0.4)) !important; + border-color: var(--am2-button-danger-hover-border-color, #ff5252) !important; +} + +/* 【延迟删除】恢复按钮的成功样式 */ +#amily2_memorisation_forms_panel .menu_button.success { + background: var(--am2-button-success-bg, rgba(40, 167, 69, 0.2)) !important; + border-color: var(--am2-button-success-border-color, rgba(40, 167, 69, 0.5)) !important; +} + +#amily2_memorisation_forms_panel .menu_button.success:hover { + background: var(--am2-button-success-hover-bg, rgba(40, 167, 69, 0.4)) !important; + border-color: var(--am2-button-success-hover-border-color, #28a745) !important; +} + +#amily2_memorisation_forms_panel .menu_button.small_button { + padding: 5px 12px; + font-size: 0.9em; + border-radius: 6px; + writing-mode: horizontal-tb !important; + white-space: nowrap; +} + +#amily2_memorisation_forms_panel .hly-log-display { + background: transparent; + border-radius: 8px; + padding: 12px; + border: 1px solid #444; + max-height: 100px; + overflow-y: auto; + font-size: 0.9em; + color: var(--amily2-text-color); + display: flex; + flex-direction: column; + gap: 5px; + margin-bottom: 10px; +} + +#amily2_memorisation_forms_panel .hly-log-entry { + margin: 0; + padding: 4px 8px; + border-radius: 4px; + line-height: 1.5; + text-shadow: 1px 1px 2px rgba(0,0,0,0.5); +} + +#amily2_memorisation_forms_panel .hly-log-entry .fa-solid { + margin-right: 8px; + width: 16px; + text-align: center; +} + +#amily2_memorisation_forms_panel .log-info { + color: #a0c4ff; + border-left: 3px solid #6b9eff; +} + +#amily2_memorisation_forms_panel .log-success { + color: #a8d8b4; + border-left: 3px solid #5cb85c; +} + +#amily2_memorisation_forms_panel .log-error { + color: #ffadad; + border-left: 3px solid #d9534f; +} + +#amily2_memorisation_forms_panel .log-warn { + color: #ffd6a5; + border-left: 3px solid #f0ad4e; +} + + +.settings-group { + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 12px; + padding: 12px; + margin: 0; +} + +.settings-group > legend { + color: var(--amily2-text-color); + font-weight: bold; + padding: 0 10px; + margin-left: 10px; + font-size: 1.1em; +} + +.settings-group > legend > i { + margin-right: 8px; + color: #9e8aff; +} + +.central-control-wrapper { + display: flex; + flex-direction: row; + gap: 15px; +} + +.central-control-wrapper .control-section { + flex: 1; + display: flex; + flex-direction: column; +} + +.central-control-wrapper #ai-template-section .hly-textarea { + flex-grow: 1; + height: 100%; + min-height: 150px; +} + +.central-control-wrapper .vertical-divider { + width: 1px; + background-color: rgba(255, 255, 255, 0.2); + align-self: stretch; +} + + +.inline-settings-grid { + display: grid; + grid-template-columns: auto 1fr; + gap: 8px 12px; + align-items: center; +} + +.inline-settings-grid label { + font-weight: bold; + text-align: right; + white-space: nowrap; +} + +.inline-settings-grid .text_pole { + width: 100%; +} + + +#amily2_memorisation_forms_panel.prompt-editor-area { + display: flex; + flex-direction: column; + gap: 8px; +} + +#amily2_memorisation_forms_panel.editor-buttons-panel { + display: flex; + justify-content: flex-end; + gap: 8px; +} + + +#add-table-placeholder { + width: 100%; + padding: 20px 0; + border: 2px dashed rgba(255, 255, 255, 0.3); + border-radius: 12px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + transition: all 0.3s ease; + margin-top: 20px; +} + +#add-table-placeholder i { + font-size: 2em; + color: rgba(255, 255, 255, 0.4); + transition: all 0.3s ease; +} + +#add-table-placeholder:hover { + background-color: rgba(255, 255, 255, 0.05); + border-color: rgba(255, 255, 255, 0.6); +} + +#add-table-placeholder:hover i { + color: rgba(255, 255, 255, 0.8); + transform: scale(1.1); +} + + +#amily2-action-center { + display: flex !important; + flex-direction: row !important; + gap: 10px !important; +} + + +.sinan-navigation-deck { + display: flex; + border-bottom: 1px solid rgba(255, 255, 255, 0.2); + margin-bottom: 15px; +} + +.sinan-nav-item { + padding: 10px 20px; + cursor: pointer; + border: none; + background-color: transparent; + color: var(--amily2-text-color); + font-size: 1em; + border-bottom: 3px solid transparent; + transition: all 0.3s ease; +} + +.sinan-nav-item:hover { + background-color: rgba(255, 255, 255, 0.05); + color: var(--amily2-text-color); +} + +.sinan-nav-item.active { + color: #9e8aff; + border-bottom-color: #9e8aff; + font-weight: bold; +} + +.sinan-nav-item i { + margin-right: 8px; +} + +.sinan-content-wrapper { + padding: 10px; +} + +.sinan-tab-pane { + display: none; + animation: fadeIn 0.5s; +} + +.sinan-tab-pane.active { + display: block; +} + +.action-center-buttons { + display: flex; + flex-wrap: wrap; + gap: 15px; + justify-content: center; +} + +.action-center-buttons .menu_button { + flex-grow: 1; + min-width: 180px; +} + +.notes { + font-size: 0.9em; + color: var(--amily2-text-color); + margin-top: 15px; + text-align: center; +} + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +.control-block-with-switch { + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px; + background-color: rgba(255, 255, 255, 0.05); + border-radius: 8px; +} + +.control-block-with-switch label { + font-weight: bold; + color: var(--amily2-text-color); +} + +.toggle-switch { + position: relative; + display: inline-block; + width: 50px; + height: 28px; +} + +.toggle-switch input { + opacity: 0; + width: 0; + height: 0; +} + +#amily2_memorisation_forms_panel .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #555; + transition: .4s; + border-radius: 28px; +} +#amily2_memorisation_forms_panel .slider:before { + position: absolute; + content: ""; + height: 20px; + width: 20px; + left: 4px; + top: 50%; + background-color: var(--amily2-text-color); + border-radius: 50%; + transition: .4s; + transform: translateY(-50%); +} + +#amily2_memorisation_forms_panel input:checked + .slider { + background-color: #8a72ff; +} + +#amily2_memorisation_forms_panel input:focus + .slider { + box-shadow: 0 0 1px #8a72ff; +} + +#amily2_memorisation_forms_panel input:checked + .slider:before { + transform: translateX(22px) translateY(-50%); +} + +.amily2-context-menu { + display: none; + z-index: 9999; + flex-direction: column; + gap: 0; + padding: 4px; + background-color: rgba(30, 30, 40, 0.98); + border: 1px solid rgba(255, 255, 255, 0.5); + border-radius: 6px; + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); + width: max-content; +} + +.amily2-row-context-menu { + position: absolute; + top: 0; + left: 100%; + z-index: 10000; + display: none; /* Initially hidden */ + flex-direction: column; + gap: 4px; + padding: 8px; + width: max-content; + background-color: rgba(30, 30, 40, 0.98); + border: 1px solid rgba(255, 255, 255, 0.5); + border-radius: 6px; + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); +} + +/* Now controlled by a class on the parent TD for consistency */ +td.amily2-menu-open .amily2-row-context-menu { + display: flex; +} + +.amily2-context-menu.amily2-menu-active { + display: flex; +} + +th .amily2-context-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 10000; + display: none; + grid-template-columns: repeat(2, 1fr); + gap: 4px; + padding: 8px; + width: max-content; + background-color: rgba(30, 30, 40, 0.98); + border: 1px solid rgba(255, 255, 255, 0.5); + border-radius: 6px; + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); +} + +th.amily2-menu-open .amily2-context-menu { + display: grid; +} + +#amily2_memorisation_forms_panel .amily2-context-menu .menu_button { + white-space: nowrap; + border: none !important; + border-radius: 0 !important; + padding: 4px 8px !important; + font-size: 0.85em !important; + background: transparent !important; + transition: background-color 0.2s ease !important; + text-align: left !important; + font-weight: normal !important; + transform: none !important; + box-shadow: none !important; + margin: 0 !important; +} + +#amily2_memorisation_forms_panel .amily2-context-menu .menu_button:hover { + background: rgba(255, 255, 255, 0.15) !important; + transform: none !important; + box-shadow: none !important; +} + +/* This rule is now part of the main .amily2-row-context-menu block above */ + +@media (max-width: 768px) { + #amily2_memorisation_forms_panel { + padding: 0; + } + + #upper-controls-wrapper { + padding: var(--am2-padding-main); + } + + #amily2_memorisation_forms_panel #all-tables-container { + padding: 10px 2px; + } + + /* Make resizer easier to touch on mobile */ + #amily2_memorisation_forms_panel .amily2-resizer { + width: 15px; + right: -7px; /* Adjust position to keep it centered on the border */ + } +} + +#amily2_memorisation_forms_panel .cell-highlight { + background-color: var(--am2-cell-highlight-bg, rgba(144, 238, 144, 0.3)) !important; + transition: background-color 0.3s ease-in-out; +} + + +/* 自定义列名编辑对话框样式 */ +.custom-input-dialog { + border: none; + border-radius: 12px; + background: rgba(30, 30, 40, 0.95); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6); + width: 90vw; + max-width: 450px; + padding: 0; +} + +.custom-input-dialog .popup-body { + background: rgba(40, 45, 60, 0.9); + border-radius: 12px; + border: 1px solid rgba(255, 255, 255, 0.15); +} + +.custom-input-dialog #column-name-input { + transition: all 0.3s ease; +} + +.custom-input-dialog #column-name-input:focus { + border-color: rgba(158, 138, 255, 0.8) !important; + box-shadow: 0 0 8px rgba(158, 138, 255, 0.3); + outline: none; +} + +.custom-input-dialog .popup-button-ok:hover { + background: rgba(158, 138, 255, 0.5) !important; + border-color: rgba(158, 138, 255, 0.8) !important; + transform: translateY(-1px); +} + +.custom-input-dialog .popup-button-cancel:hover { + background: rgba(120, 120, 120, 0.4) !important; + border-color: rgba(120, 120, 120, 0.6) !important; + transform: translateY(-1px); +} + +/* Nccs API 按钮行样式 */ +.nccs-button-row { + display: flex; + gap: 10px; + justify-content: center; + align-items: center; + margin-top: 15px; +} + +.nccs-button-row .menu_button { + min-width: 120px; + height: 35px; + border-radius: 20px; + background: linear-gradient(45deg, rgba(74, 158, 255, 0.6), rgba(138, 114, 255, 0.6)); + border: 1px solid rgba(74, 158, 255, 0.8) !important; + color: #fff !important; + font-weight: bold; + transition: all 0.3s ease; + display: flex; + align-items: center; + justify-content: center; + gap: 5px; +} + +.nccs-button-row .menu_button:hover { + background: linear-gradient(45deg, rgba(74, 158, 255, 0.8), rgba(138, 114, 255, 0.8)); + transform: translateY(-2px); + box-shadow: 0 4px 15px rgba(74, 158, 255, 0.4); +} + +.nccs-button-row .menu_button.secondary { + background: linear-gradient(45deg, rgba(120, 120, 120, 0.6), rgba(160, 160, 160, 0.6)); + border: 1px solid rgba(120, 120, 120, 0.8) !important; +} + +.nccs-button-row .menu_button.secondary:hover { + background: linear-gradient(45deg, rgba(120, 120, 120, 0.8), rgba(160, 160, 160, 0.8)); + box-shadow: 0 4px 15px rgba(120, 120, 120, 0.4); +} + +/* Styles for tables injected into chat messages */ +#amily2-chat-table-container { + margin-top: 10px; + padding: 10px; + border: 1px solid var(--am2-container-border, rgba(255, 255, 255, 0.2)); + border-radius: 8px; + background-color: rgba(0, 0, 0, 0.2); + backdrop-filter: blur(5px); + -webkit-backdrop-filter: blur(5px); + overflow-x: auto; /* Ensure horizontal scrolling on small screens */ +} + +.amily2-chat-table { + margin-bottom: 15px; +} + +.amily2-chat-table:last-child { + margin-bottom: 0; +} + +.amily2-chat-table h4 { + font-size: 1em; + font-weight: bold; + color: var(--am2-header-color, #e0e0e0); + margin-bottom: 8px; + padding-bottom: 5px; + border-bottom: 1px solid var(--am2-table-border, rgba(255, 255, 255, 0.25)); +} + +.amily2-chat-table table { + width: 100%; + border-collapse: collapse; + font-size: 0.9em; +} + +.amily2-chat-table th, +.amily2-chat-table td { + border: 1px solid rgba(255, 255, 255, 0.2); + padding: 5px 8px; + text-align: left; + vertical-align: top; +} + +.amily2-chat-table th { + background-color: rgba(255, 255, 255, 0.1); + font-weight: bold; + border-bottom: 1px solid rgba(255, 255, 255, 0.3); +} + +/* Styles for collapsible in-chat tables */ +.amily2-chat-table-summary { + cursor: pointer; + font-weight: bold; + padding: 5px; + border-radius: 4px; + transition: background-color 0.2s ease; + list-style: none; /* Hide the default triangle */ + display: block; +} + +.amily2-chat-table-summary::-webkit-details-marker { + display: none; /* Hide the default triangle in Chrome/Safari */ +} + +.amily2-chat-table-summary:before { + content: '▶'; + margin-right: 8px; + font-size: 0.8em; + display: inline-block; + transition: transform 0.2s ease; +} + +.amily2-chat-table-details[open] > .amily2-chat-table-summary:before { + transform: rotate(90deg); +} + +.amily2-chat-table-summary:hover { + background-color: rgba(255, 255, 255, 0.1); +} + +@media (max-width: 768px) { + .amily2-chat-table th, + .amily2-chat-table td { + padding: 4px 6px; /* Reduce padding on mobile */ + font-size: 0.85em; /* Slightly smaller font on mobile */ + } + + #amily2-chat-table-container { + padding: 5px; /* Reduce container padding on mobile */ + } + + /* On mobile, allow text wrapping to prevent overflow */ + .amily2-chat-table th, + .amily2-chat-table td { + white-space: normal; + word-break: break-all; + } +} + +.amily2-chat-table td.amily2-cell-highlight { + background-color: var(--am2-cell-highlight-bg, rgba(144, 238, 144, 0.3)); + transition: background-color 0.5s ease-in-out; +} + +#amily2-chat-table-container.mobile-table-view .amily2-chat-table th, +#amily2-chat-table-container.mobile-table-view .amily2-chat-table td { + white-space: nowrap; +} + +.pending-deletion-row { + background-color: rgba(255, 82, 82, 0.15) !important; + transition: background-color 0.3s ease; +} + +.pending-deletion-row:hover { + background-color: rgba(255, 82, 82, 0.25) !important; +} + +.pending-deletion-row td { + opacity: 0.7; +} +h3.table-updated { + color: #87CEFA !important; + text-shadow: 0 0 8px #00BFFF, 0 0 12px rgba(0, 191, 255, 0.5); + transition: color 0.4s ease-in-out, text-shadow 0.4s ease-in-out; +} diff --git a/assets/amily2-glossary.css b/assets/amily-glossary-system/amily2-glossary.css similarity index 100% rename from assets/amily2-glossary.css rename to assets/amily-glossary-system/amily2-glossary.css diff --git a/assets/amily2-glossary.html b/assets/amily-glossary-system/amily2-glossary.html similarity index 100% rename from assets/amily2-glossary.html rename to assets/amily-glossary-system/amily2-glossary.html diff --git a/ui/drawer.js b/ui/drawer.js index ed413d7..3e11ad8 100644 --- a/ui/drawer.js +++ b/ui/drawer.js @@ -75,7 +75,7 @@ async function initializePanel(contentPanel, errorContainer) { const mainContainer = contentPanel.find('#amily2_chat_optimiser'); if (mainContainer.length) { - const additionalFeaturesContent = await $.get(`${extensionFolderPath}/assets/Amily2-AdditionalFeatures.html`); + const additionalFeaturesContent = await $.get(`${extensionFolderPath}/assets/amily-additional-features/Amily2-AdditionalFeatures.html`); const additionalPanelHtml = ``; mainContainer.append(additionalPanelHtml); @@ -87,7 +87,7 @@ async function initializePanel(contentPanel, errorContainer) { const hanlinyuanPanelHtml = ``; mainContainer.append(hanlinyuanPanelHtml); - const memorisationFormsContent = await $.get(`${extensionFolderPath}/assets/Memorisation-forms.html`); + const memorisationFormsContent = await $.get(`${extensionFolderPath}/assets/amily-data-table/Memorisation-forms.html`); const memorisationFormsPanelHtml = ``; mainContainer.append(memorisationFormsPanelHtml); @@ -103,7 +103,7 @@ async function initializePanel(contentPanel, errorContainer) { const worldEditorPanelHtml = ``; mainContainer.append(worldEditorPanelHtml); - const glossaryContent = await $.get(`${extensionFolderPath}/assets/amily2-glossary.html`); + const glossaryContent = await $.get(`${extensionFolderPath}/assets/amily-glossary-system/amily2-glossary.html`); const glossaryPanelHtml = ``; mainContainer.append(glossaryPanelHtml);