vault backup: 2026-08-26 17:23:27
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
[
|
||||
{
|
||||
"id": "builtin-autopair-input",
|
||||
"trigger": "[(《「『“”‘’《]",
|
||||
"replacement": "const p={'【':'【$0】','(':'($0)','《':'《$0》','「':'「$0」','『':'『$0』','“':'“$0”','”':'“$0”','‘':'‘$0’','’':'‘$0’','《':'《$0》'}; return p[leftMatches[0]];",
|
||||
"options": "rF",
|
||||
"priority": 10,
|
||||
"description": "输入全角括号/引号时自动补全配对"
|
||||
},
|
||||
{
|
||||
"id": "builtin-autopair-jump",
|
||||
"trigger": "《》|“”|““|‘’|‘‘|()",
|
||||
"trigger_right": "》|”|’|)",
|
||||
"replacement": "const map = {\n \"《》\": [\"》\", \"《》\"],\n \"()\": [\")\", \"()\"],\n \"“”\": [\"”\", \"“”\"],\n \"““\": [\"”\", \"“”\"],\n \"‘’\": [\"’\", \"‘’\"],\n \"‘‘\": [\"’\", \"‘’\"]\n}\nif(map[leftMatches[0]][0]==rightMatches[0]){\n return map[leftMatches[0]][1];\n}\nreturn undefined;",
|
||||
"options": "rF",
|
||||
"priority": 5,
|
||||
"description": "输入右侧配对符号时自动跳过,避免重复插入"
|
||||
},
|
||||
{
|
||||
"id": "builtin-autopair-delete",
|
||||
"trigger": "[【(《「『“‘]",
|
||||
"trigger_right": "[】)》」』”’]",
|
||||
"replacement": "const p={'【':'】','(':')','《':'》','「':'」','『':'』','“':'”','‘':'’'}; return p[leftMatches[0]]===rightMatches[0] ? '' : undefined;",
|
||||
"options": "drF",
|
||||
"priority": 10,
|
||||
"description": "删除全角括号/引号时同时删除配对"
|
||||
},
|
||||
{
|
||||
"id": "builtin-conv-backtick",
|
||||
"trigger": "··",
|
||||
"replacement": "`$0`",
|
||||
"priority": 10,
|
||||
"description": "连续中文间隔号 ·· 转行内代码"
|
||||
},
|
||||
{
|
||||
"id": "builtin-conv-codeblock",
|
||||
"trigger": "(?<=^|\\n)([ \\t]*)`·",
|
||||
"trigger_right": "`",
|
||||
"replacement": "[[1]]```$0\n[[1]]```",
|
||||
"options": "r",
|
||||
"priority": 10,
|
||||
"description": "行内代码中继续输入 · 升级为代码块"
|
||||
},
|
||||
{
|
||||
"id": "builtin-conv-formula",
|
||||
"trigger": "(¥¥|¥¥|\\$¥|\\$¥|\\$\\$)",
|
||||
"trigger_right": "\\$?",
|
||||
"replacement": "return rightMatches[0] === '$' ? '$$\\n$0\\n$$' : '$$0$';",
|
||||
"options": "rF",
|
||||
"priority": 10,
|
||||
"description": "¥/$ 符号组合转行内或块级公式"
|
||||
},
|
||||
{
|
||||
"id": "builtin-conv-linestart",
|
||||
"trigger": "(^|\\n)([》、])",
|
||||
"replacement": "const m = {'》': '[[1]]> $0', '、': '[[1]]/$0'}; return m[leftMatches[2]];",
|
||||
"options": "rF",
|
||||
"priority": 10,
|
||||
"description": "行首 》 转引用标记、行首 、 转斜杠"
|
||||
},
|
||||
{
|
||||
"id": "builtin-conv-hw2fw",
|
||||
"trigger": "([一-龥-ゟ゠-ヿ가-])([,.:?!;(])",
|
||||
"trigger_right": "\\)?",
|
||||
"replacement": "const m={',':',','.':'。','?':'?','!':'!',':':':',';':';','(':'($0)'}; return leftMatches[1] + m[leftMatches[2]];",
|
||||
"options": "rF",
|
||||
"priority": 15,
|
||||
"enabled": false,
|
||||
"description": "CJK字符后半角标点转全角"
|
||||
},
|
||||
{
|
||||
"id": "builtin-fw2hw-double",
|
||||
"trigger": "([。!;,:?》|(《])\\1",
|
||||
"trigger_right": "[)》]?",
|
||||
"replacement": "const p={'(':[')','($0)'],'《':['》','<$0']};\nconst m={'。':'.$0','!':'!$0',';':';$0',',':',$0',':':':$0','?':'?$0','》':'>$0','|':'|$0','(':'($0)','《':'<$0'};\nconst c=leftMatches[1],r=rightMatches[0]||'',e=p[c]; \nreturn e&&e[0]===r?e[1]:m[c];",
|
||||
"options": "rF",
|
||||
"priority": 3,
|
||||
"description": "连续输入两个相同全角标点转对应半角"
|
||||
},
|
||||
{
|
||||
"id": "builtin-del-inline-formula",
|
||||
"trigger": "$",
|
||||
"trigger_right": "$",
|
||||
"replacement": "",
|
||||
"options": "d",
|
||||
"priority": 30,
|
||||
"description": "删除行内公式 $...$ 配对"
|
||||
},
|
||||
{
|
||||
"id": "builtin-del-highlight",
|
||||
"trigger": "==",
|
||||
"trigger_right": "==",
|
||||
"replacement": "",
|
||||
"options": "d",
|
||||
"priority": 30,
|
||||
"description": "删除高亮 ==...== 配对"
|
||||
},
|
||||
{
|
||||
"id": "builtin-del-block-formula",
|
||||
"trigger": "$$\n",
|
||||
"trigger_right": "\n$$",
|
||||
"replacement": "",
|
||||
"options": "d",
|
||||
"priority": 30,
|
||||
"description": "删除块级公式 $$...$$ 配对"
|
||||
},
|
||||
{
|
||||
"id": "builtin-del-codeblock",
|
||||
"trigger": "(?<=^|\\n)([ \\t]*)```",
|
||||
"trigger_right": "[ \\t]*\\n([ \\t]*)```",
|
||||
"replacement": "[[1]]",
|
||||
"options": "dr",
|
||||
"priority": 30,
|
||||
"description": "快速删除空代码块"
|
||||
},
|
||||
{
|
||||
"id": "builtin-del-wikilink",
|
||||
"trigger": " ?!?\\[\\[[^\\n\\[\\]]*\\]\\]",
|
||||
"replacement": "",
|
||||
"options": "dr",
|
||||
"priority": 30,
|
||||
"description": "快速删除双链及嵌入(![[]])"
|
||||
},
|
||||
{
|
||||
"id": "builtin-sel-wrap-backtick",
|
||||
"trigger": "·",
|
||||
"replacement": "`${0:${SEL}}`",
|
||||
"options": "s",
|
||||
"priority": 40,
|
||||
"description": "选中文字后输入 · 包裹为行内代码"
|
||||
},
|
||||
{
|
||||
"id": "builtin-sel-wrap-symbols",
|
||||
"trigger": "【¥¥",
|
||||
"replacement": "const m={'¥': ['$', '$'], '¥': ['$', '$'], '【': ['[', ']']}; \nreturn m[key][0] + '${0:${SEL}}' + m[key][1];",
|
||||
"options": "sF",
|
||||
"priority": 40,
|
||||
"description": "选中文字后输入 【/¥/¥ 包裹为 []/$$"
|
||||
},
|
||||
{
|
||||
"id": "builtin-sel-wrap-quotes",
|
||||
"trigger": "“”‘’",
|
||||
"replacement": "const m={'“': ['“','”'], '”': ['“','”'], '‘': ['‘','’'], '’': ['‘','’']}; return m[key][0] + '${0:${SEL}}' + m[key][1];",
|
||||
"options": "sF",
|
||||
"priority": 40,
|
||||
"description": "选中文字后输入全角引号,配对引号包裹"
|
||||
},
|
||||
{
|
||||
"id": "builtin-sel-wrap-cjk-brackets",
|
||||
"trigger": "《(",
|
||||
"replacement": "const m={'《': ['《','》'], '(': ['(',')']}; return m[key][0] + '${0:${SEL}}' + m[key][1];",
|
||||
"options": "sF",
|
||||
"priority": 40,
|
||||
"description": "选中文字后输入《(,配对括号包裹"
|
||||
},
|
||||
{
|
||||
"id": "builtin-quote-convert",
|
||||
"trigger": "((?:^|\\n)\\s*>*) ?[>》]",
|
||||
"replacement": "[[1]]> $0",
|
||||
"options": "r",
|
||||
"priority": 50,
|
||||
"description": "输入 > 或 》 转为 Markdown 引用标记"
|
||||
},
|
||||
{
|
||||
"id": "builtin-quote-space",
|
||||
"trigger": "((?:^|\\n)\\s*>+)([^ >》]+)",
|
||||
"replacement": "[[1]] [[2]]$0",
|
||||
"options": "r",
|
||||
"priority": 50,
|
||||
"description": "引用标记 > 后自动补空格"
|
||||
}
|
||||
]
|
||||
+5954
-3360
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "easy-typing-obsidian",
|
||||
"name": "Easy Typing",
|
||||
"version": "5.5.15",
|
||||
"version": "6.0.9",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "This plugin aims to enhance and optimize the editing experience in Obsidian",
|
||||
"author": "yaozhuwa",
|
||||
|
||||
+909
-2
@@ -17,5 +17,912 @@ span[class="easy-typing-cursor-widget"] {
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
50% { opacity: 0; }
|
||||
}
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* ========== Settings Tab Navigation ========== */
|
||||
.et-settings-shell {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 18px;
|
||||
padding: 6px 0 16px;
|
||||
}
|
||||
|
||||
.et-settings-hero {
|
||||
padding: 18px 22px;
|
||||
border-radius: 18px;
|
||||
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 88%, transparent);
|
||||
background: linear-gradient(135deg, color-mix(in srgb, var(--background-primary) 84%, var(--interactive-accent) 16%), var(--background-primary));
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.et-settings-hero-main h1 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.et-settings-hero-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
margin-top: 8px;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-settings-hero-link {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.et-settings-nav {
|
||||
display: flex;
|
||||
gap: 0;
|
||||
margin: 0;
|
||||
padding: 0 6px;
|
||||
border-bottom: 2px solid var(--background-modifier-border);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.et-settings-tab-btn {
|
||||
padding: 8px 18px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
font-size: var(--font-ui-small);
|
||||
color: var(--text-muted);
|
||||
margin: 0 0 -2px;
|
||||
border-bottom: 2px solid transparent;
|
||||
transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
|
||||
border-radius: 8px 8px 0 0;
|
||||
text-align: center;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.et-settings-tab-btn:hover {
|
||||
color: var(--text-normal);
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.et-settings-tab-btn.et-settings-tab-active {
|
||||
color: var(--text-accent);
|
||||
border-bottom-color: var(--text-accent);
|
||||
background: color-mix(in srgb, var(--interactive-accent) 10%, var(--background-primary));
|
||||
font-weight: var(--font-semibold);
|
||||
}
|
||||
|
||||
.et-settings-content {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.et-settings-tab-panel.et-settings-tab-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.et-settings-tab-panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.et-settings-section {
|
||||
border-radius: 18px;
|
||||
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 88%, transparent);
|
||||
background: color-mix(in srgb, var(--background-primary) 95%, var(--background-secondary));
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.et-settings-section-header {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
gap: 16px;
|
||||
padding: 18px 20px 12px;
|
||||
border-bottom: 1px solid color-mix(in srgb, var(--background-modifier-border) 88%, transparent);
|
||||
background: color-mix(in srgb, var(--background-secondary) 42%, var(--background-primary));
|
||||
}
|
||||
|
||||
.et-settings-section-heading {
|
||||
min-width: 0;
|
||||
flex: 1 1 220px;
|
||||
}
|
||||
|
||||
.et-settings-section-header h3 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
color: var(--text-normal);
|
||||
font-size: var(--font-ui-medium);
|
||||
}
|
||||
|
||||
.et-settings-section-desc {
|
||||
margin-top: 6px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.et-settings-section-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
flex-shrink: 0;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-end;
|
||||
align-self: flex-start;
|
||||
margin-left: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.et-settings-section-actions>* {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.et-settings-section-body {
|
||||
padding: 8px 20px 8px;
|
||||
}
|
||||
|
||||
.et-settings-section-body>.setting-item:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.et-settings-section-body .setting-item {
|
||||
padding-top: 14px;
|
||||
padding-bottom: 14px;
|
||||
}
|
||||
|
||||
.et-settings-note {
|
||||
white-space: pre-wrap;
|
||||
margin: 6px 0 6px;
|
||||
padding: 12px 14px;
|
||||
border-radius: 12px;
|
||||
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 88%, transparent);
|
||||
background: color-mix(in srgb, var(--background-secondary) 62%, var(--background-primary));
|
||||
}
|
||||
|
||||
.et-settings-disabled {
|
||||
opacity: 0.58;
|
||||
}
|
||||
|
||||
.et-settings-disabled .setting-item-control {
|
||||
filter: saturate(0.65);
|
||||
}
|
||||
|
||||
.et-settings-disabled a {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.et-setting-full-width {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr);
|
||||
}
|
||||
|
||||
.et-setting-full-width .setting-item-info {
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
.et-setting-full-width .setting-item-control {
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.et-inline-form-setting {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 14px;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
.et-inline-form-setting .setting-item-info {
|
||||
padding-right: 0;
|
||||
flex: 0 1 220px;
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
.et-inline-form-setting .setting-item-control {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
flex: 1 1 320px;
|
||||
min-width: min(320px, 100%);
|
||||
}
|
||||
|
||||
.et-inline-form-setting .setting-item-control>* {
|
||||
flex: 1 1 140px;
|
||||
}
|
||||
|
||||
.et-inline-form-setting .setting-item-control button {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.et-settings-textarea {
|
||||
width: 100%;
|
||||
min-height: 96px;
|
||||
resize: vertical;
|
||||
border-radius: 12px;
|
||||
padding: 10px 12px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.et-settings-textarea-compact {
|
||||
min-height: 120px;
|
||||
}
|
||||
|
||||
.et-settings-textarea-tall {
|
||||
min-height: 280px;
|
||||
}
|
||||
|
||||
.et-section-action-btn {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.et-section-icon-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* ========== Rule Type Tags ========== */
|
||||
.et-rule-type-tag {
|
||||
display: inline-block;
|
||||
padding: 1px 6px;
|
||||
border-radius: 4px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
margin-right: 2px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.et-rule-scope-tag {
|
||||
display: inline-block;
|
||||
padding: 1px 6px;
|
||||
border-radius: 4px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
margin-right: 2px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.et-rule-scope-code {
|
||||
background-color: rgba(59, 130, 246, 0.12);
|
||||
color: #3b82f6;
|
||||
border: 1px solid rgba(59, 130, 246, 0.24);
|
||||
font-family: var(--font-monospace);
|
||||
}
|
||||
|
||||
.et-rule-scope-formula {
|
||||
background: linear-gradient(135deg, rgba(99, 102, 241, 0.16), rgba(168, 85, 247, 0.12));
|
||||
color: #7c3aed;
|
||||
border: 1px solid rgba(124, 58, 237, 0.26);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
.et-rule-type-input {
|
||||
background-color: rgba(76, 175, 80, 0.15);
|
||||
color: #4caf50;
|
||||
border: 1px solid rgba(76, 175, 80, 0.3);
|
||||
}
|
||||
|
||||
.et-rule-type-delete {
|
||||
background-color: rgba(244, 67, 54, 0.15);
|
||||
color: #f44336;
|
||||
border: 1px solid rgba(244, 67, 54, 0.3);
|
||||
}
|
||||
|
||||
.et-rule-type-selectkey {
|
||||
background-color: rgba(255, 152, 0, 0.15);
|
||||
color: #ff9800;
|
||||
border: 1px solid rgba(255, 152, 0, 0.3);
|
||||
}
|
||||
|
||||
.et-rule-type-fn {
|
||||
background-color: rgba(156, 39, 176, 0.15);
|
||||
color: #9c27b0;
|
||||
border: 1px solid rgba(156, 39, 176, 0.3);
|
||||
}
|
||||
|
||||
/* Rule Trigger Mode Tag */
|
||||
.et-rule-trigger-mode {
|
||||
display: inline-block;
|
||||
padding: 1px 5px;
|
||||
border-radius: 4px;
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
margin-right: 2px;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
transition: background-color 0.15s ease, color 0.15s ease;
|
||||
}
|
||||
|
||||
.et-trigger-mode-auto {
|
||||
background-color: rgba(158, 158, 158, 0.15);
|
||||
color: var(--text-muted);
|
||||
border: 1px solid rgba(158, 158, 158, 0.3);
|
||||
}
|
||||
|
||||
.et-trigger-mode-tab {
|
||||
background-color: rgba(255, 152, 0, 0.15);
|
||||
color: #ff9800;
|
||||
border: 1px solid rgba(255, 152, 0, 0.3);
|
||||
}
|
||||
|
||||
.et-rule-trigger-mode:hover {
|
||||
filter: brightness(1.2);
|
||||
}
|
||||
|
||||
/* Rule Drag and Drop */
|
||||
.et-rule-drag-handle {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: grab;
|
||||
color: var(--text-faint);
|
||||
padding: 1px 0;
|
||||
margin-right: 0;
|
||||
width: 14px;
|
||||
border-radius: 4px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.et-rule-drag-handle:hover {
|
||||
color: var(--text-muted);
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.et-rule-drag-handle:active {
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
.et-rule-dragging {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.et-rule-drag-over-top {
|
||||
box-shadow: 0 2px 0 0 var(--interactive-accent) inset;
|
||||
}
|
||||
|
||||
.et-rule-drag-over-bottom {
|
||||
box-shadow: 0 -2px 0 0 var(--interactive-accent) inset;
|
||||
}
|
||||
|
||||
.et-rule-item .setting-item-name {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
white-space: normal;
|
||||
overflow: visible;
|
||||
text-overflow: unset;
|
||||
}
|
||||
|
||||
.et-rule-item .setting-item-info {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.et-rule-item .setting-item-control {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.et-rule-preview-text {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
line-height: 1.4;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.et-deleted-rules summary {
|
||||
cursor: pointer;
|
||||
color: var(--text-muted);
|
||||
font-size: var(--font-ui-small);
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.et-deleted-rules .setting-item {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
/* Function editor in rule modal */
|
||||
.et-fn-editor-label {
|
||||
display: block;
|
||||
font-size: var(--font-ui-small);
|
||||
color: var(--text-normal);
|
||||
margin-bottom: 6px;
|
||||
font-weight: var(--font-semibold);
|
||||
}
|
||||
|
||||
/* Rule edit modal groups */
|
||||
.et-modal-group {
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 8px;
|
||||
padding: 4px 16px 12px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.et-modal-group-title {
|
||||
font-size: var(--font-ui-small);
|
||||
font-weight: var(--font-semibold);
|
||||
color: var(--text-muted);
|
||||
padding: 8px 0 2px;
|
||||
}
|
||||
|
||||
.et-modal-group .setting-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.et-modal-group .et-modal-option-row {
|
||||
padding: 8px 0;
|
||||
min-height: unset;
|
||||
}
|
||||
|
||||
.et-modal-group .et-modal-option-row .setting-item-name {
|
||||
font-size: var(--font-ui-small);
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-fn-editor-container {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.et-fn-editor-container .cm-editor {
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.et-fn-editor-container .cm-editor.cm-focused {
|
||||
border-color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
/* JS syntax highlighting in function editor */
|
||||
.et-hl-keyword {
|
||||
color: #c678dd;
|
||||
}
|
||||
|
||||
.et-hl-string {
|
||||
color: #98c379;
|
||||
}
|
||||
|
||||
.et-hl-comment {
|
||||
color: var(--text-faint);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.et-hl-number {
|
||||
color: #d19a66;
|
||||
}
|
||||
|
||||
/* ========== Language Pair Capsule UI ========== */
|
||||
.et-lang-pair-capsules {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.et-lang-pair-capsule {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
padding: 3px 6px 3px 12px;
|
||||
border-radius: 16px;
|
||||
font-size: var(--font-ui-small);
|
||||
background-color: var(--background-primary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
color: var(--text-normal);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
/* Slight elevation */
|
||||
transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
|
||||
}
|
||||
|
||||
.et-lang-pair-capsule:hover {
|
||||
border-color: var(--interactive-accent);
|
||||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.08);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.et-capsule-remove {
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
border: none;
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
color: var(--text-muted);
|
||||
margin-left: 2px;
|
||||
border-radius: 50%;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: background-color 0.2s ease, color 0.2s ease;
|
||||
}
|
||||
|
||||
.et-capsule-remove:disabled {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.et-capsule-remove:hover {
|
||||
color: var(--text-on-accent);
|
||||
background-color: var(--text-error);
|
||||
}
|
||||
|
||||
.et-pair-selector-row {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.et-custom-scripts {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.et-custom-scripts .setting-item {
|
||||
border: none;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
/* ========== Settings UI Buttons ========== */
|
||||
.et-reset-btn {
|
||||
transition: transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1),
|
||||
box-shadow 0.2s ease,
|
||||
background-color 0.2s ease,
|
||||
color 0.2s ease;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.et-reset-btn:hover {
|
||||
background-color: rgba(220, 53, 69, 0.08);
|
||||
/* Subtle red tint */
|
||||
border-color: rgba(220, 53, 69, 0.3);
|
||||
color: var(--text-error);
|
||||
box-shadow: 0 2px 6px rgba(220, 53, 69, 0.1);
|
||||
}
|
||||
|
||||
.et-reset-btn:active {
|
||||
transform: scale(0.95);
|
||||
background-color: rgba(220, 53, 69, 0.15);
|
||||
}
|
||||
|
||||
/* ========== Rule Edit Modal: Pill Bar ========== */
|
||||
.et-rule-edit-modal .modal-content {
|
||||
padding-top: 18px;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
/* .et-rule-edit-modal {
|
||||
width: min(580px, calc(100vw - 32px));
|
||||
} */
|
||||
|
||||
.et-rule-edit-header {
|
||||
padding: 4px 2px 0;
|
||||
}
|
||||
|
||||
.et-rule-edit-title {
|
||||
margin: 0;
|
||||
font-size: 1.35em;
|
||||
line-height: 1.25;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
.et-rule-edit-title:focus,
|
||||
.et-rule-edit-title:focus-visible {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.et-pill-bar {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
gap: 10px;
|
||||
padding: 0;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.et-pill-section {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 8px 10px;
|
||||
border-radius: 14px;
|
||||
background: color-mix(in srgb, var(--background-secondary) 92%, var(--background-primary));
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.et-pill-options {
|
||||
display: inline-flex;
|
||||
align-items: stretch;
|
||||
gap: 0;
|
||||
padding: 3px;
|
||||
border-radius: 11px;
|
||||
background: var(--background-primary);
|
||||
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 88%, transparent);
|
||||
position: relative;
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
|
||||
flex-wrap: wrap;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill:not(.clickable-icon) {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 7px 14px;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
background: transparent !important;
|
||||
background-color: transparent !important;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
box-shadow: none !important;
|
||||
background-image: none !important;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
color: color-mix(in srgb, var(--text-muted) 82%, var(--background-modifier-border));
|
||||
line-height: 1.5;
|
||||
font-weight: 500;
|
||||
transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill:not(.clickable-icon)+.et-pill::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 22%;
|
||||
width: 1px;
|
||||
height: 56%;
|
||||
background: color-mix(in srgb, var(--background-modifier-border) 82%, transparent);
|
||||
transition: opacity 0.18s ease;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill:not(.clickable-icon):hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill:not(.clickable-icon):focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill:not(.clickable-icon):focus-visible {
|
||||
outline: 2px solid color-mix(in srgb, var(--interactive-accent) 72%, white);
|
||||
outline-offset: 1px;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill.et-pill-active:not(.clickable-icon) {
|
||||
background: linear-gradient(180deg,
|
||||
color-mix(in srgb, var(--interactive-accent) 32%, var(--background-primary)),
|
||||
color-mix(in srgb, var(--interactive-accent) 18%, var(--background-primary)));
|
||||
background-color: color-mix(in srgb, var(--interactive-accent) 18%, var(--background-primary)) !important;
|
||||
color: color-mix(in srgb, var(--text-normal) 88%, black);
|
||||
font-weight: 600;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill.et-pill-active:not(.clickable-icon)::before,
|
||||
.et-rule-edit-modal button.et-pill.et-pill-active:not(.clickable-icon)+.et-pill::before {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal button.et-pill.et-pill-active:not(.clickable-icon)::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
border-radius: inherit;
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.24),
|
||||
inset 0 0 0 1px color-mix(in srgb, var(--background-modifier-border) 72%, white),
|
||||
0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.et-pill-group-label {
|
||||
font-size: 11px;
|
||||
color: var(--text-faint);
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
user-select: none;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.02em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* ========== Rule Edit Modal: Group Header + Pill Chip ========== */
|
||||
.et-modal-group-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 8px 0 2px;
|
||||
}
|
||||
|
||||
.et-modal-group-header .et-modal-group-title {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.et-pill-chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
padding: 2px 8px 2px 10px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
color: var(--text-muted);
|
||||
user-select: none;
|
||||
transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
|
||||
}
|
||||
|
||||
.et-pill-chip::after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
border: 1.5px solid var(--text-faint);
|
||||
flex-shrink: 0;
|
||||
transition: background-color 0.15s ease, border-color 0.15s ease;
|
||||
}
|
||||
|
||||
.et-pill-chip:hover {
|
||||
border-color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-pill-chip:hover::after {
|
||||
border-color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-pill-chip.et-pill-chip-active {
|
||||
color: var(--text-normal);
|
||||
border-color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-pill-chip.et-pill-chip-active::after {
|
||||
background-color: var(--text-muted);
|
||||
border-color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-scope-setting .setting-item-control {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.et-scope-options {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
width: auto;
|
||||
margin-left: auto;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
/* ========== Rule Edit Modal: Compact Spacing ========== */
|
||||
.et-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal .modal-close-button {
|
||||
top: 14px;
|
||||
right: 14px;
|
||||
}
|
||||
|
||||
.et-replacement-setting {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.et-replacement-setting .setting-item-info {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.et-replacement-setting .setting-item-control {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.et-replacement-textarea {
|
||||
width: 100%;
|
||||
min-height: 96px;
|
||||
resize: vertical;
|
||||
border-radius: 10px;
|
||||
padding: 10px 12px;
|
||||
line-height: 1.5;
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.et-replacement-hint {
|
||||
margin-top: -2px;
|
||||
margin-bottom: 4px;
|
||||
white-space: pre-line;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-fn-hint {
|
||||
margin-top: 6px;
|
||||
margin-bottom: 4px;
|
||||
font-size: 12px;
|
||||
font-family: var(--font-monospace);
|
||||
white-space: pre-line;
|
||||
line-height: 1.6;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.et-rule-edit-modal .setting-item {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal .et-modal-group {
|
||||
padding: 6px 18px 10px;
|
||||
margin-bottom: 0;
|
||||
border-radius: 14px;
|
||||
background: linear-gradient(180deg, color-mix(in srgb, var(--background-secondary) 72%, transparent), color-mix(in srgb, var(--background-primary) 92%, transparent));
|
||||
border-color: color-mix(in srgb, var(--background-modifier-border) 90%, transparent);
|
||||
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.et-rule-edit-modal .et-modal-group:hover {
|
||||
border-color: color-mix(in srgb, var(--interactive-accent) 24%, var(--background-modifier-border));
|
||||
}
|
||||
|
||||
/* ========== Rule Edit Modal: Input Optimizations ========== */
|
||||
.et-rule-edit-modal .et-modal-group .setting-item-control {
|
||||
flex-grow: 2;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal [data-field="trigger"] input,
|
||||
.et-rule-edit-modal [data-field="triggerRight"] input,
|
||||
.et-rule-edit-modal [data-field="scopeLanguage"] input,
|
||||
.et-rule-edit-modal input[type="number"],
|
||||
.et-rule-edit-modal .setting-item input[type="text"] {
|
||||
font-family: var(--font-monospace);
|
||||
border-radius: 10px;
|
||||
min-height: 36px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal .setting-item-info {
|
||||
padding-right: 18px;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal .setting-item-name {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.et-rule-edit-modal .setting-item-description {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.et-fn-editor-container .cm-editor {
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
|
||||
.et-fn-editor-container .cm-scroller {
|
||||
min-height: 160px;
|
||||
}
|
||||
|
||||
.et-rule-edit-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
.et-rule-edit-save {
|
||||
min-width: 120px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 10px 24px color-mix(in srgb, var(--interactive-accent) 18%, transparent);
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
Reference in New Issue
Block a user