aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/theme-studio')
-rw-r--r--scripts/theme-studio/WIP.json5702
-rw-r--r--scripts/theme-studio/app-core.js109
-rw-r--r--scripts/theme-studio/app.js516
-rw-r--r--scripts/theme-studio/app_inventory.py33
-rw-r--r--scripts/theme-studio/build-theme.el29
-rw-r--r--scripts/theme-studio/capture-default-faces.py30
-rw-r--r--scripts/theme-studio/colormath.js7
-rw-r--r--scripts/theme-studio/default_faces.py111
-rw-r--r--scripts/theme-studio/face_data.py30
-rw-r--r--scripts/theme-studio/face_specs.py54
-rw-r--r--scripts/theme-studio/generate.py57
-rw-r--r--scripts/theme-studio/palette-generator-core.js24
-rw-r--r--scripts/theme-studio/previews.js463
-rw-r--r--scripts/theme-studio/test-app-core.mjs121
-rw-r--r--scripts/theme-studio/test-colormath.mjs31
-rw-r--r--scripts/theme-studio/test-palette-generator-core.mjs78
-rw-r--r--scripts/theme-studio/theme-studio.html197
17 files changed, 2122 insertions, 5470 deletions
diff --git a/scripts/theme-studio/WIP.json b/scripts/theme-studio/WIP.json
index ecfc56064..1f8d3e858 100644
--- a/scripts/theme-studio/WIP.json
+++ b/scripts/theme-studio/WIP.json
@@ -385,381 +385,704 @@
"#6191c7",
"link",
"sapphire"
+ ],
+ [
+ "#50657a",
+ "sky-1",
+ "sky"
+ ],
+ [
+ "#9acbfb",
+ "sky",
+ "sky"
+ ],
+ [
+ "#adc8e6",
+ "sky+1",
+ "sky"
]
],
"syntax": {
"bg": {
"fg": "#100f0f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"p": {
"fg": "#bfc4d0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"kw": {
"fg": "#67809c",
"bg": null,
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": "italic",
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"bi": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"pp": {
"fg": "#dce0e3",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"fnd": {
"fg": "#cbd0d6",
"bg": null,
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": "italic",
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"fnc": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"dec": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"ty": {
"fg": "#ab8d2e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"prop": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"con": {
"fg": "#dab53d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"num": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"str": {
"fg": "#74932f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"esc": {
"fg": "#bfc4d0",
"bg": "#222223",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"re": {
"fg": "#74932f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"doc": {
"fg": "#bfc4d0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"cm": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": "italic",
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"cmd": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": "italic",
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"var": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"op": {
"fg": "#dce0e3",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"punc": {
"fg": "#dce0e3",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
}
},
"ui": {
"cursor": {
"fg": "#100f0f",
"bg": "#bac1c8",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"region": {
"fg": "#100f0f",
"bg": "#ab8d2e",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"hl-line": {
"fg": null,
"bg": "#222223",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "inherit": "highlight"
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": "highlight",
+ "height": null
},
"highlight": {
"fg": "#eddba7",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"mode-line": {
"fg": "#cbd0d6",
"bg": "#424f5e",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
"box": {
"style": "line",
"width": 1,
"color": "#a9b2bb"
- }
+ },
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
+ },
+ "mode-line-highlight": {
+ "fg": "#e6ce88",
+ "bg": "#424f5e",
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"mode-line-inactive": {
"fg": "#100f0f",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
"inherit": "mode-line",
- "box": null
- },
- "mode-line-highlight": {
- "fg": "#e6ce88",
- "bg": "#424f5e",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "height": null
},
"fringe": {
"fg": "#f3e7c5",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"line-number": {
"fg": "#54677d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"line-number-current-line": {
"fg": "#e6ce88",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"minibuffer-prompt": {
"fg": "#899bb1",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"isearch": {
"fg": null,
"bg": "#4a4b4f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"lazy-highlight": {
"fg": null,
"bg": "#4a4b4f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"isearch-fail": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"show-paren-match": {
"fg": "#100f0f",
"bg": "#74932f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"show-paren-mismatch": {
"fg": "#ffffff",
"bg": "#cb6b4d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"link": {
"fg": "#6191c7",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": {
+ "style": "line",
+ "color": null
+ },
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"error": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"warning": {
"fg": "#ab8d2e",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"success": {
"fg": "#74932f",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false
+ "distant-fg": null,
+ "family": null,
+ "weight": "bold",
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
},
"vertical-border": {
"fg": "#424f5e",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
- "box": null
+ "distant-fg": null,
+ "family": null,
+ "weight": null,
+ "slant": null,
+ "underline": null,
+ "strike": null,
+ "overline": null,
+ "box": null,
+ "inverse": false,
+ "extend": false,
+ "inherit": null,
+ "height": null
}
},
"locks": [
@@ -773,7 +1096,6 @@
"ty",
"cmd",
"cm",
- "pkg:dashboard:dashboard-banner-logo-title",
"ui:cursor",
"ui:fringe",
"ui:line-number",
@@ -1094,28 +1416,22 @@
"pkg:pearl:pearl-editable-comment",
"ui:mode-line-inactive",
"ui:mode-line",
- "ui:mode-line-highlight"
+ "ui:mode-line-highlight",
+ "pkg:dashboard:dashboard-banner-logo-title"
],
"packages": {
"org-mode": {
"org-document-title": {
"fg": "#ab8d2e",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user",
+ "weight": "bold",
"height": 1.2
},
"org-document-info": {
"fg": "#ab8d2e",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user",
"height": 1.15
@@ -1123,440 +1439,282 @@
"org-document-info-keyword": {
"fg": "#7c838a",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-1": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-2": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-3": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-4": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-5": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-6": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-7": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-level-8": {
"fg": "#cbd0d6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-headline-todo": {
"fg": "#f3e7c5",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-headline-done": {
"fg": "#777980",
"bg": "#100f0f",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic",
+ "strike": {
+ "color": null
+ }
},
"org-todo": {
"fg": "#74932f",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-done": {
"fg": "#8e919a",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-priority": {
"fg": "#a9b2bb",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-tag": {
"fg": "#67809c",
"bg": "#100f0f",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"org-tag-group": {
"fg": "#67809c",
"bg": "#222223",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"org-special-keyword": {
"fg": "#777980",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-drawer": {
"fg": "#777980",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-property-value": {
"fg": "#777980",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-checkbox": {
"fg": "#a9b2bb",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-checkbox-statistics-todo": {
"fg": "#e0c266",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-checkbox-statistics-done": {
"fg": "#777980",
"bg": "#100f0f",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"org-warning": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-link": {
"fg": "#899bb1",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"org-footnote": {
"fg": "#788da6",
"bg": "#100f0f",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"org-date": {
"fg": "#bac1c8",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-sexp-date": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-date-selected": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-target": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-macro": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-cite": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-cite-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-block": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-block-begin-line": {
"fg": "#8ea85e",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-block-end-line": {
"fg": "#8ea85e",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-code": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-verbatim": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-inline-src-block": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-quote": {
"fg": "#74932f",
"bg": "#100f0f",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"org-verse": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-latex-and-related": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-table": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-table-header": {
"fg": "#bac1c8",
"bg": "#424f5e",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-table-row": {
"fg": "#bac1c8",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user",
"box": {
@@ -1568,420 +1726,254 @@
"org-formula": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-column": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-column-title": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-list-dt": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-meta-line": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-ellipsis": {
"fg": "#606267",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-hide": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-indent": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-archived": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-default": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-dispatcher-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-structure": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-structure-secondary": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-structure-filter": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-date": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-date-today": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-date-weekend": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-date-weekend-today": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-current-time": {
"fg": "#eddba7",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-agenda-done": {
"fg": "#8e919a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-agenda-dimmed-todo-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-calendar-event": {
"fg": "#9ba8bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-agenda-calendar-sexp": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-calendar-daterange": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-agenda-diary": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-clocking": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-column-dateline": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-restriction-lock": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-filter-category": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-filter-effort": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-filter-regexp": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-agenda-filter-tags": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-scheduled": {
"fg": "#788da6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-scheduled-today": {
"fg": "#788da6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-scheduled-previously": {
"fg": "#cb7b64",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-upcoming-deadline": {
"fg": "#cb7b64",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-upcoming-distant-deadline": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-imminent-deadline": {
"fg": "#cb8b7a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-time-grid": {
"fg": "#ab8d2e",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-clock-overlay": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-mode-line-clock": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
},
"org-mode-line-clock-overrun": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "cleared"
}
@@ -1990,1100 +1982,671 @@
"magit-section-heading": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-section-secondary-heading": {
"fg": "#998162",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-section-heading-selection": {
"fg": "#dab53d",
"bg": "#264364",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-section-highlight": {
"fg": null,
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-section-child-count": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-added": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-added-highlight": {
"fg": "#5d9b86",
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-removed": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-removed-highlight": {
"fg": "#cb6b4d",
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-context": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-context-highlight": {
"fg": "#a9b2bb",
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-file-heading": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-diff-file-heading-highlight": {
"fg": "#e4eaf8",
"bg": "#1a1714",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-diff-file-heading-selection": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-hunk-heading": {
"fg": "#838d97",
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-hunk-heading-highlight": {
"fg": "#e4eaf8",
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-hunk-heading-selection": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-hunk-region": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-lines-heading": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-lines-boundary": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-base": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-base-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-our": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-our-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-their": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-their-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-conflict-heading": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-conflict-heading-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-revision-summary": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-revision-summary-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diff-whitespace-warning": {
"fg": null,
"bg": "#cb6b4d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diffstat-added": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-diffstat-removed": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-branch-current": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-branch-local": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-branch-remote": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-branch-remote-head": {
"fg": "#5d9b86",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-branch-upstream": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-branch-warning": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-head": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-tag": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-hash": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-filename": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-dimmed": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-keyword": {
"fg": "#6624a0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-keyword-squash": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-refname": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-refname-stash": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-refname-wip": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-refname-pullreq": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-log-author": {
"fg": "#998162",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-log-date": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-log-graph": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-header-line": {
"fg": "#e4eaf8",
"bg": "#2f343a",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-header-line-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-header-line-log-select": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-process-ok": {
"fg": "#5d9b86",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-process-ng": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-mode-line-process": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-mode-line-process-error": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-bisect-good": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-bisect-bad": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-bisect-skip": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-heading": {
"fg": "#838d97",
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-hash": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-name": {
"fg": "#998162",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-date": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-summary": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-dimmed": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-blame-margin": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-cherry-equivalent": {
"fg": "#6624a0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-cherry-unmatched": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-signature-good": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-signature-bad": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"magit-signature-untrusted": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-signature-expired": {
"fg": "#998162",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-signature-expired-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-signature-revoked": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-signature-error": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-commit": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-amend": {
"fg": "#6624a0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-merge": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-checkout": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-reset": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-rebase": {
"fg": "#6624a0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-cherry-pick": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-remote": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-reflog-other": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-pick": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-stop": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-part": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-head": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-drop": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-done": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-onto": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-sequence-exec": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-left-margin": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-comment-action": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-comment-branch-local": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-comment-branch-remote": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-comment-detached": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-comment-file": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-comment-heading": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-keyword": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-nonempty-second-line": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-overlong-summary": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-summary": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-trailer-token": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"git-commit-trailer-value": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -3092,130 +2655,86 @@
"elfeed-search-date-face": {
"fg": "#74932f",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"elfeed-search-title-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"elfeed-search-unread-title-face": {
"fg": "#e6ce88",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"elfeed-search-feed-face": {
"fg": "#9f80c9",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"elfeed-search-tag-face": {
"fg": "#899bb1",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"elfeed-search-unread-count-face": {
"fg": "#ab8d2e",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"elfeed-search-filter-face": {
"fg": "#ab8d2e",
"bg": null,
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold",
+ "slant": "italic"
},
"elfeed-search-last-update-face": {
"fg": "#ab8d2e",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"elfeed-log-date-face": {
"fg": "#74932f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"elfeed-log-error-level-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"elfeed-log-warn-level-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"elfeed-log-info-level-face": {
"fg": "#74932f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"elfeed-log-debug-level-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -3224,512 +2743,326 @@
"mu4e-title-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-context-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"mu4e-modeline-face": {
"fg": "#8e919a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-ok-face": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-warning-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-header-title-face": {
"fg": "#67809c",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-header-key-face": {
"fg": "#67809c",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"mu4e-header-value-face": {
"fg": "#67809c",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-header-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-header-highlight-face": {
"fg": null,
"bg": "#363638",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "mu4e-header-face",
"source": "user"
},
"mu4e-header-marks-face": {
"fg": "#67809c",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"mu4e-unread-face": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-flagged-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "mu4e-header-highlight-face",
"source": "user"
},
"mu4e-replied-face": {
"fg": "#67809c",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"mu4e-forwarded-face": {
"fg": "#67809c",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"mu4e-draft-face": {
"fg": "#9f80c9",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"mu4e-trashed-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"mu4e-related-face": {
"fg": "#8e919a",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"mu4e-contact-face": {
"fg": "#e6ce88",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "fixed-pitch",
"source": "user"
},
"mu4e-special-header-value-face": {
"fg": "#cbd0d6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-url-number-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"mu4e-link-face": {
"fg": "#6191c7",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"mu4e-footer-face": {
"fg": "#8e919a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-region-code": {
"fg": "#9f80c9",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"mu4e-system-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"mu4e-highlight-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"mu4e-compose-separator-face": {
"fg": "#100f0f",
"bg": "#546c20",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
}
},
"gnus": {
"gnus-header-name": {
"fg": "#8e919a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"gnus-header-from": {
"fg": "#74932f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"gnus-header-subject": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"gnus-header-content": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"gnus-header-newsgroups": {
"fg": "#8e919a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"gnus-cite-1": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-2": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-3": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-4": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-5": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-6": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-7": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-8": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-9": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-10": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-11": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-cite-attribution": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-signature": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-button": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-emphasis-bold": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-emphasis-italic": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-emphasis-underline": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-emphasis-strikethru": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"gnus-emphasis-highlight-words": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -3738,472 +3071,310 @@
"org-faces-todo": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-project": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-doing": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-waiting": {
"fg": "#899bb1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-verify": {
"fg": "#9ba8bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-stalled": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-delegated": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-failed": {
"fg": "#777980",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"org-faces-done": {
"fg": "#777980",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"org-faces-cancelled": {
"fg": "#777980",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"org-faces-priority-a": {
"fg": "#e6ce88",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-faces-priority-b": {
"fg": "#dab53d",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-faces-priority-c": {
"fg": "#ab8d2e",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-faces-priority-d": {
"fg": "#7e671f",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-faces-todo-dim": {
"fg": "#546c20",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-project-dim": {
"fg": "#546c20",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-doing-dim": {
"fg": "#546c20",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-waiting-dim": {
"fg": "#788da6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-verify-dim": {
"fg": "#788da6",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-stalled-dim": {
"fg": "#7e671f",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-delegated-dim": {
"fg": "#546c20",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-faces-failed-dim": {
"fg": "#4a4b4f",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"org-faces-done-dim": {
"fg": "#4a4b4f",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"org-faces-cancelled-dim": {
"fg": "#4a4b4f",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"org-faces-priority-a-dim": {
"fg": "#ab8d2e",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-faces-priority-b-dim": {
"fg": "#7e671f",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-faces-priority-c-dim": {
"fg": "#544412",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"org-faces-priority-d-dim": {
"fg": "#544412",
"bg": "#100f0f",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
}
},
"ghostel": {
"ghostel-default": {
"fg": "#edeff1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-fake-cursor": {
"fg": "#100f0f",
"bg": "#a9b2bb",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-fake-cursor-box": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-black": {
"fg": "#8e919a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-red": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-green": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-yellow": {
"fg": "#ab8d2e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-blue": {
"fg": "#899bb1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-magenta": {
"fg": "#9f80c9",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-cyan": {
"fg": "#0096b0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-white": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-bright-black": {
"fg": "#bfc4d0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-bright-red": {
"fg": "#cb8b7a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-bright-green": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-bright-yellow": {
"fg": "#e6ce88",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-bright-blue": {
"fg": "#adb6c6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-bright-magenta": {
"fg": "#bea9dc",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"ghostel-color-bright-cyan": {
"fg": "#6ba9bd",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"ghostel-color-bright-white": {
"fg": "#edeff1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -4212,20 +3383,12 @@
"auto-dim-other-buffers": {
"fg": "#777980",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"auto-dim-other-buffers-hide": {
"fg": "#0a0c0d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -4234,80 +3397,54 @@
"dashboard-banner-logo-title": {
"fg": "#dab53d",
"bg": "#100f0f",
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "default",
- "source": "user"
+ "source": "user",
+ "weight": "bold",
+ "slant": "italic",
+ "height": 1.15
},
"dashboard-text-banner": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "default",
"source": "user"
},
"dashboard-heading": {
"fg": "#67809c",
"bg": "#100f0f",
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
- "source": "user"
+ "source": "user",
+ "weight": "bold",
+ "slant": "italic"
},
"dashboard-items-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "widget-button",
"source": "user"
},
"dashboard-navigator": {
"fg": "#a9b2bb",
"bg": "#100f0f",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"dashboard-no-items-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "widget-button",
"source": "user"
},
"dashboard-footer-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-doc-face",
"source": "default"
},
"dashboard-footer-icon-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "dashboard-footer-face",
"source": "default"
}
@@ -4316,140 +3453,91 @@
"lsp-signature-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"lsp-signature-highlight-function-argument": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"lsp-signature-posframe": {
"fg": null,
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"lsp-face-highlight-read": {
"fg": null,
"bg": "#264364",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"lsp-face-highlight-write": {
"fg": null,
"bg": "#3d2f4a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"lsp-face-highlight-textual": {
"fg": null,
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"lsp-face-rename": {
"fg": null,
"bg": "#2f343a",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"lsp-rename-placeholder-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"lsp-inlay-hint-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"lsp-inlay-hint-parameter-face": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"lsp-inlay-hint-type-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"lsp-details-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"lsp-installation-buffer-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"lsp-installation-finished-buffer-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -4458,50 +3546,30 @@
"git-gutter:added": {
"fg": "#74932f",
"bg": "#74932f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"git-gutter:modified": {
"fg": "#ab8d2e",
"bg": "#ab8d2e",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"git-gutter:deleted": {
"fg": "#cb6b4d",
"bg": "#cb6b4d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"git-gutter:unchanged": {
"fg": "#a9b2bb",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"git-gutter:separator": {
"fg": "#54677d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -4510,200 +3578,121 @@
"flycheck-error": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-warning": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-info": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-fringe-error": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-fringe-warning": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-fringe-info": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-delimited-error": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-delimiter": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-error": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-warning": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-info": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-error-message": {
"fg": "#cdced1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-checker-name": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-column-number": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-line-number": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-filename": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-id": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-error-list-id-with-explainer": {
"fg": "#838d97",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"flycheck-error-list-highlight": {
"fg": null,
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"flycheck-verify-select-checker": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -4712,502 +3701,317 @@
"dired-header": {
"fg": "#54677d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"dired-directory": {
"fg": "#67809c",
"bg": null,
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold",
+ "slant": "italic"
},
"dired-symlink": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"dired-broken-symlink": {
"fg": "#cb7b64",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"dired-special": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"dired-set-id": {
"fg": "#cb7b64",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"dired-perm-write": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dired-mark": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dired-marked": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dired-flagged": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"dired-ignored": {
"fg": "#777980",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"dired-warning": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
}
},
"dirvish": {
"dirvish-inactive": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-free-space": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-hl-line": {
"fg": null,
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-hl-line-inactive": {
"fg": null,
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-modes": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-link-number": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-user-id": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-group-id": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-size": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-time": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-inode-number": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-file-device-number": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-subtree-guide": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-subtree-state": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-collapse-dir-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-collapse-empty-dir-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-collapse-file-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-emerge-group-title": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dirvish-media-info-heading": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dirvish-media-info-property-key": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-narrow-match-face-0": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dirvish-narrow-match-face-1": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dirvish-narrow-match-face-2": {
"fg": "#2ba178",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dirvish-narrow-match-face-3": {
"fg": "#6624a0",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dirvish-narrow-split": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-proc-running": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-proc-finished": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-proc-failed": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-git-commit-message-face": {
"fg": "#998162",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"dirvish-vc-added-state": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-vc-edited-state": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-vc-removed-state": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-vc-conflict-state": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"dirvish-vc-locked-state": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-vc-missing-state": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-vc-needs-merge-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-vc-needs-update-state": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"dirvish-vc-unregistered-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -5216,592 +4020,380 @@
"calibredb-search-header-library-name-face": {
"fg": "#bfc4d0",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"calibredb-search-header-library-path-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-search-header-total-face": {
"fg": "#74932f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-search-header-filter-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"calibredb-search-header-sort-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-search-header-highlight-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"calibredb-id-face": {
"fg": "#606267",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-title-face": {
"fg": "#cbd0d6",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"calibredb-author-face": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-format-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-size-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-tag-face": {
"fg": "#788da6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-date-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-mark-face": {
"fg": "#e6ce88",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"calibredb-series-face": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-publisher-face": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-pubdate-face": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-language-face": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-comment-face": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"calibredb-archive-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-favorite-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"calibredb-file-face": {
"fg": "#ab8d2e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-ids-face": {
"fg": "#7c838a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-highlight-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"calibredb-current-page-button-face": {
"fg": "#bfc4d0",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"calibredb-mouse-face": {
"fg": null,
"bg": "#363638",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"calibredb-title-detailed-view-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"calibredb-edit-annotation-header-title-face": {
"fg": "#bfc4d0",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
}
},
"erc": {
"erc-header-line": {
"fg": "#e4eaf8",
"bg": "#2f343a",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-timestamp-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-notice-face": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-default-face": {
"fg": "#cdced1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-current-nick-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-my-nick-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-my-nick-prefix-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-nick-default-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-nick-prefix-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-button-nick-default-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-nick-msg-face": {
"fg": "#6624a0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-direct-msg-face": {
"fg": "#6624a0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-action-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"erc-keyword-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-pal-face": {
"fg": "#2ba178",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-fool-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-dangerous-host-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-error-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-input-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-prompt-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-command-indicator-face": {
"fg": "#838d97",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-information": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-button": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-bold-face": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"erc-italic-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"erc-underline-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"erc-inverse-face": {
"fg": "#100f0f",
"bg": "#a9b2bb",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-spoiler-face": {
"fg": "#100f0f",
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-fill-wrap-merge-indicator-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-keep-place-indicator-arrow": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"erc-keep-place-indicator-line": {
"fg": null,
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -5810,52 +4402,36 @@
"org-drill-hidden-cloze-face": {
"fg": "#100f0f",
"bg": "#67809c",
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"org-drill-visible-cloze-face": {
"fg": "#e0c266",
"bg": null,
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold",
+ "slant": "italic"
},
"org-drill-visible-cloze-hint-face": {
"fg": "#788da6",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
}
},
"org-noter": {
"org-noter-notes-exist-face": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"org-noter-no-notes-exist-face": {
"fg": "#606267",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -5864,40 +4440,24 @@
"signel-timestamp-face": {
"fg": "#899bb1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"signel-my-msg-face": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"signel-other-msg-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"signel-error-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -5906,632 +4466,412 @@
"pearl-preamble-summary": {
"fg": "#67809c",
"bg": null,
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold",
+ "slant": "italic"
},
"pearl-editable-comment": {
"fg": "#dce0e3",
"bg": "#374712",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"pearl-readonly-comment": {
"fg": "#edeff1",
"bg": "#424f5e",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"pearl-modified-highlight": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"pearl-modified-local": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"pearl-modified-unknown": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
}
},
"slack": {
"slack-room-info-title-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-room-info-title-room-name-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-room-info-section-title-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-room-info-section-label-face": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-room-unread-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-message-output-header": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-message-output-text": {
"fg": "#cdced1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-message-output-reaction": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-message-output-reaction-pressed": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-message-deleted-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"slack-new-message-marker-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-all-thread-buffer-thread-header-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-message-mention-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-message-mention-me-face": {
"fg": "#dab53d",
"bg": "#264364",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-message-mention-keyword-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-channel-button-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-mrkdwn-bold-face": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-mrkdwn-italic-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"slack-mrkdwn-code-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-mrkdwn-code-block-face": {
"fg": "#cb6b4d",
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-mrkdwn-strike-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "strike": {
+ "color": null
+ }
},
"slack-mrkdwn-blockquote-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"slack-mrkdwn-list-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-attachment-header": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-attachment-footer": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-attachment-pad": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-attachment-field-title": {
"fg": "#838d97",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-message-attachment-preview-header-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-preview-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-block-highlight-source-overlay-face": {
"fg": null,
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-message-action-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-message-action-primary-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-message-action-danger-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-button-block-element-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-button-primary-block-element-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-button-danger-block-element-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-select-block-element-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-overflow-block-element-face": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-date-picker-block-element-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-dialog-title-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-dialog-element-label-face": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-dialog-element-hint-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"slack-dialog-element-placeholder-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-dialog-element-error-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-dialog-submit-button-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-dialog-cancel-button-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-dialog-select-element-input-face": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-user-active-face": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-user-dnd-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-user-profile-header-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-user-profile-property-name-face": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-profile-image-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-search-result-message-header-face": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-search-result-message-username-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-modeline-has-unreads-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"slack-modeline-channel-has-unreads-face": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"slack-modeline-thread-has-unreads-face": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -6540,1064 +4880,690 @@
"telega-root-heading": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-tracking": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-unread-unmuted-modeline": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-username": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-user-online-status": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-user-non-online-status": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-secret-title": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-contact-birthdays-today": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-muted-count": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-unmuted-count": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-mention-count": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-has-chatbuf-brackets": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-delim-face": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-shadow": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-link": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-blue": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-red": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-msg-heading": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-msg-user-title": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-msg-self-title": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-msg-deleted": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"telega-msg-sponsored": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"telega-msg-inline-reply": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-msg-inline-forward": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-msg-inline-other": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-bold": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-entity-type-italic": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"telega-entity-type-underline": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"telega-entity-type-strikethrough": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "strike": {
+ "color": null
+ }
},
"telega-entity-type-code": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-pre": {
"fg": "#cb6b4d",
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-blockquote": {
"fg": "#a9b2bb",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"telega-entity-type-mention": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-hashtag": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-cashtag": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-botcommand": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-texturl": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-entity-type-spoiler": {
"fg": "#2f343a",
"bg": "#2f343a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-reaction": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-reaction-chosen": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-reaction-paid": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-reaction-paid-chosen": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-highlight-text-face": {
"fg": "#100f0f",
"bg": "#dab53d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-button-highlight": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-chat-prompt": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-chat-prompt-aux": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-chat-input-attachment": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-topic-button": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-filter-active": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-filter-button-active": {
"fg": "#100f0f",
"bg": "#dab53d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-filter-button-inactive": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-checklist-stats-done": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-checklist-stats-todo": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-active": {
"fg": "#100f0f",
"bg": "#e4eaf8",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-default-active": {
"fg": "#100f0f",
"bg": "#a9b2bb",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-default-passive": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-primary-active": {
"fg": "#100f0f",
"bg": "#e4eaf8",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-primary-passive": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-success-active": {
"fg": "#100f0f",
"bg": "#2ba178",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-success-passive": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-danger-active": {
"fg": "#100f0f",
"bg": "#cb6b4d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-danger-passive": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-ui-active": {
"fg": "#100f0f",
"bg": "#dab53d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button-ui-passive": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button2-active": {
"fg": "#100f0f",
"bg": "#e4eaf8",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button2-passive": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-box-button2-white-foreground": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-describe-item-title": {
"fg": "#838d97",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-describe-section-title": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-describe-subsection-title": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-enckey-00": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-enckey-01": {
"fg": "#5d9b86",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-enckey-10": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-enckey-11": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-palette-builtin-blue": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-palette-builtin-green": {
"fg": "#2ba178",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-palette-builtin-orange": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-palette-builtin-purple": {
"fg": "#6624a0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-webpage-title": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-webpage-subtitle": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-webpage-header": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"telega-webpage-subheader": {
"fg": "#dab53d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-webpage-outline": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-webpage-fixed": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-webpage-preformatted": {
"fg": "#cb6b4d",
"bg": "#1a1714",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-webpage-marked": {
"fg": "#100f0f",
"bg": "#dab53d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-webpage-strike-through": {
"fg": "#5e6770",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "strike": {
+ "color": null
+ }
},
"telega-webpage-chat-link": {
"fg": "#e4eaf8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-link-preview-sitename": {
"fg": "#838d97",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"telega-link-preview-title": {
"fg": "#e4eaf8",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
}
},
"shr": {
"shr-h1": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default",
+ "weight": "bold",
"height": 1.4
},
"shr-h2": {
"fg": "#bfc4d0",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user",
+ "weight": "bold",
"height": 1.2
},
"shr-h3": {
"fg": "#a6aab4",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"shr-h4": {
"fg": "#8e919a",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"shr-h5": {
"fg": "#777980",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"shr-h6": {
"fg": "#606267",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"shr-text": {
"fg": "#bfc4d0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"shr-link": {
"fg": "#6191c7",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"shr-selected-link": {
"fg": "#dab53d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"shr-code": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"shr-mark": {
"fg": "#100f0f",
"bg": "#dab53d",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"shr-strike-through": {
"fg": "#a6aab4",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"shr-sup": {
"fg": "#a6aab4",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"shr-abbreviation": {
"fg": "#a6aab4",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"shr-sliced-image": {
"fg": "#a6aab4",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -7606,110 +5572,66 @@
"twentyfortyeight-face-1024": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-128": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-16": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-2": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-2048": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-256": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-32": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-4": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-512": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-64": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"twentyfortyeight-face-8": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -7718,60 +5640,36 @@
"alert-high-face": {
"fg": "#a85b42",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"alert-low-face": {
"fg": "#67809c",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"alert-moderate-face": {
"fg": "#e0c266",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"alert-normal-face": {
"fg": "#bac1c8",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"alert-trivial-face": {
"fg": "#9f80c9",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"alert-urgent-face": {
"fg": "#a85b42",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -7780,340 +5678,204 @@
"all-the-icons-blue": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-blue-alt": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-cyan": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-cyan-alt": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dblue": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dcyan": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dgreen": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dmaroon": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dorange": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dpink": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dpurple": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dred": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dsilver": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-dyellow": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-green": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lblue": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lcyan": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lgreen": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lmaroon": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lorange": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lpink": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lpurple": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lred": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lsilver": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-lyellow": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-maroon": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-orange": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-pink": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-purple": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-purple-alt": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-red": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-red-alt": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-silver": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"all-the-icons-yellow": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -8122,30 +5884,18 @@
"company-echo": {
"fg": "#bfc4d0",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"company-echo-common": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"company-preview": {
"fg": "#bfc4d0",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": [
"company-tooltip-selection",
"company-tooltip"
@@ -8155,222 +5905,140 @@
"company-preview-common": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "company-tooltip-common-selection",
"source": "user"
},
"company-preview-search": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "company-tooltip-common-selection",
"source": "user"
},
"company-tooltip": {
"fg": "#100f0f",
"bg": "#bfc4d0",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"company-tooltip-annotation": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"company-tooltip-annotation-selection": {
"fg": null,
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "company-tooltip-annotation",
"source": "user"
},
"company-tooltip-common": {
"fg": "#cb6b4d",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"company-tooltip-common-selection": {
"fg": null,
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "company-tooltip-common",
"source": "user"
},
"company-tooltip-deprecated": {
"fg": "#bfc4d0",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "strike": {
+ "color": null
+ }
},
"company-tooltip-mouse": {
"fg": "#bfc4d0",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "user"
},
"company-tooltip-quick-access": {
"fg": null,
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "company-tooltip-annotation",
"source": "user"
},
"company-tooltip-quick-access-selection": {
"fg": null,
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "company-tooltip-annotation-selection",
"source": "user"
},
"company-tooltip-scrollbar-thumb": {
"fg": "#100f0f",
"bg": "#cb6b4d",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"company-tooltip-scrollbar-track": {
"fg": "#bfc4d0",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"company-tooltip-search": {
"fg": "#bfc4d0",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "user"
},
"company-tooltip-search-selection": {
"fg": "#bfc4d0",
"bg": "#100f0f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "user"
},
"company-tooltip-selection": {
"fg": "#100f0f",
"bg": "#67809c",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
}
},
"company-box": {
"company-box-annotation": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"company-box-background": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"company-box-candidate": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"company-box-numbers": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"company-box-scrollbar": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"company-box-selection": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -8379,200 +6047,120 @@
"consult-async-failed": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-async-finished": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-async-running": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-async-split": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-bookmark": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-buffer": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-file": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-grep-context": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-help": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-highlight-mark": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-highlight-match": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-line-number": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-line-number-prefix": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-line-number-wrapped": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-narrow-indicator": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-preview-insertion": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-preview-line": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-preview-match": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"consult-separator": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -8581,122 +6169,80 @@
"embark-collect-annotation": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "completions-annotations",
"source": "default"
},
"embark-collect-candidate": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "default",
"source": "default"
},
"embark-collect-group-separator": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": "shadow",
- "source": "default"
+ "source": "default",
+ "strike": {
+ "color": null
+ }
},
"embark-collect-group-title": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "shadow",
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"embark-keybinding": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "success",
"source": "default"
},
"embark-keybinding-repeat": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"embark-keymap": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"embark-selected": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "match",
"source": "default"
},
"embark-target": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "default"
},
"embark-verbose-indicator-documentation": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "completions-annotations",
"source": "default"
},
"embark-verbose-indicator-shadowed": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
},
"embark-verbose-indicator-title": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default",
+ "weight": "bold",
"height": 1.1
}
},
@@ -8704,110 +6250,67 @@
"emms-browser-album-face": {
"fg": "#8ea85e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"emms-browser-albumartist-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"emms-browser-artist-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"emms-browser-composer-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"emms-browser-performer-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"emms-browser-track-face": {
"fg": "#788da6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"emms-browser-year/genre-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"emms-metaplaylist-mode-current-face": {
"fg": "#cb8b7a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"emms-metaplaylist-mode-face": {
"fg": "#cb6b4d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"emms-playlist-selected-face": {
"fg": "#e6ce88",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"emms-playlist-track-face": {
"fg": "#cbd0d6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
}
@@ -8816,10 +6319,6 @@
"flyspell-correct-highlight-face": {
"fg": null,
"bg": "#363638",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "isearch",
"source": "user"
}
@@ -8828,90 +6327,54 @@
"highlight-indent-guides-character-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-even-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-odd-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-stack-character-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-stack-even-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-stack-odd-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-top-character-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-top-even-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"highlight-indent-guides-top-odd-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -8920,20 +6383,12 @@
"hl-todo": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"hl-todo-flymake-type": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -8942,10 +6397,6 @@
"json-mode-object-name-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -8954,50 +6405,30 @@
"llama-##-macro": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"llama-deleted-argument": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"llama-llama-macro": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"llama-mandatory-argument": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"llama-optional-argument": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -9006,10 +6437,6 @@
"lv-separator": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -9018,60 +6445,36 @@
"magit-left-margin": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-section-child-count": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-section-heading": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-section-heading-selection": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-section-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"magit-section-secondary-heading": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -9080,50 +6483,33 @@
"malyon-face-bold": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "bold",
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"malyon-face-error": {
"fg": "#cb6b4d",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "error",
- "source": "user"
+ "source": "user",
+ "weight": "bold"
},
"malyon-face-italic": {
"fg": "#bfc4d0",
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "italic",
- "source": "user"
+ "source": "user",
+ "slant": "italic"
},
"malyon-face-plain": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "default",
"source": "default"
},
"malyon-face-reverse": {
"fg": "#100f0f",
"bg": "#bfc4d0",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "default",
"source": "user"
}
@@ -9132,320 +6518,192 @@
"marginalia-archive": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "warning",
"source": "default"
},
"marginalia-char": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-key",
"source": "default"
},
"marginalia-date": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-key",
"source": "default"
},
"marginalia-documentation": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "completions-annotations",
"source": "default"
},
"marginalia-file-name": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-documentation",
"source": "default"
},
"marginalia-file-owner": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-preprocessor-face",
"source": "default"
},
"marginalia-file-priv-dir": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"marginalia-file-priv-exec": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-function-name-face",
"source": "default"
},
"marginalia-file-priv-link": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"marginalia-file-priv-no": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
},
"marginalia-file-priv-other": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-constant-face",
"source": "default"
},
"marginalia-file-priv-rare": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-variable-name-face",
"source": "default"
},
"marginalia-file-priv-read": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-type-face",
"source": "default"
},
"marginalia-file-priv-write": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"marginalia-function": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-function-name-face",
"source": "default"
},
"marginalia-installed": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "success",
"source": "default"
},
"marginalia-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"marginalia-lighter": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-size",
"source": "default"
},
"marginalia-list": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-constant-face",
"source": "default"
},
"marginalia-mode": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-key",
"source": "default"
},
"marginalia-modified": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-negation-char-face",
"source": "default"
},
"marginalia-null": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-comment-face",
"source": "default"
},
"marginalia-number": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-constant-face",
"source": "default"
},
"marginalia-off": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "error",
"source": "default"
},
"marginalia-on": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "success",
"source": "default"
},
"marginalia-size": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-number",
"source": "default"
},
"marginalia-string": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
},
"marginalia-symbol": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-type-face",
"source": "default"
},
"marginalia-true": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"marginalia-type": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-key",
"source": "default"
},
"marginalia-value": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-key",
"source": "default"
},
"marginalia-version": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "marginalia-number",
"source": "default"
}
@@ -9454,252 +6712,153 @@
"markdown-blockquote-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-doc-face",
"source": "default"
},
"markdown-bold-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "bold",
"source": "default"
},
"markdown-code-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "fixed-pitch",
"source": "default"
},
"markdown-comment-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-comment-face",
"source": "default"
},
"markdown-footnote-marker-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-markup-face",
"source": "default"
},
"markdown-footnote-text-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-comment-face",
"source": "default"
},
"markdown-gfm-checkbox-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"markdown-header-delimiter-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-markup-face",
"source": "default"
},
"markdown-header-face": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": [
"font-lock-function-name-face"
],
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"markdown-header-face-1": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-header-face",
"source": "default"
},
"markdown-header-face-2": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-header-face",
"source": "default"
},
"markdown-header-face-3": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-header-face",
"source": "default"
},
"markdown-header-face-4": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-header-face",
"source": "default"
},
"markdown-header-face-5": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-header-face",
"source": "default"
},
"markdown-header-face-6": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-header-face",
"source": "default"
},
"markdown-header-rule-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-markup-face",
"source": "default"
},
"markdown-highlight-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "default"
},
"markdown-highlighting-face": {
"fg": "#100f0f",
"bg": "#e6ce88",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "user"
},
"markdown-hr-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-markup-face",
"source": "default"
},
"markdown-html-attr-name-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-variable-name-face",
"source": "default"
},
"markdown-html-attr-value-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
},
"markdown-html-entity-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-variable-name-face",
"source": "default"
},
"markdown-html-tag-delimiter-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-markup-face",
"source": "default"
},
"markdown-html-tag-name-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-type-face",
"source": "default"
},
"markdown-inline-code-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": [
"markdown-code-face",
"font-lock-constant-face"
@@ -9709,140 +6868,88 @@
"markdown-italic-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "italic",
"source": "default"
},
"markdown-language-info-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
},
"markdown-language-keyword-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-type-face",
"source": "default"
},
"markdown-line-break-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": "font-lock-constant-face",
- "source": "default"
+ "source": "default",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"markdown-link-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "link",
"source": "default"
},
"markdown-link-title-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-comment-face",
"source": "default"
},
"markdown-list-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-markup-face",
"source": "default"
},
"markdown-markup-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
},
"markdown-math-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
},
"markdown-metadata-key-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-variable-name-face",
"source": "default"
},
"markdown-metadata-value-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
},
"markdown-missing-link-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-warning-face",
"source": "default"
},
"markdown-plain-url-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-link-face",
"source": "default"
},
"markdown-pre-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": [
"markdown-code-face",
"font-lock-constant-face"
@@ -9852,30 +6959,21 @@
"markdown-reference-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "markdown-markup-face",
"source": "default"
},
"markdown-strike-through-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "strike": {
+ "color": null
+ }
},
"markdown-table-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": [
"markdown-code-face"
],
@@ -9884,10 +6982,6 @@
"markdown-url-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
}
@@ -9896,340 +6990,204 @@
"nerd-icons-blue": {
"fg": "#6a9fb5",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-blue-alt": {
"fg": "#2188b6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-cyan": {
"fg": "#75b5aa",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-cyan-alt": {
"fg": "#0595bd",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dblue": {
"fg": "#446674",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dcyan": {
"fg": "#48746d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dgreen": {
"fg": "#6d8143",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dmaroon": {
"fg": "#72584b",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dorange": {
"fg": "#915b2d",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dpink": {
"fg": "#7e5d5f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dpurple": {
"fg": "#694863",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dred": {
"fg": "#843031",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dsilver": {
"fg": "#838484",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-dyellow": {
"fg": "#b48d56",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-green": {
"fg": "#90a959",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lblue": {
"fg": "#677174",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lcyan": {
"fg": "#2c7d6e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lgreen": {
"fg": "#3d6837",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lmaroon": {
"fg": "#ce7a4e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lorange": {
"fg": "#ffa500",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lpink": {
"fg": "#ff505b",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lpurple": {
"fg": "#e69dd6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lred": {
"fg": "#eb595a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lsilver": {
"fg": "#7f7869",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-lyellow": {
"fg": "#ff9300",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-maroon": {
"fg": "#8f5536",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-orange": {
"fg": "#d4843e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-pink": {
"fg": "#fc505b",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-purple": {
"fg": "#68295b",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-purple-alt": {
"fg": "#5d54e1",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-red": {
"fg": "#ac4142",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-red-alt": {
"fg": "#843031",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-silver": {
"fg": "#716e68",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"nerd-icons-yellow": {
"fg": "#ffcc0e",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -10238,10 +7196,6 @@
"nerd-icons-completion-dir-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -10250,132 +7204,84 @@
"orderless-match-face-0": {
"fg": "#223fbf",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"orderless-match-face-1": {
"fg": "#8f0075",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"orderless-match-face-2": {
"fg": "#145a00",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"orderless-match-face-3": {
"fg": "#804000",
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
}
},
"org-roam": {
"org-roam-dailies-calendar-note": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-dim": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-header-line": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-olp": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-preview-heading": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-preview-heading-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-preview-heading-selection": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-preview-region": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-roam-title": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -10384,40 +7290,24 @@
"org-superstar-first": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "org-warning",
"source": "default"
},
"org-superstar-header-bullet": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"org-superstar-item": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "default",
"source": "default"
},
"org-superstar-leading": {
"fg": "#bebebe",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "default",
"source": "default"
}
@@ -10426,20 +7316,12 @@
"prescient-primary-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"prescient-secondary-highlight": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -10448,130 +7330,78 @@
"rainbow-delimiters-base-error-face": {
"fg": "#cb8b7a",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-face",
"source": "user"
},
"rainbow-delimiters-base-face": {
"fg": "#cbd0d6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "unspecified",
"source": "user"
},
"rainbow-delimiters-depth-1-face": {
"fg": "#9f80c9",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-face",
"source": "user"
},
"rainbow-delimiters-depth-2-face": {
"fg": "#788da6",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-face",
"source": "user"
},
"rainbow-delimiters-depth-3-face": {
"fg": "#a9be87",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-face",
"source": "user"
},
"rainbow-delimiters-depth-4-face": {
"fg": "#e0c266",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-face",
"source": "user"
},
"rainbow-delimiters-depth-5-face": {
"fg": "#0096b0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-face",
"source": "user"
},
"rainbow-delimiters-depth-6-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-depth-1-face",
"source": "user"
},
"rainbow-delimiters-depth-7-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-depth-2-face",
"source": "user"
},
"rainbow-delimiters-depth-8-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-depth-3-face",
"source": "user"
},
"rainbow-delimiters-depth-9-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-depth-4-face",
"source": "user"
},
"rainbow-delimiters-mismatched-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-error-face",
"source": "user"
},
"rainbow-delimiters-unmatched-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "rainbow-delimiters-base-error-face",
"source": "user"
}
@@ -10580,90 +7410,54 @@
"symbol-overlay-default-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "default"
},
"symbol-overlay-face-1": {
"fg": "#000000",
"bg": "#1e90ff",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"symbol-overlay-face-2": {
"fg": "#000000",
"bg": "#ff69b4",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"symbol-overlay-face-3": {
"fg": "#000000",
"bg": "#ffff00",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"symbol-overlay-face-4": {
"fg": "#000000",
"bg": "#da70d6",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"symbol-overlay-face-5": {
"fg": "#000000",
"bg": "#ff0000",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"symbol-overlay-face-6": {
"fg": "#000000",
"bg": "#fa8072",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"symbol-overlay-face-7": {
"fg": "#000000",
"bg": "#00ff7f",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"symbol-overlay-face-8": {
"fg": "#000000",
"bg": "#40e0d0",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -10672,120 +7466,72 @@
"tmr-description": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "bold",
"source": "default"
},
"tmr-duration": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"tmr-end-time": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "error",
"source": "default"
},
"tmr-finished": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "error",
"source": "default"
},
"tmr-is-acknowledged": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "success",
"source": "default"
},
"tmr-must-be-acknowledged": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "warning",
"source": "default"
},
"tmr-start-time": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "success",
"source": "default"
},
"tmr-tabulated-acknowledgement": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "bold",
"source": "default"
},
"tmr-tabulated-description": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-doc-face",
"source": "default"
},
"tmr-tabulated-end-time": {
"fg": "#800040",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"tmr-tabulated-remaining-time": {
"fg": "#603f00",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"tmr-tabulated-start-time": {
"fg": "#004476",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -10794,70 +7540,45 @@
"transient-active-infix": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "default"
},
"transient-argument": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"transient-delimiter": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
},
"transient-disabled-suffix": {
"fg": "#000000",
"bg": "#ff0000",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"transient-enabled-suffix": {
"fg": "#000000",
"bg": "#00ff00",
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"transient-heading": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"transient-higher-level": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default",
"box": {
@@ -10869,120 +7590,74 @@
"transient-inactive-argument": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
},
"transient-inactive-value": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
},
"transient-inapt-argument": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"transient-inapt-suffix": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "shadow",
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"transient-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"transient-key-exit": {
"fg": "#aa2222",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "transient-key",
"source": "default"
},
"transient-key-noop": {
"fg": "#cccccc",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "transient-key",
"source": "default"
},
"transient-key-recurse": {
"fg": "#2266ff",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "transient-key",
"source": "default"
},
"transient-key-return": {
"fg": "#aaaa11",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "transient-key",
"source": "default"
},
"transient-key-stack": {
"fg": "#dd4488",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "transient-key",
"source": "default"
},
"transient-key-stay": {
"fg": "#22aa22",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "transient-key",
"source": "default"
},
"transient-mismatched-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default",
"box": {
@@ -10994,10 +7669,6 @@
"transient-nonstandard-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default",
"box": {
@@ -11009,20 +7680,12 @@
"transient-unreachable": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
},
"transient-unreachable-key": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": [
"shadow",
"transient-key"
@@ -11032,52 +7695,37 @@
"transient-value": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
- "source": "default"
+ "source": "default",
+ "weight": "bold"
}
},
"vertico": {
"vertico-current": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "highlight",
"source": "default"
},
"vertico-group-separator": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": true,
"inherit": "vertico-group-title",
- "source": "default"
+ "source": "default",
+ "strike": {
+ "color": null
+ }
},
"vertico-group-title": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "shadow",
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"vertico-multiline": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "shadow",
"source": "default"
}
@@ -11086,810 +7734,512 @@
"web-mode-annotation-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-comment-face",
"source": "default"
},
"web-mode-annotation-html-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "web-mode-annotation-face",
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"web-mode-annotation-tag-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": "web-mode-annotation-face",
- "source": "default"
+ "source": "default",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"web-mode-annotation-type-face": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-annotation-face",
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"web-mode-annotation-value-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "web-mode-annotation-face",
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"web-mode-block-attr-name-face": {
"fg": "#8fbc8f",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-block-attr-value-face": {
"fg": "#5f9ea0",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-block-comment-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-comment-face",
"source": "default"
},
"web-mode-block-control-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-preprocessor-face",
"source": "default"
},
"web-mode-block-delimiter-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-preprocessor-face",
"source": "default"
},
"web-mode-block-face": {
"fg": null,
"bg": "#ffffe0",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-block-string-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-bold-face": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"web-mode-builtin-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"web-mode-comment-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-comment-face",
"source": "default"
},
"web-mode-comment-keyword-face": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold"
},
"web-mode-constant-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-constant-face",
"source": "default"
},
"web-mode-css-at-rule-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-constant-face",
"source": "default"
},
"web-mode-css-color-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"web-mode-css-comment-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-comment-face",
"source": "default"
},
"web-mode-css-function-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"web-mode-css-priority-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"web-mode-css-property-name-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-variable-name-face",
"source": "default"
},
"web-mode-css-pseudo-class-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-builtin-face",
"source": "default"
},
"web-mode-css-selector-class-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"web-mode-css-selector-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"web-mode-css-selector-tag-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"web-mode-css-string-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-css-variable-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": "web-mode-variable-name-face",
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"web-mode-current-column-highlight-face": {
"fg": null,
"bg": "#3e3c36",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-current-element-highlight-face": {
"fg": "#ffffff",
"bg": "#000000",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-doctype-face": {
"fg": "#bebebe",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-error-face": {
"fg": null,
"bg": "#ff0000",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-filter-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-function-name-face",
"source": "default"
},
"web-mode-folded-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"web-mode-function-call-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-function-name-face",
"source": "default"
},
"web-mode-function-name-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-function-name-face",
"source": "default"
},
"web-mode-html-attr-custom-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-html-attr-name-face",
"source": "default"
},
"web-mode-html-attr-engine-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-block-delimiter-face",
"source": "default"
},
"web-mode-html-attr-equal-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-html-attr-name-face",
"source": "default"
},
"web-mode-html-attr-name-face": {
"fg": "#8b8989",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-html-attr-value-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
},
"web-mode-html-entity-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"web-mode-html-tag-bracket-face": {
"fg": "#242424",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-html-tag-custom-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-html-tag-face",
"source": "default"
},
"web-mode-html-tag-face": {
"fg": "#8b8989",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-html-tag-namespaced-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-block-control-face",
"source": "default"
},
"web-mode-html-tag-unclosed-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": "web-mode-html-tag-face",
- "source": "default"
+ "source": "default",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"web-mode-inlay-face": {
"fg": null,
"bg": "#ffffe0",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-interpolate-color1-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-interpolate-color2-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-interpolate-color3-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-interpolate-color4-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-italic-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "slant": "italic"
},
"web-mode-javascript-comment-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-comment-face",
"source": "default"
},
"web-mode-javascript-string-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-json-comment-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-comment-face",
"source": "default"
},
"web-mode-json-context-face": {
"fg": "#cd69c9",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-json-key-face": {
"fg": "#dda0dd",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-json-string-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-jsx-depth-1-face": {
"fg": null,
"bg": "#000053",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-jsx-depth-2-face": {
"fg": null,
"bg": "#001970",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-jsx-depth-3-face": {
"fg": null,
"bg": "#002984",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-jsx-depth-4-face": {
"fg": null,
"bg": "#49599a",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-jsx-depth-5-face": {
"fg": null,
"bg": "#9499b7",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-keyword-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-keyword-face",
"source": "default"
},
"web-mode-param-name-face": {
"fg": "#cdc9c9",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-part-comment-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-comment-face",
"source": "default"
},
"web-mode-part-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-block-face",
"source": "default"
},
"web-mode-part-string-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-string-face",
"source": "default"
},
"web-mode-preprocessor-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-preprocessor-face",
"source": "default"
},
"web-mode-script-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-part-face",
"source": "default"
},
"web-mode-sql-keyword-face": {
"fg": null,
"bg": null,
- "bold": true,
- "italic": true,
- "underline": false,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "weight": "bold",
+ "slant": "italic"
},
"web-mode-string-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-string-face",
"source": "default"
},
"web-mode-style-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "web-mode-part-face",
"source": "default"
},
"web-mode-symbol-face": {
"fg": "#eeb422",
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"web-mode-type-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-type-face",
"source": "default"
},
"web-mode-underline-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": true,
- "strike": false,
"inherit": null,
- "source": "default"
+ "source": "default",
+ "underline": {
+ "style": "line",
+ "color": null
+ }
},
"web-mode-variable-name-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-variable-name-face",
"source": "default"
},
"web-mode-warning-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "font-lock-warning-face",
"source": "default"
},
"web-mode-whitespace-face": {
"fg": null,
"bg": "#68228b",
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
}
@@ -11898,20 +8248,12 @@
"yas--field-debug-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": null,
"source": "default"
},
"yas-field-highlight-face": {
"fg": null,
"bg": null,
- "bold": false,
- "italic": false,
- "underline": false,
- "strike": false,
"inherit": "region",
"source": "default"
}
diff --git a/scripts/theme-studio/app-core.js b/scripts/theme-studio/app-core.js
index 566e5a69b..e74b0835e 100644
--- a/scripts/theme-studio/app-core.js
+++ b/scripts/theme-studio/app-core.js
@@ -9,7 +9,7 @@
// where normHex (app-util.js) and the colormath helpers are already present from
// the bodies inlined above this one.
import { normHex } from './app-util.js';
-import { oklch2hex, srgb2oklab, oklab2oklch, oklab2lrgb, lrgb2hex, inGamut, contrast } from './colormath.js';
+import { oklch2hex, srgb2oklab, oklab2lrgb, lrgb2hex, inGamut, contrast, oklchOf, isPureEndpointHex, reliefColors } from './colormath.js';
// Resolve a palette name (or a raw #hex) to a hex; null when the name is unknown.
function nameToHex(n,palette){if(!n)return null;if(/^#/.test(n))return n;const p=palette.find(p=>p[1]===n);return p?p[0]:null;}
@@ -28,10 +28,80 @@ function migrateLegacyFace(d){
return out;
}
+// --- face CSS rendering ------------------------------------------------------
+// Pure builders for the face preview/inline CSS strings. app.js's syntaxStyle /
+// uiCss / ofs / udeco wrappers differ only in how they resolve fg/bg and whether
+// they add a font-size; they all delegate here. cssWeight maps the curated weight
+// names to numeric CSS weights; faceDecoration is the underline/strike value.
+function cssWeight(w){const M={light:300,normal:400,medium:500,semibold:600,bold:700,heavy:900};return w&&M[w]!=null?M[w]:'normal';}
+function faceDecoration(face){return ((face.underline?'underline ':'')+(face.strike?'line-through':'')).trim()||'none';}
+// A face's :box, rendered as an inset box-shadow (no layout shift). Returns the
+// box-shadow VALUE (or '' for no box). 'line' is a flat border in the box color
+// (or the face's own color when unset); 'released'/'pressed' are the 3D button
+// styles Emacs draws, derived from explicit box color when set, otherwise BG so
+// they read on any color (reliefColors is ported from xterm.c).
+function boxCss(b,bg){if(!b||!b.style)return '';const w=b.width||1;
+ if(b.style==='released'||b.style==='pressed'){
+ const r=(b.color||bg)?reliefColors(b.color||bg):{hl:null,sh:null};
+ const hl=r.hl||'#ffffff33',sh=r.sh||'#00000066';
+ const [a,z]=b.style==='released'?[hl,sh]:[sh,hl];
+ return `inset ${w}px ${w}px 0 ${a},inset -${w}px -${w}px 0 ${z}`;}
+ return `inset 0 0 0 ${w}px ${b.color||'currentColor'}`;}
+// CSS declaration string for FACE with already-resolved FG/BG. opts: noBg
+// (never emit background), fontSize (em number for height), boxBg (background
+// handed to the relief shading). Declaration order matches the strings the four
+// callers previously assembled by hand, so the rendered output is unchanged.
+function faceCss(face,fg,bg,opts){
+ opts=opts||{};
+ const parts=['color:'+fg];
+ if(bg&&!opts.noBg)parts.push('background:'+bg);
+ parts.push('font-weight:'+cssWeight(face.weight),
+ 'font-style:'+(face.slant||'normal'),
+ 'text-decoration:'+faceDecoration(face));
+ if(opts.fontSize!=null)parts.push('font-size:'+opts.fontSize+'em');
+ const bx=boxCss(face.box,opts.boxBg);
+ if(bx)parts.push('box-shadow:'+bx);
+ return parts.join(';');
+}
+
+// Single source of truth for the per-face attribute model. One row per
+// attribute drives both normalizePkgFace (defaulting + palette resolution) and
+// packagesForExport (which attrs serialize and when). Adding a face attribute
+// is one row here, not an edit in four hand-kept lists.
+// def : value when unset
+// resolve : fg/bg/distant-fg run through the palette name->hex resolver
+// coerce : 'bool' -> !!v ; 'height' -> v||1 ; default -> v ?? def
+// emit : export rule -- 'always' | 'truthy' | 'non-one' | 'bool'
+// A hoisted function rather than a const: the inlined page calls normalizePkgFace
+// at top level (seedPkgmap) before this point in source order, and a const would
+// be in its temporal dead zone there; a function declaration is hoisted.
+function faceAttrs(){return [
+ {k:'fg', def:null, resolve:true, emit:'always'},
+ {k:'bg', def:null, resolve:true, emit:'always'},
+ {k:'distant-fg', def:null, resolve:true, emit:'truthy'},
+ {k:'family', def:null, emit:'truthy'},
+ {k:'weight', def:null, emit:'truthy'},
+ {k:'slant', def:null, emit:'truthy'},
+ {k:'underline', def:null, emit:'truthy'},
+ {k:'strike', def:null, emit:'truthy'},
+ {k:'overline', def:null, emit:'truthy'},
+ {k:'inherit', def:null, emit:'always'},
+ {k:'height', def:1, coerce:'height', emit:'non-one'},
+ {k:'box', def:null, emit:'truthy'},
+ {k:'inverse', def:false, coerce:'bool', emit:'bool'},
+ {k:'extend', def:false, coerce:'bool', emit:'bool'},
+];}
+
function normalizePkgFace(d,source,palette){
d=migrateLegacyFace(d||{});
const resolve=(v)=>palette?nameToHex(v,palette):v;
- return {fg:resolve(d.fg)??null,bg:resolve(d.bg)??null,'distant-fg':resolve(d['distant-fg'])??null,family:d.family??null,weight:d.weight??null,slant:d.slant??null,underline:d.underline??null,strike:d.strike??null,overline:d.overline??null,inherit:d.inherit??null,height:d.height||1,box:d.box??null,inverse:!!d.inverse,extend:!!d.extend,source:source||d.source||'user'};
+ const out={};
+ for(const a of faceAttrs()){
+ let v=a.resolve?resolve(d[a.k]):d[a.k];
+ out[a.k]=a.coerce==='bool'?!!v:a.coerce==='height'?(v||1):(v??a.def);
+ }
+ out.source=source||d.source||'user';
+ return out;
}
@@ -39,7 +109,8 @@ function normalizePkgFace(d,source,palette){
function buildPkgmap(apps,palette){const m={};for(const app in apps){m[app]={};for(const row of apps[app].faces){m[app][row[0]]=normalizePkgFace(row[2],'default',palette);}}return m;}
// The package faces worth exporting (anything seeded or user-touched), trimmed.
-function packagesForExport(map){const out={};for(const app in map){const faces={};for(const face in map[app]){const f=map[app][face];if(f.source==='default'||f.source==='user'||f.source==='cleared'){const o={fg:f.fg,bg:f.bg,inherit:f.inherit,source:f.source};if(f.weight)o.weight=f.weight;if(f.slant)o.slant=f.slant;if(f.underline)o.underline=f.underline;if(f.strike)o.strike=f.strike;if(f['distant-fg'])o['distant-fg']=f['distant-fg'];if(f.family)o.family=f.family;if(f.overline)o.overline=f.overline;if(f.inverse)o.inverse=true;if(f.extend)o.extend=true;if(f.height&&f.height!==1)o.height=f.height;if(f.box)o.box=f.box;faces[face]=o;}}if(Object.keys(faces).length)out[app]=faces;}return out;}
+// Driven by FACE_ATTRS: each attribute's `emit` rule decides whether it lands.
+function packagesForExport(map){const out={};for(const app in map){const faces={};for(const face in map[app]){const f=map[app][face];if(f.source==='default'||f.source==='user'||f.source==='cleared'){const o={};for(const a of faceAttrs()){const v=f[a.k];if(a.emit==='always')o[a.k]=v;else if(a.emit==='truthy'){if(v)o[a.k]=v;}else if(a.emit==='non-one'){if(v&&v!==1)o[a.k]=v;}else if(a.emit==='bool'){if(v)o[a.k]=true;}}o.source=f.source;faces[face]=o;}}if(Object.keys(faces).length)out[app]=faces;}return out;}
// Merge an imported package block into a face map, filling missing fields.
function mergePackagesInto(map,pkgs){if(!pkgs)return;for(const app in pkgs){if(!map[app])map[app]={};for(const face in pkgs[app]){const f=pkgs[app][face]||{};map[app][face]=normalizePkgFace(f,f.source||'user');}}}
@@ -61,16 +132,16 @@ const SYNTAX_INHERIT={cmd:'cm',doc:'str',prop:'var',fnc:'fnd'};
// theme's default foreground (the chain's floor). `dec` (decorator) is pinned to
// `ty`: Emacs has no decorator face and renders decorators with
// font-lock-type-face, so a dec color set in the studio would never reach Emacs.
+// Walk an inherit chain from START, returning the first truthy valueFn(key) or
+// null. nextFn(key) gives the parent key; a seen-set guards against a cycle.
+function walkInheritChain(start,nextFn,valueFn){
+ let k=start;const seen={};
+ while(k&&!seen[k]){seen[k]=1;const v=valueFn(k);if(v)return v;k=nextFn(k);}
+ return null;
+}
function resolveSyntaxFg(cat,syntax,defaultFg){
- let k=(cat==='dec')?'ty':cat;
- const seen={};
- while(k&&!seen[k]){
- seen[k]=1;
- const fg=syntax[k]&&syntax[k].fg;
- if(fg)return fg;
- k=SYNTAX_INHERIT[k];
- }
- return defaultFg;
+ const start=(cat==='dec')?'ty':cat;
+ return walkInheritChain(start,k=>SYNTAX_INHERIT[k],k=>syntax[k]&&syntax[k].fg)||defaultFg;
}
// Emacs built-in inherit chains for the ui faces whose parent is also a studio ui
@@ -82,15 +153,7 @@ const UI_INHERIT={'mode-line-inactive':'mode-line','line-number-current-line':'l
// nothing up the chain is set. The caller applies its own floor (default fg,
// ground, or transparent), since that floor differs per attribute and face.
function resolveUiAttr(face,attr,uimap){
- let f=face;
- const seen={};
- while(f&&!seen[f]){
- seen[f]=1;
- const v=uimap[f]&&uimap[f][attr];
- if(v)return v;
- f=UI_INHERIT[f];
- }
- return null;
+ return walkInheritChain(face,f=>UI_INHERIT[f],f=>uimap[f]&&uimap[f][attr]);
}
// Text color for a swatch-dropdown popup row. A row showing a real palette color
@@ -169,9 +232,7 @@ function lMax(hue,chroma,fgSet,target){
// the editable truth; these pure functions group it, regenerate a ramp, and plan
// assignment re-point across a regenerate.
-function oklchOf(hex){return oklab2oklch(srgb2oklab(hex));}
function isReservedGroundLikeName(name){return /^(bg|fg)(?:[-_+].+|\d.*)$/i.test(name||'');}
-function isPureEndpointHex(hex){const h=(hex||'').toLowerCase();return h==='#ffffff'||h==='#000000';}
function interpOklabHex(a,b,t,offset){
const lab={L:a.L+(b.L-a.L)*t,a:a.a+(b.a-a.a)*t,b:a.b+(b.b-a.b)*t};
const lrgb=oklab2lrgb(lab.L,lab.a,lab.b);
@@ -476,4 +537,4 @@ function overflowNonDefault(cur,def,showInheritHeight){
return false;
}
-export { nameToHex, migrateLegacyFace, normalizePkgFace, buildPkgmap, packagesForExport, mergePackagesInto, effResolve, resolveSyntaxFg, resolveUiAttr, dropdownRowTextColor, paletteOptionList, galleryModel, appViewKeysSorted, faceBoxNonDefaults, overflowNonDefault, stepViewIndex, spanNeighborHex, slugify, fgSetFor, floor, lMax, COVERED_FACES, columnsFromPalette, usedPaletteHexes, paletteUsages, regenColumn, rankByLightness, stepRepointPlan, sortColumns, sortColumnMembers, groundRoleOfEntry, groundColumnMembersFromPalette, clearPalettePlan, deletePaletteColumnPlan, areAllLocked, lockToggleLabel, toggleLockSet };
+export { nameToHex, migrateLegacyFace, cssWeight, faceDecoration, boxCss, faceCss, normalizePkgFace, buildPkgmap, packagesForExport, mergePackagesInto, effResolve, resolveSyntaxFg, resolveUiAttr, dropdownRowTextColor, paletteOptionList, galleryModel, appViewKeysSorted, faceBoxNonDefaults, overflowNonDefault, stepViewIndex, spanNeighborHex, slugify, fgSetFor, floor, lMax, COVERED_FACES, columnsFromPalette, usedPaletteHexes, paletteUsages, regenColumn, rankByLightness, stepRepointPlan, sortColumns, sortColumnMembers, groundRoleOfEntry, groundColumnMembersFromPalette, clearPalettePlan, deletePaletteColumnPlan, areAllLocked, lockToggleLabel, toggleLockSet };
diff --git a/scripts/theme-studio/app.js b/scripts/theme-studio/app.js
index 8e6b01de6..7f41741a2 100644
--- a/scripts/theme-studio/app.js
+++ b/scripts/theme-studio/app.js
@@ -153,7 +153,7 @@ function mkEnumSelect(opts,get,set,title){
function mkLineStyleControl(states,get,set,opts={}){const wrap=document.createElement('div');wrap.className='boxctl';
const cluster=document.createElement('div');cluster.className='boxcluster';const btns={};
states.forEach(([v,title,glyph])=>{const b=document.createElement('button');b.className='boxbtn';b.dataset.style=v;b.textContent=glyph;b.title=title;
- b.onclick=()=>{const cur=get();set(v?Object.assign({color:(cur&&cur.color)||null},opts.styled?{style:v}:{}):null);paint();};
+ b.onclick=()=>{const cur=get();set(v?(opts.toState?opts.toState(v,cur):Object.assign({color:(cur&&cur.color)||null},opts.styled?{style:v}:{})):null);paint();};
cluster.appendChild(b);btns[v]=b;});
const dd=mkColorDropdown(ddList((get()&&get().color)||''),(get()&&get().color)||'',h=>{const cur=get();if(!cur)return;set(Object.assign({},cur,{color:h||null}));paint();},{compact:true,defaultHex:opts.defaultHex});
function paint(){const cur=get(),active=opts.styled?(cur&&cur.style?cur.style:''):(cur?'on':'');
@@ -461,46 +461,24 @@ function uf(f){return UIMAP[f]||{};}
// Map a weight name to a CSS font-weight for the live previews. The named
// weights light/medium/semibold/heavy aren't CSS keywords, so resolve to the
// numeric scale; an unset weight renders normal.
-function cssWeight(w){const M={light:300,normal:400,medium:500,semibold:600,bold:700,heavy:900};return w&&M[w]!=null?M[w]:'normal';}
-function udeco(o){return `font-weight:${cssWeight(o.weight)};font-style:${o.slant||'normal'};text-decoration:${(o.underline?'underline ':'')+(o.strike?'line-through':'')||'none'}`;}
-// A face's :box, rendered as an inset box-shadow (no layout shift). Returns the
-// box-shadow VALUE (or '' for no box). 'line' is a flat border in the box color
-// (or the face's own color when unset); 'released'/'pressed' are the 3D button
-// styles Emacs draws, derived from explicit box color when set, otherwise the
-// background so they read on any color.
-function boxCss(b,bg){if(!b||!b.style)return '';const w=b.width||1;
- if(b.style==='released'||b.style==='pressed'){
- // Emacs derives the 3D edges from a base color (reliefColors, ported from
- // xterm.c); the translucent pair is only the no-color fallback.
- const r=(b.color||bg)?reliefColors(b.color||bg):{hl:null,sh:null};
- const hl=r.hl||'#ffffff33',sh=r.sh||'#00000066';
- const [a,z]=b.style==='released'?[hl,sh]:[sh,hl];
- return `inset ${w}px ${w}px 0 ${a},inset -${w}px -${w}px 0 ${z}`;}
- return `inset 0 0 0 ${w}px ${b.color||'currentColor'}`;}
-function syntaxStyle(k){const s=syntaxFace(k),fg=(k==='bg'?MAP['p']:resolveSyntaxFg(k,SYNTAX,MAP['p'])),bg=s.bg||null,dec=(s.underline?'underline ':'')+(s.strike?'line-through':''),
- bx=boxCss(s.box,bg||MAP['bg']);
- return `color:${fg};${bg?'background:'+bg+';':''}font-weight:${cssWeight(s.weight)};font-style:${s.slant||'normal'};text-decoration:${dec.trim()||'none'}${bx?';box-shadow:'+bx:''}`;}
+// cssWeight, boxCss, faceDecoration, and faceCss live in app-core.js now.
+// udeco keeps its own (untrimmed) decoration form, so it stays here.
+function udeco(o){return 'font-weight:'+cssWeight(o.weight)+';font-style:'+(o.slant||'normal')+';text-decoration:'+((o.underline?'underline ':'')+(o.strike?'line-through':'')||'none');}
+function syntaxStyle(k){const s=syntaxFace(k),fg=(k==='bg'?MAP['p']:resolveSyntaxFg(k,SYNTAX,MAP['p'])),bg=s.bg||null;return faceCss(s,fg,bg,{boxBg:bg||MAP['bg']});}
// The per-row box control: none / line / raised / pressed plus optional line
// color. get()/set() read and write the face's box object (null = no box).
// Box control: a 2x2 cluster of radio buttons for the four box styles (no box /
// line / pressed / raised), plus a compact color swatch shown only while a box
// style is active. Replaces the old wide select+swatch to reclaim column width.
-function mkBoxControl(get,set,opts={}){const wrap=document.createElement('div');wrap.className='boxctl';
- const cluster=document.createElement('div');cluster.className='boxcluster';
- const states=[['','no box',''],['line','line box','□'],['pressed','pressed','▼'],['released','raised','▲']];
- const btns={};
- states.forEach(([v,title,glyph])=>{const b=document.createElement('button');b.className='boxbtn';b.dataset.style=v;b.textContent=glyph;b.title=title;
- b.onclick=()=>{const cur=get();set(v?{style:v,width:(cur&&cur.width)||1,color:(cur&&cur.color)||null}:null);paint();};
- cluster.appendChild(b);btns[v]=b;});
- const dd=mkColorDropdown(ddList((get()&&get().color)||''),(get()&&get().color)||'',h=>{const cur=get();if(!cur)return;set(Object.assign({},cur,{color:h||null}));paint();},{compact:true,defaultHex:opts.defaultHex});
- function paint(){const cur=get(),style=cur&&cur.style?cur.style:'';
- for(const v in btns)btns[v].classList.toggle('on',v===style);
- dd.style.display=style?'':'none';dd.setValue(cur&&cur.color?cur.color:'');
- const locked=wrap.dataset.locked==='1';
- for(const v in btns)btns[v].disabled=locked;
- const ddoff=locked||!style;dd.dataset.locked=ddoff?'1':'';dd.classList.toggle('locked',ddoff);if(dd.syncLocked)dd.syncLocked();}
- wrap.syncLocked=()=>paint();
- wrap.append(cluster,dd);paint();return wrap;}
+// Box control: a 2x2 cluster of the four box styles (no box / line / pressed /
+// raised) plus a compact color swatch shown while a style is active. Shares the
+// cluster/dropdown/paint machinery with mkLineStyleControl; it differs only in
+// that its state object carries `width`, so it passes a toState builder.
+function mkBoxControl(get,set,opts={}){
+ return mkLineStyleControl(
+ [['','no box',''],['line','line box','□'],['pressed','pressed','▼'],['released','raised','▲']],
+ get,set,
+ Object.assign({styled:true,toState:(v,cur)=>({style:v,width:(cur&&cur.width)||1,color:(cur&&cur.color)||null})},opts));}
function flashRow(tr){if(!tr)return;tr.scrollIntoView({block:'center',behavior:'smooth'});tr.classList.remove('flash');void tr.offsetWidth;tr.classList.add('flash');}
function flashEl(el){if(!el)return;el.scrollIntoView({block:'nearest',inline:'nearest',behavior:'smooth'});el.classList.remove('flashtok');void el.offsetWidth;el.classList.add('flashtok');}
// Flash every matching element but scroll only the first into view, so a face
@@ -513,9 +491,7 @@ function flashUiPreview(f){const sp=document.querySelectorAll(`#mockframe [data-
function flashPkg(f){flashRow(document.querySelector(`#pkgbody tr[data-face="${f}"]`));}
function flashPkgPreview(f){const sp=document.querySelectorAll(`#pkgpreview [data-face="${f}"]`);if(sp.length){flashEls(sp);return;}const row=document.querySelector(`#pkgbody tr[data-face="${f}"]`);if(row)flashEl(row.querySelector('.cat'));}
function mockSpan(k,t){return `<span data-k="${k}" style="${syntaxStyle(k)}">${esc(t)}</span>`;}
-function uiCss(o,fgv,bgv,opts={}){const fg=fgv===undefined?effFg(o.fg):fgv,bg=bgv===undefined?o.bg:bgv,dec=(o.underline?'underline ':'')+(o.strike?'line-through':''),
- bx=boxCss(o.box,bg||MAP['bg']);
- return `color:${fg};${bg&&!opts.noBg?'background:'+bg+';':''}font-weight:${cssWeight(o.weight)};font-style:${o.slant||'normal'};text-decoration:${dec.trim()||'none'}${bx?';box-shadow:'+bx:''}`;}
+function uiCss(o,fgv,bgv,opts={}){const fg=fgv===undefined?effFg(o.fg):fgv,bg=bgv===undefined?o.bg:bgv;return faceCss(o,fg,bg,{noBg:opts.noBg,boxBg:bg||MAP['bg']});}
function syncMockHeight(){const t=document.getElementById('uitable'),m=document.getElementById('mockframe');if(!t||!m)return;const lb=m.previousElementSibling,lbh=lb?lb.getBoundingClientRect().height+10:30;m.style.height=Math.max(t.getBoundingClientRect().height-lbh,220)+'px';}
function buildMockFrame(){
const fr=document.getElementById('mockframe');if(!fr)return;
@@ -659,465 +635,9 @@ function buildPkgTable(){
applyTableSort('pkgbody');
updateLockToggle('pkg');
}
-function ofs(app,face){const f=PKGMAP[app][face]||{},fg=effFg(pkgEffFg(app,face)),bg=pkgEffBg(app,face);const dec=(f.underline?'underline ':'')+(f.strike?'line-through':'');const bx=boxCss(f.box,bg||MAP['bg']);return `color:${fg};${bg?'background:'+bg+';':''}font-weight:${cssWeight(f.weight)};font-style:${f.slant||'normal'};text-decoration:${dec.trim()||'none'};font-size:${(f.height||1)}em${bx?';box-shadow:'+bx:''}`;}
-function os(app,face,txt){return `<span data-face="${face}" style="${ofs(app,face)}">${txt}</span>`;}
-// Shared wrapper for the line-based package previews: a monospace pre block.
-// Each renderer builds its own L array of os(...) lines and returns previewLines(L).
-function previewLines(L){return `<div style="padding:12px 16px;font:12pt/1.7 monospace;white-space:pre">${L.join('\n')}</div>`;}
-function renderOrgPreview(){const a='org-mode',L=[];
- L.push(os(a,'org-document-info-keyword','#+TITLE:')+' '+os(a,'org-document-title','Project Notes'));
- L.push(os(a,'org-document-info-keyword','#+AUTHOR:')+' '+os(a,'org-document-info','Craig Jennings'));
- L.push(os(a,'org-meta-line','#+STARTUP: overview'));
- L.push('');
- L.push(os(a,'org-level-1','* Inbox')+' '+os(a,'org-tag',':work:')+os(a,'org-tag-group',':@office:'));
- L.push(os(a,'org-level-2','** ')+os(a,'org-todo','TODO')+os(a,'org-level-2',' Draft the spec')+' '+os(a,'org-priority','[#A]')+' '+os(a,'org-tag',':spec:'));
- L.push(' '+os(a,'org-special-keyword','SCHEDULED:')+' '+os(a,'org-date','&lt;2026-06-08 Sun&gt;')+' '+os(a,'org-special-keyword','DEADLINE:')+' '+os(a,'org-date','&lt;2026-06-12 Thu&gt;'));
- L.push(' '+os(a,'org-drawer',':PROPERTIES:'));
- L.push(' '+os(a,'org-special-keyword',':ID:')+' '+os(a,'org-property-value','abc-123-def'));
- L.push(' '+os(a,'org-drawer',':END:'));
- L.push(' '+os(a,'org-list-dt','- term ::')+' definition, with a '+os(a,'org-footnote','[fn:1]')+' note.');
- L.push(' '+os(a,'org-checkbox','[X]')+' done item '+os(a,'org-checkbox-statistics-done','[2/2]'));
- L.push(' '+os(a,'org-checkbox','[ ]')+' open item '+os(a,'org-checkbox-statistics-todo','[0/3]')+' '+os(a,'org-warning','(!)'));
- L.push(os(a,'org-level-2','** ')+os(a,'org-done','DONE')+os(a,'org-headline-done',' Ship the tool'));
- L.push(os(a,'org-level-3','*** ')+os(a,'org-todo','TODO')+os(a,'org-headline-todo',' Heading three'));
- L.push(os(a,'org-level-4','**** four')+' / '+os(a,'org-level-5','***** five')+' / '+os(a,'org-level-6','****** six')+' / '+os(a,'org-level-7','******* seven')+' / '+os(a,'org-level-8','******** eight'));
- L.push(' Inline '+os(a,'org-code','=code=')+', '+os(a,'org-verbatim','~verbatim~')+', '+os(a,'org-inline-src-block','src_py{1+1}')+',');
- L.push(' a '+os(a,'org-link','[[https://gnu.org][link]]')+', a '+os(a,'org-target','&lt;&lt;target&gt;&gt;')+', a '+os(a,'org-macro','{{{macro}}}')+',');
- L.push(' a '+os(a,'org-cite','[cite:')+os(a,'org-cite-key','@knuth1984')+os(a,'org-cite',']')+', a date '+os(a,'org-sexp-date','&lt;%%(diary-float 6 5 2)&gt;')+'.');
- L.push(' '+os(a,'org-quote','#+begin_quote')+' a '+os(a,'org-verse','verse')+' line, latex '+os(a,'org-latex-and-related','$E = mc^2$')+'.');
- L.push('');
- L.push(' '+os(a,'org-block-begin-line','#+begin_src elisp'));
- L.push(' '+os(a,'org-block',' (message "hi")'));
- L.push(' '+os(a,'org-block-end-line','#+end_src'));
- L.push('');
- L.push(' '+os(a,'org-table-header','| name | hex |'));
- L.push(' '+os(a,'org-table','|------+---------|'));
- L.push(' '+os(a,'org-table-row','| blue | #67809c |')+' '+os(a,'org-formula',':=vsum(@2)'));
- L.push(' '+os(a,'org-column-title','Effort')+' '+os(a,'org-column','| 0:30 |')+' '+os(a,'org-archived','* archived')+os(a,'org-ellipsis',' ...'));
- L.push('');
- L.push(os(a,'org-agenda-structure','Week-agenda (W23):'));
- L.push(os(a,'org-agenda-date','Monday 8 June 2026'));
- L.push(os(a,'org-agenda-date-today','Tuesday 9 June 2026')+' '+os(a,'org-agenda-current-time','10:24')+' '+os(a,'org-time-grid','----------'));
- L.push(os(a,'org-agenda-date-weekend','Saturday 13 June')+' / '+os(a,'org-agenda-date-weekend-today','wknd-today'));
- L.push(' '+os(a,'org-scheduled-previously','Sched.past:')+' overdue '+os(a,'org-agenda-done','x done item'));
- L.push(' '+os(a,'org-scheduled','Scheduled:')+' a task '+os(a,'org-scheduled-today','due today'));
- L.push(' '+os(a,'org-imminent-deadline','Deadline!')+' / '+os(a,'org-upcoming-deadline','upcoming')+' / '+os(a,'org-upcoming-distant-deadline','distant'));
- L.push(' '+os(a,'org-agenda-dimmed-todo-face','dimmed todo')+' '+os(a,'org-agenda-diary','diary')+' '+os(a,'org-agenda-clocking','clocking'));
- L.push(' '+os(a,'org-agenda-calendar-event','cal-event')+' / '+os(a,'org-agenda-calendar-sexp','cal-sexp')+' / '+os(a,'org-agenda-calendar-daterange','range'));
- L.push(' '+os(a,'org-agenda-structure-secondary','secondary')+' '+os(a,'org-agenda-structure-filter','filter')+' '+os(a,'org-agenda-restriction-lock','lock')+' '+os(a,'org-agenda-column-dateline','col-date'));
- L.push(' Filters: '+os(a,'org-agenda-filter-category','cat')+' '+os(a,'org-agenda-filter-tags','tags')+' '+os(a,'org-agenda-filter-effort','effort')+' '+os(a,'org-agenda-filter-regexp','re'));
- L.push(' '+os(a,'org-mode-line-clock','[0:45]')+' / '+os(a,'org-mode-line-clock-overrun','[OVER]')+' '+os(a,'org-dispatcher-highlight','[d]ispatch'));
- return previewLines(L);
-}
-function renderMagitPreview(){const a='magit',L=[];
- L.push(os(a,'magit-header-line',' Magit: dotemacs ')+' '+os(a,'magit-header-line-key','g')+os(a,'magit-header-line-log-select',' refresh'));
- L.push(os(a,'magit-head','Head:')+' '+os(a,'magit-branch-current','main')+' '+os(a,'magit-diff-revision-summary','Ship the tool'));
- L.push(os(a,'magit-head','Merge:')+' '+os(a,'magit-branch-remote','origin/main')+' '+os(a,'magit-branch-local','main'));
- L.push(os(a,'magit-head','Push:')+' '+os(a,'magit-branch-remote-head','origin/main'));
- L.push(os(a,'magit-head','Upstream:')+' '+os(a,'magit-branch-upstream','origin/main')+' '+os(a,'magit-branch-warning','(diverged)'));
- L.push('');
- L.push(os(a,'magit-section-heading','Untracked files')+' '+os(a,'magit-section-child-count','(2)'));
- L.push(' '+os(a,'magit-filename','notes.txt')+' '+os(a,'magit-dimmed','(ignored sibling)'));
- L.push(os(a,'magit-section-highlight',' scratch.el (highlighted row)'));
- L.push('');
- L.push(os(a,'magit-section-heading','Unstaged changes')+' '+os(a,'magit-section-child-count','(1)'));
- L.push(os(a,'magit-diff-file-heading','modified generate.py'));
- L.push(os(a,'magit-diff-hunk-heading','@@ -1,4 +1,5 @@ def main'));
- L.push(os(a,'magit-diff-context',' unchanged context'));
- L.push(os(a,'magit-diff-removed','- old line')+os(a,'magit-diff-whitespace-warning',' '));
- L.push(os(a,'magit-diff-added','+ new line'));
- L.push('');
- L.push(os(a,'magit-section-heading','Staged changes')+' '+os(a,'magit-diffstat-added','++++')+os(a,'magit-diffstat-removed','--'));
- L.push(os(a,'magit-diff-file-heading-highlight','modified README.md (highlighted heading)'));
- L.push(os(a,'magit-diff-hunk-heading-highlight','@@ hunk heading highlight @@'));
- L.push(os(a,'magit-diff-added-highlight','+ added highlight')+' '+os(a,'magit-diff-removed-highlight','- removed highlight'));
- L.push(os(a,'magit-diff-context-highlight',' context highlight'));
- L.push('');
- L.push(os(a,'magit-section-heading','Stashes'));
- L.push(' '+os(a,'magit-refname-stash','stash@{0}')+' '+os(a,'magit-refname-wip','wip')+' '+os(a,'magit-refname-pullreq','pr/42')+' '+os(a,'magit-refname','refs/heads/x'));
- L.push('');
- L.push(os(a,'magit-section-heading','Recent commits'));
- L.push(os(a,'magit-log-graph','* ')+os(a,'magit-hash','b5b1869f')+' '+os(a,'magit-log-date','06-08')+' '+os(a,'magit-log-author','Craig')+' enlarge the picker');
- L.push(os(a,'magit-log-graph','* ')+os(a,'magit-hash','4fa5e995')+' '+os(a,'magit-log-date','06-07')+' '+os(a,'magit-log-author','Craig')+' '+os(a,'magit-keyword','[feat]')+' picker');
- L.push(os(a,'magit-log-graph','* ')+os(a,'magit-hash','de07e01a')+' '+os(a,'magit-log-date','06-05')+' '+os(a,'magit-log-author','Craig')+' '+os(a,'magit-tag','v0.3')+' '+os(a,'magit-keyword-squash','!squash'));
- L.push('');
- L.push(os(a,'magit-section-secondary-heading','Merge conflict')+' '+os(a,'magit-diff-lines-heading','lines 10-14')+os(a,'magit-diff-lines-boundary','|'));
- L.push(' '+os(a,'magit-diff-conflict-heading','=======')+' '+os(a,'magit-diff-conflict-heading-highlight','(hl)'));
- L.push(' '+os(a,'magit-diff-base','base')+'/'+os(a,'magit-diff-base-highlight','base-hl')+' '+os(a,'magit-diff-our','ours')+'/'+os(a,'magit-diff-our-highlight','ours-hl')+' '+os(a,'magit-diff-their','theirs')+'/'+os(a,'magit-diff-their-highlight','theirs-hl'));
- L.push(' '+os(a,'magit-diff-hunk-region','hunk-region')+' '+os(a,'magit-diff-file-heading-selection','file-sel')+' '+os(a,'magit-diff-hunk-heading-selection','hunk-sel')+' '+os(a,'magit-section-heading-selection','sec-sel')+' '+os(a,'magit-diff-revision-summary-highlight','rev-sum-hl'));
- L.push('');
- L.push(os(a,'magit-section-heading','Reflog'));
- L.push(' '+os(a,'magit-reflog-commit','commit')+' '+os(a,'magit-reflog-amend','amend')+' '+os(a,'magit-reflog-merge','merge')+' '+os(a,'magit-reflog-checkout','checkout')+' '+os(a,'magit-reflog-reset','reset')+' '+os(a,'magit-reflog-rebase','rebase')+' '+os(a,'magit-reflog-cherry-pick','cherry-pick')+' '+os(a,'magit-reflog-remote','remote')+' '+os(a,'magit-reflog-other','other'));
- L.push(os(a,'magit-section-heading','Rebase sequence'));
- L.push(' '+os(a,'magit-sequence-pick','pick')+' '+os(a,'magit-sequence-stop','stop')+' '+os(a,'magit-sequence-part','part')+' '+os(a,'magit-sequence-head','head')+' '+os(a,'magit-sequence-drop','drop')+' '+os(a,'magit-sequence-done','done')+' '+os(a,'magit-sequence-onto','onto')+' '+os(a,'magit-sequence-exec','exec'));
- L.push(os(a,'magit-section-heading','Bisect / Cherry / Process'));
- L.push(' '+os(a,'magit-bisect-good','good')+' '+os(a,'magit-bisect-bad','bad')+' '+os(a,'magit-bisect-skip','skip')+' '+os(a,'magit-cherry-equivalent','equivalent')+' '+os(a,'magit-cherry-unmatched','unmatched'));
- L.push(' '+os(a,'magit-process-ok','OK')+' '+os(a,'magit-process-ng','NG')+' '+os(a,'magit-mode-line-process','[fetch]')+' '+os(a,'magit-mode-line-process-error','[error]'));
- L.push(os(a,'magit-section-heading','Blame'));
- L.push(os(a,'magit-blame-margin','margin')+os(a,'magit-blame-heading',' b5b1869f '))
- L.push(' '+os(a,'magit-blame-hash','b5b1869f')+' '+os(a,'magit-blame-name','Craig')+' '+os(a,'magit-blame-date','2026-06-08')+' '+os(a,'magit-blame-summary','enlarge picker')+' '+os(a,'magit-blame-highlight','hl')+' '+os(a,'magit-blame-dimmed','dim'));
- L.push(os(a,'magit-section-heading','Signatures')+os(a,'magit-left-margin',' '));
- L.push(' '+os(a,'magit-signature-good','good')+' '+os(a,'magit-signature-bad','bad')+' '+os(a,'magit-signature-untrusted','untrusted')+' '+os(a,'magit-signature-expired','expired')+' '+os(a,'magit-signature-expired-key','expired-key')+' '+os(a,'magit-signature-revoked','revoked')+' '+os(a,'magit-signature-error','error'));
- return previewLines(L);}
-function renderElfeedPreview(){const a='elfeed',L=[];
- L.push(os(a,'elfeed-search-filter-face','@6-months-ago +unread')+' '+os(a,'elfeed-search-unread-count-face','3/120')+' '+os(a,'elfeed-search-last-update-face','updated 02:24'));
- L.push('');
- L.push(os(a,'elfeed-search-date-face','2026-06-08')+' '+os(a,'elfeed-search-feed-face','Planet Emacs')+' '+os(a,'elfeed-search-unread-title-face','New release of Magit')+' '+os(a,'elfeed-search-tag-face',':emacs:'));
- L.push(os(a,'elfeed-search-date-face','2026-06-07')+' '+os(a,'elfeed-search-feed-face','LWN')+' '+os(a,'elfeed-search-unread-title-face','Kernel 6.18 lands')+' '+os(a,'elfeed-search-tag-face',':linux:'));
- L.push(os(a,'elfeed-search-date-face','2026-06-05')+' '+os(a,'elfeed-search-feed-face','Hacker News')+' '+os(a,'elfeed-search-title-face','Show HN: a theme editor')+' '+os(a,'elfeed-search-tag-face',':show:'));
- L.push('');
- L.push(os(a,'elfeed-log-date-face','02:24:01')+' '+os(a,'elfeed-log-info-level-face','INFO ')+' updated 12 feeds');
- L.push(os(a,'elfeed-log-date-face','02:24:02')+' '+os(a,'elfeed-log-warn-level-face','WARN ')+' slow feed: example.com');
- L.push(os(a,'elfeed-log-date-face','02:24:03')+' '+os(a,'elfeed-log-error-level-face','ERROR')+' failed: bad.example');
- L.push(os(a,'elfeed-log-date-face','02:24:04')+' '+os(a,'elfeed-log-debug-level-face','DEBUG')+' parsed 340 entries');
- return previewLines(L);}
-function renderGhostelPreview(){const a='ghostel',L=[];
- L.push(os(a,'ghostel-default','craig@host')+' '+os(a,'ghostel-color-green','~/code')+' $ ls'+os(a,'ghostel-fake-cursor',' ')+os(a,'ghostel-fake-cursor-box','[ ]'));
- L.push('');
- L.push(os(a,'ghostel-default','normal:')+' '+os(a,'ghostel-color-black','black')+' '+os(a,'ghostel-color-red','red')+' '+os(a,'ghostel-color-green','green')+' '+os(a,'ghostel-color-yellow','yellow')+' '+os(a,'ghostel-color-blue','blue')+' '+os(a,'ghostel-color-magenta','magenta')+' '+os(a,'ghostel-color-cyan','cyan')+' '+os(a,'ghostel-color-white','white'));
- L.push(os(a,'ghostel-default','bright:')+' '+os(a,'ghostel-color-bright-black','black')+' '+os(a,'ghostel-color-bright-red','red')+' '+os(a,'ghostel-color-bright-green','green')+' '+os(a,'ghostel-color-bright-yellow','yellow')+' '+os(a,'ghostel-color-bright-blue','blue')+' '+os(a,'ghostel-color-bright-magenta','magenta')+' '+os(a,'ghostel-color-bright-cyan','cyan')+' '+os(a,'ghostel-color-bright-white','white'));
- L.push('');
- L.push(os(a,'ghostel-default','default terminal output, 256-color text and a blinking ')+os(a,'ghostel-fake-cursor','cursor')+'.');
- return previewLines(L);}
-function renderDashboardPreview(){const a='dashboard',L=[];
- L.push(os(a,'dashboard-text-banner',' [ dashboard banner image ]'));
- L.push(os(a,'dashboard-banner-logo-title','Emacs: The Editor That Saves Your Soul'));
- L.push('');
- L.push(os(a,'dashboard-navigator',' Code  Files  Terminal 󰃭 Agenda'));
- L.push(os(a,'dashboard-navigator',' Feeds  Books 󰑴 Flashcards 󰝚 Music'));
- L.push(os(a,'dashboard-navigator',' Email  IRC  Telegram'));
- L.push(os(a,'dashboard-navigator',' Slack  Linear'));
- L.push('');
- L.push('');
- L.push(os(a,'dashboard-heading','Projects:'));
- L.push(' ~/');
- L.push(' ~/.emacs.d/');
- L.push(' ~/projects/work/');
- L.push(' ~/org/roam/');
- L.push(' ~/projects/home/');
- L.push('');
- L.push(os(a,'dashboard-heading','Bookmarks'));
- L.push(' Cesar Aira, The Little Buddhist Monk & the Proof');
- L.push(' Edward Abbey, The Fool’s Progress: An Honest Novel');
- L.push(' Agatha Christie, The A.B.C. Murders');
- L.push('');
- L.push(os(a,'dashboard-heading','Recent Files:'));
- L.push(' theme-theme.el');
- L.push(' todo.org');
- L.push(' theme-studio-palette-generator-spec.org');
- return previewLines(L);}
-function renderMu4ePreview(){const a='mu4e',L=[];
- const pad=(s,n)=>{s=String(s);return s.length>=n?s.slice(0,n):s+' '.repeat(n-s.length);};
- // One header line: the flags column in mu4e-header-marks-face, the rest of the
- // row in the message's state face (unread, replied, flagged, ...).
- const row=(flags,date,from,subj,face)=>
- os(a,'mu4e-header-marks-face',pad(flags,4))+os(a,face,pad(date,12)+pad(from,17)+subj);
- // status / context bar
- L.push(os(a,'mu4e-title-face','mu4e')+' '+os(a,'mu4e-context-face','[Personal]')+' '+os(a,'mu4e-ok-face','online')+' '+os(a,'mu4e-warning-face','2 retrying')+' '+os(a,'mu4e-modeline-face','[12/340]'));
- L.push('');
- // column header + the message list, one row per state
- L.push(os(a,'mu4e-header-title-face',pad('Flags',4)+pad('Date',12)+pad('From',17)+'Subject'));
- L.push(row('N','2026-06-14','Christine Park','Re: quarterly numbers','mu4e-unread-face'));
- L.push(row('','2026-06-13','Bob Lin','Lunch on Friday?','mu4e-header-face'));
- // current line at point: the whole row gets the highlight background
- L.push(os(a,'mu4e-header-highlight-face',row('R','2026-06-13','dev-list','merged the parser fix','mu4e-replied-face')));
- L.push(row('F','2026-06-12','Carol Reyes','Fwd: the signed contract','mu4e-forwarded-face'));
- L.push(row('D','2026-06-11','(draft)','Notes to finish later','mu4e-draft-face'));
- L.push(row('T','2026-06-10','spam@nowhere','You have won a prize','mu4e-trashed-face'));
- L.push(row('','2026-06-09','Erin (cc)','thread you follow','mu4e-related-face'));
- L.push(row('!','2026-06-08','Frank Diaz','budget needs sign-off','mu4e-flagged-face'));
- L.push('');
- // a message view below the list
- L.push(os(a,'mu4e-header-key-face','From:')+' '+os(a,'mu4e-contact-face','Christine Park &lt;christine@example.com&gt;'));
- L.push(os(a,'mu4e-header-key-face','To:')+' '+os(a,'mu4e-special-header-value-face','craig, dev-list@gnu.org'));
- L.push(os(a,'mu4e-header-key-face','Subject:')+' '+os(a,'mu4e-header-value-face','Re: quarterly numbers'));
- L.push('');
- L.push(' Body with a '+os(a,'mu4e-highlight-face','search hit')+', a link '+os(a,'mu4e-url-number-face','[1]')+' '+os(a,'mu4e-link-face','https://example.com')+', and a '+os(a,'mu4e-region-code','code region')+'.');
- L.push(' '+os(a,'mu4e-system-face','*** mu: 340 messages indexed ***'));
- L.push(' '+os(a,'mu4e-footer-face','-- Sent with mu4e'));
- L.push('');
- L.push(os(a,'mu4e-compose-separator-face','--text follows this line--'));
- return previewLines(L);}
-function renderGnusPreview(){const a='gnus',L=[];
- // mu4e renders the open message with gnus, so this is the article view:
- // a header block, a body with inline emphasis and a button, then a quoted
- // reply chain (one cite face per nesting level) and the signature.
- L.push(os(a,'gnus-header-name','From: ')+os(a,'gnus-header-from','Christine Park &lt;christine@example.com&gt;'));
- L.push(os(a,'gnus-header-name','To: ')+os(a,'gnus-header-content','craig@cjennings.net'));
- L.push(os(a,'gnus-header-name','Newsgroups: ')+os(a,'gnus-header-newsgroups','gnu.emacs.help'));
- L.push(os(a,'gnus-header-name','Subject: ')+os(a,'gnus-header-subject','Re: quarterly numbers'));
- L.push(os(a,'gnus-header-name','Date: ')+os(a,'gnus-header-content','Sat, 14 Jun 2026 09:12:04 -0500'));
- L.push('');
- L.push('Thanks for the draft. The '+os(a,'gnus-emphasis-bold','revenue line')+' is '+os(a,'gnus-emphasis-italic','close')+', but the '+os(a,'gnus-emphasis-underline','footnote')+' is '+os(a,'gnus-emphasis-strikethru','wrong')+' '+os(a,'gnus-emphasis-highlight-words','FIXME')+'.');
- L.push('See the worksheet: '+os(a,'gnus-button','[https://example.com/q2]'));
- L.push('');
- L.push(os(a,'gnus-cite-attribution','On Fri, Bob Lin wrote:'));
- L.push(os(a,'gnus-cite-1','> The Q2 totals are ready for review.'));
- L.push(os(a,'gnus-cite-2','>> Did the Segpay refund post yet?'));
- L.push(os(a,'gnus-cite-3','>>> Yes, it cleared on the 5th.'));
- L.push(os(a,'gnus-cite-4','>>>> Good, then we are square.'));
- L.push(os(a,'gnus-cite-5','>>>>> earlier reply, level 5'));
- L.push(os(a,'gnus-cite-6','>>>>>> level 6'));
- L.push(os(a,'gnus-cite-7','>>>>>>> level 7'));
- L.push(os(a,'gnus-cite-8','>>>>>>>> level 8'));
- L.push(os(a,'gnus-cite-9','>>>>>>>>> level 9'));
- L.push(os(a,'gnus-cite-10','>>>>>>>>>> level 10'));
- L.push(os(a,'gnus-cite-11','>>>>>>>>>>> level 11'));
- L.push('');
- L.push(os(a,'gnus-signature','-- '));
- L.push(os(a,'gnus-signature','Christine Park, Finance'));
- return previewLines(L);}
-function renderOrgFacesPreview(){const a='org-faces',L=[];
- L.push('Agenda header row -- one face per keyword and priority (this config, not built-in org):');
- L.push('');
- L.push(os(a,'org-faces-todo','TODO')+' Draft the spec '+os(a,'org-faces-priority-a','[#A]'));
- L.push(os(a,'org-faces-project','PROJECT')+' Theme studio overhaul '+os(a,'org-faces-priority-b','[#B]'));
- L.push(os(a,'org-faces-doing','DOING')+' Wire the faces '+os(a,'org-faces-priority-c','[#C]'));
- L.push(os(a,'org-faces-waiting','WAITING')+' On review '+os(a,'org-faces-priority-d','[#D]'));
- L.push(os(a,'org-faces-verify','VERIFY')+' Confirm the round-trip');
- L.push(os(a,'org-faces-stalled','STALLED')+' Blocked on upstream');
- L.push(os(a,'org-faces-delegated','DELEGATED')+' Handed to Kostya');
- L.push(os(a,'org-faces-failed','FAILED')+' Could not reproduce');
- L.push(os(a,'org-faces-done','DONE')+' Shipped the module');
- L.push(os(a,'org-faces-cancelled','CANCELLED')+' Dropped the approach');
- L.push('');
- L.push('Unfocused (auto-dim) -- the -dim variants auto-dim remaps onto in non-selected windows:');
- L.push('');
- L.push(os(a,'org-faces-todo-dim','TODO')+' Draft the spec '+os(a,'org-faces-priority-a-dim','[#A]'));
- L.push(os(a,'org-faces-project-dim','PROJECT')+' Theme studio overhaul '+os(a,'org-faces-priority-b-dim','[#B]'));
- L.push(os(a,'org-faces-doing-dim','DOING')+' Wire the faces '+os(a,'org-faces-priority-c-dim','[#C]'));
- L.push(os(a,'org-faces-waiting-dim','WAITING')+' On review '+os(a,'org-faces-priority-d-dim','[#D]'));
- L.push(os(a,'org-faces-verify-dim','VERIFY')+' Confirm the round-trip');
- L.push(os(a,'org-faces-stalled-dim','STALLED')+' Blocked on upstream');
- L.push(os(a,'org-faces-delegated-dim','DELEGATED')+' Handed to Kostya');
- L.push(os(a,'org-faces-failed-dim','FAILED')+' Could not reproduce');
- L.push(os(a,'org-faces-done-dim','DONE')+' Shipped the module');
- L.push(os(a,'org-faces-cancelled-dim','CANCELLED')+' Dropped the approach');
- return previewLines(L);}
-function renderLspPreview(){const a='lsp-mode',L=[];
- L.push(os(a,'lsp-signature-face','process(')+os(a,'lsp-signature-highlight-function-argument','items: list')+os(a,'lsp-signature-face',') -> None'));
- L.push(os(a,'lsp-signature-posframe',' docs: iterate over items and process each one '));
- L.push('');
- L.push('def process(items):');
- L.push(' n = len(items)'+os(a,'lsp-inlay-hint-type-face',': int'));
- L.push(' handle('+os(a,'lsp-inlay-hint-parameter-face','arg:')+'n)'+os(a,'lsp-inlay-hint-face',' # hint'));
- L.push(' '+os(a,'lsp-face-highlight-read','value')+' = '+os(a,'lsp-face-highlight-write','value')+' + '+os(a,'lsp-face-highlight-textual','value'));
- L.push(' rename '+os(a,'lsp-face-rename','oldName')+' to '+os(a,'lsp-rename-placeholder-face','newName'));
- L.push(' getName() '+os(a,'lsp-details-face','str the cached getter'));
- L.push('');
- L.push(os(a,'lsp-installation-buffer-face','Installing pyright...')+' '+os(a,'lsp-installation-finished-buffer-face','done.'));
- return previewLines(L);}
-function renderGitGutterPreview(){const a='git-gutter',L=[];
- L.push(os(a,'git-gutter:added','+')+os(a,'git-gutter:separator','|')+' added line of code');
- L.push(os(a,'git-gutter:modified','~')+os(a,'git-gutter:separator','|')+' modified line of code');
- L.push(os(a,'git-gutter:deleted','_')+os(a,'git-gutter:separator','|')+' (deleted lines marker)');
- L.push(os(a,'git-gutter:unchanged',' ')+os(a,'git-gutter:separator','|')+' '+os(a,'git-gutter:unchanged','unchanged line of code'));
- return previewLines(L);}
-function renderFlycheckPreview(){const a='flycheck',L=[];
- L.push(os(a,'flycheck-fringe-error','E')+os(a,'flycheck-fringe-warning','W')+os(a,'flycheck-fringe-info','I')+' x = '+os(a,'flycheck-error','undefined_name')+'('+os(a,'flycheck-warning','unused_arg')+') '+os(a,'flycheck-info','# note'));
- L.push(' '+os(a,'flycheck-error-delimiter','[')+os(a,'flycheck-delimited-error','err')+os(a,'flycheck-error-delimiter',']'));
- L.push('');
- L.push(os(a,'flycheck-error-list-checker-name','pyright')+' '+os(a,'flycheck-verify-select-checker','(selected checker)'));
- L.push(os(a,'flycheck-error-list-filename','main.py')+':'+os(a,'flycheck-error-list-line-number','12')+':'+os(a,'flycheck-error-list-column-number','4')+' '+os(a,'flycheck-error-list-error','error')+' '+os(a,'flycheck-error-list-error-message','undefined name x')+' '+os(a,'flycheck-error-list-id','[E0602]'));
- L.push(os(a,'flycheck-error-list-filename','main.py')+':'+os(a,'flycheck-error-list-line-number','18')+':'+os(a,'flycheck-error-list-column-number','1')+' '+os(a,'flycheck-error-list-warning','warning')+' '+os(a,'flycheck-error-list-error-message','unused import')+' '+os(a,'flycheck-error-list-id-with-explainer','[W0611?]'));
- L.push(os(a,'flycheck-error-list-highlight','main.py:20 '+os(a,'flycheck-error-list-info','info')+' highlighted row'));
- return previewLines(L);}
-function renderDiredPreview(){const a='dired',L=[];
- L.push(os(a,'dired-header','/home/craig/code:'));
- L.push(' '+os(a,'dired-perm-write','drwxr-xr-x')+' craig 4096 '+os(a,'dired-directory','src/'));
- L.push(' -rw-r--r-- craig 120 notes.org');
- L.push(' '+os(a,'dired-perm-write','lrwxrwxrwx')+' craig 18 '+os(a,'dired-symlink','latest -> v2.1'));
- L.push(' lrwxrwxrwx craig -- '+os(a,'dired-broken-symlink','dead -> gone'));
- L.push(os(a,'dired-flagged','D')+' -rw-r--r-- craig 40 deleteme.tmp');
- L.push(os(a,'dired-mark','*')+' '+os(a,'dired-marked','-rw-r--r-- craig 210 marked.txt'));
- L.push(' -rw-r--r-- craig 0 '+os(a,'dired-ignored','.gitignore'));
- L.push(' '+os(a,'dired-set-id','-rwsr-xr-x')+' root 900 setuid.bin');
- L.push(' '+os(a,'dired-special','prw-r--r--')+' craig 0 fifo.pipe');
- L.push(os(a,'dired-warning','! disk space low on /home'));
- return previewLines(L);}
-function renderDirvishPreview(){const a='dirvish',L=[];
- L.push(os(a,'dirvish-inactive','~/code')+' '+os(a,'dirvish-free-space','[free 24G]'));
- L.push(os(a,'dirvish-hl-line',' '+os(a,'dirvish-file-modes','-rw-r--r--')+' '+os(a,'dirvish-file-link-number','1')+' '+os(a,'dirvish-file-user-id','craig')+' '+os(a,'dirvish-file-group-id','staff')+' '+os(a,'dirvish-file-size','4.0K')+' '+os(a,'dirvish-file-time','Jun 8 02:24')+' init.el '));
- L.push(' '+os(a,'dirvish-file-modes','drwxr-xr-x')+' '+os(a,'dirvish-file-link-number','5')+' '+os(a,'dirvish-file-user-id','craig')+' '+os(a,'dirvish-file-group-id','staff')+' '+os(a,'dirvish-file-size',' - ')+' '+os(a,'dirvish-file-time','Jun 7 18:00')+' '+os(a,'dirvish-collapse-dir-face','src')+os(a,'dirvish-subtree-state','+')+os(a,'dirvish-subtree-guide',' |'));
- L.push(os(a,'dirvish-hl-line-inactive',' inactive-window current line '));
- L.push(' inode '+os(a,'dirvish-file-inode-number','1048576')+' dev '+os(a,'dirvish-file-device-number','8,1')+' '+os(a,'dirvish-collapse-empty-dir-face','empty/')+' '+os(a,'dirvish-collapse-file-face','file.txt'));
- L.push(' VC '+os(a,'dirvish-vc-added-state','A')+os(a,'dirvish-vc-edited-state','M')+os(a,'dirvish-vc-removed-state','D')+os(a,'dirvish-vc-conflict-state','C')+os(a,'dirvish-vc-locked-state','L')+os(a,'dirvish-vc-missing-state','!')+os(a,'dirvish-vc-needs-merge-face','m')+os(a,'dirvish-vc-needs-update-state','u')+os(a,'dirvish-vc-unregistered-face','?'));
- L.push(' git '+os(a,'dirvish-git-commit-message-face','feat: enlarge the picker'));
- L.push(' '+os(a,'dirvish-media-info-heading','Media')+' '+os(a,'dirvish-media-info-property-key','Dimensions:')+' 1920x1080');
- L.push(' proc '+os(a,'dirvish-proc-running','running')+' / '+os(a,'dirvish-proc-finished','finished')+' / '+os(a,'dirvish-proc-failed','failed'));
- L.push(' narrow '+os(a,'dirvish-narrow-match-face-0','m0')+' '+os(a,'dirvish-narrow-match-face-1','m1')+' '+os(a,'dirvish-narrow-match-face-2','m2')+' '+os(a,'dirvish-narrow-match-face-3','m3')+os(a,'dirvish-narrow-split',' | ')+os(a,'dirvish-emerge-group-title','Group: images'));
- return previewLines(L);}
-function renderCalibredbPreview(){const a='calibredb',L=[];
- L.push(os(a,'calibredb-search-header-library-name-face','Calibre')+' '+os(a,'calibredb-search-header-library-path-face','~/books')+' '+os(a,'calibredb-search-header-total-face','412 books')+' '+os(a,'calibredb-search-header-filter-face','tag:scifi')+' '+os(a,'calibredb-search-header-sort-face','sort:date')+' '+os(a,'calibredb-search-header-highlight-face','[*]'));
- L.push('');
- L.push(os(a,'calibredb-id-face','1')+' '+os(a,'calibredb-title-face','Dune')+' '+os(a,'calibredb-author-face','Herbert')+' '+os(a,'calibredb-format-face','EPUB')+' '+os(a,'calibredb-size-face','2.1M')+' '+os(a,'calibredb-tag-face',':scifi:')+' '+os(a,'calibredb-date-face','2026-06-08'));
- L.push(os(a,'calibredb-mark-face','*')+os(a,'calibredb-id-face','2')+' '+os(a,'calibredb-title-face','Foundation')+' '+os(a,'calibredb-author-face','Asimov')+' '+os(a,'calibredb-series-face','[Foundation #1]')+' '+os(a,'calibredb-publisher-face','Bantam')+' '+os(a,'calibredb-pubdate-face','1951'));
- L.push('');
- L.push(os(a,'calibredb-title-detailed-view-face','Foundation (detailed)')+' '+os(a,'calibredb-language-face','eng')+' '+os(a,'calibredb-favorite-face','* fav')+' '+os(a,'calibredb-archive-face','archived'));
- L.push(os(a,'calibredb-ids-face','isbn:0553293354')+' '+os(a,'calibredb-file-face','foundation.epub')+' '+os(a,'calibredb-comment-face','A classic of the genre.'));
- L.push(os(a,'calibredb-edit-annotation-header-title-face','Annotations')+' '+os(a,'calibredb-highlight-face','highlighted passage')+' '+os(a,'calibredb-current-page-button-face','[page 42]')+' '+os(a,'calibredb-mouse-face','hover row'));
- return previewLines(L);}
-function renderErcPreview(){const a='erc',L=[];
- L.push(os(a,'erc-header-line',' #emacs on Libera.Chat 18 users '));
- L.push(os(a,'erc-timestamp-face','[10:24]')+' '+os(a,'erc-notice-face','*** alice has joined #emacs'));
- L.push(os(a,'erc-timestamp-face','[10:25]')+' &lt;'+os(a,'erc-my-nick-prefix-face','@')+os(a,'erc-my-nick-face','craig')+'&gt; '+os(a,'erc-input-face','hello everyone'));
- L.push(os(a,'erc-timestamp-face','[10:25]')+' &lt;'+os(a,'erc-nick-prefix-face','+')+os(a,'erc-nick-default-face','bob')+'&gt; '+os(a,'erc-default-face','hi craig, see ')+os(a,'erc-button','this link')+os(a,'erc-default-face',' cc ')+os(a,'erc-button-nick-default-face','@alice'));
- L.push(os(a,'erc-timestamp-face','[10:26]')+' '+os(a,'erc-action-face','* craig waves')+' '+os(a,'erc-keyword-face','emacs')+' '+os(a,'erc-pal-face','&lt;friend&gt;')+' '+os(a,'erc-fool-face','&lt;troll&gt;')+' '+os(a,'erc-dangerous-host-face','&lt;bad@host&gt;'));
- L.push(os(a,'erc-timestamp-face','[10:27]')+' '+os(a,'erc-direct-msg-face','(DM)')+' &lt;'+os(a,'erc-nick-msg-face','bob')+'&gt; psst '+os(a,'erc-current-nick-face','craig')+' '+os(a,'erc-information','-info-'));
- L.push(os(a,'erc-error-face','*** ERROR: connection reset'));
- L.push(os(a,'erc-command-indicator-face','/help')+' '+os(a,'erc-bold-face','bold')+' '+os(a,'erc-italic-face','italic')+' '+os(a,'erc-underline-face','underline')+' '+os(a,'erc-inverse-face','inverse')+' '+os(a,'erc-spoiler-face','spoiler'));
- L.push(os(a,'erc-keep-place-indicator-arrow','&gt;')+os(a,'erc-keep-place-indicator-line',' ---- last read ---- ')+os(a,'erc-fill-wrap-merge-indicator-face','+'));
- L.push(os(a,'erc-prompt-face','craig&gt;')+' '+os(a,'erc-input-face','type a message...'));
- return previewLines(L);}
-function renderOrgdrillPreview(){const a='org-drill',L=[];
- L.push('Q: The capital of France is '+os(a,'org-drill-hidden-cloze-face','[...]')+'.');
- L.push('A: The capital of France is '+os(a,'org-drill-visible-cloze-face','Paris')+'.');
- L.push(' '+os(a,'org-drill-visible-cloze-hint-face','hint: P____'));
- return previewLines(L);}
-function renderOrgnoterPreview(){const a='org-noter',L=[];
- L.push('org-noter paper.pdf');
- L.push(' page 1 '+os(a,'org-noter-notes-exist-face','[notes]'));
- L.push(' page 2 '+os(a,'org-noter-no-notes-exist-face','[no notes]'));
- return previewLines(L);}
-function renderSignelPreview(){const a='signel',L=[];
- L.push(os(a,'signel-timestamp-face','[10:24]')+' '+os(a,'signel-my-msg-face','Me: hey, are we still on for tonight?'));
- L.push(os(a,'signel-timestamp-face','[10:25]')+' '+os(a,'signel-other-msg-face','Christine: yes! see you at 7'));
- L.push(os(a,'signel-error-face','(failed to send -- retrying)'));
- return previewLines(L);}
-function renderPearlPreview(){const a='pearl',L=[];
- L.push(os(a,'pearl-preamble-summary','PEARL-42 Fix the broken picker'));
- L.push('State: '+os(a,'pearl-modified-local','In Progress')+' Priority: '+os(a,'pearl-modified-highlight','High')+' Estimate: '+os(a,'pearl-modified-unknown','?'));
- L.push(' '+os(a,'pearl-editable-comment','&gt; add a comment (editable)'));
- L.push(' '+os(a,'pearl-readonly-comment','&gt; created by automation (read-only)'));
- return previewLines(L);}
-function renderShrPreview(){const a='shr',L=[];
- L.push(os(a,'shr-text','shr renders nov (EPUB), eww (web), elfeed, and HTML mail.'));
- L.push('');
- L.push(os(a,'shr-h1','Chapter One: The Beginning'));
- L.push(os(a,'shr-h2','A Section Heading'));
- L.push(os(a,'shr-h3','A subsection')+' '+os(a,'shr-h4','h4')+' / '+os(a,'shr-h5','h5')+' / '+os(a,'shr-h6','h6'));
- L.push(os(a,'shr-text','Body text flows in shr-text, with a ')+os(a,'shr-link','hyperlink')+os(a,'shr-text',' and a ')+os(a,'shr-selected-link','focused link')+os(a,'shr-text',','));
- L.push(os(a,'shr-text','some ')+os(a,'shr-code','inline_code()')+os(a,'shr-text',', a ')+os(a,'shr-mark','highlighted mark')+os(a,'shr-text',', ')+os(a,'shr-strike-through','struck out')+os(a,'shr-text',', a footnote')+os(a,'shr-sup','[1]')+os(a,'shr-text',','));
- L.push(os(a,'shr-text','an ')+os(a,'shr-abbreviation','HTML')+os(a,'shr-text',' abbreviation, and an ')+os(a,'shr-sliced-image','[image]')+os(a,'shr-text',' slice.'));
- return previewLines(L);}
-function renderSlackPreview(){const a='slack',L=[];
- L.push(os(a,'slack-room-info-title-room-name-face','#general')+' '+os(a,'slack-room-info-title-face','Acme Workspace'));
- L.push(os(a,'slack-room-info-section-title-face','Topic')+' '+os(a,'slack-room-info-section-label-face','daily standup')+' '+os(a,'slack-room-unread-face','3 unread'));
- L.push(os(a,'slack-new-message-marker-face','---------------- new messages ----------------'));
- L.push(os(a,'slack-message-output-header','craig 10:24'));
- L.push(' '+os(a,'slack-message-output-text','hey ')+os(a,'slack-message-mention-me-face','@craig')+os(a,'slack-message-output-text',', see ')+os(a,'slack-message-mention-face','@alice')+os(a,'slack-message-output-text',' in ')+os(a,'slack-channel-button-face','#general')+' '+os(a,'slack-message-mention-keyword-face','urgent'));
- L.push(' '+os(a,'slack-mrkdwn-bold-face','*bold*')+' '+os(a,'slack-mrkdwn-italic-face','_italic_')+' '+os(a,'slack-mrkdwn-code-face','`code`')+' '+os(a,'slack-mrkdwn-strike-face','~strike~'));
- L.push(' '+os(a,'slack-mrkdwn-blockquote-face','&gt; quoted')+' '+os(a,'slack-mrkdwn-list-face','- item'));
- L.push(' '+os(a,'slack-mrkdwn-code-block-face','``` code block ```'));
- L.push(' '+os(a,'slack-message-output-reaction',':thumbsup: 3')+' '+os(a,'slack-message-output-reaction-pressed',':heart: 1')+' '+os(a,'slack-message-deleted-face','(message deleted)'));
- L.push(' '+os(a,'slack-all-thread-buffer-thread-header-face','Thread: 2 replies'));
- L.push(os(a,'slack-attachment-header','Attachment')+' '+os(a,'slack-attachment-field-title','Field:')+' val '+os(a,'slack-message-attachment-preview-header-face','Preview')+' '+os(a,'slack-preview-face','snippet')+os(a,'slack-attachment-pad',' | ')+os(a,'slack-attachment-footer','footer'));
- L.push(os(a,'slack-block-highlight-source-overlay-face',' highlighted source block '));
- L.push('Actions: '+os(a,'slack-message-action-face','Edit')+' '+os(a,'slack-message-action-primary-face','Approve')+' '+os(a,'slack-message-action-danger-face','Delete'));
- L.push('Blocks: '+os(a,'slack-button-block-element-face','[Button]')+os(a,'slack-button-primary-block-element-face','[Primary]')+os(a,'slack-button-danger-block-element-face','[Danger]')+os(a,'slack-select-block-element-face','[Select v]')+os(a,'slack-overflow-block-element-face','[...]')+os(a,'slack-date-picker-block-element-face','[Date]'));
- L.push('Dialog: '+os(a,'slack-dialog-title-face','Title')+' '+os(a,'slack-dialog-element-label-face','Label')+' '+os(a,'slack-dialog-element-hint-face','(hint)')+' '+os(a,'slack-dialog-element-placeholder-face','placeholder')+' '+os(a,'slack-dialog-element-error-face','error')+' '+os(a,'slack-dialog-select-element-input-face','[input v]')+' '+os(a,'slack-dialog-submit-button-face','[Submit]')+os(a,'slack-dialog-cancel-button-face','[Cancel]'));
- L.push('Users: '+os(a,'slack-user-active-face','alice (active)')+' '+os(a,'slack-user-dnd-face','bob (dnd)')+' '+os(a,'slack-profile-image-face','[img]')+' '+os(a,'slack-user-profile-header-face','Profile')+' '+os(a,'slack-user-profile-property-name-face','Title:')+' Dev');
- L.push('Search: '+os(a,'slack-search-result-message-header-face','#general')+' '+os(a,'slack-search-result-message-username-face','craig'));
- L.push('Modeline: '+os(a,'slack-modeline-has-unreads-face','* unreads')+' '+os(a,'slack-modeline-channel-has-unreads-face','#ch')+' '+os(a,'slack-modeline-thread-has-unreads-face','thread'));
- return previewLines(L);}
-function renderTelegaPreview(){const a='telega',L=[];
- L.push(os(a,'telega-root-heading','Telegram')+' '+os(a,'telega-tracking','[tracking]')+' '+os(a,'telega-unread-unmuted-modeline','5 unread'));
- L.push(os(a,'telega-has-chatbuf-brackets','[')+os(a,'telega-username','Christine')+os(a,'telega-has-chatbuf-brackets',']')+' '+os(a,'telega-user-online-status','online')+' '+os(a,'telega-unmuted-count','3')+' '+os(a,'telega-mention-count','@2')+os(a,'telega-delim-face',' | ')+os(a,'telega-secret-title','Secret')+' '+os(a,'telega-muted-count','muted'));
- L.push(os(a,'telega-username','Bob')+' '+os(a,'telega-user-non-online-status','last seen recently')+' '+os(a,'telega-contact-birthdays-today','birthday today')+' '+os(a,'telega-shadow','shadow')+' '+os(a,'telega-link','link')+' '+os(a,'telega-blue','blue')+' '+os(a,'telega-red','red'));
- L.push('');
- L.push(os(a,'telega-msg-heading','Today'));
- L.push(os(a,'telega-msg-user-title','Christine')+' '+os(a,'telega-msg-inline-reply','| reply to Bob')+' '+os(a,'telega-msg-inline-forward','fwd from Carol')+' '+os(a,'telega-msg-inline-other','via bot'));
- L.push(' '+os(a,'telega-entity-type-bold','bold')+' '+os(a,'telega-entity-type-italic','italic')+' '+os(a,'telega-entity-type-underline','underline')+' '+os(a,'telega-entity-type-strikethrough','strike')+' '+os(a,'telega-entity-type-code','code')+' '+os(a,'telega-entity-type-spoiler','spoiler'));
- L.push(' '+os(a,'telega-entity-type-pre','pre block')+' '+os(a,'telega-entity-type-blockquote','&gt; quote')+' '+os(a,'telega-entity-type-mention','@user')+' '+os(a,'telega-entity-type-hashtag','#tag')+' '+os(a,'telega-entity-type-cashtag','$USD')+' '+os(a,'telega-entity-type-botcommand','/start')+' '+os(a,'telega-entity-type-texturl','link'));
- L.push(os(a,'telega-msg-self-title','Me')+' '+os(a,'telega-reaction',':+1: 2')+' '+os(a,'telega-reaction-chosen',':heart: 1')+' '+os(a,'telega-reaction-paid',':star: 5')+' '+os(a,'telega-reaction-paid-chosen',':star: paid')+' '+os(a,'telega-msg-deleted','(deleted)')+' '+os(a,'telega-msg-sponsored','Sponsored'));
- L.push(' checklist '+os(a,'telega-checklist-stats-done','2 done')+' / '+os(a,'telega-checklist-stats-todo','3 todo')+' '+os(a,'telega-highlight-text-face','search hit')+' '+os(a,'telega-button-highlight','[active btn]'));
- L.push(os(a,'telega-chat-prompt','&gt;')+' '+os(a,'telega-chat-prompt-aux','reply')+' '+os(a,'telega-chat-input-attachment','[photo.jpg]')+' '+os(a,'telega-topic-button','# Topic')+' '+os(a,'telega-filter-active','Main')+' '+os(a,'telega-filter-button-active','[Unread]')+os(a,'telega-filter-button-inactive','[All]'));
- L.push('Buttons '+os(a,'telega-box-button','[box]')+os(a,'telega-box-button-active','[on]')+os(a,'telega-box-button-default-active','[def]')+os(a,'telega-box-button-default-passive','[def-]')+os(a,'telega-box-button-primary-active','[pri]')+os(a,'telega-box-button-primary-passive','[pri-]')+os(a,'telega-box-button-success-active','[ok]')+os(a,'telega-box-button-success-passive','[ok-]'));
- L.push(' '+os(a,'telega-box-button-danger-active','[del]')+os(a,'telega-box-button-danger-passive','[del-]')+os(a,'telega-box-button-ui-active','[ui]')+os(a,'telega-box-button-ui-passive','[ui-]')+os(a,'telega-box-button2-active','[b2]')+os(a,'telega-box-button2-passive','[b2-]')+os(a,'telega-box-button2-white-foreground','[b2w]'));
- L.push('Describe '+os(a,'telega-describe-section-title','Section')+' '+os(a,'telega-describe-subsection-title','Sub')+' '+os(a,'telega-describe-item-title','Item:')+' enckey '+os(a,'telega-enckey-00','00')+os(a,'telega-enckey-01','01')+os(a,'telega-enckey-10','10')+os(a,'telega-enckey-11','11'));
- L.push('Palette '+os(a,'telega-palette-builtin-blue','blue')+' '+os(a,'telega-palette-builtin-green','green')+' '+os(a,'telega-palette-builtin-orange','orange')+' '+os(a,'telega-palette-builtin-purple','purple'));
- L.push(os(a,'telega-link-preview-sitename','example.com')+' '+os(a,'telega-link-preview-title','Link preview title'));
- L.push('Webpage '+os(a,'telega-webpage-title','Title')+' '+os(a,'telega-webpage-subtitle','Subtitle')+' '+os(a,'telega-webpage-header','Header')+' '+os(a,'telega-webpage-subheader','Subheader')+' '+os(a,'telega-webpage-outline','outline')+' '+os(a,'telega-webpage-fixed','fixed')+' '+os(a,'telega-webpage-preformatted','pre')+' '+os(a,'telega-webpage-marked','marked')+' '+os(a,'telega-webpage-strike-through','strike')+' '+os(a,'telega-webpage-chat-link','chat-link'));
- return previewLines(L);}
-function genericPreview(app){let h='<div style="padding:10px 14px;font:12pt/1.8 monospace">';for(const [face,label] of APPS[app].faces)h+=`<div data-face="${face}" style="${ofs(app,face)}">${esc(label)}</div>`;return h+'</div>';}
-// Bespoke split preview: a focused window beside its auto-dimmed twin, both
-// showing the language selected at the top of the page (kept in sync via the
-// langsel onchange, which re-runs buildPkgPreview). The left pane carries the
-// real per-token syntax colors; the right pane shows what auto-dim does -- every
-// default/font-lock face remaps to the single `auto-dim-other-buffers' face, so
-// the same code collapses to one faded foreground on the dim background. The
-// trailing row demonstrates `auto-dim-other-buffers-hide' (org hidden text whose
-// foreground matches the background, so it vanishes in a dimmed window).
-function renderAutodimPreview(){
- const a='auto-dim-other-buffers';
- const langsel=document.getElementById('langsel');
- const lang=(langsel&&langsel.value)||Object.keys(SAMPLES)[0];
- const lines=(SAMPLES[lang]||[]).slice(0,9);
- let lit='';
- for(const line of lines){
- if(!line.length){lit+='\n';continue;}
- for(const [k,t] of line)lit+=`<span data-k="${k}" style="${syntaxStyle(k)}">${esc(t)}</span>`;
- lit+='\n';}
- const dimFg=effFg(pkgEffFg(a,'auto-dim-other-buffers')),dimBg=pkgEffBg(a,'auto-dim-other-buffers')||'#000000';
- let dim='';
- for(const line of lines){
- if(!line.length){dim+='\n';continue;}
- for(const [,t] of line)dim+=esc(t);
- dim+='\n';}
- const hideFg=effFg(pkgEffFg(a,'auto-dim-other-buffers-hide')),hideBg=pkgEffBg(a,'auto-dim-other-buffers-hide')||dimBg;
- const foldText='··· folded body (hidden when dimmed) ···';
- const accent=uf('cursor').bg||'#67809c';
- const pane=(label,body,bg,focused)=>
- `<div style="flex:1;min-width:20ch;border:${focused?'2px solid '+accent:'1px solid #2a2a2a'};border-radius:4px;overflow:hidden">`
- +`<div style="text-align:center;font:bold 10pt monospace;padding:4px;color:${focused?'#cdced1':'#8a8a8a'};background:${focused?'#1a1a1a':'#0a0a0a'};border-bottom:1px solid #2a2a2a">${label}</div>`
- +`<div style="padding:10px 12px;font:12pt/1.6 monospace;white-space:pre;background:${bg}">${body}</div></div>`;
- const litBody=lit+'\n'+`<span style="color:#5e6770">${esc(foldText)}</span>`;
- const dimBody=`<span data-face="auto-dim-other-buffers" style="color:${dimFg}">${dim}</span>\n`
- +`<span data-face="auto-dim-other-buffers-hide" style="color:${hideFg};background:${hideBg}">${esc(foldText)}</span>`;
- return `<div style="display:flex;gap:12px;padding:12px 16px;background:${MAP['bg']}">`
- +pane('normal',litBody,MAP['bg'],true)
- +pane('auto-dim',dimBody,dimBg,false)
- +`</div>`;
-}
-function renderMarkdownPreview(){const a='markdown-mode',L=[];
- const dl='markdown-header-delimiter-face',mk='markdown-markup-face';
- L.push(os(a,mk,'---'));
- L.push(os(a,'markdown-metadata-key-face','title:')+' '+os(a,'markdown-metadata-value-face','Project Name'));
- L.push(os(a,'markdown-metadata-key-face','version:')+' '+os(a,'markdown-metadata-value-face','1.2.0'));
- L.push(os(a,mk,'---'));
- L.push('');
- L.push(os(a,dl,'#')+' '+os(a,'markdown-header-face-1','Project Name'));
- L.push('');
- L.push(os(a,'markdown-comment-face','&lt;!-- a one-line tagline --&gt;'));
- L.push('A library for '+os(a,'markdown-bold-face','**doing things**')+' and '+os(a,'markdown-italic-face','*other things*')+'.');
- L.push('');
- L.push(os(a,dl,'##')+' '+os(a,'markdown-header-face-2','Installation'));
- L.push('');
- L.push('Run '+os(a,'markdown-inline-code-face','`npm install project`')+' to get started.');
- L.push('');
- L.push(os(a,mk,'```')+os(a,'markdown-language-keyword-face','sh'));
- L.push(os(a,'markdown-pre-face',' git clone https://example.com/project.git'));
- L.push(os(a,'markdown-pre-face',' cd project; make'));
- L.push(os(a,mk,'```'));
- L.push('');
- L.push(os(a,dl,'###')+' '+os(a,'markdown-header-face-3','Usage'));
- L.push('');
- L.push(os(a,'markdown-list-face','- ')+'See the '+os(a,'markdown-link-face','[docs]')+os(a,'markdown-url-face','(https://example.com/docs)')+' for details.');
- L.push(os(a,'markdown-list-face','- ')+'Or browse '+os(a,'markdown-plain-url-face','https://example.com')+' directly.');
- L.push(os(a,'markdown-gfm-checkbox-face','- [x]')+' shipped '+os(a,'markdown-gfm-checkbox-face','- [ ]')+' planned');
- L.push('');
- L.push(os(a,'markdown-blockquote-face','> A note worth quoting, with a footnote')+os(a,'markdown-footnote-marker-face','[^1]')+os(a,'markdown-blockquote-face','.'));
- L.push('');
- L.push(os(a,'markdown-table-face','| Option | Default |'));
- L.push(os(a,'markdown-table-face','|--------|---------|'));
- L.push(os(a,'markdown-table-face','| debug | false |'));
- L.push('');
- L.push(os(a,'markdown-hr-face','---'));
- L.push('');
- L.push(os(a,'markdown-strike-through-face','~~deprecated~~')+' '+os(a,'markdown-highlight-face','==important==')+' '+os(a,'markdown-math-face','$E = mc^2$'));
- L.push(os(a,'markdown-html-tag-delimiter-face','&lt;')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','&gt;')+'Ctrl-C'+os(a,'markdown-html-tag-delimiter-face','&lt;/')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','&gt;'));
- L.push(os(a,'markdown-footnote-marker-face','[^1]:')+' '+os(a,'markdown-footnote-text-face','the footnote text.'));
- return previewLines(L);}
+// The per-package preview renderers live in previews.js, spliced here so the
+// PACKAGE_PREVIEWS registry below can reference them.
+PREVIEWS_J
const PACKAGE_PREVIEWS={
autodim:renderAutodimPreview,markdown:renderMarkdownPreview,
org:renderOrgPreview,magit:renderMagitPreview,elfeed:renderElfeedPreview,ghostel:renderGhostelPreview,
diff --git a/scripts/theme-studio/app_inventory.py b/scripts/theme-studio/app_inventory.py
index ed904b119..11ca605d1 100644
--- a/scripts/theme-studio/app_inventory.py
+++ b/scripts/theme-studio/app_inventory.py
@@ -7,33 +7,14 @@ import os
from collections.abc import Sequence
from typing import Any
+from face_data import BESPOKE_APP_SPECS
-BESPOKE_APPS = {
- "magit",
- "elfeed",
- "org",
- "org-mode",
- "mu4e",
- "gnus",
- "org-faces",
- "ghostel",
- "auto-dim-other-buffers",
- "dashboard",
- "lsp-mode",
- "git-gutter",
- "flycheck",
- "dired",
- "dirvish",
- "calibredb",
- "erc",
- "org-drill",
- "org-noter",
- "signel",
- "pearl",
- "slack",
- "telega",
- "shr",
-}
+
+# Keys of the bespoke apps (single-sourced in face_data), excluded from the
+# generic-inventory path so they aren't also emitted as plain inventory apps.
+# "org" is an explicit alias of the "org-mode" bespoke app, so an inventory
+# package literally named "org" never gets a duplicate generic entry.
+BESPOKE_APPS = {spec[0] for spec in BESPOKE_APP_SPECS} | {"org"}
# Inventory apps (not in BESPOKE_APPS) default to the generic preview. A few have
diff --git a/scripts/theme-studio/build-theme.el b/scripts/theme-studio/build-theme.el
index e0a86f111..4432ef57c 100644
--- a/scripts/theme-studio/build-theme.el
+++ b/scripts/theme-studio/build-theme.el
@@ -198,28 +198,27 @@ Each category fans out to the font-lock faces in
(push spec specs)))))))
(nreverse specs)))
-(defun build-theme/--ui-face-specs (ui)
- "Build UI-tier face specs from the UI alist (face -> attribute alist)."
+(defun build-theme/--specs-from-entries (entries)
+ "Build face specs from ENTRIES, an alist of (face . attribute-alist).
+Empty-attr entries emit nothing (cleared faces drop out)."
(let (specs)
- (dolist (entry ui)
- (let* ((face (car entry))
- (obj (cdr entry))
- (attrs (build-theme/--attrs obj)))
- (when-let ((spec (build-theme/--face-spec face attrs)))
- (push spec specs))))
+ (dolist (entry entries)
+ (when-let ((spec (build-theme/--face-spec
+ (car entry)
+ (build-theme/--attrs (cdr entry)))))
+ (push spec specs)))
(nreverse specs)))
+(defun build-theme/--ui-face-specs (ui)
+ "Build UI-tier face specs from the UI alist (face -> attribute alist)."
+ (build-theme/--specs-from-entries ui))
+
(defun build-theme/--package-face-specs (packages)
"Build package-tier face specs from the PACKAGES alist (app -> face -> spec)."
(let (specs)
(dolist (app packages)
- (dolist (entry (cdr app))
- (let* ((face (car entry))
- (obj (cdr entry))
- (attrs (build-theme/--attrs obj)))
- (when-let ((spec (build-theme/--face-spec face attrs)))
- (push spec specs)))))
- (nreverse specs)))
+ (setq specs (nconc specs (build-theme/--specs-from-entries (cdr app)))))
+ specs))
(defun build-theme/--all-specs (data)
"Build the full ordered face-spec list from parsed theme.json DATA."
diff --git a/scripts/theme-studio/capture-default-faces.py b/scripts/theme-studio/capture-default-faces.py
index acfd4984d..8c8fd6679 100644
--- a/scripts/theme-studio/capture-default-faces.py
+++ b/scripts/theme-studio/capture-default-faces.py
@@ -17,6 +17,8 @@ import re
import subprocess
import tempfile
+from face_specs import FACE_ATTRS
+
HERE = pathlib.Path(__file__).resolve().parent
ROOT = HERE.parents[1]
OUT = HERE / "emacs-default-faces.json"
@@ -85,21 +87,11 @@ BUILTIN_FEATURES = [
"shr",
]
-ATTRS = {
- ":foreground": "foreground",
- ":background": "background",
- ":weight": "weight",
- ":slant": "slant",
- ":underline": "underline",
- ":strike-through": "strike",
- ":overline": "overline",
- ":box": "box",
- ":height": "height",
- ":inherit": "inherit",
- ":inverse-video": "inverseVideo",
- ":extend": "extend",
- ":distant-foreground": "distantForeground",
-}
+# Emacs face :attribute keyword -> snapshot field name, derived from the shared
+# face-attribute spec so the capture, the seed extraction, and STYLE_DEFAULTS all
+# stay in step. Attributes the snapshot doesn't carry (e.g. family) have no
+# capture keyword and are skipped.
+ATTRS = {a["capture"]: a["snapshot"] for a in FACE_ATTRS if a["capture"]}
def x11_colors() -> dict[str, str]:
@@ -371,7 +363,11 @@ def main() -> None:
A defface form is self-contained, so registering a face this way avoids
loading the whole package (and its dependencies / side effects), which in
batch -Q is fragile: a missing dependency or mid-load error would silently
-drop every face in the file. Each form is evaluated independently."
+drop every face in the file. Each form is evaluated independently.
+
+Catch any error from `read', not just `end-of-file': a reader-level error
+(unrecognized syntax) otherwise propagates out and aborts the whole pass,
+dropping every face in every later file. Stop reading this file instead."
(when (file-readable-p file)
(with-temp-buffer
(insert-file-contents file)
@@ -381,7 +377,7 @@ drop every face in the file. Each form is evaluated independently."
(let ((form (read (current-buffer))))
(when (and (consp form) (eq (car form) 'defface))
(ignore-errors (eval form t)))))
- (end-of-file nil)))))
+ (error nil)))))
;; Pass 1: best-effort full load. Registers faces that are defined by a macro
;; or loop rather than a literal defface (e.g. rainbow-delimiters depth faces,
;; markdown header faces), which pass 2 cannot see. Failures are swallowed.
diff --git a/scripts/theme-studio/colormath.js b/scripts/theme-studio/colormath.js
index 2a7328e54..b57da9131 100644
--- a/scripts/theme-studio/colormath.js
+++ b/scripts/theme-studio/colormath.js
@@ -217,4 +217,9 @@ function reliefColors(bgHex) {
return { hl: one(1.2, 0x8000), sh: one(0.6, 0x4000) };
}
-export { srgb2oklab, oklab2oklch, oklch2oklab, oklch2hex, apca, deltaE, hex2rgb, lin, rl, contrast, rating, hsv2rgb, rgb2hsv, rgb2hex, oklab2lrgb, inGamut, lrgb2hex, planeCell, paletteWarnings, reliefColors };
+// OKLCH of a hex, and the pure black/white endpoint test. Shared by app-core
+// and palette-generator-core (both previously kept their own identical copies).
+function oklchOf(hex){return oklab2oklch(srgb2oklab(hex));}
+function isPureEndpointHex(hex){const h=(hex||'').toLowerCase();return h==='#ffffff'||h==='#000000';}
+
+export { srgb2oklab, oklab2oklch, oklch2oklab, oklch2hex, apca, deltaE, hex2rgb, lin, rl, contrast, rating, hsv2rgb, rgb2hsv, rgb2hex, oklab2lrgb, inGamut, lrgb2hex, planeCell, paletteWarnings, reliefColors, oklchOf, isPureEndpointHex };
diff --git a/scripts/theme-studio/default_faces.py b/scripts/theme-studio/default_faces.py
index 9a0dba5e3..b9633cfa7 100644
--- a/scripts/theme-studio/default_faces.py
+++ b/scripts/theme-studio/default_faces.py
@@ -6,6 +6,8 @@ import json
import pathlib
from typing import Any
+from face_specs import FACE_ATTRS
+
class DefaultFaces:
def __init__(self, data: dict[str, Any] | None):
@@ -35,49 +37,46 @@ class DefaultFaces:
data = self.face(face, effective)
return data.get(attr + "Hex") or data.get(attr)
+ def _seed_value(self, attr: dict[str, Any], data: dict[str, Any]) -> Any:
+ """Turn a snapshot field into a model value per the attribute's kind.
+
+ The snapshot speaks a different dialect than the model: colors carry a
+ Hex variant with a name fallback; weight/slant are value-narrowed to the
+ legacy bold/italic until the snapshot refresh; underline/strike/overline
+ are truthy flags that become objects; inverse/extend coerce Emacs's "t".
+ Returns None (skip) when the attribute is unset or not seedable.
+ """
+ kind, snap = attr["kind"], attr["snapshot"]
+ if not kind:
+ return None
+ if kind == "color":
+ return data.get(snap + "Hex") or data.get(snap)
+ if kind == "weight-bold":
+ return "bold" if data.get(snap) == "bold" else None
+ if kind == "slant-italic":
+ return "italic" if data.get(snap) == "italic" else None
+ if kind == "underline-obj":
+ return {"style": "line", "color": None} if data.get(snap) else None
+ if kind == "color-obj":
+ return {"color": None} if data.get(snap) else None
+ if kind == "bool":
+ return True if data.get(snap) in (True, "t") else None
+ if kind == "scalar":
+ return data.get(snap) or None
+ if kind == "height":
+ h = data.get(snap)
+ return h if (h and h != 1) else None
+ if kind == "box":
+ return self.box_to_theme(data.get(snap))
+ return None
+
def seed(self, face: str, effective: bool = False) -> dict[str, Any]:
data = self.face(face, effective)
out: dict[str, Any] = {}
- fg = data.get("foregroundHex") or data.get("foreground")
- bg = data.get("backgroundHex") or data.get("background")
- if fg:
- out["fg"] = fg
- if bg:
- out["bg"] = bg
- # Representation-only cutover: the snapshot's bold/italic become the new
- # weight/slant shape, and underline/strike become objects. The same
- # narrowing as before (only "bold"/"italic" survive; richer weights and
- # underline colors wait for the snapshot refresh), so the emitted theme
- # is byte-identical.
- if data.get("weight") == "bold":
- out["weight"] = "bold"
- if data.get("slant") == "italic":
- out["slant"] = "italic"
- if data.get("underline"):
- out["underline"] = {"style": "line", "color": None}
- if data.get("strike"):
- out["strike"] = {"color": None}
- # Additive attrs the snapshot already carries for the faces that set them:
- # distant-foreground (e.g. lazy-highlight), inverse-video, and extend.
- # overline is captured too once the snapshot is refreshed; stock faces
- # almost never set it, so it is usually absent. These seed faces with the
- # attrs Emacs gives them by default, so the studio opens closer to reality.
- df = data.get("distantForegroundHex") or data.get("distantForeground")
- if df:
- out["distant-fg"] = df
- if data.get("overline"):
- out["overline"] = {"color": None}
- if data.get("inverseVideo") in (True, "t"):
- out["inverse"] = True
- if data.get("extend") in (True, "t"):
- out["extend"] = True
- if data.get("inherit"):
- out["inherit"] = data.get("inherit")
- if data.get("height") and data.get("height") != 1:
- out["height"] = data.get("height")
- box = self.box_to_theme(data.get("box"))
- if box:
- out["box"] = box
+ for attr in FACE_ATTRS:
+ v = self._seed_value(attr, data)
+ if v:
+ out[attr["model"]] = v
return out
def box_to_theme(self, box: Any) -> dict[str, Any] | None:
@@ -142,32 +141,30 @@ class DefaultFaces:
"packageInherits": package_inherits,
}
- def _build_color_hex(self) -> dict[str, str]:
- out: dict[str, str] = {}
+ def _iter_color_pairs(self):
+ """Yield (name, hexValue) over every face's chosen/effective color attrs.
+ Both color maps walk this same nested structure; they differ only in which
+ of the pair is the key and how each filters."""
if not self.data:
- return out
+ return
for data in self.data.get("faces", {}).values():
for block in ("chosenGuiLight", "effectiveGuiLight"):
face_data = data.get(block, {}) or {}
for attr in ("foreground", "background", "distantForeground"):
- name = face_data.get(attr)
- hex_value = face_data.get(attr + "Hex")
- if name and hex_value:
- out[str(name).lower().replace(" ", "")] = hex_value
+ yield face_data.get(attr), face_data.get(attr + "Hex")
+
+ def _build_color_hex(self) -> dict[str, str]:
+ out: dict[str, str] = {}
+ for name, hex_value in self._iter_color_pairs():
+ if name and hex_value:
+ out[str(name).lower().replace(" ", "")] = hex_value
return out
def _build_color_names(self) -> dict[str, str]:
out: dict[str, str] = {}
- if not self.data:
- return out
- for data in self.data.get("faces", {}).values():
- for block in ("chosenGuiLight", "effectiveGuiLight"):
- face_data = data.get(block, {}) or {}
- for attr in ("foreground", "background", "distantForeground"):
- hex_value = face_data.get(attr + "Hex")
- name = face_data.get(attr)
- if hex_value and name and not str(name).startswith("#"):
- out.setdefault(hex_value.lower(), str(name).lower().replace(" ", "-"))
+ for name, hex_value in self._iter_color_pairs():
+ if hex_value and name and not str(name).startswith("#"):
+ out.setdefault(hex_value.lower(), str(name).lower().replace(" ", "-"))
return out
diff --git a/scripts/theme-studio/face_data.py b/scripts/theme-studio/face_data.py
index a73db7137..58e38a906 100644
--- a/scripts/theme-studio/face_data.py
+++ b/scripts/theme-studio/face_data.py
@@ -328,3 +328,33 @@ GNUS_SEED={
"gnus-cite-1":{"fg":"sage"},"gnus-cite-2":{"fg":"steel"},"gnus-cite-3":{"fg":"gold"},"gnus-cite-4":{"fg":"blue"},"gnus-cite-5":{"fg":"sage"},"gnus-cite-6":{"fg":"steel"},"gnus-cite-7":{"fg":"gold"},"gnus-cite-8":{"fg":"blue"},"gnus-cite-9":{"fg":"sage"},"gnus-cite-10":{"fg":"steel"},"gnus-cite-11":{"fg":"gold"},"gnus-cite-attribution":{"fg":"silver","italic":True},
"gnus-signature":{"fg":"pewter","italic":True},"gnus-button":{"fg":"blue","underline":True},
"gnus-emphasis-bold":{"bold":True},"gnus-emphasis-italic":{"italic":True},"gnus-emphasis-underline":{"underline":True},"gnus-emphasis-strikethru":{"fg":"pewter","strike":True},"gnus-emphasis-highlight-words":{"fg":"gold","bold":True}}
+
+# The bespoke package apps, single-sourced here. Each row is
+# (key, label, preview, FACES, prefix, SEED); add an app by adding one row.
+# generate.py builds APPS from this, and app_inventory derives the set of
+# bespoke keys (to exclude them from the generic-inventory path) from it too.
+BESPOKE_APP_SPECS=[
+ ("org-mode","org-mode","org",ORG_FACES,"org-",ORG_SEED),
+ ("magit","magit","magit",MAGIT_FACES,"magit-",MAGIT_SEED),
+ ("elfeed","elfeed","elfeed",ELFEED_FACES,"elfeed-",ELFEED_SEED),
+ ("mu4e","mu4e","mu4e",MU4E_FACES,"mu4e-",MU4E_SEED),
+ ("gnus","gnus (mu4e article view)","gnus",GNUS_FACES,"gnus-",GNUS_SEED),
+ ("org-faces","org-faces","orgfaces",ORGFACES_FACES,"org-faces-",ORGFACES_SEED),
+ ("ghostel","ghostel","ghostel",GHOSTEL_FACES,"ghostel-",GHOSTEL_SEED),
+ ("auto-dim-other-buffers","auto-dim","autodim",AUTODIM_FACES,"auto-dim-other-buffers-",AUTODIM_SEED),
+ ("dashboard","dashboard","dashboard",DASHBOARD_FACES,"dashboard-",DASHBOARD_SEED),
+ ("lsp-mode","lsp-mode","lsp",LSP_FACES,"lsp-",LSP_SEED),
+ ("git-gutter","git-gutter","gitgutter",GITGUTTER_FACES,"git-gutter:",GITGUTTER_SEED),
+ ("flycheck","flycheck","flycheck",FLYCHECK_FACES,"flycheck-",FLYCHECK_SEED),
+ ("dired","dired","dired",DIRED_FACES,"dired-",DIRED_SEED),
+ ("dirvish","dirvish","dirvish",DIRVISH_FACES,"dirvish-",DIRVISH_SEED),
+ ("calibredb","calibredb","calibredb",CALIBREDB_FACES,"calibredb-",CALIBREDB_SEED),
+ ("erc","erc","erc",ERC_FACES,"erc-",ERC_SEED),
+ ("org-drill","org-drill","orgdrill",ORGDRILL_FACES,"org-drill-",ORGDRILL_SEED),
+ ("org-noter","org-noter","orgnoter",ORGNOTER_FACES,"org-noter-",ORGNOTER_SEED),
+ ("signel","signel","signel",SIGNEL_FACES,"signel-",SIGNEL_SEED),
+ ("pearl","pearl","pearl",PEARL_FACES,"pearl-",PEARL_SEED),
+ ("slack","slack","slack",SLACK_FACES,"slack-",SLACK_SEED),
+ ("telega","telega","telega",TELEGA_FACES,"telega-",TELEGA_SEED),
+ ("shr","shr (HTML: nov/eww/mail)","shr",SHR_FACES,"shr-",SHR_SEED),
+]
diff --git a/scripts/theme-studio/face_specs.py b/scripts/theme-studio/face_specs.py
index 5fa038068..1b3e150d6 100644
--- a/scripts/theme-studio/face_specs.py
+++ b/scripts/theme-studio/face_specs.py
@@ -5,27 +5,39 @@ from __future__ import annotations
from typing import Any
-# The full per-face attribute model, in its final shape. weight and slant replace
-# the legacy bold/italic booleans (weight is one of light/normal/medium/semibold/
-# bold/heavy; slant is normal/italic/oblique). underline and strike are objects:
-# underline is {style: line|wave, color} and strike is {color}; null means unset.
-# inherit and height are no longer package-only — every tier can set them.
-STYLE_DEFAULTS: dict[str, Any] = {
- "fg": None,
- "bg": None,
- "distant-fg": None,
- "family": None,
- "weight": None,
- "slant": None,
- "underline": None,
- "strike": None,
- "overline": None,
- "box": None,
- "inverse": False,
- "extend": False,
- "inherit": None,
- "height": None,
-}
+# The full per-face attribute model, in its final shape, as one spec list that is
+# the single source for: STYLE_DEFAULTS (model key -> default), the capture probe
+# map in capture-default-faces.py (emacs :attr -> snapshot field), and the
+# snapshot extraction in default_faces.seed (snapshot field + kind -> model value).
+# Per row:
+# model : theme-model key
+# default : value when unset
+# capture : the Emacs face :attribute keyword the capture probes (None = not
+# captured, e.g. family, which the model carries but the snapshot omits)
+# snapshot : the field name the capture writes (and seed reads)
+# kind : how seed turns the snapshot field into a model value (None = not seeded)
+# weight/slant replaced the legacy bold/italic booleans; underline/strike/overline
+# are objects ({style: line|wave, color} / {color}); inherit and height apply to
+# every tier. Keep this in step with app-core.js FACE_ATTRS (separate runtime).
+FACE_ATTRS: list[dict[str, Any]] = [
+ {"model": "fg", "default": None, "capture": ":foreground", "snapshot": "foreground", "kind": "color"},
+ {"model": "bg", "default": None, "capture": ":background", "snapshot": "background", "kind": "color"},
+ {"model": "distant-fg", "default": None, "capture": ":distant-foreground", "snapshot": "distantForeground", "kind": "color"},
+ {"model": "family", "default": None, "capture": None, "snapshot": None, "kind": None},
+ {"model": "weight", "default": None, "capture": ":weight", "snapshot": "weight", "kind": "weight-bold"},
+ {"model": "slant", "default": None, "capture": ":slant", "snapshot": "slant", "kind": "slant-italic"},
+ {"model": "underline", "default": None, "capture": ":underline", "snapshot": "underline", "kind": "underline-obj"},
+ {"model": "strike", "default": None, "capture": ":strike-through", "snapshot": "strike", "kind": "color-obj"},
+ {"model": "overline", "default": None, "capture": ":overline", "snapshot": "overline", "kind": "color-obj"},
+ {"model": "box", "default": None, "capture": ":box", "snapshot": "box", "kind": "box"},
+ {"model": "inverse", "default": False, "capture": ":inverse-video", "snapshot": "inverseVideo", "kind": "bool"},
+ {"model": "extend", "default": False, "capture": ":extend", "snapshot": "extend", "kind": "bool"},
+ {"model": "inherit", "default": None, "capture": ":inherit", "snapshot": "inherit", "kind": "scalar"},
+ {"model": "height", "default": None, "capture": ":height", "snapshot": "height", "kind": "height"},
+]
+
+# model key -> default, derived from the spec above (order preserved).
+STYLE_DEFAULTS: dict[str, Any] = {a["model"]: a["default"] for a in FACE_ATTRS}
# Kept as a distinct name for callers, but inherit/height are no longer
# package-only, so the package defaults are now the same full set.
diff --git a/scripts/theme-studio/generate.py b/scripts/theme-studio/generate.py
index 347a21976..43ebf02c6 100644
--- a/scripts/theme-studio/generate.py
+++ b/scripts/theme-studio/generate.py
@@ -37,6 +37,9 @@ COLORMATH_BODY=strip_exports(read_text('colormath.js'))
# (MAP_J, PALETTE_J, COLORMATH_J, ...); those are filled after it is spliced in.
STYLES=read_text('styles.css')
APP_BODY=read_text('app.js')
+# Bespoke per-package preview renderers, spliced into the page <script> via the
+# PREVIEWS_J token in app.js. No imports/exports, so read raw.
+PREVIEWS_BODY=read_text('previews.js')
# Pure package-model + dropdown logic, inlined into the page (and unit-tested via
# test-app-core.mjs) the same way colormath.js is.
APP_CORE_BODY=strip_exports(read_text('app-core.js'))
@@ -174,25 +177,23 @@ def add_palette_color(palette,defaults,value,label=None):
name=base+'-'+str(n); n+=1
palette.append([value,name,column_id(name)])
+def _harvest_spec_colors(palette,defaults,spec):
+ """Add a face spec's fg, bg, and box color (if any) to the palette, in order."""
+ add_palette_color(palette,defaults,spec.get('fg'))
+ add_palette_color(palette,defaults,spec.get('bg'))
+ if spec.get('box'):
+ add_palette_color(palette,defaults,spec['box'].get('color'))
+
def add_default_palette_colors(palette,map_,syntax,uimap,apps,defaults):
for key,value in map_.items():
add_palette_color(palette,defaults,value,'bg' if key=='bg' else 'fg' if key=='p' else None)
for spec in syntax.values():
- add_palette_color(palette,defaults,spec.get('fg'))
- add_palette_color(palette,defaults,spec.get('bg'))
- if spec.get('box'):
- add_palette_color(palette,defaults,spec['box'].get('color'))
+ _harvest_spec_colors(palette,defaults,spec)
for _face,spec in uimap.items():
- add_palette_color(palette,defaults,spec.get('fg'))
- add_palette_color(palette,defaults,spec.get('bg'))
- if spec.get('box'):
- add_palette_color(palette,defaults,spec['box'].get('color'))
+ _harvest_spec_colors(palette,defaults,spec)
for app in apps.values():
for _face,_label,spec in app['faces']:
- add_palette_color(palette,defaults,spec.get('fg'))
- add_palette_color(palette,defaults,spec.get('bg'))
- if spec.get('box'):
- add_palette_color(palette,defaults,spec['box'].get('color'))
+ _harvest_spec_colors(palette,defaults,spec)
def apply_seed_packages(apps,data,seed):
if seed:
@@ -238,35 +239,10 @@ PALETTE,UIMAP,LOCKS=apply_seed_basics(_d,PALETTE,UIMAP,LOCKS)
PALETTE=normalize_palette(PALETTE)
SYNTAX=build_syntax(COLS,MAP,BOLD,ITALIC_MAP,DEFAULTS)
apply_syntax_seed(_d if _seed else {},SYNTAX,MAP)
-# Bespoke package face lists and seed defaults live in face_data.py. Each entry
-# is (key, label, preview, FACES, prefix, SEED); add an app by adding one row.
-_BESPOKE_APPS=[
- ("org-mode","org-mode","org",ORG_FACES,"org-",ORG_SEED),
- ("magit","magit","magit",MAGIT_FACES,"magit-",MAGIT_SEED),
- ("elfeed","elfeed","elfeed",ELFEED_FACES,"elfeed-",ELFEED_SEED),
- ("mu4e","mu4e","mu4e",MU4E_FACES,"mu4e-",MU4E_SEED),
- ("gnus","gnus (mu4e article view)","gnus",GNUS_FACES,"gnus-",GNUS_SEED),
- ("org-faces","org-faces","orgfaces",ORGFACES_FACES,"org-faces-",ORGFACES_SEED),
- ("ghostel","ghostel","ghostel",GHOSTEL_FACES,"ghostel-",GHOSTEL_SEED),
- ("auto-dim-other-buffers","auto-dim","autodim",AUTODIM_FACES,"auto-dim-other-buffers-",AUTODIM_SEED),
- ("dashboard","dashboard","dashboard",DASHBOARD_FACES,"dashboard-",DASHBOARD_SEED),
- ("lsp-mode","lsp-mode","lsp",LSP_FACES,"lsp-",LSP_SEED),
- ("git-gutter","git-gutter","gitgutter",GITGUTTER_FACES,"git-gutter:",GITGUTTER_SEED),
- ("flycheck","flycheck","flycheck",FLYCHECK_FACES,"flycheck-",FLYCHECK_SEED),
- ("dired","dired","dired",DIRED_FACES,"dired-",DIRED_SEED),
- ("dirvish","dirvish","dirvish",DIRVISH_FACES,"dirvish-",DIRVISH_SEED),
- ("calibredb","calibredb","calibredb",CALIBREDB_FACES,"calibredb-",CALIBREDB_SEED),
- ("erc","erc","erc",ERC_FACES,"erc-",ERC_SEED),
- ("org-drill","org-drill","orgdrill",ORGDRILL_FACES,"org-drill-",ORGDRILL_SEED),
- ("org-noter","org-noter","orgnoter",ORGNOTER_FACES,"org-noter-",ORGNOTER_SEED),
- ("signel","signel","signel",SIGNEL_FACES,"signel-",SIGNEL_SEED),
- ("pearl","pearl","pearl",PEARL_FACES,"pearl-",PEARL_SEED),
- ("slack","slack","slack",SLACK_FACES,"slack-",SLACK_SEED),
- ("telega","telega","telega",TELEGA_FACES,"telega-",TELEGA_SEED),
- ("shr","shr (HTML: nov/eww/mail)","shr",SHR_FACES,"shr-",SHR_SEED),
-]
+# Bespoke apps are single-sourced as BESPOKE_APP_SPECS in face_data.py (one
+# row per app: key, label, preview, FACES, prefix, SEED).
APPS={key:{"label":label,"preview":preview,"faces":face_rows(faces,prefix,seed)}
- for key,label,preview,faces,prefix,seed in _BESPOKE_APPS}
+ for key,label,preview,faces,prefix,seed in BESPOKE_APP_SPECS}
# Phase 6: merge the generated all-package inventory (refresh with build-inventory.el).
# Bespoke apps stay; every other installed package becomes an editable generic app.
_inv_path=os.path.join(HERE,"package-inventory.json")
@@ -290,6 +266,7 @@ HTML=read_text('theme-studio.template.html')
def fill_data(s):
return (s.replace("COLORMATH_J",COLORMATH_BODY)
.replace("APP_CORE_J",APP_CORE_BODY)
+ .replace("PREVIEWS_J",PREVIEWS_BODY)
.replace("APP_UTIL_J",APP_UTIL_BODY)
.replace("PALETTE_GENERATOR_CORE_J",PALETTE_GENERATOR_CORE_BODY)
.replace("PALETTE_GENERATOR_UI_J",PALETTE_GENERATOR_UI_BODY)
diff --git a/scripts/theme-studio/palette-generator-core.js b/scripts/theme-studio/palette-generator-core.js
index 6bce0d59a..6ad2bf44f 100644
--- a/scripts/theme-studio/palette-generator-core.js
+++ b/scripts/theme-studio/palette-generator-core.js
@@ -2,11 +2,9 @@
// from app-core.js, but owns candidate hue selection, naming, contrast filtering,
// and conversion from preview columns to palette entries.
import { normHex } from './app-util.js';
-import { oklch2hex, srgb2oklab, oklab2oklch, contrast, deltaE } from './colormath.js';
+import { oklch2hex, contrast, deltaE, oklchOf, isPureEndpointHex } from './colormath.js';
import { columnsFromPalette } from './app-core.js';
-function oklchOf(hex){return oklab2oklch(srgb2oklab(hex));}
-function isPureEndpointHex(hex){const h=(hex||'').toLowerCase();return h==='#ffffff'||h==='#000000';}
function generatedExistingNames(palette){
return new Set((palette||[]).map(p=>(p&&p[1]||'').toLowerCase()).filter(Boolean));
}
@@ -27,7 +25,7 @@ function uniqueGeneratedName(base,used){
function hueOfHex(hex,fallback){
const h=typeof hex==='string'?normHex(hex):null;
if(!h)return fallback;
- const lch=oklab2oklch(srgb2oklab(h));
+ const lch=oklchOf(h);
return Number.isFinite(lch.H)?lch.H:fallback;
}
function generatorSourceHue(palette,ground,cfg){
@@ -143,16 +141,14 @@ function randomChroma(rng){
}
function vibeChroma(vibe,rng){
const rnd=typeof rng==='function'?rng:Math.random;
- if(vibe==='muted')return 0.045+rnd()*0.035;
- if(vibe==='pastel')return 0.035+rnd()*0.045;
- if(vibe==='deep')return 0.085+rnd()*0.055;
- if(vibe==='jewel')return 0.12+rnd()*0.075;
- if(vibe==='earthy')return 0.055+rnd()*0.04;
- if(vibe==='warm'||vibe==='cool')return 0.08+rnd()*0.06;
- if(vibe==='neon')return 0.18+rnd()*0.09;
- if(vibe==='strange')return 0.145+rnd()*0.095;
- if(vibe==='balanced')return 0.075+rnd()*0.045;
- return 0.12+rnd()*0.07;
+ // [base, range]: chroma is base + rnd()*range. Table, not an if-ladder, so a
+ // vibe is one row to read or tune. The default covers unknown vibes.
+ const t={muted:[0.045,0.035],pastel:[0.035,0.045],deep:[0.085,0.055],
+ jewel:[0.12,0.075],earthy:[0.055,0.04],warm:[0.08,0.06],
+ cool:[0.08,0.06],neon:[0.18,0.09],strange:[0.145,0.095],
+ balanced:[0.075,0.045]};
+ const [base,range]=t[vibe]||[0.12,0.07];
+ return base+rnd()*range;
}
function accentCandidateForHue(hue,ground,cfg){
const C=cfg&&cfg.vibe?vibeChroma(cfg.vibe,cfg.rng):(cfg&&cfg.scheme==='random'?randomChroma(cfg.rng):generatorChroma(cfg&&cfg.chromaMode)), target=generatorTarget(cfg&&cfg.contrastMode), bg=ground&&ground.bg;
diff --git a/scripts/theme-studio/previews.js b/scripts/theme-studio/previews.js
new file mode 100644
index 000000000..bef8b7c12
--- /dev/null
+++ b/scripts/theme-studio/previews.js
@@ -0,0 +1,463 @@
+// previews.js -- the bespoke per-package preview renderers, extracted from
+// app.js. Pure preview HTML builders (ofs/os/previewLines + renderXxxPreview);
+// they reference shared globals (PKGMAP, MAP, faceCss, effFg, ...) and are
+// inlined into the page's single script element via the PREVIEWS_J token in app.js.
+function ofs(app,face){const f=PKGMAP[app][face]||{},fg=effFg(pkgEffFg(app,face)),bg=pkgEffBg(app,face);return faceCss(f,fg,bg,{fontSize:(f.height||1),boxBg:bg||MAP['bg']});}
+function os(app,face,txt){return `<span data-face="${face}" style="${ofs(app,face)}">${txt}</span>`;}
+// Shared wrapper for the line-based package previews: a monospace pre block.
+// Each renderer builds its own L array of os(...) lines and returns previewLines(L).
+function previewLines(L){return `<div style="padding:12px 16px;font:12pt/1.7 monospace;white-space:pre">${L.join('\n')}</div>`;}
+function renderOrgPreview(){const a='org-mode',L=[];
+ L.push(os(a,'org-document-info-keyword','#+TITLE:')+' '+os(a,'org-document-title','Project Notes'));
+ L.push(os(a,'org-document-info-keyword','#+AUTHOR:')+' '+os(a,'org-document-info','Craig Jennings'));
+ L.push(os(a,'org-meta-line','#+STARTUP: overview'));
+ L.push('');
+ L.push(os(a,'org-level-1','* Inbox')+' '+os(a,'org-tag',':work:')+os(a,'org-tag-group',':@office:'));
+ L.push(os(a,'org-level-2','** ')+os(a,'org-todo','TODO')+os(a,'org-level-2',' Draft the spec')+' '+os(a,'org-priority','[#A]')+' '+os(a,'org-tag',':spec:'));
+ L.push(' '+os(a,'org-special-keyword','SCHEDULED:')+' '+os(a,'org-date','&lt;2026-06-08 Sun&gt;')+' '+os(a,'org-special-keyword','DEADLINE:')+' '+os(a,'org-date','&lt;2026-06-12 Thu&gt;'));
+ L.push(' '+os(a,'org-drawer',':PROPERTIES:'));
+ L.push(' '+os(a,'org-special-keyword',':ID:')+' '+os(a,'org-property-value','abc-123-def'));
+ L.push(' '+os(a,'org-drawer',':END:'));
+ L.push(' '+os(a,'org-list-dt','- term ::')+' definition, with a '+os(a,'org-footnote','[fn:1]')+' note.');
+ L.push(' '+os(a,'org-checkbox','[X]')+' done item '+os(a,'org-checkbox-statistics-done','[2/2]'));
+ L.push(' '+os(a,'org-checkbox','[ ]')+' open item '+os(a,'org-checkbox-statistics-todo','[0/3]')+' '+os(a,'org-warning','(!)'));
+ L.push(os(a,'org-level-2','** ')+os(a,'org-done','DONE')+os(a,'org-headline-done',' Ship the tool'));
+ L.push(os(a,'org-level-3','*** ')+os(a,'org-todo','TODO')+os(a,'org-headline-todo',' Heading three'));
+ L.push(os(a,'org-level-4','**** four')+' / '+os(a,'org-level-5','***** five')+' / '+os(a,'org-level-6','****** six')+' / '+os(a,'org-level-7','******* seven')+' / '+os(a,'org-level-8','******** eight'));
+ L.push(' Inline '+os(a,'org-code','=code=')+', '+os(a,'org-verbatim','~verbatim~')+', '+os(a,'org-inline-src-block','src_py{1+1}')+',');
+ L.push(' a '+os(a,'org-link','[[https://gnu.org][link]]')+', a '+os(a,'org-target','&lt;&lt;target&gt;&gt;')+', a '+os(a,'org-macro','{{{macro}}}')+',');
+ L.push(' a '+os(a,'org-cite','[cite:')+os(a,'org-cite-key','@knuth1984')+os(a,'org-cite',']')+', a date '+os(a,'org-sexp-date','&lt;%%(diary-float 6 5 2)&gt;')+'.');
+ L.push(' '+os(a,'org-quote','#+begin_quote')+' a '+os(a,'org-verse','verse')+' line, latex '+os(a,'org-latex-and-related','$E = mc^2$')+'.');
+ L.push('');
+ L.push(' '+os(a,'org-block-begin-line','#+begin_src elisp'));
+ L.push(' '+os(a,'org-block',' (message "hi")'));
+ L.push(' '+os(a,'org-block-end-line','#+end_src'));
+ L.push('');
+ L.push(' '+os(a,'org-table-header','| name | hex |'));
+ L.push(' '+os(a,'org-table','|------+---------|'));
+ L.push(' '+os(a,'org-table-row','| blue | #67809c |')+' '+os(a,'org-formula',':=vsum(@2)'));
+ L.push(' '+os(a,'org-column-title','Effort')+' '+os(a,'org-column','| 0:30 |')+' '+os(a,'org-archived','* archived')+os(a,'org-ellipsis',' ...'));
+ L.push('');
+ L.push(os(a,'org-agenda-structure','Week-agenda (W23):'));
+ L.push(os(a,'org-agenda-date','Monday 8 June 2026'));
+ L.push(os(a,'org-agenda-date-today','Tuesday 9 June 2026')+' '+os(a,'org-agenda-current-time','10:24')+' '+os(a,'org-time-grid','----------'));
+ L.push(os(a,'org-agenda-date-weekend','Saturday 13 June')+' / '+os(a,'org-agenda-date-weekend-today','wknd-today'));
+ L.push(' '+os(a,'org-scheduled-previously','Sched.past:')+' overdue '+os(a,'org-agenda-done','x done item'));
+ L.push(' '+os(a,'org-scheduled','Scheduled:')+' a task '+os(a,'org-scheduled-today','due today'));
+ L.push(' '+os(a,'org-imminent-deadline','Deadline!')+' / '+os(a,'org-upcoming-deadline','upcoming')+' / '+os(a,'org-upcoming-distant-deadline','distant'));
+ L.push(' '+os(a,'org-agenda-dimmed-todo-face','dimmed todo')+' '+os(a,'org-agenda-diary','diary')+' '+os(a,'org-agenda-clocking','clocking'));
+ L.push(' '+os(a,'org-agenda-calendar-event','cal-event')+' / '+os(a,'org-agenda-calendar-sexp','cal-sexp')+' / '+os(a,'org-agenda-calendar-daterange','range'));
+ L.push(' '+os(a,'org-agenda-structure-secondary','secondary')+' '+os(a,'org-agenda-structure-filter','filter')+' '+os(a,'org-agenda-restriction-lock','lock')+' '+os(a,'org-agenda-column-dateline','col-date'));
+ L.push(' Filters: '+os(a,'org-agenda-filter-category','cat')+' '+os(a,'org-agenda-filter-tags','tags')+' '+os(a,'org-agenda-filter-effort','effort')+' '+os(a,'org-agenda-filter-regexp','re'));
+ L.push(' '+os(a,'org-mode-line-clock','[0:45]')+' / '+os(a,'org-mode-line-clock-overrun','[OVER]')+' '+os(a,'org-dispatcher-highlight','[d]ispatch'));
+ return previewLines(L);
+}
+function renderMagitPreview(){const a='magit',L=[];
+ L.push(os(a,'magit-header-line',' Magit: dotemacs ')+' '+os(a,'magit-header-line-key','g')+os(a,'magit-header-line-log-select',' refresh'));
+ L.push(os(a,'magit-head','Head:')+' '+os(a,'magit-branch-current','main')+' '+os(a,'magit-diff-revision-summary','Ship the tool'));
+ L.push(os(a,'magit-head','Merge:')+' '+os(a,'magit-branch-remote','origin/main')+' '+os(a,'magit-branch-local','main'));
+ L.push(os(a,'magit-head','Push:')+' '+os(a,'magit-branch-remote-head','origin/main'));
+ L.push(os(a,'magit-head','Upstream:')+' '+os(a,'magit-branch-upstream','origin/main')+' '+os(a,'magit-branch-warning','(diverged)'));
+ L.push('');
+ L.push(os(a,'magit-section-heading','Untracked files')+' '+os(a,'magit-section-child-count','(2)'));
+ L.push(' '+os(a,'magit-filename','notes.txt')+' '+os(a,'magit-dimmed','(ignored sibling)'));
+ L.push(os(a,'magit-section-highlight',' scratch.el (highlighted row)'));
+ L.push('');
+ L.push(os(a,'magit-section-heading','Unstaged changes')+' '+os(a,'magit-section-child-count','(1)'));
+ L.push(os(a,'magit-diff-file-heading','modified generate.py'));
+ L.push(os(a,'magit-diff-hunk-heading','@@ -1,4 +1,5 @@ def main'));
+ L.push(os(a,'magit-diff-context',' unchanged context'));
+ L.push(os(a,'magit-diff-removed','- old line')+os(a,'magit-diff-whitespace-warning',' '));
+ L.push(os(a,'magit-diff-added','+ new line'));
+ L.push('');
+ L.push(os(a,'magit-section-heading','Staged changes')+' '+os(a,'magit-diffstat-added','++++')+os(a,'magit-diffstat-removed','--'));
+ L.push(os(a,'magit-diff-file-heading-highlight','modified README.md (highlighted heading)'));
+ L.push(os(a,'magit-diff-hunk-heading-highlight','@@ hunk heading highlight @@'));
+ L.push(os(a,'magit-diff-added-highlight','+ added highlight')+' '+os(a,'magit-diff-removed-highlight','- removed highlight'));
+ L.push(os(a,'magit-diff-context-highlight',' context highlight'));
+ L.push('');
+ L.push(os(a,'magit-section-heading','Stashes'));
+ L.push(' '+os(a,'magit-refname-stash','stash@{0}')+' '+os(a,'magit-refname-wip','wip')+' '+os(a,'magit-refname-pullreq','pr/42')+' '+os(a,'magit-refname','refs/heads/x'));
+ L.push('');
+ L.push(os(a,'magit-section-heading','Recent commits'));
+ L.push(os(a,'magit-log-graph','* ')+os(a,'magit-hash','b5b1869f')+' '+os(a,'magit-log-date','06-08')+' '+os(a,'magit-log-author','Craig')+' enlarge the picker');
+ L.push(os(a,'magit-log-graph','* ')+os(a,'magit-hash','4fa5e995')+' '+os(a,'magit-log-date','06-07')+' '+os(a,'magit-log-author','Craig')+' '+os(a,'magit-keyword','[feat]')+' picker');
+ L.push(os(a,'magit-log-graph','* ')+os(a,'magit-hash','de07e01a')+' '+os(a,'magit-log-date','06-05')+' '+os(a,'magit-log-author','Craig')+' '+os(a,'magit-tag','v0.3')+' '+os(a,'magit-keyword-squash','!squash'));
+ L.push('');
+ L.push(os(a,'magit-section-secondary-heading','Merge conflict')+' '+os(a,'magit-diff-lines-heading','lines 10-14')+os(a,'magit-diff-lines-boundary','|'));
+ L.push(' '+os(a,'magit-diff-conflict-heading','=======')+' '+os(a,'magit-diff-conflict-heading-highlight','(hl)'));
+ L.push(' '+os(a,'magit-diff-base','base')+'/'+os(a,'magit-diff-base-highlight','base-hl')+' '+os(a,'magit-diff-our','ours')+'/'+os(a,'magit-diff-our-highlight','ours-hl')+' '+os(a,'magit-diff-their','theirs')+'/'+os(a,'magit-diff-their-highlight','theirs-hl'));
+ L.push(' '+os(a,'magit-diff-hunk-region','hunk-region')+' '+os(a,'magit-diff-file-heading-selection','file-sel')+' '+os(a,'magit-diff-hunk-heading-selection','hunk-sel')+' '+os(a,'magit-section-heading-selection','sec-sel')+' '+os(a,'magit-diff-revision-summary-highlight','rev-sum-hl'));
+ L.push('');
+ L.push(os(a,'magit-section-heading','Reflog'));
+ L.push(' '+os(a,'magit-reflog-commit','commit')+' '+os(a,'magit-reflog-amend','amend')+' '+os(a,'magit-reflog-merge','merge')+' '+os(a,'magit-reflog-checkout','checkout')+' '+os(a,'magit-reflog-reset','reset')+' '+os(a,'magit-reflog-rebase','rebase')+' '+os(a,'magit-reflog-cherry-pick','cherry-pick')+' '+os(a,'magit-reflog-remote','remote')+' '+os(a,'magit-reflog-other','other'));
+ L.push(os(a,'magit-section-heading','Rebase sequence'));
+ L.push(' '+os(a,'magit-sequence-pick','pick')+' '+os(a,'magit-sequence-stop','stop')+' '+os(a,'magit-sequence-part','part')+' '+os(a,'magit-sequence-head','head')+' '+os(a,'magit-sequence-drop','drop')+' '+os(a,'magit-sequence-done','done')+' '+os(a,'magit-sequence-onto','onto')+' '+os(a,'magit-sequence-exec','exec'));
+ L.push(os(a,'magit-section-heading','Bisect / Cherry / Process'));
+ L.push(' '+os(a,'magit-bisect-good','good')+' '+os(a,'magit-bisect-bad','bad')+' '+os(a,'magit-bisect-skip','skip')+' '+os(a,'magit-cherry-equivalent','equivalent')+' '+os(a,'magit-cherry-unmatched','unmatched'));
+ L.push(' '+os(a,'magit-process-ok','OK')+' '+os(a,'magit-process-ng','NG')+' '+os(a,'magit-mode-line-process','[fetch]')+' '+os(a,'magit-mode-line-process-error','[error]'));
+ L.push(os(a,'magit-section-heading','Blame'));
+ L.push(os(a,'magit-blame-margin','margin')+os(a,'magit-blame-heading',' b5b1869f '))
+ L.push(' '+os(a,'magit-blame-hash','b5b1869f')+' '+os(a,'magit-blame-name','Craig')+' '+os(a,'magit-blame-date','2026-06-08')+' '+os(a,'magit-blame-summary','enlarge picker')+' '+os(a,'magit-blame-highlight','hl')+' '+os(a,'magit-blame-dimmed','dim'));
+ L.push(os(a,'magit-section-heading','Signatures')+os(a,'magit-left-margin',' '));
+ L.push(' '+os(a,'magit-signature-good','good')+' '+os(a,'magit-signature-bad','bad')+' '+os(a,'magit-signature-untrusted','untrusted')+' '+os(a,'magit-signature-expired','expired')+' '+os(a,'magit-signature-expired-key','expired-key')+' '+os(a,'magit-signature-revoked','revoked')+' '+os(a,'magit-signature-error','error'));
+ return previewLines(L);}
+function renderElfeedPreview(){const a='elfeed',L=[];
+ L.push(os(a,'elfeed-search-filter-face','@6-months-ago +unread')+' '+os(a,'elfeed-search-unread-count-face','3/120')+' '+os(a,'elfeed-search-last-update-face','updated 02:24'));
+ L.push('');
+ L.push(os(a,'elfeed-search-date-face','2026-06-08')+' '+os(a,'elfeed-search-feed-face','Planet Emacs')+' '+os(a,'elfeed-search-unread-title-face','New release of Magit')+' '+os(a,'elfeed-search-tag-face',':emacs:'));
+ L.push(os(a,'elfeed-search-date-face','2026-06-07')+' '+os(a,'elfeed-search-feed-face','LWN')+' '+os(a,'elfeed-search-unread-title-face','Kernel 6.18 lands')+' '+os(a,'elfeed-search-tag-face',':linux:'));
+ L.push(os(a,'elfeed-search-date-face','2026-06-05')+' '+os(a,'elfeed-search-feed-face','Hacker News')+' '+os(a,'elfeed-search-title-face','Show HN: a theme editor')+' '+os(a,'elfeed-search-tag-face',':show:'));
+ L.push('');
+ L.push(os(a,'elfeed-log-date-face','02:24:01')+' '+os(a,'elfeed-log-info-level-face','INFO ')+' updated 12 feeds');
+ L.push(os(a,'elfeed-log-date-face','02:24:02')+' '+os(a,'elfeed-log-warn-level-face','WARN ')+' slow feed: example.com');
+ L.push(os(a,'elfeed-log-date-face','02:24:03')+' '+os(a,'elfeed-log-error-level-face','ERROR')+' failed: bad.example');
+ L.push(os(a,'elfeed-log-date-face','02:24:04')+' '+os(a,'elfeed-log-debug-level-face','DEBUG')+' parsed 340 entries');
+ return previewLines(L);}
+function renderGhostelPreview(){const a='ghostel',L=[];
+ L.push(os(a,'ghostel-default','craig@host')+' '+os(a,'ghostel-color-green','~/code')+' $ ls'+os(a,'ghostel-fake-cursor',' ')+os(a,'ghostel-fake-cursor-box','[ ]'));
+ L.push('');
+ L.push(os(a,'ghostel-default','normal:')+' '+os(a,'ghostel-color-black','black')+' '+os(a,'ghostel-color-red','red')+' '+os(a,'ghostel-color-green','green')+' '+os(a,'ghostel-color-yellow','yellow')+' '+os(a,'ghostel-color-blue','blue')+' '+os(a,'ghostel-color-magenta','magenta')+' '+os(a,'ghostel-color-cyan','cyan')+' '+os(a,'ghostel-color-white','white'));
+ L.push(os(a,'ghostel-default','bright:')+' '+os(a,'ghostel-color-bright-black','black')+' '+os(a,'ghostel-color-bright-red','red')+' '+os(a,'ghostel-color-bright-green','green')+' '+os(a,'ghostel-color-bright-yellow','yellow')+' '+os(a,'ghostel-color-bright-blue','blue')+' '+os(a,'ghostel-color-bright-magenta','magenta')+' '+os(a,'ghostel-color-bright-cyan','cyan')+' '+os(a,'ghostel-color-bright-white','white'));
+ L.push('');
+ L.push(os(a,'ghostel-default','default terminal output, 256-color text and a blinking ')+os(a,'ghostel-fake-cursor','cursor')+'.');
+ return previewLines(L);}
+function renderDashboardPreview(){const a='dashboard',L=[];
+ L.push(os(a,'dashboard-text-banner',' [ dashboard banner image ]'));
+ L.push(os(a,'dashboard-banner-logo-title','Emacs: The Editor That Saves Your Soul'));
+ L.push('');
+ L.push(os(a,'dashboard-navigator',' Code  Files  Terminal 󰃭 Agenda'));
+ L.push(os(a,'dashboard-navigator',' Feeds  Books 󰑴 Flashcards 󰝚 Music'));
+ L.push(os(a,'dashboard-navigator',' Email  IRC  Telegram'));
+ L.push(os(a,'dashboard-navigator',' Slack  Linear'));
+ L.push('');
+ L.push('');
+ L.push(os(a,'dashboard-heading','Projects:'));
+ L.push(' ~/');
+ L.push(' ~/.emacs.d/');
+ L.push(' ~/projects/work/');
+ L.push(' ~/org/roam/');
+ L.push(' ~/projects/home/');
+ L.push('');
+ L.push(os(a,'dashboard-heading','Bookmarks'));
+ L.push(' Cesar Aira, The Little Buddhist Monk & the Proof');
+ L.push(' Edward Abbey, The Fool’s Progress: An Honest Novel');
+ L.push(' Agatha Christie, The A.B.C. Murders');
+ L.push('');
+ L.push(os(a,'dashboard-heading','Recent Files:'));
+ L.push(' theme-theme.el');
+ L.push(' todo.org');
+ L.push(' theme-studio-palette-generator-spec.org');
+ return previewLines(L);}
+function renderMu4ePreview(){const a='mu4e',L=[];
+ const pad=(s,n)=>{s=String(s);return s.length>=n?s.slice(0,n):s+' '.repeat(n-s.length);};
+ // One header line: the flags column in mu4e-header-marks-face, the rest of the
+ // row in the message's state face (unread, replied, flagged, ...).
+ const row=(flags,date,from,subj,face)=>
+ os(a,'mu4e-header-marks-face',pad(flags,4))+os(a,face,pad(date,12)+pad(from,17)+subj);
+ // status / context bar
+ L.push(os(a,'mu4e-title-face','mu4e')+' '+os(a,'mu4e-context-face','[Personal]')+' '+os(a,'mu4e-ok-face','online')+' '+os(a,'mu4e-warning-face','2 retrying')+' '+os(a,'mu4e-modeline-face','[12/340]'));
+ L.push('');
+ // column header + the message list, one row per state
+ L.push(os(a,'mu4e-header-title-face',pad('Flags',4)+pad('Date',12)+pad('From',17)+'Subject'));
+ L.push(row('N','2026-06-14','Christine Park','Re: quarterly numbers','mu4e-unread-face'));
+ L.push(row('','2026-06-13','Bob Lin','Lunch on Friday?','mu4e-header-face'));
+ // current line at point: the whole row gets the highlight background
+ L.push(os(a,'mu4e-header-highlight-face',row('R','2026-06-13','dev-list','merged the parser fix','mu4e-replied-face')));
+ L.push(row('F','2026-06-12','Carol Reyes','Fwd: the signed contract','mu4e-forwarded-face'));
+ L.push(row('D','2026-06-11','(draft)','Notes to finish later','mu4e-draft-face'));
+ L.push(row('T','2026-06-10','spam@nowhere','You have won a prize','mu4e-trashed-face'));
+ L.push(row('','2026-06-09','Erin (cc)','thread you follow','mu4e-related-face'));
+ L.push(row('!','2026-06-08','Frank Diaz','budget needs sign-off','mu4e-flagged-face'));
+ L.push('');
+ // a message view below the list
+ L.push(os(a,'mu4e-header-key-face','From:')+' '+os(a,'mu4e-contact-face','Christine Park &lt;christine@example.com&gt;'));
+ L.push(os(a,'mu4e-header-key-face','To:')+' '+os(a,'mu4e-special-header-value-face','craig, dev-list@gnu.org'));
+ L.push(os(a,'mu4e-header-key-face','Subject:')+' '+os(a,'mu4e-header-value-face','Re: quarterly numbers'));
+ L.push('');
+ L.push(' Body with a '+os(a,'mu4e-highlight-face','search hit')+', a link '+os(a,'mu4e-url-number-face','[1]')+' '+os(a,'mu4e-link-face','https://example.com')+', and a '+os(a,'mu4e-region-code','code region')+'.');
+ L.push(' '+os(a,'mu4e-system-face','*** mu: 340 messages indexed ***'));
+ L.push(' '+os(a,'mu4e-footer-face','-- Sent with mu4e'));
+ L.push('');
+ L.push(os(a,'mu4e-compose-separator-face','--text follows this line--'));
+ return previewLines(L);}
+function renderGnusPreview(){const a='gnus',L=[];
+ // mu4e renders the open message with gnus, so this is the article view:
+ // a header block, a body with inline emphasis and a button, then a quoted
+ // reply chain (one cite face per nesting level) and the signature.
+ L.push(os(a,'gnus-header-name','From: ')+os(a,'gnus-header-from','Christine Park &lt;christine@example.com&gt;'));
+ L.push(os(a,'gnus-header-name','To: ')+os(a,'gnus-header-content','craig@cjennings.net'));
+ L.push(os(a,'gnus-header-name','Newsgroups: ')+os(a,'gnus-header-newsgroups','gnu.emacs.help'));
+ L.push(os(a,'gnus-header-name','Subject: ')+os(a,'gnus-header-subject','Re: quarterly numbers'));
+ L.push(os(a,'gnus-header-name','Date: ')+os(a,'gnus-header-content','Sat, 14 Jun 2026 09:12:04 -0500'));
+ L.push('');
+ L.push('Thanks for the draft. The '+os(a,'gnus-emphasis-bold','revenue line')+' is '+os(a,'gnus-emphasis-italic','close')+', but the '+os(a,'gnus-emphasis-underline','footnote')+' is '+os(a,'gnus-emphasis-strikethru','wrong')+' '+os(a,'gnus-emphasis-highlight-words','FIXME')+'.');
+ L.push('See the worksheet: '+os(a,'gnus-button','[https://example.com/q2]'));
+ L.push('');
+ L.push(os(a,'gnus-cite-attribution','On Fri, Bob Lin wrote:'));
+ L.push(os(a,'gnus-cite-1','> The Q2 totals are ready for review.'));
+ L.push(os(a,'gnus-cite-2','>> Did the Segpay refund post yet?'));
+ L.push(os(a,'gnus-cite-3','>>> Yes, it cleared on the 5th.'));
+ L.push(os(a,'gnus-cite-4','>>>> Good, then we are square.'));
+ L.push(os(a,'gnus-cite-5','>>>>> earlier reply, level 5'));
+ L.push(os(a,'gnus-cite-6','>>>>>> level 6'));
+ L.push(os(a,'gnus-cite-7','>>>>>>> level 7'));
+ L.push(os(a,'gnus-cite-8','>>>>>>>> level 8'));
+ L.push(os(a,'gnus-cite-9','>>>>>>>>> level 9'));
+ L.push(os(a,'gnus-cite-10','>>>>>>>>>> level 10'));
+ L.push(os(a,'gnus-cite-11','>>>>>>>>>>> level 11'));
+ L.push('');
+ L.push(os(a,'gnus-signature','-- '));
+ L.push(os(a,'gnus-signature','Christine Park, Finance'));
+ return previewLines(L);}
+function renderOrgFacesPreview(){const a='org-faces',L=[];
+ L.push('Agenda header row -- one face per keyword and priority (this config, not built-in org):');
+ L.push('');
+ L.push(os(a,'org-faces-todo','TODO')+' Draft the spec '+os(a,'org-faces-priority-a','[#A]'));
+ L.push(os(a,'org-faces-project','PROJECT')+' Theme studio overhaul '+os(a,'org-faces-priority-b','[#B]'));
+ L.push(os(a,'org-faces-doing','DOING')+' Wire the faces '+os(a,'org-faces-priority-c','[#C]'));
+ L.push(os(a,'org-faces-waiting','WAITING')+' On review '+os(a,'org-faces-priority-d','[#D]'));
+ L.push(os(a,'org-faces-verify','VERIFY')+' Confirm the round-trip');
+ L.push(os(a,'org-faces-stalled','STALLED')+' Blocked on upstream');
+ L.push(os(a,'org-faces-delegated','DELEGATED')+' Handed to Kostya');
+ L.push(os(a,'org-faces-failed','FAILED')+' Could not reproduce');
+ L.push(os(a,'org-faces-done','DONE')+' Shipped the module');
+ L.push(os(a,'org-faces-cancelled','CANCELLED')+' Dropped the approach');
+ L.push('');
+ L.push('Unfocused (auto-dim) -- the -dim variants auto-dim remaps onto in non-selected windows:');
+ L.push('');
+ L.push(os(a,'org-faces-todo-dim','TODO')+' Draft the spec '+os(a,'org-faces-priority-a-dim','[#A]'));
+ L.push(os(a,'org-faces-project-dim','PROJECT')+' Theme studio overhaul '+os(a,'org-faces-priority-b-dim','[#B]'));
+ L.push(os(a,'org-faces-doing-dim','DOING')+' Wire the faces '+os(a,'org-faces-priority-c-dim','[#C]'));
+ L.push(os(a,'org-faces-waiting-dim','WAITING')+' On review '+os(a,'org-faces-priority-d-dim','[#D]'));
+ L.push(os(a,'org-faces-verify-dim','VERIFY')+' Confirm the round-trip');
+ L.push(os(a,'org-faces-stalled-dim','STALLED')+' Blocked on upstream');
+ L.push(os(a,'org-faces-delegated-dim','DELEGATED')+' Handed to Kostya');
+ L.push(os(a,'org-faces-failed-dim','FAILED')+' Could not reproduce');
+ L.push(os(a,'org-faces-done-dim','DONE')+' Shipped the module');
+ L.push(os(a,'org-faces-cancelled-dim','CANCELLED')+' Dropped the approach');
+ return previewLines(L);}
+function renderLspPreview(){const a='lsp-mode',L=[];
+ L.push(os(a,'lsp-signature-face','process(')+os(a,'lsp-signature-highlight-function-argument','items: list')+os(a,'lsp-signature-face',') -> None'));
+ L.push(os(a,'lsp-signature-posframe',' docs: iterate over items and process each one '));
+ L.push('');
+ L.push('def process(items):');
+ L.push(' n = len(items)'+os(a,'lsp-inlay-hint-type-face',': int'));
+ L.push(' handle('+os(a,'lsp-inlay-hint-parameter-face','arg:')+'n)'+os(a,'lsp-inlay-hint-face',' # hint'));
+ L.push(' '+os(a,'lsp-face-highlight-read','value')+' = '+os(a,'lsp-face-highlight-write','value')+' + '+os(a,'lsp-face-highlight-textual','value'));
+ L.push(' rename '+os(a,'lsp-face-rename','oldName')+' to '+os(a,'lsp-rename-placeholder-face','newName'));
+ L.push(' getName() '+os(a,'lsp-details-face','str the cached getter'));
+ L.push('');
+ L.push(os(a,'lsp-installation-buffer-face','Installing pyright...')+' '+os(a,'lsp-installation-finished-buffer-face','done.'));
+ return previewLines(L);}
+function renderGitGutterPreview(){const a='git-gutter',L=[];
+ L.push(os(a,'git-gutter:added','+')+os(a,'git-gutter:separator','|')+' added line of code');
+ L.push(os(a,'git-gutter:modified','~')+os(a,'git-gutter:separator','|')+' modified line of code');
+ L.push(os(a,'git-gutter:deleted','_')+os(a,'git-gutter:separator','|')+' (deleted lines marker)');
+ L.push(os(a,'git-gutter:unchanged',' ')+os(a,'git-gutter:separator','|')+' '+os(a,'git-gutter:unchanged','unchanged line of code'));
+ return previewLines(L);}
+function renderFlycheckPreview(){const a='flycheck',L=[];
+ L.push(os(a,'flycheck-fringe-error','E')+os(a,'flycheck-fringe-warning','W')+os(a,'flycheck-fringe-info','I')+' x = '+os(a,'flycheck-error','undefined_name')+'('+os(a,'flycheck-warning','unused_arg')+') '+os(a,'flycheck-info','# note'));
+ L.push(' '+os(a,'flycheck-error-delimiter','[')+os(a,'flycheck-delimited-error','err')+os(a,'flycheck-error-delimiter',']'));
+ L.push('');
+ L.push(os(a,'flycheck-error-list-checker-name','pyright')+' '+os(a,'flycheck-verify-select-checker','(selected checker)'));
+ L.push(os(a,'flycheck-error-list-filename','main.py')+':'+os(a,'flycheck-error-list-line-number','12')+':'+os(a,'flycheck-error-list-column-number','4')+' '+os(a,'flycheck-error-list-error','error')+' '+os(a,'flycheck-error-list-error-message','undefined name x')+' '+os(a,'flycheck-error-list-id','[E0602]'));
+ L.push(os(a,'flycheck-error-list-filename','main.py')+':'+os(a,'flycheck-error-list-line-number','18')+':'+os(a,'flycheck-error-list-column-number','1')+' '+os(a,'flycheck-error-list-warning','warning')+' '+os(a,'flycheck-error-list-error-message','unused import')+' '+os(a,'flycheck-error-list-id-with-explainer','[W0611?]'));
+ L.push(os(a,'flycheck-error-list-highlight','main.py:20 '+os(a,'flycheck-error-list-info','info')+' highlighted row'));
+ return previewLines(L);}
+function renderDiredPreview(){const a='dired',L=[];
+ L.push(os(a,'dired-header','/home/craig/code:'));
+ L.push(' '+os(a,'dired-perm-write','drwxr-xr-x')+' craig 4096 '+os(a,'dired-directory','src/'));
+ L.push(' -rw-r--r-- craig 120 notes.org');
+ L.push(' '+os(a,'dired-perm-write','lrwxrwxrwx')+' craig 18 '+os(a,'dired-symlink','latest -> v2.1'));
+ L.push(' lrwxrwxrwx craig -- '+os(a,'dired-broken-symlink','dead -> gone'));
+ L.push(os(a,'dired-flagged','D')+' -rw-r--r-- craig 40 deleteme.tmp');
+ L.push(os(a,'dired-mark','*')+' '+os(a,'dired-marked','-rw-r--r-- craig 210 marked.txt'));
+ L.push(' -rw-r--r-- craig 0 '+os(a,'dired-ignored','.gitignore'));
+ L.push(' '+os(a,'dired-set-id','-rwsr-xr-x')+' root 900 setuid.bin');
+ L.push(' '+os(a,'dired-special','prw-r--r--')+' craig 0 fifo.pipe');
+ L.push(os(a,'dired-warning','! disk space low on /home'));
+ return previewLines(L);}
+function renderDirvishPreview(){const a='dirvish',L=[];
+ L.push(os(a,'dirvish-inactive','~/code')+' '+os(a,'dirvish-free-space','[free 24G]'));
+ L.push(os(a,'dirvish-hl-line',' '+os(a,'dirvish-file-modes','-rw-r--r--')+' '+os(a,'dirvish-file-link-number','1')+' '+os(a,'dirvish-file-user-id','craig')+' '+os(a,'dirvish-file-group-id','staff')+' '+os(a,'dirvish-file-size','4.0K')+' '+os(a,'dirvish-file-time','Jun 8 02:24')+' init.el '));
+ L.push(' '+os(a,'dirvish-file-modes','drwxr-xr-x')+' '+os(a,'dirvish-file-link-number','5')+' '+os(a,'dirvish-file-user-id','craig')+' '+os(a,'dirvish-file-group-id','staff')+' '+os(a,'dirvish-file-size',' - ')+' '+os(a,'dirvish-file-time','Jun 7 18:00')+' '+os(a,'dirvish-collapse-dir-face','src')+os(a,'dirvish-subtree-state','+')+os(a,'dirvish-subtree-guide',' |'));
+ L.push(os(a,'dirvish-hl-line-inactive',' inactive-window current line '));
+ L.push(' inode '+os(a,'dirvish-file-inode-number','1048576')+' dev '+os(a,'dirvish-file-device-number','8,1')+' '+os(a,'dirvish-collapse-empty-dir-face','empty/')+' '+os(a,'dirvish-collapse-file-face','file.txt'));
+ L.push(' VC '+os(a,'dirvish-vc-added-state','A')+os(a,'dirvish-vc-edited-state','M')+os(a,'dirvish-vc-removed-state','D')+os(a,'dirvish-vc-conflict-state','C')+os(a,'dirvish-vc-locked-state','L')+os(a,'dirvish-vc-missing-state','!')+os(a,'dirvish-vc-needs-merge-face','m')+os(a,'dirvish-vc-needs-update-state','u')+os(a,'dirvish-vc-unregistered-face','?'));
+ L.push(' git '+os(a,'dirvish-git-commit-message-face','feat: enlarge the picker'));
+ L.push(' '+os(a,'dirvish-media-info-heading','Media')+' '+os(a,'dirvish-media-info-property-key','Dimensions:')+' 1920x1080');
+ L.push(' proc '+os(a,'dirvish-proc-running','running')+' / '+os(a,'dirvish-proc-finished','finished')+' / '+os(a,'dirvish-proc-failed','failed'));
+ L.push(' narrow '+os(a,'dirvish-narrow-match-face-0','m0')+' '+os(a,'dirvish-narrow-match-face-1','m1')+' '+os(a,'dirvish-narrow-match-face-2','m2')+' '+os(a,'dirvish-narrow-match-face-3','m3')+os(a,'dirvish-narrow-split',' | ')+os(a,'dirvish-emerge-group-title','Group: images'));
+ return previewLines(L);}
+function renderCalibredbPreview(){const a='calibredb',L=[];
+ L.push(os(a,'calibredb-search-header-library-name-face','Calibre')+' '+os(a,'calibredb-search-header-library-path-face','~/books')+' '+os(a,'calibredb-search-header-total-face','412 books')+' '+os(a,'calibredb-search-header-filter-face','tag:scifi')+' '+os(a,'calibredb-search-header-sort-face','sort:date')+' '+os(a,'calibredb-search-header-highlight-face','[*]'));
+ L.push('');
+ L.push(os(a,'calibredb-id-face','1')+' '+os(a,'calibredb-title-face','Dune')+' '+os(a,'calibredb-author-face','Herbert')+' '+os(a,'calibredb-format-face','EPUB')+' '+os(a,'calibredb-size-face','2.1M')+' '+os(a,'calibredb-tag-face',':scifi:')+' '+os(a,'calibredb-date-face','2026-06-08'));
+ L.push(os(a,'calibredb-mark-face','*')+os(a,'calibredb-id-face','2')+' '+os(a,'calibredb-title-face','Foundation')+' '+os(a,'calibredb-author-face','Asimov')+' '+os(a,'calibredb-series-face','[Foundation #1]')+' '+os(a,'calibredb-publisher-face','Bantam')+' '+os(a,'calibredb-pubdate-face','1951'));
+ L.push('');
+ L.push(os(a,'calibredb-title-detailed-view-face','Foundation (detailed)')+' '+os(a,'calibredb-language-face','eng')+' '+os(a,'calibredb-favorite-face','* fav')+' '+os(a,'calibredb-archive-face','archived'));
+ L.push(os(a,'calibredb-ids-face','isbn:0553293354')+' '+os(a,'calibredb-file-face','foundation.epub')+' '+os(a,'calibredb-comment-face','A classic of the genre.'));
+ L.push(os(a,'calibredb-edit-annotation-header-title-face','Annotations')+' '+os(a,'calibredb-highlight-face','highlighted passage')+' '+os(a,'calibredb-current-page-button-face','[page 42]')+' '+os(a,'calibredb-mouse-face','hover row'));
+ return previewLines(L);}
+function renderErcPreview(){const a='erc',L=[];
+ L.push(os(a,'erc-header-line',' #emacs on Libera.Chat 18 users '));
+ L.push(os(a,'erc-timestamp-face','[10:24]')+' '+os(a,'erc-notice-face','*** alice has joined #emacs'));
+ L.push(os(a,'erc-timestamp-face','[10:25]')+' &lt;'+os(a,'erc-my-nick-prefix-face','@')+os(a,'erc-my-nick-face','craig')+'&gt; '+os(a,'erc-input-face','hello everyone'));
+ L.push(os(a,'erc-timestamp-face','[10:25]')+' &lt;'+os(a,'erc-nick-prefix-face','+')+os(a,'erc-nick-default-face','bob')+'&gt; '+os(a,'erc-default-face','hi craig, see ')+os(a,'erc-button','this link')+os(a,'erc-default-face',' cc ')+os(a,'erc-button-nick-default-face','@alice'));
+ L.push(os(a,'erc-timestamp-face','[10:26]')+' '+os(a,'erc-action-face','* craig waves')+' '+os(a,'erc-keyword-face','emacs')+' '+os(a,'erc-pal-face','&lt;friend&gt;')+' '+os(a,'erc-fool-face','&lt;troll&gt;')+' '+os(a,'erc-dangerous-host-face','&lt;bad@host&gt;'));
+ L.push(os(a,'erc-timestamp-face','[10:27]')+' '+os(a,'erc-direct-msg-face','(DM)')+' &lt;'+os(a,'erc-nick-msg-face','bob')+'&gt; psst '+os(a,'erc-current-nick-face','craig')+' '+os(a,'erc-information','-info-'));
+ L.push(os(a,'erc-error-face','*** ERROR: connection reset'));
+ L.push(os(a,'erc-command-indicator-face','/help')+' '+os(a,'erc-bold-face','bold')+' '+os(a,'erc-italic-face','italic')+' '+os(a,'erc-underline-face','underline')+' '+os(a,'erc-inverse-face','inverse')+' '+os(a,'erc-spoiler-face','spoiler'));
+ L.push(os(a,'erc-keep-place-indicator-arrow','&gt;')+os(a,'erc-keep-place-indicator-line',' ---- last read ---- ')+os(a,'erc-fill-wrap-merge-indicator-face','+'));
+ L.push(os(a,'erc-prompt-face','craig&gt;')+' '+os(a,'erc-input-face','type a message...'));
+ return previewLines(L);}
+function renderOrgdrillPreview(){const a='org-drill',L=[];
+ L.push('Q: The capital of France is '+os(a,'org-drill-hidden-cloze-face','[...]')+'.');
+ L.push('A: The capital of France is '+os(a,'org-drill-visible-cloze-face','Paris')+'.');
+ L.push(' '+os(a,'org-drill-visible-cloze-hint-face','hint: P____'));
+ return previewLines(L);}
+function renderOrgnoterPreview(){const a='org-noter',L=[];
+ L.push('org-noter paper.pdf');
+ L.push(' page 1 '+os(a,'org-noter-notes-exist-face','[notes]'));
+ L.push(' page 2 '+os(a,'org-noter-no-notes-exist-face','[no notes]'));
+ return previewLines(L);}
+function renderSignelPreview(){const a='signel',L=[];
+ L.push(os(a,'signel-timestamp-face','[10:24]')+' '+os(a,'signel-my-msg-face','Me: hey, are we still on for tonight?'));
+ L.push(os(a,'signel-timestamp-face','[10:25]')+' '+os(a,'signel-other-msg-face','Christine: yes! see you at 7'));
+ L.push(os(a,'signel-error-face','(failed to send -- retrying)'));
+ return previewLines(L);}
+function renderPearlPreview(){const a='pearl',L=[];
+ L.push(os(a,'pearl-preamble-summary','PEARL-42 Fix the broken picker'));
+ L.push('State: '+os(a,'pearl-modified-local','In Progress')+' Priority: '+os(a,'pearl-modified-highlight','High')+' Estimate: '+os(a,'pearl-modified-unknown','?'));
+ L.push(' '+os(a,'pearl-editable-comment','&gt; add a comment (editable)'));
+ L.push(' '+os(a,'pearl-readonly-comment','&gt; created by automation (read-only)'));
+ return previewLines(L);}
+function renderShrPreview(){const a='shr',L=[];
+ L.push(os(a,'shr-text','shr renders nov (EPUB), eww (web), elfeed, and HTML mail.'));
+ L.push('');
+ L.push(os(a,'shr-h1','Chapter One: The Beginning'));
+ L.push(os(a,'shr-h2','A Section Heading'));
+ L.push(os(a,'shr-h3','A subsection')+' '+os(a,'shr-h4','h4')+' / '+os(a,'shr-h5','h5')+' / '+os(a,'shr-h6','h6'));
+ L.push(os(a,'shr-text','Body text flows in shr-text, with a ')+os(a,'shr-link','hyperlink')+os(a,'shr-text',' and a ')+os(a,'shr-selected-link','focused link')+os(a,'shr-text',','));
+ L.push(os(a,'shr-text','some ')+os(a,'shr-code','inline_code()')+os(a,'shr-text',', a ')+os(a,'shr-mark','highlighted mark')+os(a,'shr-text',', ')+os(a,'shr-strike-through','struck out')+os(a,'shr-text',', a footnote')+os(a,'shr-sup','[1]')+os(a,'shr-text',','));
+ L.push(os(a,'shr-text','an ')+os(a,'shr-abbreviation','HTML')+os(a,'shr-text',' abbreviation, and an ')+os(a,'shr-sliced-image','[image]')+os(a,'shr-text',' slice.'));
+ return previewLines(L);}
+function renderSlackPreview(){const a='slack',L=[];
+ L.push(os(a,'slack-room-info-title-room-name-face','#general')+' '+os(a,'slack-room-info-title-face','Acme Workspace'));
+ L.push(os(a,'slack-room-info-section-title-face','Topic')+' '+os(a,'slack-room-info-section-label-face','daily standup')+' '+os(a,'slack-room-unread-face','3 unread'));
+ L.push(os(a,'slack-new-message-marker-face','---------------- new messages ----------------'));
+ L.push(os(a,'slack-message-output-header','craig 10:24'));
+ L.push(' '+os(a,'slack-message-output-text','hey ')+os(a,'slack-message-mention-me-face','@craig')+os(a,'slack-message-output-text',', see ')+os(a,'slack-message-mention-face','@alice')+os(a,'slack-message-output-text',' in ')+os(a,'slack-channel-button-face','#general')+' '+os(a,'slack-message-mention-keyword-face','urgent'));
+ L.push(' '+os(a,'slack-mrkdwn-bold-face','*bold*')+' '+os(a,'slack-mrkdwn-italic-face','_italic_')+' '+os(a,'slack-mrkdwn-code-face','`code`')+' '+os(a,'slack-mrkdwn-strike-face','~strike~'));
+ L.push(' '+os(a,'slack-mrkdwn-blockquote-face','&gt; quoted')+' '+os(a,'slack-mrkdwn-list-face','- item'));
+ L.push(' '+os(a,'slack-mrkdwn-code-block-face','``` code block ```'));
+ L.push(' '+os(a,'slack-message-output-reaction',':thumbsup: 3')+' '+os(a,'slack-message-output-reaction-pressed',':heart: 1')+' '+os(a,'slack-message-deleted-face','(message deleted)'));
+ L.push(' '+os(a,'slack-all-thread-buffer-thread-header-face','Thread: 2 replies'));
+ L.push(os(a,'slack-attachment-header','Attachment')+' '+os(a,'slack-attachment-field-title','Field:')+' val '+os(a,'slack-message-attachment-preview-header-face','Preview')+' '+os(a,'slack-preview-face','snippet')+os(a,'slack-attachment-pad',' | ')+os(a,'slack-attachment-footer','footer'));
+ L.push(os(a,'slack-block-highlight-source-overlay-face',' highlighted source block '));
+ L.push('Actions: '+os(a,'slack-message-action-face','Edit')+' '+os(a,'slack-message-action-primary-face','Approve')+' '+os(a,'slack-message-action-danger-face','Delete'));
+ L.push('Blocks: '+os(a,'slack-button-block-element-face','[Button]')+os(a,'slack-button-primary-block-element-face','[Primary]')+os(a,'slack-button-danger-block-element-face','[Danger]')+os(a,'slack-select-block-element-face','[Select v]')+os(a,'slack-overflow-block-element-face','[...]')+os(a,'slack-date-picker-block-element-face','[Date]'));
+ L.push('Dialog: '+os(a,'slack-dialog-title-face','Title')+' '+os(a,'slack-dialog-element-label-face','Label')+' '+os(a,'slack-dialog-element-hint-face','(hint)')+' '+os(a,'slack-dialog-element-placeholder-face','placeholder')+' '+os(a,'slack-dialog-element-error-face','error')+' '+os(a,'slack-dialog-select-element-input-face','[input v]')+' '+os(a,'slack-dialog-submit-button-face','[Submit]')+os(a,'slack-dialog-cancel-button-face','[Cancel]'));
+ L.push('Users: '+os(a,'slack-user-active-face','alice (active)')+' '+os(a,'slack-user-dnd-face','bob (dnd)')+' '+os(a,'slack-profile-image-face','[img]')+' '+os(a,'slack-user-profile-header-face','Profile')+' '+os(a,'slack-user-profile-property-name-face','Title:')+' Dev');
+ L.push('Search: '+os(a,'slack-search-result-message-header-face','#general')+' '+os(a,'slack-search-result-message-username-face','craig'));
+ L.push('Modeline: '+os(a,'slack-modeline-has-unreads-face','* unreads')+' '+os(a,'slack-modeline-channel-has-unreads-face','#ch')+' '+os(a,'slack-modeline-thread-has-unreads-face','thread'));
+ return previewLines(L);}
+function renderTelegaPreview(){const a='telega',L=[];
+ L.push(os(a,'telega-root-heading','Telegram')+' '+os(a,'telega-tracking','[tracking]')+' '+os(a,'telega-unread-unmuted-modeline','5 unread'));
+ L.push(os(a,'telega-has-chatbuf-brackets','[')+os(a,'telega-username','Christine')+os(a,'telega-has-chatbuf-brackets',']')+' '+os(a,'telega-user-online-status','online')+' '+os(a,'telega-unmuted-count','3')+' '+os(a,'telega-mention-count','@2')+os(a,'telega-delim-face',' | ')+os(a,'telega-secret-title','Secret')+' '+os(a,'telega-muted-count','muted'));
+ L.push(os(a,'telega-username','Bob')+' '+os(a,'telega-user-non-online-status','last seen recently')+' '+os(a,'telega-contact-birthdays-today','birthday today')+' '+os(a,'telega-shadow','shadow')+' '+os(a,'telega-link','link')+' '+os(a,'telega-blue','blue')+' '+os(a,'telega-red','red'));
+ L.push('');
+ L.push(os(a,'telega-msg-heading','Today'));
+ L.push(os(a,'telega-msg-user-title','Christine')+' '+os(a,'telega-msg-inline-reply','| reply to Bob')+' '+os(a,'telega-msg-inline-forward','fwd from Carol')+' '+os(a,'telega-msg-inline-other','via bot'));
+ L.push(' '+os(a,'telega-entity-type-bold','bold')+' '+os(a,'telega-entity-type-italic','italic')+' '+os(a,'telega-entity-type-underline','underline')+' '+os(a,'telega-entity-type-strikethrough','strike')+' '+os(a,'telega-entity-type-code','code')+' '+os(a,'telega-entity-type-spoiler','spoiler'));
+ L.push(' '+os(a,'telega-entity-type-pre','pre block')+' '+os(a,'telega-entity-type-blockquote','&gt; quote')+' '+os(a,'telega-entity-type-mention','@user')+' '+os(a,'telega-entity-type-hashtag','#tag')+' '+os(a,'telega-entity-type-cashtag','$USD')+' '+os(a,'telega-entity-type-botcommand','/start')+' '+os(a,'telega-entity-type-texturl','link'));
+ L.push(os(a,'telega-msg-self-title','Me')+' '+os(a,'telega-reaction',':+1: 2')+' '+os(a,'telega-reaction-chosen',':heart: 1')+' '+os(a,'telega-reaction-paid',':star: 5')+' '+os(a,'telega-reaction-paid-chosen',':star: paid')+' '+os(a,'telega-msg-deleted','(deleted)')+' '+os(a,'telega-msg-sponsored','Sponsored'));
+ L.push(' checklist '+os(a,'telega-checklist-stats-done','2 done')+' / '+os(a,'telega-checklist-stats-todo','3 todo')+' '+os(a,'telega-highlight-text-face','search hit')+' '+os(a,'telega-button-highlight','[active btn]'));
+ L.push(os(a,'telega-chat-prompt','&gt;')+' '+os(a,'telega-chat-prompt-aux','reply')+' '+os(a,'telega-chat-input-attachment','[photo.jpg]')+' '+os(a,'telega-topic-button','# Topic')+' '+os(a,'telega-filter-active','Main')+' '+os(a,'telega-filter-button-active','[Unread]')+os(a,'telega-filter-button-inactive','[All]'));
+ L.push('Buttons '+os(a,'telega-box-button','[box]')+os(a,'telega-box-button-active','[on]')+os(a,'telega-box-button-default-active','[def]')+os(a,'telega-box-button-default-passive','[def-]')+os(a,'telega-box-button-primary-active','[pri]')+os(a,'telega-box-button-primary-passive','[pri-]')+os(a,'telega-box-button-success-active','[ok]')+os(a,'telega-box-button-success-passive','[ok-]'));
+ L.push(' '+os(a,'telega-box-button-danger-active','[del]')+os(a,'telega-box-button-danger-passive','[del-]')+os(a,'telega-box-button-ui-active','[ui]')+os(a,'telega-box-button-ui-passive','[ui-]')+os(a,'telega-box-button2-active','[b2]')+os(a,'telega-box-button2-passive','[b2-]')+os(a,'telega-box-button2-white-foreground','[b2w]'));
+ L.push('Describe '+os(a,'telega-describe-section-title','Section')+' '+os(a,'telega-describe-subsection-title','Sub')+' '+os(a,'telega-describe-item-title','Item:')+' enckey '+os(a,'telega-enckey-00','00')+os(a,'telega-enckey-01','01')+os(a,'telega-enckey-10','10')+os(a,'telega-enckey-11','11'));
+ L.push('Palette '+os(a,'telega-palette-builtin-blue','blue')+' '+os(a,'telega-palette-builtin-green','green')+' '+os(a,'telega-palette-builtin-orange','orange')+' '+os(a,'telega-palette-builtin-purple','purple'));
+ L.push(os(a,'telega-link-preview-sitename','example.com')+' '+os(a,'telega-link-preview-title','Link preview title'));
+ L.push('Webpage '+os(a,'telega-webpage-title','Title')+' '+os(a,'telega-webpage-subtitle','Subtitle')+' '+os(a,'telega-webpage-header','Header')+' '+os(a,'telega-webpage-subheader','Subheader')+' '+os(a,'telega-webpage-outline','outline')+' '+os(a,'telega-webpage-fixed','fixed')+' '+os(a,'telega-webpage-preformatted','pre')+' '+os(a,'telega-webpage-marked','marked')+' '+os(a,'telega-webpage-strike-through','strike')+' '+os(a,'telega-webpage-chat-link','chat-link'));
+ return previewLines(L);}
+function genericPreview(app){let h='<div style="padding:10px 14px;font:12pt/1.8 monospace">';for(const [face,label] of APPS[app].faces)h+=`<div data-face="${face}" style="${ofs(app,face)}">${esc(label)}</div>`;return h+'</div>';}
+// Bespoke split preview: a focused window beside its auto-dimmed twin, both
+// showing the language selected at the top of the page (kept in sync via the
+// langsel onchange, which re-runs buildPkgPreview). The left pane carries the
+// real per-token syntax colors; the right pane shows what auto-dim does -- every
+// default/font-lock face remaps to the single `auto-dim-other-buffers' face, so
+// the same code collapses to one faded foreground on the dim background. The
+// trailing row demonstrates `auto-dim-other-buffers-hide' (org hidden text whose
+// foreground matches the background, so it vanishes in a dimmed window).
+function renderAutodimPreview(){
+ const a='auto-dim-other-buffers';
+ const langsel=document.getElementById('langsel');
+ const lang=(langsel&&langsel.value)||Object.keys(SAMPLES)[0];
+ const lines=(SAMPLES[lang]||[]).slice(0,9);
+ let lit='';
+ for(const line of lines){
+ if(!line.length){lit+='\n';continue;}
+ for(const [k,t] of line)lit+=`<span data-k="${k}" style="${syntaxStyle(k)}">${esc(t)}</span>`;
+ lit+='\n';}
+ const dimFg=effFg(pkgEffFg(a,'auto-dim-other-buffers')),dimBg=pkgEffBg(a,'auto-dim-other-buffers')||'#000000';
+ let dim='';
+ for(const line of lines){
+ if(!line.length){dim+='\n';continue;}
+ for(const [,t] of line)dim+=esc(t);
+ dim+='\n';}
+ const hideFg=effFg(pkgEffFg(a,'auto-dim-other-buffers-hide')),hideBg=pkgEffBg(a,'auto-dim-other-buffers-hide')||dimBg;
+ const foldText='··· folded body (hidden when dimmed) ···';
+ const accent=uf('cursor').bg||'#67809c';
+ const pane=(label,body,bg,focused)=>
+ `<div style="flex:1;min-width:20ch;border:${focused?'2px solid '+accent:'1px solid #2a2a2a'};border-radius:4px;overflow:hidden">`
+ +`<div style="text-align:center;font:bold 10pt monospace;padding:4px;color:${focused?'#cdced1':'#8a8a8a'};background:${focused?'#1a1a1a':'#0a0a0a'};border-bottom:1px solid #2a2a2a">${label}</div>`
+ +`<div style="padding:10px 12px;font:12pt/1.6 monospace;white-space:pre;background:${bg}">${body}</div></div>`;
+ const litBody=lit+'\n'+`<span style="color:#5e6770">${esc(foldText)}</span>`;
+ const dimBody=`<span data-face="auto-dim-other-buffers" style="color:${dimFg}">${dim}</span>\n`
+ +`<span data-face="auto-dim-other-buffers-hide" style="color:${hideFg};background:${hideBg}">${esc(foldText)}</span>`;
+ return `<div style="display:flex;gap:12px;padding:12px 16px;background:${MAP['bg']}">`
+ +pane('normal',litBody,MAP['bg'],true)
+ +pane('auto-dim',dimBody,dimBg,false)
+ +`</div>`;
+}
+function renderMarkdownPreview(){const a='markdown-mode',L=[];
+ const dl='markdown-header-delimiter-face',mk='markdown-markup-face';
+ L.push(os(a,mk,'---'));
+ L.push(os(a,'markdown-metadata-key-face','title:')+' '+os(a,'markdown-metadata-value-face','Project Name'));
+ L.push(os(a,'markdown-metadata-key-face','version:')+' '+os(a,'markdown-metadata-value-face','1.2.0'));
+ L.push(os(a,mk,'---'));
+ L.push('');
+ L.push(os(a,dl,'#')+' '+os(a,'markdown-header-face-1','Project Name'));
+ L.push('');
+ L.push(os(a,'markdown-comment-face','&lt;!-- a one-line tagline --&gt;'));
+ L.push('A library for '+os(a,'markdown-bold-face','**doing things**')+' and '+os(a,'markdown-italic-face','*other things*')+'.');
+ L.push('');
+ L.push(os(a,dl,'##')+' '+os(a,'markdown-header-face-2','Installation'));
+ L.push('');
+ L.push('Run '+os(a,'markdown-inline-code-face','`npm install project`')+' to get started.');
+ L.push('');
+ L.push(os(a,mk,'```')+os(a,'markdown-language-keyword-face','sh'));
+ L.push(os(a,'markdown-pre-face',' git clone https://example.com/project.git'));
+ L.push(os(a,'markdown-pre-face',' cd project; make'));
+ L.push(os(a,mk,'```'));
+ L.push('');
+ L.push(os(a,dl,'###')+' '+os(a,'markdown-header-face-3','Usage'));
+ L.push('');
+ L.push(os(a,'markdown-list-face','- ')+'See the '+os(a,'markdown-link-face','[docs]')+os(a,'markdown-url-face','(https://example.com/docs)')+' for details.');
+ L.push(os(a,'markdown-list-face','- ')+'Or browse '+os(a,'markdown-plain-url-face','https://example.com')+' directly.');
+ L.push(os(a,'markdown-gfm-checkbox-face','- [x]')+' shipped '+os(a,'markdown-gfm-checkbox-face','- [ ]')+' planned');
+ L.push('');
+ L.push(os(a,'markdown-blockquote-face','> A note worth quoting, with a footnote')+os(a,'markdown-footnote-marker-face','[^1]')+os(a,'markdown-blockquote-face','.'));
+ L.push('');
+ L.push(os(a,'markdown-table-face','| Option | Default |'));
+ L.push(os(a,'markdown-table-face','|--------|---------|'));
+ L.push(os(a,'markdown-table-face','| debug | false |'));
+ L.push('');
+ L.push(os(a,'markdown-hr-face','---'));
+ L.push('');
+ L.push(os(a,'markdown-strike-through-face','~~deprecated~~')+' '+os(a,'markdown-highlight-face','==important==')+' '+os(a,'markdown-math-face','$E = mc^2$'));
+ L.push(os(a,'markdown-html-tag-delimiter-face','&lt;')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','&gt;')+'Ctrl-C'+os(a,'markdown-html-tag-delimiter-face','&lt;/')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','&gt;'));
+ L.push(os(a,'markdown-footnote-marker-face','[^1]:')+' '+os(a,'markdown-footnote-text-face','the footnote text.'));
+ return previewLines(L);}
diff --git a/scripts/theme-studio/test-app-core.mjs b/scripts/theme-studio/test-app-core.mjs
index 457f04d17..c6473ae96 100644
--- a/scripts/theme-studio/test-app-core.mjs
+++ b/scripts/theme-studio/test-app-core.mjs
@@ -10,6 +10,7 @@ import {
nameToHex, migrateLegacyFace, normalizePkgFace, buildPkgmap, packagesForExport, mergePackagesInto, effResolve, resolveSyntaxFg, resolveUiAttr, dropdownRowTextColor, paletteOptionList, spanNeighborHex, slugify,
clearPalettePlan, deletePaletteColumnPlan, groundColumnMembersFromPalette, areAllLocked, lockToggleLabel, toggleLockSet,
galleryModel, appViewKeysSorted, faceBoxNonDefaults, overflowNonDefault, stepViewIndex,
+ cssWeight, faceDecoration, boxCss, faceCss,
} from './app-core.js';
import { planPaletteGenerator, entriesForGeneratedColumn } from './palette-generator-core.js';
import { oklch2hex, deltaE } from './colormath.js';
@@ -1014,3 +1015,123 @@ test('stepViewIndex: a single option or empty list stays put', () => {
assert.equal(stepViewIndex(3, 0, -1), 3);
assert.equal(stepViewIndex(0, 0, 1), 0);
});
+
+// --- face CSS rendering helpers (promoted from app.js into app-core) ----------
+
+test('cssWeight: Normal — each weight name maps to its CSS number', () => {
+ assert.equal(cssWeight('light'), 300);
+ assert.equal(cssWeight('normal'), 400);
+ assert.equal(cssWeight('medium'), 500);
+ assert.equal(cssWeight('semibold'), 600);
+ assert.equal(cssWeight('bold'), 700);
+ assert.equal(cssWeight('heavy'), 900);
+});
+test('cssWeight: Boundary — null/undefined/empty fall back to "normal"', () => {
+ assert.equal(cssWeight(null), 'normal');
+ assert.equal(cssWeight(undefined), 'normal');
+ assert.equal(cssWeight(''), 'normal');
+});
+test('cssWeight: Error — unknown name or a number falls back to "normal"', () => {
+ assert.equal(cssWeight('ultrablack'), 'normal');
+ assert.equal(cssWeight(700), 'normal');
+});
+
+test('faceDecoration: Normal — underline, strike, or both', () => {
+ assert.equal(faceDecoration({underline:{style:'line',color:null}}), 'underline');
+ assert.equal(faceDecoration({strike:{color:null}}), 'line-through');
+ assert.equal(faceDecoration({underline:{style:'line'}, strike:{color:null}}),
+ 'underline line-through');
+});
+test('faceDecoration: Boundary — neither set yields "none"', () => {
+ assert.equal(faceDecoration({}), 'none');
+ assert.equal(faceDecoration({underline:null, strike:null}), 'none');
+});
+test('faceDecoration: Error — falsy underline/strike are ignored', () => {
+ assert.equal(faceDecoration({underline:false, strike:false}), 'none');
+});
+
+test('boxCss: Normal — line box uses the box color', () => {
+ assert.equal(boxCss({style:'line', color:'#aabbcc'}), 'inset 0 0 0 1px #aabbcc');
+});
+test('boxCss: Normal — pressed is released with the relief edges swapped', () => {
+ const rel = boxCss({style:'released', width:1, color:'#808080'});
+ const pre = boxCss({style:'pressed', width:1, color:'#808080'});
+ assert.match(rel, /^inset 1px 1px 0 \S+,inset -1px -1px 0 \S+$/);
+ assert.notEqual(rel, pre);
+ const [, ra, rz] = rel.match(/inset 1px 1px 0 (\S+?),inset -1px -1px 0 (\S+)/);
+ const [, pa, pz] = pre.match(/inset 1px 1px 0 (\S+?),inset -1px -1px 0 (\S+)/);
+ assert.equal(pa, rz);
+ assert.equal(pz, ra);
+});
+test('boxCss: Boundary — width respected; missing color uses currentColor', () => {
+ assert.equal(boxCss({style:'line', width:3, color:'#123456'}), 'inset 0 0 0 3px #123456');
+ assert.equal(boxCss({style:'line'}), 'inset 0 0 0 1px currentColor');
+});
+test('boxCss: Boundary — released/pressed with no color and no bg use the fallback', () => {
+ assert.equal(boxCss({style:'released'}),
+ 'inset 1px 1px 0 #ffffff33,inset -1px -1px 0 #00000066');
+ assert.equal(boxCss({style:'pressed'}),
+ 'inset 1px 1px 0 #00000066,inset -1px -1px 0 #ffffff33');
+});
+test('boxCss: Error — null or styleless box yields the empty string', () => {
+ assert.equal(boxCss(null), '');
+ assert.equal(boxCss({}), '');
+ assert.equal(boxCss({color:'#ffffff'}), '');
+});
+
+test('faceCss: Normal — minimal face is color plus defaults', () => {
+ assert.equal(faceCss({}, '#111111', null, {}),
+ 'color:#111111;font-weight:normal;font-style:normal;text-decoration:none');
+});
+test('faceCss: Normal — background, weight, slant, decoration reflected', () => {
+ assert.equal(
+ faceCss({weight:'bold', slant:'italic', underline:{style:'line'}}, '#111', '#222', {}),
+ 'color:#111;background:#222;font-weight:700;font-style:italic;text-decoration:underline');
+});
+test('faceCss: Boundary — noBg suppresses background; null bg omits it', () => {
+ assert.equal(faceCss({}, '#111', '#222', {noBg:true}),
+ 'color:#111;font-weight:normal;font-style:normal;text-decoration:none');
+ assert.equal(faceCss({}, '#111', null, {}),
+ 'color:#111;font-weight:normal;font-style:normal;text-decoration:none');
+});
+test('faceCss: Boundary — font-size precedes box-shadow', () => {
+ assert.equal(
+ faceCss({box:{style:'line',color:'#abcabc'}}, '#111', null, {fontSize:1.15, boxBg:'#000'}),
+ 'color:#111;font-weight:normal;font-style:normal;text-decoration:none;font-size:1.15em;box-shadow:inset 0 0 0 1px #abcabc');
+});
+test('faceCss: Error — opts omitted still works', () => {
+ assert.equal(faceCss({}, '#111', null),
+ 'color:#111;font-weight:normal;font-style:normal;text-decoration:none');
+});
+
+// --- defensive / fallback branches -------------------------------------------
+
+test('migrateLegacyFace: Boundary — null/undefined input yields an empty object', () => {
+ assert.deepEqual(migrateLegacyFace(null), {});
+ assert.deepEqual(migrateLegacyFace(undefined), {});
+});
+
+test('normalizePkgFace: Normal — source falls back through arg, d.source, then "user"', () => {
+ assert.equal(normalizePkgFace({}, 'default').source, 'default'); // arg wins
+ assert.equal(normalizePkgFace({source: 'cleared'}).source, 'cleared'); // d.source
+ assert.equal(normalizePkgFace({}).source, 'user'); // default
+});
+
+test('mergePackagesInto: Boundary — null packages is a no-op', () => {
+ const map = {existing: {f: {fg: '#111'}}};
+ mergePackagesInto(map, null);
+ assert.deepEqual(Object.keys(map), ['existing']);
+});
+test('mergePackagesInto: Normal — a new app key is created', () => {
+ const map = {};
+ mergePackagesInto(map, {newapp: {'face-a': {fg: '#112233', source: 'user'}}});
+ assert.ok(map.newapp && map.newapp['face-a']);
+ assert.equal(map.newapp['face-a'].fg, '#112233');
+});
+
+test('boxCss: Boundary — released with no color but a bg shades from the bg', () => {
+ const fromBg = boxCss({style: 'released'}, '#808080');
+ // not the translucent no-bg fallback, and a real two-edge relief
+ assert.notEqual(fromBg, 'inset 1px 1px 0 #ffffff33,inset -1px -1px 0 #00000066');
+ assert.match(fromBg, /^inset 1px 1px 0 \S+,inset -1px -1px 0 \S+$/);
+});
diff --git a/scripts/theme-studio/test-colormath.mjs b/scripts/theme-studio/test-colormath.mjs
index 992d35bcc..ee40e3437 100644
--- a/scripts/theme-studio/test-colormath.mjs
+++ b/scripts/theme-studio/test-colormath.mjs
@@ -13,7 +13,7 @@ import {
srgb2oklab, oklab2oklch, oklch2oklab, oklch2hex, apca, deltaE,
hex2rgb, rl, contrast, rating, hsv2rgb, rgb2hsv, rgb2hex,
oklab2lrgb, inGamut, lrgb2hex, planeCell, paletteWarnings,
- reliefColors,
+ reliefColors, isPureEndpointHex,
} from './colormath.js';
const close = (a, b, eps = 0.005) => Math.abs(a - b) <= eps;
@@ -270,3 +270,32 @@ test('inline-integrity: theme-studio.html contains the colormath.js body verbati
const html = readFileSync(here + 'theme-studio.html', 'utf8');
assert.ok(html.includes(body), 'generated page is missing the colormath.js body verbatim');
});
+
+// --- apca contrast branches + isPureEndpointHex ------------------------------
+
+test('apca: Boundary — equal luminance returns 0 (below the delta-Y floor)', () => {
+ assert.equal(apca('#808080', '#808080'), 0);
+});
+test('apca: Normal — dark text on light background is positive (Ybg > Ytxt)', () => {
+ assert.ok(apca('#000000', '#ffffff') > 0);
+});
+test('apca: Normal — light text on dark background is negative (else branch)', () => {
+ assert.ok(apca('#ffffff', '#000000') < 0);
+});
+test('apca: Boundary — near-equal colors below the floor clamp to 0', () => {
+ assert.equal(apca('#808080', '#828282'), 0);
+});
+
+test('isPureEndpointHex: Normal — pure black and white are endpoints', () => {
+ assert.equal(isPureEndpointHex('#ffffff'), true);
+ assert.equal(isPureEndpointHex('#000000'), true);
+ assert.equal(isPureEndpointHex('#FFFFFF'), true);
+});
+test('isPureEndpointHex: Boundary — any other color is not an endpoint', () => {
+ assert.equal(isPureEndpointHex('#010101'), false);
+ assert.equal(isPureEndpointHex('#123456'), false);
+});
+test('isPureEndpointHex: Error — null/empty is not an endpoint', () => {
+ assert.equal(isPureEndpointHex(null), false);
+ assert.equal(isPureEndpointHex(''), false);
+});
diff --git a/scripts/theme-studio/test-palette-generator-core.mjs b/scripts/theme-studio/test-palette-generator-core.mjs
new file mode 100644
index 000000000..d3d725957
--- /dev/null
+++ b/scripts/theme-studio/test-palette-generator-core.mjs
@@ -0,0 +1,78 @@
+// Unit tests for the palette generator planner (palette-generator-core.js).
+// Only planPaletteGenerator and entriesForGeneratedColumn are exported, so the
+// internal scheme / vibe / source-mode / intent logic is exercised by driving
+// the planner across each of those input dimensions.
+// Run: node --test scripts/theme-studio/
+
+import { test } from 'node:test';
+import assert from 'node:assert/strict';
+import { planPaletteGenerator, entriesForGeneratedColumn } from './palette-generator-core.js';
+
+const GROUND = { bg: '#0d0b0a', fg: '#f0fef0' };
+const PAL = [['#0d0b0a', 'bg'], ['#f0fef0', 'fg'], ['#67809c', 'blue'], ['#e8bd30', 'gold']];
+const rng = () => 0.42; // deterministic, so failures repeat
+
+test('planPaletteGenerator: Normal — every scheme produces a valid plan', () => {
+ for (const scheme of ['random', 'analogous', 'triadic', 'manual']) {
+ const plan = planPaletteGenerator(PAL, GROUND, { scheme, accentCount: 4, spanCount: 0, rng });
+ assert.equal(plan.scheme, scheme);
+ assert.ok(Array.isArray(plan.columns), `${scheme} columns`);
+ assert.equal(typeof plan.summary.generated, 'number');
+ }
+});
+
+test('planPaletteGenerator: Normal — every vibe biases hues without error', () => {
+ for (const vibe of ['warm', 'cool', 'earthy', 'muted', 'pastel', 'deep',
+ 'jewel', 'neon', 'strange', 'balanced']) {
+ const plan = planPaletteGenerator(PAL, GROUND,
+ { scheme: 'analogous', vibe, accentCount: 5, spanCount: 0, rng });
+ assert.equal(plan.vibe, vibe);
+ assert.ok(Array.isArray(plan.columns), `${vibe} columns`);
+ }
+});
+
+test('planPaletteGenerator: Normal — every source mode resolves', () => {
+ for (const sourceMode of ['bg-fg', 'palette', 'none', 'selected']) {
+ const plan = planPaletteGenerator(PAL, GROUND,
+ { sourceMode, selectedHex: '#9b5fd0', scheme: 'analogous', accentCount: 3, spanCount: 0, rng });
+ assert.ok(['bg-fg', 'palette', 'none', 'selected'].includes(plan.sourceMode));
+ assert.ok(Array.isArray(plan.columns));
+ }
+});
+
+test('planPaletteGenerator: Boundary — selected source with no valid hex falls back to bg-fg', () => {
+ const plan = planPaletteGenerator(PAL, GROUND,
+ { sourceMode: 'selected', scheme: 'analogous', accentCount: 2, spanCount: 0, rng });
+ assert.equal(plan.sourceMode, 'bg-fg');
+});
+
+test('planPaletteGenerator: Normal — fill-gaps and fill-hue-gaps intents produce plans', () => {
+ for (const intent of ['fill-gaps', 'fill-hue-gaps']) {
+ const plan = planPaletteGenerator(PAL, GROUND, { intent, accentCount: 4, spanCount: 0, rng });
+ assert.equal(plan.intent, intent);
+ assert.ok(Array.isArray(plan.columns));
+ }
+});
+
+test('planPaletteGenerator: Boundary — an empty palette still plans', () => {
+ const plan = planPaletteGenerator([], { bg: '#000000', fg: '#ffffff' },
+ { scheme: 'analogous', accentCount: 3, spanCount: 0, rng });
+ assert.ok(Array.isArray(plan.columns));
+ assert.equal(typeof plan.summary.generated, 'number');
+});
+
+test('planPaletteGenerator: Boundary — spanCount expands a column into members', () => {
+ const plan = planPaletteGenerator(PAL, GROUND,
+ { scheme: 'analogous', accentCount: 2, spanCount: 2, rng });
+ if (plan.columns.length) assert.ok(plan.columns[0].members.length >= 1);
+});
+
+test('entriesForGeneratedColumn: Normal — maps a planned column to palette entries', () => {
+ const plan = planPaletteGenerator(PAL, GROUND,
+ { scheme: 'analogous', accentCount: 1, spanCount: 0, rng });
+ if (plan.columns.length) {
+ const entries = entriesForGeneratedColumn(plan.columns[0]);
+ assert.ok(Array.isArray(entries) && entries.length >= 1);
+ assert.ok(typeof entries[0][0] === 'string' && entries[0][0].startsWith('#'));
+ }
+});
diff --git a/scripts/theme-studio/theme-studio.html b/scripts/theme-studio/theme-studio.html
index 5e8dee933..b5de32654 100644
--- a/scripts/theme-studio/theme-studio.html
+++ b/scripts/theme-studio/theme-studio.html
@@ -281,7 +281,7 @@
</div>
</div>
<script>
-const SAMPLES={"Elisp": [[["cmd", ";;"], ["cm", " cache.el"]], [["punc", "("], ["kw", "require"], ["p", " "], ["con", "'cl-lib"], ["punc", ")"]], [], [["punc", "("], ["kw", "defvar"], ["p", " "], ["var", "cache--tbl"], ["p", " "], ["punc", "("], ["fnc", "make-hash-table"], ["p", " "], ["con", ":test"], ["p", " "], ["con", "'equal"], ["punc", "))"]], [["p", " "], ["doc", "\"Memo table.\")"]], [], [["punc", "("], ["kw", "defun"], ["p", " "], ["fnd", "cache-get"], ["p", " "], ["punc", "("], ["var", "key"], ["punc", ")"]], [["p", " "], ["doc", "\"Return cached value for KEY.\""]], [["p", " "], ["punc", "("], ["kw", "or"], ["p", " "], ["punc", "("], ["bi", "gethash"], ["p", " "], ["var", "key"], ["p", " "], ["var", "cache--tbl"], ["punc", ")"]], [["p", " "], ["punc", "("], ["kw", "let"], ["p", " "], ["punc", "(("], ["var", "v"], ["p", " "], ["punc", "("], ["fnc", "compute"], ["p", " "], ["var", "key"], ["p", " "], ["num", "42"], ["punc", "))) "]], [["p", " "], ["punc", "("], ["fnc", "puthash"], ["p", " "], ["var", "key"], ["p", " "], ["var", "v"], ["p", " "], ["var", "cache--tbl"], ["punc", ") "], ["var", "v"], ["punc", "))))"]], [], [["punc", "("], ["kw", "defun"], ["p", " "], ["fnd", "cache-clear"], ["p", " "], ["punc", "()"]], [["p", " "], ["doc", "\"Empty the memo table.\""]], [["p", " "], ["punc", "("], ["kw", "interactive"], ["punc", ")"]], [["p", " "], ["punc", "("], ["fnc", "clrhash"], ["p", " "], ["var", "cache--tbl"], ["punc", ")"]], [["p", " "], ["punc", "("], ["fnc", "message"], ["p", " "], ["str", "\"cleared"], ["esc", "\\n"], ["str", "\""], ["punc", "))"]], [], [["punc", "("], ["kw", "defun"], ["p", " "], ["fnd", "cache-keys"], ["p", " "], ["punc", "()"]], [["p", " "], ["doc", "\"Return all keys.\""]], [["p", " "], ["punc", "("], ["kw", "let"], ["p", " "], ["punc", "(("], ["var", "acc"], ["p", " "], ["con", "nil"], ["punc", "))"]], [["p", " "], ["punc", "("], ["fnc", "maphash"], ["p", " "], ["punc", "("], ["kw", "lambda"], ["p", " "], ["punc", "("], ["var", "k"], ["p", " "], ["var", "_v"], ["punc", ")"], ["p", " "], ["punc", "("], ["fnc", "push"], ["p", " "], ["var", "k"], ["p", " "], ["var", "acc"], ["punc", "))"]], [["p", " "], ["var", "cache--tbl"], ["punc", ")"], ["p", " "], ["var", "acc"], ["punc", "))"]], [], [["punc", "("], ["kw", "provide"], ["p", " "], ["con", "'cache"], ["punc", ")"]]], "Go": [[["cmd", "//"], ["cm", " queue.go"]], [["kw", "package"], ["p", " "], ["var", "main"]], [], [["kw", "import"], ["p", " "], ["str", "\"fmt\""]], [], [["kw", "const"], ["p", " "], ["con", "MaxItems"], ["p", " "], ["op", "="], ["p", " "], ["num", "100"]], [], [["kw", "type"], ["p", " "], ["ty", "Order"], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"]], [["p", " "], ["prop", "ID"], ["p", " "], ["ty", "int"]], [["p", " "], ["prop", "Name"], ["p", " "], ["ty", "string"]], [["punc", "}"]], [], [["kw", "func"], ["p", " "], ["punc", "("], ["var", "q"], ["p", " "], ["op", "*"], ["ty", "Queue"], ["punc", ")"], ["p", " "], ["fnd", "Push"], ["punc", "("], ["var", "o"], ["p", " "], ["op", "*"], ["ty", "Order"], ["punc", ")"], ["p", " "], ["ty", "error"], ["p", " "], ["punc", "{"]], [["p", " "], ["cmd", "//"], ["cm", " reject nil"]], [["p", " "], ["kw", "if"], ["p", " "], ["var", "o"], ["p", " "], ["op", "=="], ["p", " "], ["con", "nil"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "return"], ["p", " "], ["fnc", "fmt.Errorf"], ["punc", "("], ["str", "\"nil"], ["esc", "\\n"], ["str", "\""], ["punc", ")"]], [["p", " "], ["punc", "}"]], [["p", " "], ["var", "q"], ["op", "."], ["prop", "items"], ["p", " "], ["op", "="], ["p", " "], ["bi", "append"], ["punc", "("], ["var", "q"], ["op", "."], ["prop", "items"], ["punc", ","], ["p", " "], ["var", "o"], ["punc", ")"]], [["p", " "], ["kw", "return"], ["p", " "], ["con", "nil"]], [["punc", "}"]], [], [["kw", "func"], ["p", " "], ["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["fnc", "fmt.Println"], ["punc", "("], ["op", "&"], ["ty", "Queue"], ["punc", "{}"], ["punc", ")"]], [["punc", "}"]]], "Python": [[["cmd", "#"], ["cm", " theme.py"]], [["kw", "from"], ["p", " "], ["var", "dataclasses"], ["p", " "], ["kw", "import"], ["p", " "], ["var", "dataclass"], ["punc", ","], ["p", " "], ["var", "field"]], [], [["con", "DEFAULT_PORT"], ["op", ":"], ["p", " "], ["ty", "int"], ["p", " "], ["op", "="], ["p", " "], ["num", "8080"]], [["con", "HEX"], ["p", " "], ["op", "="], ["p", " "], ["var", "re"], ["op", "."], ["fnc", "compile"], ["punc", "("], ["re", "r\"#[0-9a-f]{6}\""], ["punc", ")"]], [], [["dec", "@dataclass"]], [["kw", "class"], ["p", " "], ["ty", "Theme"], ["op", ":"]], [["p", " "], ["doc", "\"\"\"A color theme.\"\"\""]], [["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["ty", "str"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""]], [["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["ty", "dict"], ["p", " "], ["op", "="], ["p", " "], ["fnc", "field"], ["punc", "("], ["prop", "default_factory"], ["op", "="], ["ty", "dict"], ["punc", ")"]], [], [["p", " "], ["kw", "def"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["var", "self"], ["punc", ","], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["ty", "str"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "str"], ["p", " "], ["op", "|"], ["p", " "], ["con", "None"], ["op", ":"]], [["p", " "], ["cmd", "#"], ["cm", " fallback to none"]], [["p", " "], ["var", "v"], ["p", " "], ["op", "="], ["p", " "], ["var", "self"], ["op", "."], ["prop", "colors"], ["op", "."], ["fnc", "get"], ["punc", "("], ["var", "key"], ["punc", ","], ["p", " "], ["str", "\""], ["esc", "\\t"], ["str", "none\""], ["punc", ")"]], [["p", " "], ["kw", "if"], ["p", " "], ["bi", "len"], ["punc", "("], ["var", "v"], ["punc", ")"], ["p", " "], ["op", "=="], ["p", " "], ["num", "0"], ["op", ":"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "None"]], [["p", " "], ["kw", "return"], ["p", " "], ["var", "v"]], [], [["p", " "], ["dec", "@property"]], [["p", " "], ["kw", "def"], ["p", " "], ["fnd", "size"], ["punc", "("], ["var", "self"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "int"], ["op", ":"]], [["p", " "], ["kw", "return"], ["p", " "], ["bi", "len"], ["punc", "("], ["var", "self"], ["op", "."], ["prop", "colors"], ["punc", ")"]], [], [["var", "theme"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Theme"], ["punc", "("], ["str", "\"dupre\""], ["punc", ")"]], [["fnc", "print"], ["punc", "("], ["var", "theme"], ["op", "."], ["fnc", "resolve"], ["punc", "("], ["str", "\"bg\""], ["punc", "))"]]], "TypeScript": [[["cmd", "//"], ["cm", " orders.ts"]], [["kw", "import"], ["p", " "], ["punc", "{"], ["p", " "], ["ty", "Order"], ["p", " "], ["punc", "}"], ["p", " "], ["kw", "from"], ["p", " "], ["str", "\"./types\""]], [], [["kw", "export"], ["p", " "], ["kw", "interface"], ["p", " "], ["ty", "Queue"], ["p", " "], ["punc", "{"]], [["p", " "], ["prop", "max"], ["op", ":"], ["p", " "], ["ty", "number"], ["punc", ";"]], [["p", " "], ["prop", "items"], ["op", ":"], ["p", " "], ["ty", "Order"], ["punc", "[];"]], [["punc", "}"]], [], [["dec", "@Injectable"], ["punc", "()"]], [["kw", "export"], ["p", " "], ["kw", "class"], ["p", " "], ["ty", "OrderQueue"], ["p", " "], ["kw", "implements"], ["p", " "], ["ty", "Queue"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "private"], ["p", " "], ["prop", "re"], ["p", " "], ["op", "="], ["p", " "], ["re", "/^#[0-9a-f]{6}$/i"], ["punc", ";"]], [], [["p", " "], ["fnd", "push"], ["punc", "("], ["var", "o"], ["op", ":"], ["p", " "], ["ty", "Order"], ["punc", ")"], ["op", ":"], ["p", " "], ["ty", "boolean"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "o"], ["p", " "], ["op", "==="], ["p", " "], ["con", "null"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "false"], ["punc", ";"]], [["p", " "], ["var", "console"], ["op", "."], ["fnc", "log"], ["punc", "("], ["str", "`id "], ["punc", "${"], ["var", "o"], ["op", "."], ["prop", "id"], ["punc", "}"], ["esc", "\\n"], ["str", "`"], ["punc", ");"]], [["p", " "], ["kw", "return"], ["p", " "], ["con", "true"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"]], [], [["kw", "const"], ["p", " "], ["con", "LIMIT"], ["op", ":"], ["p", " "], ["ty", "number"], ["p", " "], ["op", "="], ["p", " "], ["num", "50"], ["punc", ";"]], [["kw", "const"], ["p", " "], ["var", "q"], ["p", " "], ["op", "="], ["p", " "], ["kw", "new"], ["p", " "], ["ty", "OrderQueue"], ["punc", "()"], ["punc", ";"]], [["var", "q"], ["op", "."], ["fnd", "push"], ["punc", "("], ["punc", "{"], ["p", " "], ["prop", "id"], ["op", ":"], ["p", " "], ["num", "1"], ["p", " "], ["punc", "}"], ["p", " "], ["kw", "as"], ["p", " "], ["ty", "Order"], ["punc", ")"], ["punc", ";"]], [["var", "console"], ["op", "."], ["fnc", "log"], ["punc", "("], ["var", "q"], ["op", "."], ["prop", "max"], ["punc", ")"], ["punc", ";"]], [["kw", "const"], ["p", " "], ["var", "cap"], ["p", " "], ["op", "="], ["p", " "], ["var", "Math"], ["op", "."], ["bi", "max"], ["punc", "("], ["con", "LIMIT"], ["punc", ","], ["p", " "], ["num", "0"], ["punc", ")"], ["punc", ";"]]], "Java": [[["cmd", "/**"], ["doc", " A color theme. */"]], [["kw", "package"], ["p", " "], ["var", "com"], ["op", "."], ["var", "dupre"], ["punc", ";"]], [["kw", "import"], ["p", " "], ["var", "java"], ["op", "."], ["var", "util"], ["op", "."], ["var", "regex"], ["op", "."], ["ty", "Pattern"], ["punc", ";"]], [], [["dec", "@Deprecated"]], [["kw", "public"], ["p", " "], ["kw", "final"], ["p", " "], ["kw", "class"], ["p", " "], ["ty", "Theme"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "private"], ["p", " "], ["kw", "static"], ["p", " "], ["kw", "final"], ["p", " "], ["ty", "int"], ["p", " "], ["con", "MAX_PORT"], ["p", " "], ["op", "="], ["p", " "], ["num", "8080"], ["punc", ";"]], [["p", " "], ["kw", "private"], ["p", " "], ["kw", "final"], ["p", " "], ["ty", "String"], ["p", " "], ["prop", "name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ";"]], [["p", " "], ["kw", "private"], ["p", " "], ["kw", "static"], ["p", " "], ["kw", "final"], ["p", " "], ["ty", "Pattern"], ["p", " "], ["con", "HEX"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Pattern"], ["op", "."], ["fnc", "compile"], ["punc", "("], ["re", "\"#[0-9a-f]{6}\""], ["punc", ")"], ["punc", ";"]], [], [["p", " "], ["dec", "@Override"]], [["p", " "], ["kw", "public"], ["p", " "], ["ty", "String"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["ty", "String"], ["p", " "], ["var", "key"], ["punc", ")"], ["p", " "], ["punc", "{"]], [["p", " "], ["cmd", "//"], ["cm", " fall back to null"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "key"], ["op", "."], ["fnc", "isEmpty"], ["punc", "()"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "null"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["var", "key"], ["op", "."], ["fnc", "strip"], ["punc", "("], ["punc", ")"], ["op", "+"], ["str", "\""], ["esc", "\\t"], ["str", "\""], ["punc", ";"]], [["p", " "], ["punc", "}"]], [], [["p", " "], ["kw", "public"], ["p", " "], ["kw", "static"], ["p", " "], ["ty", "void"], ["p", " "], ["fnd", "main"], ["punc", "("], ["ty", "String"], ["punc", "[]"], ["p", " "], ["var", "args"], ["punc", ")"], ["p", " "], ["punc", "{"]], [["p", " "], ["ty", "var"], ["p", " "], ["var", "t"], ["p", " "], ["op", "="], ["p", " "], ["kw", "new"], ["p", " "], ["ty", "Theme"], ["punc", "()"], ["punc", ";"]], [["p", " "], ["ty", "System"], ["op", "."], ["prop", "out"], ["op", "."], ["fnc", "println"], ["punc", "("], ["var", "t"], ["op", "."], ["fnc", "resolve"], ["punc", "("], ["str", "\"bg\""], ["punc", "))"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"]]], "C": [[["cmd", "/**"], ["doc", " Order queue. */"]], [["pp", "#include"], ["p", " "], ["str", "<stdio.h>"]], [["pp", "#include"], ["p", " "], ["str", "<stdlib.h>"]], [["pp", "#define"], ["p", " "], ["con", "MAX_PORT"], ["p", " "], ["num", "8080"]], [], [["kw", "typedef"], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"]], [["p", " "], ["ty", "int"], ["p", " "], ["prop", "id"], ["punc", ";"]], [["p", " "], ["kw", "const"], ["p", " "], ["ty", "char"], ["p", " "], ["op", "*"], ["prop", "name"], ["punc", ";"]], [["punc", "}"], ["p", " "], ["ty", "Order"], ["punc", ";"]], [], [["cmd", "//"], ["cm", " returns -1 on null input"]], [["ty", "int"], ["p", " "], ["fnd", "push"], ["punc", "("], ["ty", "Order"], ["p", " "], ["op", "*"], ["var", "o"], ["punc", ")"], ["p", " "], ["dec", "__attribute__"], ["punc", "(("], ["dec", "nonnull"], ["punc", "))"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "o"], ["p", " "], ["op", "=="], ["p", " "], ["con", "NULL"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["num", "-1"], ["punc", ";"]], [["p", " "], ["fnc", "printf"], ["punc", "("], ["str", "\"id=%d"], ["esc", "\\n"], ["str", "\""], ["punc", ","], ["p", " "], ["var", "o"], ["op", "->"], ["prop", "id"], ["punc", ");"]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "0"], ["punc", ";"]], [["punc", "}"]], [], [["ty", "int"], ["p", " "], ["fnd", "main"], ["punc", "("], ["ty", "void"], ["punc", ")"], ["p", " "], ["punc", "{"]], [["p", " "], ["ty", "Order"], ["p", " "], ["var", "o"], ["p", " "], ["op", "="], ["p", " "], ["punc", "{"], ["p", " "], ["op", "."], ["prop", "id"], ["p", " "], ["op", "="], ["p", " "], ["num", "1"], ["punc", ","], ["p", " "], ["op", "."], ["prop", "name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["ty", "Order"], ["p", " "], ["op", "*"], ["var", "p2"], ["p", " "], ["op", "="], ["p", " "], ["bi", "malloc"], ["punc", "("], ["bi", "sizeof"], ["punc", "("], ["ty", "Order"], ["punc", "))"], ["punc", ";"]], [["p", " "], ["fnc", "push"], ["punc", "("], ["op", "&"], ["var", "o"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["bi", "free"], ["punc", "("], ["var", "p2"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "0"], ["punc", ";"]], [["punc", "}"]]], "C++": [[["cmd", "/**"], ["doc", " A color theme. */"]], [["pp", "#include"], ["p", " "], ["str", "<string>"]], [["pp", "#include"], ["p", " "], ["str", "<regex>"]], [["pp", "#pragma"], ["p", " "], ["pp", "once"]], [], [["kw", "namespace"], ["p", " "], ["var", "dupre"], ["p", " "], ["punc", "{"]], [], [["kw", "template"], ["op", "<"], ["kw", "typename"], ["p", " "], ["ty", "T"], ["op", ">"], ["p", " "], ["kw", "class"], ["p", " "], ["ty", "Theme"], ["p", " "], ["punc", "{"]], [["kw", "public"], ["op", ":"]], [["p", " "], ["kw", "static"], ["p", " "], ["kw", "constexpr"], ["p", " "], ["ty", "int"], ["p", " "], ["con", "MAX"], ["p", " "], ["op", "="], ["p", " "], ["num", "0x20"], ["punc", ";"]], [["p", " "], ["ty", "std"], ["op", "::"], ["ty", "string"], ["p", " "], ["prop", "name_"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ";"]], [], [["p", " "], ["dec", "[[nodiscard]]"], ["p", " "], ["ty", "T"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["kw", "const"], ["p", " "], ["ty", "std"], ["op", "::"], ["ty", "string"], ["op", "&"], ["p", " "], ["var", "key"], ["punc", ")"], ["p", " "], ["kw", "const"], ["p", " "], ["punc", "{"]], [["p", " "], ["cmd", "//"], ["cm", " validate against a hex pattern"]], [["p", " "], ["kw", "static"], ["p", " "], ["ty", "std"], ["op", "::"], ["ty", "regex"], ["p", " "], ["var", "re"], ["punc", "("], ["re", "R\"(#[0-9a-f]{6})\""], ["punc", ")"], ["punc", ";"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "key"], ["op", "."], ["fnc", "empty"], ["punc", "()"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "nullptr"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["ty", "T"], ["punc", "{"], ["var", "key"], ["punc", "}"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"], ["punc", ";"]], [], [["ty", "int"], ["p", " "], ["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "auto"], ["p", " "], ["var", "t"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Theme"], ["op", "<"], ["ty", "int"], ["op", ">"], ["punc", "{}"], ["punc", ";"]], [["p", " "], ["bi", "static_cast"], ["op", "<"], ["ty", "int"], ["op", ">"], ["punc", "("], ["var", "t"], ["op", "."], ["prop", "name_"], ["op", "."], ["fnc", "size"], ["punc", "())"], ["punc", ";"]], [["p", " "], ["ty", "std"], ["op", "::"], ["fnc", "printf"], ["punc", "("], ["str", "\"%s"], ["esc", "\\n"], ["str", "\""], ["punc", ","], ["p", " "], ["var", "t"], ["op", "."], ["prop", "name_"], ["op", "."], ["fnc", "c_str"], ["punc", "())"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "0"], ["punc", ";"]], [["punc", "}"]]], "Rust": [[["cmd", "//"], ["cm", " theme.rs"]], [["dec", "#![allow(dead_code)]"]], [["kw", "use"], ["p", " "], ["var", "std"], ["op", "::"], ["var", "fmt"], ["punc", ";"]], [], [["dec", "#[derive"], ["punc", "("], ["dec", "Debug"], ["punc", ","], ["p", " "], ["dec", "Clone"], ["punc", ")]"]], [["kw", "pub"], ["p", " "], ["kw", "trait"], ["p", " "], ["ty", "Theme"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "const"], ["p", " "], ["con", "NAME"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'static"], ["p", " "], ["ty", "str"], ["punc", ";"]], [["p", " "], ["kw", "fn"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["op", "&"], ["var", "'a"], ["p", " "], ["var", "self"], ["punc", ","], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "Option"], ["op", "<"], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["op", ">"], ["punc", ";"]], [["punc", "}"]], [], [["kw", "pub"], ["p", " "], ["kw", "struct"], ["p", " "], ["ty", "Palette"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "pub"], ["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ","]], [["p", " "], ["kw", "pub"], ["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["ty", "Vec"], ["op", "<"], ["punc", "("], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ","], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ")"], ["op", ">"], ["punc", ","]], [["punc", "}"]], [], [["kw", "impl"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["ty", "Theme"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["kw", "for"], ["p", " "], ["ty", "Palette"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "const"], ["p", " "], ["con", "NAME"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'static"], ["p", " "], ["ty", "str"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ";"]], [["p", " "], ["kw", "fn"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["op", "&"], ["var", "'a"], ["p", " "], ["var", "self"], ["punc", ","], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "Option"], ["op", "<"], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["var", "key"], ["op", "."], ["fnc", "is_empty"], ["punc", "()"], ["p", " "], ["punc", "{"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "None"], ["punc", ";"], ["p", " "], ["punc", "}"]], [["p", " "], ["var", "self"], ["op", "."], ["prop", "colors"], ["op", "."], ["fnc", "iter"], ["punc", "()"], ["op", "."], ["fnc", "find"], ["punc", "("], ["op", "|"], ["punc", "("], ["var", "k"], ["punc", ","], ["p", " "], ["var", "_"], ["punc", ")"], ["op", "|"], ["p", " "], ["op", "*"], ["var", "k"], ["p", " "], ["op", "=="], ["p", " "], ["var", "key"], ["punc", ")"], ["op", "."], ["fnc", "map"], ["punc", "("], ["op", "|"], ["punc", "("], ["var", "_"], ["punc", ","], ["p", " "], ["var", "v"], ["punc", ")"], ["op", "|"], ["p", " "], ["op", "*"], ["var", "v"], ["punc", ")"]], [["p", " "], ["punc", "}"]], [["punc", "}"]], [], [["kw", "fn"], ["p", " "], ["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "let"], ["p", " "], ["var", "palette"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Palette"], ["p", " "], ["punc", "{"], ["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["str", "\"dupre\""], ["punc", ","], ["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["bi", "vec!"], ["punc", "["], ["punc", "("], ["str", "\"bg\""], ["punc", ","], ["p", " "], ["str", "\"#0d0b0a\""], ["punc", ")"], ["punc", "]"], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["bi", "println!"], ["punc", "("], ["str", "\"{:?}\""], ["punc", ","], ["p", " "], ["var", "palette"], ["op", "."], ["fnc", "resolve"], ["punc", "("], ["str", "\"bg\""], ["punc", "))"], ["punc", ";"]], [["punc", "}"]]], "Zig": [[["cmd", "//"], ["cm", " theme.zig"]], [["kw", "const"], ["p", " "], ["var", "std"], ["p", " "], ["op", "="], ["p", " "], ["bi", "@import"], ["punc", "("], ["str", "\"std\""], ["punc", ")"], ["punc", ";"]], [["kw", "const"], ["p", " "], ["ty", "Allocator"], ["p", " "], ["op", "="], ["p", " "], ["var", "std"], ["op", "."], ["var", "mem"], ["op", "."], ["ty", "Allocator"], ["punc", ";"]], [], [["kw", "pub"], ["p", " "], ["kw", "const"], ["p", " "], ["ty", "Theme"], ["p", " "], ["op", "="], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"]], [["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["punc", ","]], [["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "Color"], ["punc", ","]], [], [["p", " "], ["kw", "pub"], ["p", " "], ["kw", "fn"], ["p", " "], ["fnd", "init"], ["punc", "("], ["var", "alloc"], ["op", ":"], ["p", " "], ["op", "*"], ["ty", "Allocator"], ["punc", ")"], ["p", " "], ["op", "!"], ["bi", "@This"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "const"], ["p", " "], ["var", "colors"], ["p", " "], ["op", "="], ["p", " "], ["kw", "try"], ["p", " "], ["var", "alloc"], ["op", "."], ["fnc", "alloc"], ["punc", "("], ["ty", "Color"], ["punc", ","], ["p", " "], ["num", "2"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["var", "colors"], ["punc", "["], ["num", "0"], ["punc", "]"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Color"], ["punc", "{"], ["p", " "], ["prop", ".name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"bg\""], ["punc", ","], ["p", " "], ["prop", ".hex"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"#0d0b0a\""], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["bi", "@This"], ["punc", "()"], ["punc", "{"], ["p", " "], ["prop", ".name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ","], ["p", " "], ["prop", ".colors"], ["p", " "], ["op", "="], ["p", " "], ["var", "colors"], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"], ["punc", ";"]], [], [["kw", "const"], ["p", " "], ["ty", "Color"], ["p", " "], ["op", "="], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"], ["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["punc", ","], ["p", " "], ["prop", "hex"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["p", " "], ["punc", "}"], ["punc", ";"]], [], [["kw", "fn"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["var", "theme"], ["op", ":"], ["p", " "], ["ty", "Theme"], ["punc", ","], ["p", " "], ["kw", "comptime"], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", ":"], ["num", "0"], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["punc", ")"], ["p", " "], ["op", "!"], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "inline"], ["p", " "], ["kw", "for"], ["p", " "], ["punc", "("], ["var", "theme"], ["op", "."], ["prop", "colors"], ["punc", ")"], ["p", " "], ["op", "|"], ["var", "color"], ["op", "|"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "std"], ["op", "."], ["var", "mem"], ["op", "."], ["fnc", "eql"], ["punc", "("], ["ty", "u8"], ["punc", ","], ["p", " "], ["var", "color"], ["op", "."], ["prop", "name"], ["punc", ","], ["p", " "], ["var", "key"], ["punc", ")"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["var", "color"], ["op", "."], ["prop", "hex"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["p", " "], ["kw", "return"], ["p", " "], ["con", "error.MissingColor"], ["punc", ";"]], [["punc", "}"]], [], [["kw", "test"], ["p", " "], ["str", "\"resolve bg\""], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "var"], ["p", " "], ["var", "arena"], ["p", " "], ["op", "="], ["p", " "], ["var", "std"], ["op", "."], ["var", "heap"], ["op", "."], ["ty", "ArenaAllocator"], ["op", "."], ["fnc", "init"], ["punc", "("], ["var", "std"], ["op", "."], ["var", "testing"], ["op", "."], ["prop", "allocator"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["kw", "defer"], ["p", " "], ["var", "arena"], ["op", "."], ["fnc", "deinit"], ["punc", "()"], ["punc", ";"]], [["p", " "], ["kw", "try"], ["p", " "], ["var", "std"], ["op", "."], ["var", "testing"], ["op", "."], ["fnc", "expectEqualStrings"], ["punc", "("], ["str", "\"#0d0b0a\""], ["punc", ","], ["p", " "], ["kw", "try"], ["p", " "], ["fnc", "resolve"], ["punc", "("], ["kw", "try"], ["p", " "], ["ty", "Theme"], ["op", "."], ["fnc", "init"], ["punc", "("], ["op", "&"], ["var", "arena"], ["op", "."], ["prop", "allocator"], ["punc", ")"], ["punc", ","], ["p", " "], ["str", "\"bg\""], ["punc", "))"], ["punc", ";"]], [["punc", "}"]]], "Shell": [[["cmd", "#!"], ["cm", "/bin/bash"]], [["cmd", "#"], ["cm", " deploy.sh"]], [["bi", "set"], ["p", " "], ["op", "-"], ["var", "euo"], ["p", " "], ["var", "pipefail"]], [], [["var", "PORT"], ["op", "="], ["num", "8080"]], [["var", "NAME"], ["op", "="], ["str", "\"dupre\""]], [], [["fnd", "deploy"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "local"], ["p", " "], ["var", "target"], ["op", "="], ["str", "\"$1\""]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "[["], ["p", " "], ["op", "-z"], ["p", " "], ["str", "\"$target\""], ["p", " "], ["punc", "]]"], ["punc", ";"], ["p", " "], ["kw", "then"]], [["p", " "], ["bi", "echo"], ["p", " "], ["str", "\"no target\""]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "1"]], [["p", " "], ["kw", "fi"]], [["p", " "], ["fnc", "rsync"], ["p", " "], ["op", "-az"], ["p", " "], ["str", "\"$NAME\""], ["p", " "], ["str", "\"$target\""]], [["punc", "}"]], [], [["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "for"], ["p", " "], ["var", "host"], ["p", " "], ["kw", "in"], ["p", " "], ["str", "\"$@\""], ["punc", ";"], ["p", " "], ["kw", "do"]], [["p", " "], ["fnc", "deploy"], ["p", " "], ["str", "\"$host\""], ["p", " "], ["op", "||"], ["p", " "], ["bi", "exit"], ["p", " "], ["num", "1"]], [["p", " "], ["kw", "done"]], [["p", " "], ["bi", "echo"], ["p", " "], ["op", "-e"], ["p", " "], ["str", "\"all done"], ["esc", "\\n"], ["str", "\""]], [["punc", "}"]], [], [["fnc", "main"], ["p", " "], ["str", "\"$@\""]]]}, CATS=[["bg", "bg (ground)", "Aa Bb 123"], ["p", "fg", "other / whitespace"], ["kw", "keyword", "class def if return"], ["bi", "builtin", "len echo printf"], ["pp", "preprocessor", "#include #define"], ["fnd", "function \u00b7 def", "resolve push"], ["fnc", "function \u00b7 call", "printf rsync get"], ["dec", "decorator \u2192 type", "@dataclass"], ["ty", "type / class", "int str Order Queue"], ["prop", "property / field", "id name items"], ["con", "constant", "None nil NULL true"], ["num", "number", "8080 100 -1"], ["str", "string", "\"dupre\" \"fmt\""], ["esc", "escape", "\\n \\t"], ["re", "regexp", "/^#[0-9a-f]+/"], ["doc", "docstring", "\"\"\"...\"\"\""], ["cm", "comment", "# reject nil"], ["cmd", "comment delim", "# // ;;"], ["var", "variable / use", "value key self"], ["op", "operator", ": = -> =="], ["punc", "punctuation", "{ } ( ) ;"]], UI_FACES=[["cursor", "cursor", "Aa|"], ["region", "region (selection)", "selected text"], ["hl-line", "hl-line (current line)", "current line"], ["highlight", "highlight", "hover"], ["mode-line", "mode-line", "status active"], ["mode-line-highlight", "mode-line-highlight (mode-line hover)", "git:main"], ["mode-line-inactive", "mode-line-inactive", "status idle"], ["fringe", "fringe", "| |"], ["line-number", "line-number", " 42"], ["line-number-current-line", "line-number-current-line", "> 42"], ["minibuffer-prompt", "minibuffer-prompt", "M-x "], ["isearch", "isearch (match)", "match"], ["lazy-highlight", "lazy-highlight", "other match"], ["isearch-fail", "isearch-fail", "no match"], ["show-paren-match", "show-paren-match", "( )"], ["show-paren-mismatch", "show-paren-mismatch", ") ("], ["link", "link", "https://"], ["error", "error", "error!"], ["warning", "warning", "warning"], ["success", "success", "ok"], ["vertical-border", "vertical-border", "|"]], APPS={"org-mode": {"label": "org-mode", "preview": "org", "faces": [["org-document-title", "document title", {}], ["org-document-info", "document info", {}], ["org-document-info-keyword", "document info keyword", {}], ["org-level-1", "level 1", {}], ["org-level-2", "level 2", {}], ["org-level-3", "level 3", {}], ["org-level-4", "level 4", {}], ["org-level-5", "level 5", {}], ["org-level-6", "level 6", {}], ["org-level-7", "level 7", {}], ["org-level-8", "level 8", {}], ["org-headline-todo", "headline todo", {}], ["org-headline-done", "headline done", {}], ["org-todo", "todo", {}], ["org-done", "done", {}], ["org-priority", "priority", {}], ["org-tag", "tag", {}], ["org-tag-group", "tag group", {}], ["org-special-keyword", "special keyword", {}], ["org-drawer", "drawer", {}], ["org-property-value", "property value", {}], ["org-checkbox", "checkbox", {}], ["org-checkbox-statistics-todo", "checkbox statistics todo", {}], ["org-checkbox-statistics-done", "checkbox statistics done", {}], ["org-warning", "warning", {}], ["org-link", "link", {}], ["org-footnote", "footnote", {}], ["org-date", "date", {}], ["org-sexp-date", "sexp date", {}], ["org-date-selected", "date selected", {}], ["org-target", "target", {}], ["org-macro", "macro", {}], ["org-cite", "cite", {}], ["org-cite-key", "cite key", {}], ["org-block", "block", {}], ["org-block-begin-line", "block begin line", {}], ["org-block-end-line", "block end line", {}], ["org-code", "code", {}], ["org-verbatim", "verbatim", {}], ["org-inline-src-block", "inline src block", {}], ["org-quote", "quote", {}], ["org-verse", "verse", {}], ["org-latex-and-related", "latex and related", {}], ["org-table", "table", {}], ["org-table-header", "table header", {}], ["org-table-row", "table row", {}], ["org-formula", "formula", {}], ["org-column", "column", {}], ["org-column-title", "column title", {}], ["org-list-dt", "list dt", {}], ["org-meta-line", "meta line", {}], ["org-ellipsis", "ellipsis", {}], ["org-hide", "hide", {}], ["org-indent", "indent", {}], ["org-archived", "archived", {}], ["org-default", "default", {}], ["org-dispatcher-highlight", "dispatcher highlight", {}], ["org-agenda-structure", "agenda structure", {}], ["org-agenda-structure-secondary", "agenda structure secondary", {}], ["org-agenda-structure-filter", "agenda structure filter", {}], ["org-agenda-date", "agenda date", {}], ["org-agenda-date-today", "agenda date today", {}], ["org-agenda-date-weekend", "agenda date weekend", {}], ["org-agenda-date-weekend-today", "agenda date weekend today", {}], ["org-agenda-current-time", "agenda current time", {}], ["org-agenda-done", "agenda done", {}], ["org-agenda-dimmed-todo-face", "agenda dimmed todo", {}], ["org-agenda-calendar-event", "agenda calendar event", {}], ["org-agenda-calendar-sexp", "agenda calendar sexp", {}], ["org-agenda-calendar-daterange", "agenda calendar daterange", {}], ["org-agenda-diary", "agenda diary", {}], ["org-agenda-clocking", "agenda clocking", {}], ["org-agenda-column-dateline", "agenda column dateline", {}], ["org-agenda-restriction-lock", "agenda restriction lock", {}], ["org-agenda-filter-category", "agenda filter category", {}], ["org-agenda-filter-effort", "agenda filter effort", {}], ["org-agenda-filter-regexp", "agenda filter regexp", {}], ["org-agenda-filter-tags", "agenda filter tags", {}], ["org-scheduled", "scheduled", {}], ["org-scheduled-today", "scheduled today", {}], ["org-scheduled-previously", "scheduled previously", {}], ["org-upcoming-deadline", "upcoming deadline", {}], ["org-upcoming-distant-deadline", "upcoming distant deadline", {}], ["org-imminent-deadline", "imminent deadline", {}], ["org-time-grid", "time grid", {}], ["org-clock-overlay", "clock overlay", {}], ["org-mode-line-clock", "mode line clock", {}], ["org-mode-line-clock-overrun", "mode line clock overrun", {}]]}, "magit": {"label": "magit", "preview": "magit", "faces": [["magit-section-heading", "section heading", {"fg": "#8b6508", "weight": "bold", "extend": true}], ["magit-section-secondary-heading", "section secondary heading", {"weight": "bold", "extend": true}], ["magit-section-heading-selection", "section heading selection", {"fg": "#8b4c39", "extend": true}], ["magit-section-highlight", "section highlight", {"bg": "#f2f2f2", "extend": true}], ["magit-section-child-count", "section child count", {}], ["magit-diff-added", "diff added", {"fg": "#22aa22", "bg": "#ddffdd", "extend": true}], ["magit-diff-added-highlight", "diff added highlight", {"fg": "#22aa22", "bg": "#cceecc", "extend": true}], ["magit-diff-removed", "diff removed", {"fg": "#aa2222", "bg": "#ffdddd", "extend": true}], ["magit-diff-removed-highlight", "diff removed highlight", {"fg": "#aa2222", "bg": "#eecccc", "extend": true}], ["magit-diff-context", "diff context", {"fg": "#7f7f7f", "extend": true}], ["magit-diff-context-highlight", "diff context highlight", {"fg": "#7f7f7f", "bg": "#f2f2f2", "extend": true}], ["magit-diff-file-heading", "diff file heading", {"weight": "bold", "extend": true}], ["magit-diff-file-heading-highlight", "diff file heading highlight", {"extend": true, "inherit": "magit-section-highlight"}], ["magit-diff-file-heading-selection", "diff file heading selection", {"fg": "#8b4c39", "extend": true, "inherit": "magit-diff-file-heading-highlight"}], ["magit-diff-hunk-heading", "diff hunk heading", {"fg": "#333333", "bg": "#e5e5e5", "extend": true}], ["magit-diff-hunk-heading-highlight", "diff hunk heading highlight", {"fg": "#333333", "bg": "#cccccc", "extend": true}], ["magit-diff-hunk-heading-selection", "diff hunk heading selection", {"fg": "#8b4c39", "extend": true, "inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-hunk-region", "diff hunk region", {"inherit": "bold"}], ["magit-diff-lines-heading", "diff lines heading", {"bg": "#cd8162", "extend": true, "inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-lines-boundary", "diff lines boundary", {"extend": true, "inherit": "magit-diff-lines-heading"}], ["magit-diff-base", "diff base", {"fg": "#aaaa11", "bg": "#ffffcc", "extend": true}], ["magit-diff-base-highlight", "diff base highlight", {"fg": "#aaaa11", "bg": "#eeeebb", "extend": true}], ["magit-diff-our", "diff our", {"inherit": "magit-diff-removed"}], ["magit-diff-our-highlight", "diff our highlight", {"inherit": "magit-diff-removed-highlight"}], ["magit-diff-their", "diff their", {"inherit": "magit-diff-added"}], ["magit-diff-their-highlight", "diff their highlight", {"inherit": "magit-diff-added-highlight"}], ["magit-diff-conflict-heading", "diff conflict heading", {"inherit": "magit-diff-hunk-heading"}], ["magit-diff-conflict-heading-highlight", "diff conflict heading highlight", {"inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-revision-summary", "diff revision summary", {"inherit": "magit-diff-hunk-heading"}], ["magit-diff-revision-summary-highlight", "diff revision summary highlight", {"inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-whitespace-warning", "diff whitespace warning", {"inherit": "trailing-whitespace"}], ["magit-diffstat-added", "diffstat added", {"fg": "#22aa22"}], ["magit-diffstat-removed", "diffstat removed", {"fg": "#aa2222"}], ["magit-branch-current", "branch current", {"inherit": "magit-branch-local"}], ["magit-branch-local", "branch local", {"fg": "#4a708b"}], ["magit-branch-remote", "branch remote", {"fg": "#6e8b3d"}], ["magit-branch-remote-head", "branch remote head", {"inherit": "magit-branch-remote"}], ["magit-branch-upstream", "branch upstream", {"slant": "italic"}], ["magit-branch-warning", "branch warning", {"inherit": "warning"}], ["magit-head", "head", {"inherit": "magit-branch-local"}], ["magit-tag", "tag", {"fg": "#8b6914"}], ["magit-hash", "hash", {"fg": "#999999"}], ["magit-filename", "filename", {}], ["magit-dimmed", "dimmed", {"fg": "#7f7f7f"}], ["magit-keyword", "keyword", {"inherit": "font-lock-string-face"}], ["magit-keyword-squash", "keyword squash", {"inherit": "font-lock-warning-face"}], ["magit-refname", "refname", {"fg": "#4d4d4d"}], ["magit-refname-stash", "refname stash", {"inherit": "magit-refname"}], ["magit-refname-wip", "refname wip", {"inherit": "magit-refname"}], ["magit-refname-pullreq", "refname pullreq", {"inherit": "magit-refname"}], ["magit-log-author", "log author", {"fg": "#b22222"}], ["magit-log-date", "log date", {"fg": "#4d4d4d"}], ["magit-log-graph", "log graph", {"fg": "#4d4d4d"}], ["magit-header-line", "header line", {"inherit": "magit-section-heading"}], ["magit-header-line-key", "header line key", {"inherit": "font-lock-builtin-face"}], ["magit-header-line-log-select", "header line log select", {"inherit": "bold"}], ["magit-process-ok", "process ok", {"fg": "#00ff00", "inherit": "magit-section-heading"}], ["magit-process-ng", "process ng", {"fg": "#ff0000", "inherit": "magit-section-heading"}], ["magit-mode-line-process", "mode line process", {"inherit": "mode-line-emphasis"}], ["magit-mode-line-process-error", "mode line process error", {"inherit": "error"}], ["magit-bisect-good", "bisect good", {"fg": "#556b2f"}], ["magit-bisect-bad", "bisect bad", {"fg": "#8b3a3a"}], ["magit-bisect-skip", "bisect skip", {"fg": "#b8860b"}], ["magit-blame-heading", "blame heading", {"extend": true, "inherit": "magit-blame-highlight"}], ["magit-blame-highlight", "blame highlight", {"fg": "#000000", "bg": "#cccccc", "extend": true}], ["magit-blame-hash", "blame hash", {}], ["magit-blame-name", "blame name", {}], ["magit-blame-date", "blame date", {}], ["magit-blame-summary", "blame summary", {}], ["magit-blame-dimmed", "blame dimmed", {"inherit": "magit-dimmed"}], ["magit-blame-margin", "blame margin", {"inherit": "magit-blame-highlight"}], ["magit-cherry-equivalent", "cherry equivalent", {"fg": "#ff00ff"}], ["magit-cherry-unmatched", "cherry unmatched", {"fg": "#00ffff"}], ["magit-signature-good", "signature good", {"fg": "#00ff00"}], ["magit-signature-bad", "signature bad", {"fg": "#ff0000", "weight": "bold"}], ["magit-signature-untrusted", "signature untrusted", {"fg": "#66cdaa"}], ["magit-signature-expired", "signature expired", {"fg": "#ffa500"}], ["magit-signature-expired-key", "signature expired key", {"inherit": "magit-signature-expired"}], ["magit-signature-revoked", "signature revoked", {"fg": "#d02090"}], ["magit-signature-error", "signature error", {"fg": "#add8e6"}], ["magit-reflog-commit", "reflog commit", {"fg": "#00ff00"}], ["magit-reflog-amend", "reflog amend", {"fg": "#ff00ff"}], ["magit-reflog-merge", "reflog merge", {"fg": "#00ff00"}], ["magit-reflog-checkout", "reflog checkout", {"fg": "#0000ff"}], ["magit-reflog-reset", "reflog reset", {"fg": "#ff0000"}], ["magit-reflog-rebase", "reflog rebase", {"fg": "#ff00ff"}], ["magit-reflog-cherry-pick", "reflog cherry pick", {"fg": "#00ff00"}], ["magit-reflog-remote", "reflog remote", {"fg": "#00ffff"}], ["magit-reflog-other", "reflog other", {"fg": "#00ffff"}], ["magit-sequence-pick", "sequence pick", {"inherit": "default"}], ["magit-sequence-stop", "sequence stop", {"fg": "#6e8b3d"}], ["magit-sequence-part", "sequence part", {"fg": "#8b6914"}], ["magit-sequence-head", "sequence head", {"fg": "#4a708b"}], ["magit-sequence-drop", "sequence drop", {"fg": "#cd5c5c"}], ["magit-sequence-done", "sequence done", {"inherit": "magit-hash"}], ["magit-sequence-onto", "sequence onto", {"inherit": "magit-sequence-done"}], ["magit-sequence-exec", "sequence exec", {"inherit": "magit-hash"}], ["magit-left-margin", "left margin", {"inherit": "default"}], ["git-commit-comment-action", "git commit comment action", {"inherit": "bold"}], ["git-commit-comment-branch-local", "git commit comment branch local", {"inherit": "magit-branch-local"}], ["git-commit-comment-branch-remote", "git commit comment branch remote", {"inherit": "magit-branch-remote"}], ["git-commit-comment-detached", "git commit comment detached", {"inherit": "git-commit-comment-branch-local"}], ["git-commit-comment-file", "git commit comment file", {"inherit": "git-commit-trailer-value"}], ["git-commit-comment-heading", "git commit comment heading", {"inherit": "git-commit-trailer-token"}], ["git-commit-keyword", "git commit keyword", {"inherit": "font-lock-string-face"}], ["git-commit-nonempty-second-line", "git commit nonempty second line", {"inherit": "font-lock-warning-face"}], ["git-commit-overlong-summary", "git commit overlong summary", {"inherit": "font-lock-warning-face"}], ["git-commit-summary", "git commit summary", {"inherit": "font-lock-type-face"}], ["git-commit-trailer-token", "git commit trailer token", {"inherit": "font-lock-keyword-face"}], ["git-commit-trailer-value", "git commit trailer value", {"inherit": "font-lock-string-face"}]]}, "elfeed": {"label": "elfeed", "preview": "elfeed", "faces": [["elfeed-search-date-face", "search date", {"fg": "#aaa"}], ["elfeed-search-title-face", "search title", {"fg": "#000"}], ["elfeed-search-unread-title-face", "search unread title", {"weight": "bold"}], ["elfeed-search-feed-face", "search feed", {"fg": "#aa0"}], ["elfeed-search-tag-face", "search tag", {"fg": "#070"}], ["elfeed-search-unread-count-face", "search unread count", {"fg": "#000"}], ["elfeed-search-filter-face", "search filter", {"inherit": "mode-line-buffer-id"}], ["elfeed-search-last-update-face", "search last update", {}], ["elfeed-log-date-face", "log date", {"inherit": "font-lock-type-face"}], ["elfeed-log-error-level-face", "log error level", {"fg": "#ff0000"}], ["elfeed-log-warn-level-face", "log warn level", {"fg": "#daa520"}], ["elfeed-log-info-level-face", "log info level", {"fg": "#00bfff"}], ["elfeed-log-debug-level-face", "log debug level", {"fg": "#ee00ee"}]]}, "mu4e": {"label": "mu4e", "preview": "mu4e", "faces": [["mu4e-title-face", "title", {}], ["mu4e-context-face", "context", {}], ["mu4e-modeline-face", "modeline", {}], ["mu4e-ok-face", "ok", {}], ["mu4e-warning-face", "warning", {}], ["mu4e-header-title-face", "header title", {}], ["mu4e-header-key-face", "header key", {}], ["mu4e-header-value-face", "header value", {}], ["mu4e-header-face", "header", {}], ["mu4e-header-highlight-face", "header highlight", {}], ["mu4e-header-marks-face", "header marks", {}], ["mu4e-unread-face", "unread", {}], ["mu4e-flagged-face", "flagged", {}], ["mu4e-replied-face", "replied", {}], ["mu4e-forwarded-face", "forwarded", {}], ["mu4e-draft-face", "draft", {}], ["mu4e-trashed-face", "trashed", {}], ["mu4e-related-face", "related", {}], ["mu4e-contact-face", "contact", {}], ["mu4e-special-header-value-face", "special header value", {}], ["mu4e-url-number-face", "url number", {}], ["mu4e-link-face", "link", {}], ["mu4e-footer-face", "footer", {}], ["mu4e-region-code", "region code", {}], ["mu4e-system-face", "system", {}], ["mu4e-highlight-face", "highlight", {}], ["mu4e-compose-separator-face", "compose separator", {}]]}, "gnus": {"label": "gnus (mu4e article view)", "preview": "gnus", "faces": [["gnus-header-name", "header name", {}], ["gnus-header-from", "header from", {}], ["gnus-header-subject", "header subject", {}], ["gnus-header-content", "header content", {}], ["gnus-header-newsgroups", "header newsgroups", {}], ["gnus-cite-1", "cite 1", {}], ["gnus-cite-2", "cite 2", {}], ["gnus-cite-3", "cite 3", {}], ["gnus-cite-4", "cite 4", {}], ["gnus-cite-5", "cite 5", {}], ["gnus-cite-6", "cite 6", {}], ["gnus-cite-7", "cite 7", {}], ["gnus-cite-8", "cite 8", {}], ["gnus-cite-9", "cite 9", {}], ["gnus-cite-10", "cite 10", {}], ["gnus-cite-11", "cite 11", {}], ["gnus-cite-attribution", "cite attribution", {}], ["gnus-signature", "signature", {}], ["gnus-button", "button", {}], ["gnus-emphasis-bold", "emphasis bold", {}], ["gnus-emphasis-italic", "emphasis italic", {}], ["gnus-emphasis-underline", "emphasis underline", {}], ["gnus-emphasis-strikethru", "emphasis strikethru", {}], ["gnus-emphasis-highlight-words", "emphasis highlight words", {}]]}, "org-faces": {"label": "org-faces", "preview": "orgfaces", "faces": [["org-faces-todo", "todo", {}], ["org-faces-project", "project", {}], ["org-faces-doing", "doing", {}], ["org-faces-waiting", "waiting", {}], ["org-faces-verify", "verify", {}], ["org-faces-stalled", "stalled", {}], ["org-faces-delegated", "delegated", {}], ["org-faces-failed", "failed", {}], ["org-faces-done", "done", {}], ["org-faces-cancelled", "cancelled", {}], ["org-faces-priority-a", "priority a", {}], ["org-faces-priority-b", "priority b", {}], ["org-faces-priority-c", "priority c", {}], ["org-faces-priority-d", "priority d", {}], ["org-faces-todo-dim", "todo dim", {}], ["org-faces-project-dim", "project dim", {}], ["org-faces-doing-dim", "doing dim", {}], ["org-faces-waiting-dim", "waiting dim", {}], ["org-faces-verify-dim", "verify dim", {}], ["org-faces-stalled-dim", "stalled dim", {}], ["org-faces-delegated-dim", "delegated dim", {}], ["org-faces-failed-dim", "failed dim", {}], ["org-faces-done-dim", "done dim", {}], ["org-faces-cancelled-dim", "cancelled dim", {}], ["org-faces-priority-a-dim", "priority a dim", {}], ["org-faces-priority-b-dim", "priority b dim", {}], ["org-faces-priority-c-dim", "priority c dim", {}], ["org-faces-priority-d-dim", "priority d dim", {}]]}, "ghostel": {"label": "ghostel", "preview": "ghostel", "faces": [["ghostel-default", "default", {"inherit": "default"}], ["ghostel-fake-cursor", "fake cursor", {"box": {"style": "line", "width": 1, "color": null}}], ["ghostel-fake-cursor-box", "fake cursor box", {"inherit": "cursor"}], ["ghostel-color-black", "color black", {"inherit": "ansi-color-black"}], ["ghostel-color-red", "color red", {"inherit": "ansi-color-red"}], ["ghostel-color-green", "color green", {"inherit": "ansi-color-green"}], ["ghostel-color-yellow", "color yellow", {"inherit": "ansi-color-yellow"}], ["ghostel-color-blue", "color blue", {"inherit": "ansi-color-blue"}], ["ghostel-color-magenta", "color magenta", {"inherit": "ansi-color-magenta"}], ["ghostel-color-cyan", "color cyan", {"inherit": "ansi-color-cyan"}], ["ghostel-color-white", "color white", {"inherit": "ansi-color-white"}], ["ghostel-color-bright-black", "color bright black", {"inherit": "ansi-color-bright-black"}], ["ghostel-color-bright-red", "color bright red", {"inherit": "ansi-color-bright-red"}], ["ghostel-color-bright-green", "color bright green", {"inherit": "ansi-color-bright-green"}], ["ghostel-color-bright-yellow", "color bright yellow", {"inherit": "ansi-color-bright-yellow"}], ["ghostel-color-bright-blue", "color bright blue", {"inherit": "ansi-color-bright-blue"}], ["ghostel-color-bright-magenta", "color bright magenta", {"inherit": "ansi-color-bright-magenta"}], ["ghostel-color-bright-cyan", "color bright cyan", {"inherit": "ansi-color-bright-cyan"}], ["ghostel-color-bright-white", "color bright white", {"inherit": "ansi-color-bright-white"}]]}, "auto-dim-other-buffers": {"label": "auto-dim", "preview": "autodim", "faces": [["auto-dim-other-buffers", "auto dim other buffers", {}], ["auto-dim-other-buffers-hide", "hide", {}]]}, "dashboard": {"label": "dashboard", "preview": "dashboard", "faces": [["dashboard-banner-logo-title", "banner logo title", {"inherit": "default"}], ["dashboard-text-banner", "text banner", {"inherit": "font-lock-keyword-face"}], ["dashboard-heading", "heading", {"inherit": "font-lock-keyword-face"}], ["dashboard-items-face", "items", {"inherit": "widget-button"}], ["dashboard-navigator", "navigator", {"inherit": "font-lock-keyword-face"}], ["dashboard-no-items-face", "no items", {"inherit": "widget-button"}], ["dashboard-footer-face", "footer", {"inherit": "font-lock-doc-face"}], ["dashboard-footer-icon-face", "footer icon", {"inherit": "dashboard-footer-face"}]]}, "lsp-mode": {"label": "lsp-mode", "preview": "lsp", "faces": [["lsp-signature-face", "signature", {"inherit": "lsp-details-face"}], ["lsp-signature-highlight-function-argument", "signature highlight function argument", {"inherit": "eldoc-highlight-function-argument"}], ["lsp-signature-posframe", "signature posframe", {"inherit": "tooltip"}], ["lsp-face-highlight-read", "face highlight read", {"underline": {"style": "line", "color": null}, "inherit": "highlight"}], ["lsp-face-highlight-write", "face highlight write", {"weight": "bold", "inherit": "highlight"}], ["lsp-face-highlight-textual", "face highlight textual", {"inherit": "highlight"}], ["lsp-face-rename", "face rename", {"underline": {"style": "line", "color": null}}], ["lsp-rename-placeholder-face", "rename placeholder", {"inherit": "font-lock-variable-name-face"}], ["lsp-inlay-hint-face", "inlay hint", {"inherit": "font-lock-comment-face"}], ["lsp-inlay-hint-parameter-face", "inlay hint parameter", {"inherit": "lsp-inlay-hint-face"}], ["lsp-inlay-hint-type-face", "inlay hint type", {"inherit": "lsp-inlay-hint-face"}], ["lsp-details-face", "details", {"inherit": "shadow", "height": 0.8}], ["lsp-installation-buffer-face", "installation buffer", {"fg": "#00ff00"}], ["lsp-installation-finished-buffer-face", "installation finished buffer", {"fg": "#ffa500"}]]}, "git-gutter": {"label": "git-gutter", "preview": "gitgutter", "faces": [["git-gutter:added", "added", {"fg": "#00ff00", "weight": "bold", "inherit": "default"}], ["git-gutter:modified", "modified", {"fg": "#ff00ff", "weight": "bold", "inherit": "default"}], ["git-gutter:deleted", "deleted", {"fg": "#ff0000", "weight": "bold", "inherit": "default"}], ["git-gutter:unchanged", "unchanged", {"bg": "#ffff00", "inherit": "default"}], ["git-gutter:separator", "separator", {"fg": "#00ffff", "weight": "bold", "inherit": "default"}]]}, "flycheck": {"label": "flycheck", "preview": "flycheck", "faces": [["flycheck-error", "error", {"underline": {"style": "line", "color": null}}], ["flycheck-warning", "warning", {"underline": {"style": "line", "color": null}}], ["flycheck-info", "info", {"underline": {"style": "line", "color": null}}], ["flycheck-fringe-error", "fringe error", {"inherit": "error"}], ["flycheck-fringe-warning", "fringe warning", {"inherit": "warning"}], ["flycheck-fringe-info", "fringe info", {"inherit": "success"}], ["flycheck-delimited-error", "delimited error", {}], ["flycheck-error-delimiter", "error delimiter", {}], ["flycheck-error-list-error", "error list error", {"inherit": "error"}], ["flycheck-error-list-warning", "error list warning", {"inherit": "warning"}], ["flycheck-error-list-info", "error list info", {"inherit": "success"}], ["flycheck-error-list-error-message", "error list error message", {}], ["flycheck-error-list-checker-name", "error list checker name", {"inherit": "font-lock-function-name-face"}], ["flycheck-error-list-column-number", "error list column number", {}], ["flycheck-error-list-line-number", "error list line number", {}], ["flycheck-error-list-filename", "error list filename", {"inherit": "mode-line-buffer-id"}], ["flycheck-error-list-id", "error list id", {"inherit": "font-lock-type-face"}], ["flycheck-error-list-id-with-explainer", "error list id with explainer", {"inherit": "flycheck-error-list-id", "box": {"style": "released", "width": 1, "color": null}}], ["flycheck-error-list-highlight", "error list highlight", {"weight": "bold"}], ["flycheck-verify-select-checker", "verify select checker", {"box": {"style": "released", "width": 1, "color": null}}]]}, "dired": {"label": "dired", "preview": "dired", "faces": [["dired-header", "header", {}], ["dired-directory", "directory", {}], ["dired-symlink", "symlink", {}], ["dired-broken-symlink", "broken symlink", {}], ["dired-special", "special", {}], ["dired-set-id", "set id", {}], ["dired-perm-write", "perm write", {}], ["dired-mark", "mark", {}], ["dired-marked", "marked", {}], ["dired-flagged", "flagged", {}], ["dired-ignored", "ignored", {}], ["dired-warning", "warning", {}]]}, "dirvish": {"label": "dirvish", "preview": "dirvish", "faces": [["dirvish-inactive", "inactive", {"inherit": "shadow"}], ["dirvish-free-space", "free space", {"inherit": "font-lock-constant-face"}], ["dirvish-hl-line", "hl line", {"extend": true, "inherit": "highlight"}], ["dirvish-hl-line-inactive", "hl line inactive", {"extend": true, "inherit": "region"}], ["dirvish-file-modes", "file modes", {"fg": "#6b6b6b"}], ["dirvish-file-link-number", "file link number", {"inherit": "font-lock-constant-face"}], ["dirvish-file-user-id", "file user id", {"inherit": "font-lock-preprocessor-face"}], ["dirvish-file-group-id", "file group id", {"inherit": "dirvish-file-user-id"}], ["dirvish-file-size", "file size", {"underline": {"style": "line", "color": null}, "inherit": "completions-annotations"}], ["dirvish-file-time", "file time", {"fg": "#979797"}], ["dirvish-file-inode-number", "file inode number", {"inherit": "dirvish-file-link-number"}], ["dirvish-file-device-number", "file device number", {"inherit": "dirvish-file-link-number"}], ["dirvish-subtree-guide", "subtree guide", {"bg": "unspecified", "underline": {"style": "line", "color": null}, "inherit": "dired-ignored"}], ["dirvish-subtree-state", "subtree state", {"bg": "unspecified", "underline": {"style": "line", "color": null}, "inherit": "dired-ignored"}], ["dirvish-collapse-dir-face", "collapse dir", {"inherit": "dired-directory"}], ["dirvish-collapse-empty-dir-face", "collapse empty dir", {"inherit": "shadow"}], ["dirvish-collapse-file-face", "collapse file", {"inherit": "default"}], ["dirvish-emerge-group-title", "emerge group title", {"inherit": "dired-ignored"}], ["dirvish-media-info-heading", "media info heading", {"inherit": ["dired-header", "bold"]}], ["dirvish-media-info-property-key", "media info property key", {"inherit": ["italic"]}], ["dirvish-narrow-match-face-0", "narrow match 0", {"fg": "#223fbf", "weight": "bold"}], ["dirvish-narrow-match-face-1", "narrow match 1", {"fg": "#8f0075", "weight": "bold"}], ["dirvish-narrow-match-face-2", "narrow match 2", {"fg": "#145a00", "weight": "bold"}], ["dirvish-narrow-match-face-3", "narrow match 3", {"fg": "#804000", "weight": "bold"}], ["dirvish-narrow-split", "narrow split", {"inherit": "font-lock-negation-char-face"}], ["dirvish-proc-running", "proc running", {"inherit": "warning"}], ["dirvish-proc-finished", "proc finished", {"inherit": "success"}], ["dirvish-proc-failed", "proc failed", {"inherit": "error"}], ["dirvish-git-commit-message-face", "git commit message", {"bg": "unspecified", "underline": {"style": "line", "color": null}, "inherit": "dired-ignored"}], ["dirvish-vc-added-state", "vc added state", {"inherit": "vc-locally-added-state"}], ["dirvish-vc-edited-state", "vc edited state", {"inherit": "vc-edited-state"}], ["dirvish-vc-removed-state", "vc removed state", {"inherit": "vc-removed-state"}], ["dirvish-vc-conflict-state", "vc conflict state", {"inherit": "vc-conflict-state"}], ["dirvish-vc-locked-state", "vc locked state", {"inherit": "vc-locked-state"}], ["dirvish-vc-missing-state", "vc missing state", {"inherit": "vc-missing-state"}], ["dirvish-vc-needs-merge-face", "vc needs merge", {"bg": "#efcbcf"}], ["dirvish-vc-needs-update-state", "vc needs update state", {"inherit": "vc-needs-update-state"}], ["dirvish-vc-unregistered-face", "vc unregistered", {"inherit": "font-lock-constant-face"}]]}, "calibredb": {"label": "calibredb", "preview": "calibredb", "faces": [["calibredb-search-header-library-name-face", "search header library name", {}], ["calibredb-search-header-library-path-face", "search header library path", {}], ["calibredb-search-header-total-face", "search header total", {}], ["calibredb-search-header-filter-face", "search header filter", {}], ["calibredb-search-header-sort-face", "search header sort", {}], ["calibredb-search-header-highlight-face", "search header highlight", {}], ["calibredb-id-face", "id", {}], ["calibredb-title-face", "title", {}], ["calibredb-author-face", "author", {}], ["calibredb-format-face", "format", {}], ["calibredb-size-face", "size", {}], ["calibredb-tag-face", "tag", {}], ["calibredb-date-face", "date", {}], ["calibredb-mark-face", "mark", {}], ["calibredb-series-face", "series", {}], ["calibredb-publisher-face", "publisher", {}], ["calibredb-pubdate-face", "pubdate", {}], ["calibredb-language-face", "language", {}], ["calibredb-comment-face", "comment", {}], ["calibredb-archive-face", "archive", {}], ["calibredb-favorite-face", "favorite", {}], ["calibredb-file-face", "file", {}], ["calibredb-ids-face", "ids", {}], ["calibredb-highlight-face", "highlight", {}], ["calibredb-current-page-button-face", "current page button", {}], ["calibredb-mouse-face", "mouse", {}], ["calibredb-title-detailed-view-face", "title detailed view", {}], ["calibredb-edit-annotation-header-title-face", "edit annotation header title", {}]]}, "erc": {"label": "erc", "preview": "erc", "faces": [["erc-header-line", "header line", {}], ["erc-timestamp-face", "timestamp", {}], ["erc-notice-face", "notice", {}], ["erc-default-face", "default", {}], ["erc-current-nick-face", "current nick", {}], ["erc-my-nick-face", "my nick", {}], ["erc-my-nick-prefix-face", "my nick prefix", {}], ["erc-nick-default-face", "nick default", {}], ["erc-nick-prefix-face", "nick prefix", {}], ["erc-button-nick-default-face", "button nick default", {}], ["erc-nick-msg-face", "nick msg", {}], ["erc-direct-msg-face", "direct msg", {}], ["erc-action-face", "action", {}], ["erc-keyword-face", "keyword", {}], ["erc-pal-face", "pal", {}], ["erc-fool-face", "fool", {}], ["erc-dangerous-host-face", "dangerous host", {}], ["erc-error-face", "error", {}], ["erc-input-face", "input", {}], ["erc-prompt-face", "prompt", {}], ["erc-command-indicator-face", "command indicator", {}], ["erc-information", "information", {}], ["erc-button", "button", {}], ["erc-bold-face", "bold", {}], ["erc-italic-face", "italic", {}], ["erc-underline-face", "underline", {}], ["erc-inverse-face", "inverse", {}], ["erc-spoiler-face", "spoiler", {}], ["erc-fill-wrap-merge-indicator-face", "fill wrap merge indicator", {}], ["erc-keep-place-indicator-arrow", "keep place indicator arrow", {}], ["erc-keep-place-indicator-line", "keep place indicator line", {}]]}, "org-drill": {"label": "org-drill", "preview": "orgdrill", "faces": [["org-drill-hidden-cloze-face", "hidden cloze", {}], ["org-drill-visible-cloze-face", "visible cloze", {}], ["org-drill-visible-cloze-hint-face", "visible cloze hint", {}]]}, "org-noter": {"label": "org-noter", "preview": "orgnoter", "faces": [["org-noter-notes-exist-face", "notes exist", {}], ["org-noter-no-notes-exist-face", "no notes exist", {}]]}, "signel": {"label": "signel", "preview": "signel", "faces": [["signel-timestamp-face", "timestamp", {}], ["signel-my-msg-face", "my msg", {}], ["signel-other-msg-face", "other msg", {}], ["signel-error-face", "error", {}]]}, "pearl": {"label": "pearl", "preview": "pearl", "faces": [["pearl-preamble-summary", "preamble summary", {}], ["pearl-editable-comment", "editable comment", {}], ["pearl-readonly-comment", "readonly comment", {}], ["pearl-modified-highlight", "modified highlight", {}], ["pearl-modified-local", "modified local", {}], ["pearl-modified-unknown", "modified unknown", {}]]}, "slack": {"label": "slack", "preview": "slack", "faces": [["slack-room-info-title-face", "room info title", {}], ["slack-room-info-title-room-name-face", "room info title room name", {}], ["slack-room-info-section-title-face", "room info section title", {}], ["slack-room-info-section-label-face", "room info section label", {}], ["slack-room-unread-face", "room unread", {}], ["slack-message-output-header", "message output header", {}], ["slack-message-output-text", "message output text", {}], ["slack-message-output-reaction", "message output reaction", {}], ["slack-message-output-reaction-pressed", "message output reaction pressed", {}], ["slack-message-deleted-face", "message deleted", {}], ["slack-new-message-marker-face", "new message marker", {}], ["slack-all-thread-buffer-thread-header-face", "all thread buffer thread header", {}], ["slack-message-mention-face", "message mention", {}], ["slack-message-mention-me-face", "message mention me", {}], ["slack-message-mention-keyword-face", "message mention keyword", {}], ["slack-channel-button-face", "channel button", {}], ["slack-mrkdwn-bold-face", "mrkdwn bold", {}], ["slack-mrkdwn-italic-face", "mrkdwn italic", {}], ["slack-mrkdwn-code-face", "mrkdwn code", {}], ["slack-mrkdwn-code-block-face", "mrkdwn code block", {}], ["slack-mrkdwn-strike-face", "mrkdwn strike", {}], ["slack-mrkdwn-blockquote-face", "mrkdwn blockquote", {}], ["slack-mrkdwn-list-face", "mrkdwn list", {}], ["slack-attachment-header", "attachment header", {}], ["slack-attachment-footer", "attachment footer", {}], ["slack-attachment-pad", "attachment pad", {}], ["slack-attachment-field-title", "attachment field title", {}], ["slack-message-attachment-preview-header-face", "message attachment preview header", {}], ["slack-preview-face", "preview", {}], ["slack-block-highlight-source-overlay-face", "block highlight source overlay", {}], ["slack-message-action-face", "message action", {}], ["slack-message-action-primary-face", "message action primary", {}], ["slack-message-action-danger-face", "message action danger", {}], ["slack-button-block-element-face", "button block element", {}], ["slack-button-primary-block-element-face", "button primary block element", {}], ["slack-button-danger-block-element-face", "button danger block element", {}], ["slack-select-block-element-face", "select block element", {}], ["slack-overflow-block-element-face", "overflow block element", {}], ["slack-date-picker-block-element-face", "date picker block element", {}], ["slack-dialog-title-face", "dialog title", {}], ["slack-dialog-element-label-face", "dialog element label", {}], ["slack-dialog-element-hint-face", "dialog element hint", {}], ["slack-dialog-element-placeholder-face", "dialog element placeholder", {}], ["slack-dialog-element-error-face", "dialog element error", {}], ["slack-dialog-submit-button-face", "dialog submit button", {}], ["slack-dialog-cancel-button-face", "dialog cancel button", {}], ["slack-dialog-select-element-input-face", "dialog select element input", {}], ["slack-user-active-face", "user active", {}], ["slack-user-dnd-face", "user dnd", {}], ["slack-user-profile-header-face", "user profile header", {}], ["slack-user-profile-property-name-face", "user profile property name", {}], ["slack-profile-image-face", "profile image", {}], ["slack-search-result-message-header-face", "search result message header", {}], ["slack-search-result-message-username-face", "search result message username", {}], ["slack-modeline-has-unreads-face", "modeline has unreads", {}], ["slack-modeline-channel-has-unreads-face", "modeline channel has unreads", {}], ["slack-modeline-thread-has-unreads-face", "modeline thread has unreads", {}]]}, "telega": {"label": "telega", "preview": "telega", "faces": [["telega-root-heading", "root heading", {}], ["telega-tracking", "tracking", {}], ["telega-unread-unmuted-modeline", "unread unmuted modeline", {}], ["telega-username", "username", {}], ["telega-user-online-status", "user online status", {}], ["telega-user-non-online-status", "user non online status", {}], ["telega-secret-title", "secret title", {}], ["telega-contact-birthdays-today", "contact birthdays today", {}], ["telega-muted-count", "muted count", {}], ["telega-unmuted-count", "unmuted count", {}], ["telega-mention-count", "mention count", {}], ["telega-has-chatbuf-brackets", "has chatbuf brackets", {}], ["telega-delim-face", "delim", {}], ["telega-shadow", "shadow", {}], ["telega-link", "link", {}], ["telega-blue", "blue", {}], ["telega-red", "red", {}], ["telega-msg-heading", "msg heading", {}], ["telega-msg-user-title", "msg user title", {}], ["telega-msg-self-title", "msg self title", {}], ["telega-msg-deleted", "msg deleted", {}], ["telega-msg-sponsored", "msg sponsored", {}], ["telega-msg-inline-reply", "msg inline reply", {}], ["telega-msg-inline-forward", "msg inline forward", {}], ["telega-msg-inline-other", "msg inline other", {}], ["telega-entity-type-bold", "entity type bold", {}], ["telega-entity-type-italic", "entity type italic", {}], ["telega-entity-type-underline", "entity type underline", {}], ["telega-entity-type-strikethrough", "entity type strikethrough", {}], ["telega-entity-type-code", "entity type code", {}], ["telega-entity-type-pre", "entity type pre", {}], ["telega-entity-type-blockquote", "entity type blockquote", {}], ["telega-entity-type-mention", "entity type mention", {}], ["telega-entity-type-hashtag", "entity type hashtag", {}], ["telega-entity-type-cashtag", "entity type cashtag", {}], ["telega-entity-type-botcommand", "entity type botcommand", {}], ["telega-entity-type-texturl", "entity type texturl", {}], ["telega-entity-type-spoiler", "entity type spoiler", {}], ["telega-reaction", "reaction", {}], ["telega-reaction-chosen", "reaction chosen", {}], ["telega-reaction-paid", "reaction paid", {}], ["telega-reaction-paid-chosen", "reaction paid chosen", {}], ["telega-highlight-text-face", "highlight text", {}], ["telega-button-highlight", "button highlight", {}], ["telega-chat-prompt", "chat prompt", {}], ["telega-chat-prompt-aux", "chat prompt aux", {}], ["telega-chat-input-attachment", "chat input attachment", {}], ["telega-topic-button", "topic button", {}], ["telega-filter-active", "filter active", {}], ["telega-filter-button-active", "filter button active", {}], ["telega-filter-button-inactive", "filter button inactive", {}], ["telega-checklist-stats-done", "checklist stats done", {}], ["telega-checklist-stats-todo", "checklist stats todo", {}], ["telega-box-button", "box button", {}], ["telega-box-button-active", "box button active", {}], ["telega-box-button-default-active", "box button default active", {}], ["telega-box-button-default-passive", "box button default passive", {}], ["telega-box-button-primary-active", "box button primary active", {}], ["telega-box-button-primary-passive", "box button primary passive", {}], ["telega-box-button-success-active", "box button success active", {}], ["telega-box-button-success-passive", "box button success passive", {}], ["telega-box-button-danger-active", "box button danger active", {}], ["telega-box-button-danger-passive", "box button danger passive", {}], ["telega-box-button-ui-active", "box button ui active", {}], ["telega-box-button-ui-passive", "box button ui passive", {}], ["telega-box-button2-active", "box button2 active", {}], ["telega-box-button2-passive", "box button2 passive", {}], ["telega-box-button2-white-foreground", "box button2 white foreground", {}], ["telega-describe-item-title", "describe item title", {}], ["telega-describe-section-title", "describe section title", {}], ["telega-describe-subsection-title", "describe subsection title", {}], ["telega-enckey-00", "enckey 00", {}], ["telega-enckey-01", "enckey 01", {}], ["telega-enckey-10", "enckey 10", {}], ["telega-enckey-11", "enckey 11", {}], ["telega-palette-builtin-blue", "palette builtin blue", {}], ["telega-palette-builtin-green", "palette builtin green", {}], ["telega-palette-builtin-orange", "palette builtin orange", {}], ["telega-palette-builtin-purple", "palette builtin purple", {}], ["telega-webpage-title", "webpage title", {}], ["telega-webpage-subtitle", "webpage subtitle", {}], ["telega-webpage-header", "webpage header", {}], ["telega-webpage-subheader", "webpage subheader", {}], ["telega-webpage-outline", "webpage outline", {}], ["telega-webpage-fixed", "webpage fixed", {}], ["telega-webpage-preformatted", "webpage preformatted", {}], ["telega-webpage-marked", "webpage marked", {}], ["telega-webpage-strike-through", "webpage strike through", {}], ["telega-webpage-chat-link", "webpage chat link", {}], ["telega-link-preview-sitename", "link preview sitename", {}], ["telega-link-preview-title", "link preview title", {}]]}, "shr": {"label": "shr (HTML: nov/eww/mail)", "preview": "shr", "faces": [["shr-h1", "h1", {}], ["shr-h2", "h2", {}], ["shr-h3", "h3", {}], ["shr-h4", "h4", {}], ["shr-h5", "h5", {}], ["shr-h6", "h6", {}], ["shr-text", "text", {}], ["shr-link", "link", {}], ["shr-selected-link", "selected link", {}], ["shr-code", "code", {}], ["shr-mark", "mark", {}], ["shr-strike-through", "strike through", {}], ["shr-sup", "sup", {}], ["shr-abbreviation", "abbreviation", {}], ["shr-sliced-image", "sliced image", {}]]}, "2048-game": {"label": "2048-game", "preview": "generic", "faces": [["twentyfortyeight-face-1024", "twentyfortyeight 1024", {"fg": "#000000", "bg": "#ffd700"}], ["twentyfortyeight-face-128", "twentyfortyeight 128", {"fg": "#ffffff", "bg": "#8b0000"}], ["twentyfortyeight-face-16", "twentyfortyeight 16", {"fg": "#000000", "bg": "#ffa500"}], ["twentyfortyeight-face-2", "twentyfortyeight 2", {"fg": "#000000", "bg": "#f0e68c"}], ["twentyfortyeight-face-2048", "twentyfortyeight 2048", {"fg": "#000000", "bg": "#ffff00"}], ["twentyfortyeight-face-256", "twentyfortyeight 256", {"fg": "#ffffff", "bg": "#8b008b"}], ["twentyfortyeight-face-32", "twentyfortyeight 32", {"fg": "#000000", "bg": "#ff4500"}], ["twentyfortyeight-face-4", "twentyfortyeight 4", {"fg": "#000000", "bg": "#deb887"}], ["twentyfortyeight-face-512", "twentyfortyeight 512", {"fg": "#000000", "bg": "#ff00ff"}], ["twentyfortyeight-face-64", "twentyfortyeight 64", {"fg": "#ffffff", "bg": "#b22222"}], ["twentyfortyeight-face-8", "twentyfortyeight 8", {"fg": "#000000", "bg": "#cd8500"}]]}, "alert": {"label": "alert", "preview": "generic", "faces": [["alert-high-face", "high", {"fg": "#ff8c00", "weight": "bold"}], ["alert-low-face", "low", {"fg": "#00008b"}], ["alert-moderate-face", "moderate", {"fg": "#ffd700", "weight": "bold"}], ["alert-normal-face", "normal", {}], ["alert-trivial-face", "trivial", {"fg": "#9400d3"}], ["alert-urgent-face", "urgent", {"fg": "#ff0000", "weight": "bold"}]]}, "all-the-icons": {"label": "all-the-icons", "preview": "generic", "faces": [["all-the-icons-blue", "blue", {"fg": "#6a9fb5"}], ["all-the-icons-blue-alt", "blue alt", {"fg": "#2188b6"}], ["all-the-icons-cyan", "cyan", {"fg": "#75b5aa"}], ["all-the-icons-cyan-alt", "cyan alt", {"fg": "#0595bd"}], ["all-the-icons-dblue", "dblue", {"fg": "#446674"}], ["all-the-icons-dcyan", "dcyan", {"fg": "#48746d"}], ["all-the-icons-dgreen", "dgreen", {"fg": "#6d8143"}], ["all-the-icons-dmaroon", "dmaroon", {"fg": "#72584b"}], ["all-the-icons-dorange", "dorange", {"fg": "#915b2d"}], ["all-the-icons-dpink", "dpink", {"fg": "#7e5d5f"}], ["all-the-icons-dpurple", "dpurple", {"fg": "#694863"}], ["all-the-icons-dred", "dred", {"fg": "#843031"}], ["all-the-icons-dsilver", "dsilver", {"fg": "#838484"}], ["all-the-icons-dyellow", "dyellow", {"fg": "#b48d56"}], ["all-the-icons-green", "green", {"fg": "#90a959"}], ["all-the-icons-lblue", "lblue", {"fg": "#677174"}], ["all-the-icons-lcyan", "lcyan", {"fg": "#2c7d6e"}], ["all-the-icons-lgreen", "lgreen", {"fg": "#3d6837"}], ["all-the-icons-lmaroon", "lmaroon", {"fg": "#ce7a4e"}], ["all-the-icons-lorange", "lorange", {"fg": "#ffa500"}], ["all-the-icons-lpink", "lpink", {"fg": "#ff505b"}], ["all-the-icons-lpurple", "lpurple", {"fg": "#e69dd6"}], ["all-the-icons-lred", "lred", {"fg": "#eb595a"}], ["all-the-icons-lsilver", "lsilver", {"fg": "#7f7869"}], ["all-the-icons-lyellow", "lyellow", {"fg": "#ff9300"}], ["all-the-icons-maroon", "maroon", {"fg": "#8f5536"}], ["all-the-icons-orange", "orange", {"fg": "#d4843e"}], ["all-the-icons-pink", "pink", {"fg": "#fc505b"}], ["all-the-icons-purple", "purple", {"fg": "#68295b"}], ["all-the-icons-purple-alt", "purple alt", {"fg": "#5d54e1"}], ["all-the-icons-red", "red", {"fg": "#ac4142"}], ["all-the-icons-red-alt", "red alt", {"fg": "#843031"}], ["all-the-icons-silver", "silver", {"fg": "#716e68"}], ["all-the-icons-yellow", "yellow", {"fg": "#ffcc0e"}]]}, "company": {"label": "company", "preview": "generic", "faces": [["company-echo", "echo", {}], ["company-echo-common", "echo common", {"fg": "#8b1a1a"}], ["company-preview", "preview", {"inherit": ["company-tooltip-selection", "company-tooltip"]}], ["company-preview-common", "preview common", {"inherit": "company-tooltip-common-selection"}], ["company-preview-search", "preview search", {"inherit": "company-tooltip-common-selection"}], ["company-tooltip", "tooltip", {"fg": "#000000", "bg": "#fff8dc"}], ["company-tooltip-annotation", "tooltip annotation", {"fg": "#8b1a1a"}], ["company-tooltip-annotation-selection", "tooltip annotation selection", {"inherit": "company-tooltip-annotation"}], ["company-tooltip-common", "tooltip common", {"fg": "#8b0000"}], ["company-tooltip-common-selection", "tooltip common selection", {"inherit": "company-tooltip-common"}], ["company-tooltip-deprecated", "tooltip deprecated", {"strike": {"color": null}}], ["company-tooltip-mouse", "tooltip mouse", {"inherit": "highlight"}], ["company-tooltip-quick-access", "tooltip quick access", {"inherit": "company-tooltip-annotation"}], ["company-tooltip-quick-access-selection", "tooltip quick access selection", {"inherit": "company-tooltip-annotation-selection"}], ["company-tooltip-scrollbar-thumb", "tooltip scrollbar thumb", {"bg": "#cd5c5c"}], ["company-tooltip-scrollbar-track", "tooltip scrollbar track", {"bg": "#f5deb3"}], ["company-tooltip-search", "tooltip search", {"inherit": "highlight"}], ["company-tooltip-search-selection", "tooltip search selection", {"inherit": "highlight"}], ["company-tooltip-selection", "tooltip selection", {"bg": "#add8e6"}]]}, "company-box": {"label": "company-box", "preview": "generic", "faces": [["company-box-annotation", "annotation", {"inherit": "company-tooltip-annotation"}], ["company-box-background", "background", {"inherit": "company-tooltip"}], ["company-box-candidate", "candidate", {"fg": "#000000"}], ["company-box-numbers", "numbers", {"inherit": "company-box-candidate"}], ["company-box-scrollbar", "scrollbar", {"inherit": "company-tooltip-selection"}], ["company-box-selection", "selection", {"extend": true, "inherit": "company-tooltip-selection"}]]}, "consult": {"label": "consult", "preview": "generic", "faces": [["consult-async-failed", "async failed", {"inherit": "error"}], ["consult-async-finished", "async finished", {"inherit": "success"}], ["consult-async-running", "async running", {"inherit": "consult-narrow-indicator"}], ["consult-async-split", "async split", {"inherit": "font-lock-negation-char-face"}], ["consult-bookmark", "bookmark", {"inherit": "font-lock-constant-face"}], ["consult-buffer", "buffer", {}], ["consult-file", "file", {"inherit": "font-lock-function-name-face"}], ["consult-grep-context", "grep context", {"inherit": "shadow"}], ["consult-help", "help", {"inherit": "shadow"}], ["consult-highlight-mark", "highlight mark", {"inherit": "consult-highlight-match"}], ["consult-highlight-match", "highlight match", {"inherit": "match"}], ["consult-key", "key", {"inherit": "font-lock-keyword-face"}], ["consult-line-number", "line number", {"inherit": "consult-key"}], ["consult-line-number-prefix", "line number prefix", {"inherit": "line-number"}], ["consult-line-number-wrapped", "line number wrapped", {"inherit": "warning"}], ["consult-narrow-indicator", "narrow indicator", {"inherit": "warning"}], ["consult-preview-insertion", "preview insertion", {"inherit": "region"}], ["consult-preview-line", "preview line", {"extend": true, "inherit": "consult-preview-insertion"}], ["consult-preview-match", "preview match", {"inherit": "isearch"}], ["consult-separator", "separator", {}]]}, "embark": {"label": "embark", "preview": "generic", "faces": [["embark-collect-annotation", "collect annotation", {"inherit": "completions-annotations"}], ["embark-collect-candidate", "collect candidate", {"inherit": "default"}], ["embark-collect-group-separator", "collect group separator", {"slant": "italic", "strike": {"color": null}, "inherit": "shadow"}], ["embark-collect-group-title", "collect group title", {"slant": "italic", "inherit": "shadow"}], ["embark-keybinding", "keybinding", {"inherit": "success"}], ["embark-keybinding-repeat", "keybinding repeat", {"inherit": "font-lock-builtin-face"}], ["embark-keymap", "keymap", {"slant": "italic"}], ["embark-selected", "selected", {"inherit": "match"}], ["embark-target", "target", {"inherit": "highlight"}], ["embark-verbose-indicator-documentation", "verbose indicator documentation", {"inherit": "completions-annotations"}], ["embark-verbose-indicator-shadowed", "verbose indicator shadowed", {"inherit": "shadow"}], ["embark-verbose-indicator-title", "verbose indicator title", {"weight": "bold", "height": 1.1}]]}, "emms": {"label": "emms", "preview": "generic", "faces": [["emms-browser-album-face", "browser album", {}], ["emms-browser-albumartist-face", "browser albumartist", {}], ["emms-browser-artist-face", "browser artist", {}], ["emms-browser-composer-face", "browser composer", {}], ["emms-browser-performer-face", "browser performer", {}], ["emms-browser-track-face", "browser track", {}], ["emms-browser-year/genre-face", "browser year/genre", {}], ["emms-metaplaylist-mode-current-face", "metaplaylist mode current", {"fg": "#ffffff", "bg": "#cd0000"}], ["emms-metaplaylist-mode-face", "metaplaylist mode", {"fg": "#cd0000"}], ["emms-playlist-selected-face", "playlist selected", {"fg": "#ffffff", "bg": "#0000cd"}], ["emms-playlist-track-face", "playlist track", {"fg": "#0000ff"}]]}, "flyspell-correct": {"label": "flyspell-correct", "preview": "generic", "faces": [["flyspell-correct-highlight-face", "highlight", {"inherit": "isearch"}]]}, "highlight-indent-guides": {"label": "highlight-indent-guides", "preview": "generic", "faces": [["highlight-indent-guides-character-face", "character", {}], ["highlight-indent-guides-even-face", "even", {}], ["highlight-indent-guides-odd-face", "odd", {}], ["highlight-indent-guides-stack-character-face", "stack character", {}], ["highlight-indent-guides-stack-even-face", "stack even", {}], ["highlight-indent-guides-stack-odd-face", "stack odd", {}], ["highlight-indent-guides-top-character-face", "top character", {}], ["highlight-indent-guides-top-even-face", "top even", {}], ["highlight-indent-guides-top-odd-face", "top odd", {}]]}, "hl-todo": {"label": "hl-todo", "preview": "generic", "faces": [["hl-todo", "hl todo", {"fg": "#cc9393", "weight": "bold"}], ["hl-todo-flymake-type", "flymake type", {"inherit": "font-lock-keyword-face"}]]}, "json-mode": {"label": "json-mode", "preview": "generic", "faces": [["json-mode-object-name-face", "object name", {}]]}, "llama": {"label": "llama", "preview": "generic", "faces": [["llama-##-macro", "## macro", {"inherit": "font-lock-function-call-face"}], ["llama-deleted-argument", "deleted argument", {"box": {"style": "line", "width": 1, "color": "#ff0000"}}], ["llama-llama-macro", "llama macro", {"inherit": "font-lock-keyword-face"}], ["llama-mandatory-argument", "mandatory argument", {"inherit": "font-lock-variable-use-face"}], ["llama-optional-argument", "optional argument", {"inherit": "font-lock-type-face"}]]}, "lv": {"label": "lv", "preview": "generic", "faces": [["lv-separator", "separator", {"bg": "#cccccc"}]]}, "magit-section": {"label": "magit-section", "preview": "generic", "faces": [["magit-left-margin", "magit left margin", {"inherit": "default"}], ["magit-section-child-count", "child count", {}], ["magit-section-heading", "heading", {"fg": "#8b6508", "weight": "bold", "extend": true}], ["magit-section-heading-selection", "heading selection", {"fg": "#8b4c39", "extend": true}], ["magit-section-highlight", "highlight", {"bg": "#f2f2f2", "extend": true}], ["magit-section-secondary-heading", "secondary heading", {"weight": "bold", "extend": true}]]}, "malyon": {"label": "malyon", "preview": "generic", "faces": [["malyon-face-bold", "face bold", {"inherit": "bold"}], ["malyon-face-error", "face error", {"inherit": "error"}], ["malyon-face-italic", "face italic", {"inherit": "italic"}], ["malyon-face-plain", "face plain", {"inherit": "default"}], ["malyon-face-reverse", "face reverse", {"inverse": true, "inherit": "default"}]]}, "marginalia": {"label": "marginalia", "preview": "generic", "faces": [["marginalia-archive", "archive", {"inherit": "warning"}], ["marginalia-char", "char", {"inherit": "marginalia-key"}], ["marginalia-date", "date", {"inherit": "marginalia-key"}], ["marginalia-documentation", "documentation", {"inherit": "completions-annotations"}], ["marginalia-file-name", "file name", {"inherit": "marginalia-documentation"}], ["marginalia-file-owner", "file owner", {"inherit": "font-lock-preprocessor-face"}], ["marginalia-file-priv-dir", "file priv dir", {"inherit": "font-lock-keyword-face"}], ["marginalia-file-priv-exec", "file priv exec", {"inherit": "font-lock-function-name-face"}], ["marginalia-file-priv-link", "file priv link", {"inherit": "font-lock-keyword-face"}], ["marginalia-file-priv-no", "file priv no", {"inherit": "shadow"}], ["marginalia-file-priv-other", "file priv other", {"inherit": "font-lock-constant-face"}], ["marginalia-file-priv-rare", "file priv rare", {"inherit": "font-lock-variable-name-face"}], ["marginalia-file-priv-read", "file priv read", {"inherit": "font-lock-type-face"}], ["marginalia-file-priv-write", "file priv write", {"inherit": "font-lock-builtin-face"}], ["marginalia-function", "function", {"inherit": "font-lock-function-name-face"}], ["marginalia-installed", "installed", {"inherit": "success"}], ["marginalia-key", "key", {"inherit": "font-lock-keyword-face"}], ["marginalia-lighter", "lighter", {"inherit": "marginalia-size"}], ["marginalia-list", "list", {"inherit": "font-lock-constant-face"}], ["marginalia-mode", "mode", {"inherit": "marginalia-key"}], ["marginalia-modified", "modified", {"inherit": "font-lock-negation-char-face"}], ["marginalia-null", "null", {"inherit": "font-lock-comment-face"}], ["marginalia-number", "number", {"inherit": "font-lock-constant-face"}], ["marginalia-off", "off", {"inherit": "error"}], ["marginalia-on", "on", {"inherit": "success"}], ["marginalia-size", "size", {"inherit": "marginalia-number"}], ["marginalia-string", "string", {"inherit": "font-lock-string-face"}], ["marginalia-symbol", "symbol", {"inherit": "font-lock-type-face"}], ["marginalia-true", "true", {"inherit": "font-lock-builtin-face"}], ["marginalia-type", "type", {"inherit": "marginalia-key"}], ["marginalia-value", "value", {"inherit": "marginalia-key"}], ["marginalia-version", "version", {"inherit": "marginalia-number"}]]}, "markdown-mode": {"label": "markdown-mode", "preview": "markdown", "faces": [["markdown-blockquote-face", "markdown blockquote", {"inherit": "font-lock-doc-face"}], ["markdown-bold-face", "markdown bold", {"inherit": "bold"}], ["markdown-code-face", "markdown code", {"inherit": "fixed-pitch"}], ["markdown-comment-face", "markdown comment", {"inherit": "font-lock-comment-face"}], ["markdown-footnote-marker-face", "markdown footnote marker", {"inherit": "markdown-markup-face"}], ["markdown-footnote-text-face", "markdown footnote text", {"inherit": "font-lock-comment-face"}], ["markdown-gfm-checkbox-face", "markdown gfm checkbox", {"inherit": "font-lock-builtin-face"}], ["markdown-header-delimiter-face", "markdown header delimiter", {"inherit": "markdown-markup-face"}], ["markdown-header-face", "markdown header", {"weight": "bold", "inherit": ["font-lock-function-name-face"]}], ["markdown-header-face-1", "markdown header 1", {"inherit": "markdown-header-face"}], ["markdown-header-face-2", "markdown header 2", {"inherit": "markdown-header-face"}], ["markdown-header-face-3", "markdown header 3", {"inherit": "markdown-header-face"}], ["markdown-header-face-4", "markdown header 4", {"inherit": "markdown-header-face"}], ["markdown-header-face-5", "markdown header 5", {"inherit": "markdown-header-face"}], ["markdown-header-face-6", "markdown header 6", {"inherit": "markdown-header-face"}], ["markdown-header-rule-face", "markdown header rule", {"inherit": "markdown-markup-face"}], ["markdown-highlight-face", "markdown highlight", {"inherit": "highlight"}], ["markdown-highlighting-face", "markdown highlighting", {"fg": "#000000", "bg": "#ffff00"}], ["markdown-hr-face", "markdown hr", {"inherit": "markdown-markup-face"}], ["markdown-html-attr-name-face", "markdown html attr name", {"inherit": "font-lock-variable-name-face"}], ["markdown-html-attr-value-face", "markdown html attr value", {"inherit": "font-lock-string-face"}], ["markdown-html-entity-face", "markdown html entity", {"inherit": "font-lock-variable-name-face"}], ["markdown-html-tag-delimiter-face", "markdown html tag delimiter", {"inherit": "markdown-markup-face"}], ["markdown-html-tag-name-face", "markdown html tag name", {"inherit": "font-lock-type-face"}], ["markdown-inline-code-face", "markdown inline code", {"inherit": ["markdown-code-face", "font-lock-constant-face"]}], ["markdown-italic-face", "markdown italic", {"inherit": "italic"}], ["markdown-language-info-face", "markdown language info", {"inherit": "font-lock-string-face"}], ["markdown-language-keyword-face", "markdown language keyword", {"inherit": "font-lock-type-face"}], ["markdown-line-break-face", "markdown line break", {"underline": {"style": "line", "color": null}, "inherit": "font-lock-constant-face"}], ["markdown-link-face", "markdown link", {"inherit": "link"}], ["markdown-link-title-face", "markdown link title", {"inherit": "font-lock-comment-face"}], ["markdown-list-face", "markdown list", {"inherit": "markdown-markup-face"}], ["markdown-markup-face", "markdown markup", {"inherit": "shadow"}], ["markdown-math-face", "markdown math", {"inherit": "font-lock-string-face"}], ["markdown-metadata-key-face", "markdown metadata key", {"inherit": "font-lock-variable-name-face"}], ["markdown-metadata-value-face", "markdown metadata value", {"inherit": "font-lock-string-face"}], ["markdown-missing-link-face", "markdown missing link", {"inherit": "font-lock-warning-face"}], ["markdown-plain-url-face", "markdown plain url", {"inherit": "markdown-link-face"}], ["markdown-pre-face", "markdown pre", {"inherit": ["markdown-code-face", "font-lock-constant-face"]}], ["markdown-reference-face", "markdown reference", {"inherit": "markdown-markup-face"}], ["markdown-strike-through-face", "markdown strike through", {"strike": {"color": null}}], ["markdown-table-face", "markdown table", {"inherit": ["markdown-code-face"]}], ["markdown-url-face", "markdown url", {"inherit": "font-lock-string-face"}]]}, "nerd-icons": {"label": "nerd-icons", "preview": "generic", "faces": [["nerd-icons-blue", "blue", {"fg": "#6a9fb5"}], ["nerd-icons-blue-alt", "blue alt", {"fg": "#2188b6"}], ["nerd-icons-cyan", "cyan", {"fg": "#75b5aa"}], ["nerd-icons-cyan-alt", "cyan alt", {"fg": "#0595bd"}], ["nerd-icons-dblue", "dblue", {"fg": "#446674"}], ["nerd-icons-dcyan", "dcyan", {"fg": "#48746d"}], ["nerd-icons-dgreen", "dgreen", {"fg": "#6d8143"}], ["nerd-icons-dmaroon", "dmaroon", {"fg": "#72584b"}], ["nerd-icons-dorange", "dorange", {"fg": "#915b2d"}], ["nerd-icons-dpink", "dpink", {"fg": "#7e5d5f"}], ["nerd-icons-dpurple", "dpurple", {"fg": "#694863"}], ["nerd-icons-dred", "dred", {"fg": "#843031"}], ["nerd-icons-dsilver", "dsilver", {"fg": "#838484"}], ["nerd-icons-dyellow", "dyellow", {"fg": "#b48d56"}], ["nerd-icons-green", "green", {"fg": "#90a959"}], ["nerd-icons-lblue", "lblue", {"fg": "#677174"}], ["nerd-icons-lcyan", "lcyan", {"fg": "#2c7d6e"}], ["nerd-icons-lgreen", "lgreen", {"fg": "#3d6837"}], ["nerd-icons-lmaroon", "lmaroon", {"fg": "#ce7a4e"}], ["nerd-icons-lorange", "lorange", {"fg": "#ffa500"}], ["nerd-icons-lpink", "lpink", {"fg": "#ff505b"}], ["nerd-icons-lpurple", "lpurple", {"fg": "#e69dd6"}], ["nerd-icons-lred", "lred", {"fg": "#eb595a"}], ["nerd-icons-lsilver", "lsilver", {"fg": "#7f7869"}], ["nerd-icons-lyellow", "lyellow", {"fg": "#ff9300"}], ["nerd-icons-maroon", "maroon", {"fg": "#8f5536"}], ["nerd-icons-orange", "orange", {"fg": "#d4843e"}], ["nerd-icons-pink", "pink", {"fg": "#fc505b"}], ["nerd-icons-purple", "purple", {"fg": "#68295b"}], ["nerd-icons-purple-alt", "purple alt", {"fg": "#5d54e1"}], ["nerd-icons-red", "red", {"fg": "#ac4142"}], ["nerd-icons-red-alt", "red alt", {"fg": "#843031"}], ["nerd-icons-silver", "silver", {"fg": "#716e68"}], ["nerd-icons-yellow", "yellow", {"fg": "#ffcc0e"}]]}, "nerd-icons-completion": {"label": "nerd-icons-completion", "preview": "generic", "faces": [["nerd-icons-completion-dir-face", "dir", {}]]}, "orderless": {"label": "orderless", "preview": "generic", "faces": [["orderless-match-face-0", "match 0", {"fg": "#223fbf", "weight": "bold"}], ["orderless-match-face-1", "match 1", {"fg": "#8f0075", "weight": "bold"}], ["orderless-match-face-2", "match 2", {"fg": "#145a00", "weight": "bold"}], ["orderless-match-face-3", "match 3", {"fg": "#804000", "weight": "bold"}]]}, "org-roam": {"label": "org-roam", "preview": "generic", "faces": [["org-roam-dailies-calendar-note", "dailies calendar note", {"underline": {"style": "line", "color": null}, "inherit": ["org-link"]}], ["org-roam-dim", "dim", {"fg": "#999999"}], ["org-roam-header-line", "header line", {"fg": "#8b6508", "weight": "bold", "extend": true}], ["org-roam-olp", "olp", {"fg": "#999999"}], ["org-roam-preview-heading", "preview heading", {"fg": "#4d4d4d", "bg": "#cccccc", "extend": true}], ["org-roam-preview-heading-highlight", "preview heading highlight", {"fg": "#4d4d4d", "bg": "#bfbfbf", "extend": true}], ["org-roam-preview-heading-selection", "preview heading selection", {"fg": "#8b4c39", "extend": true, "inherit": "org-roam-preview-heading-highlight"}], ["org-roam-preview-region", "preview region", {"inherit": "bold"}], ["org-roam-title", "title", {"weight": "bold"}]]}, "org-superstar": {"label": "org-superstar", "preview": "generic", "faces": [["org-superstar-first", "first", {"inherit": "org-warning"}], ["org-superstar-header-bullet", "header bullet", {}], ["org-superstar-item", "item", {"inherit": "default"}], ["org-superstar-leading", "leading", {"fg": "#bebebe", "inherit": "default"}]]}, "prescient": {"label": "prescient", "preview": "generic", "faces": [["prescient-primary-highlight", "primary highlight", {"weight": "bold"}], ["prescient-secondary-highlight", "secondary highlight", {"underline": {"style": "line", "color": null}, "inherit": "prescient-primary-highlight"}]]}, "rainbow-delimiters": {"label": "rainbow-delimiters", "preview": "generic", "faces": [["rainbow-delimiters-base-error-face", "base error", {"fg": "#88090b", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-base-face", "base", {"inherit": "unspecified"}], ["rainbow-delimiters-depth-1-face", "depth 1", {"fg": "#707183", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-2-face", "depth 2", {"fg": "#7388d6", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-3-face", "depth 3", {"fg": "#909183", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-4-face", "depth 4", {"fg": "#709870", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-5-face", "depth 5", {"fg": "#907373", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-6-face", "depth 6", {"fg": "#6276ba", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-7-face", "depth 7", {"fg": "#858580", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-8-face", "depth 8", {"fg": "#80a880", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-9-face", "depth 9", {"fg": "#887070", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-mismatched-face", "mismatched", {"inherit": "rainbow-delimiters-unmatched-face"}], ["rainbow-delimiters-unmatched-face", "unmatched", {"inherit": "rainbow-delimiters-base-error-face"}]]}, "symbol-overlay": {"label": "symbol-overlay", "preview": "generic", "faces": [["symbol-overlay-default-face", "default", {"inherit": "highlight"}], ["symbol-overlay-face-1", "face 1", {"fg": "#000000", "bg": "#1e90ff"}], ["symbol-overlay-face-2", "face 2", {"fg": "#000000", "bg": "#ff69b4"}], ["symbol-overlay-face-3", "face 3", {"fg": "#000000", "bg": "#ffff00"}], ["symbol-overlay-face-4", "face 4", {"fg": "#000000", "bg": "#da70d6"}], ["symbol-overlay-face-5", "face 5", {"fg": "#000000", "bg": "#ff0000"}], ["symbol-overlay-face-6", "face 6", {"fg": "#000000", "bg": "#fa8072"}], ["symbol-overlay-face-7", "face 7", {"fg": "#000000", "bg": "#00ff7f"}], ["symbol-overlay-face-8", "face 8", {"fg": "#000000", "bg": "#40e0d0"}]]}, "tmr": {"label": "tmr", "preview": "generic", "faces": [["tmr-description", "description", {"inherit": "bold"}], ["tmr-duration", "duration", {}], ["tmr-end-time", "end time", {"inherit": "error"}], ["tmr-finished", "finished", {"inherit": "error"}], ["tmr-is-acknowledged", "is acknowledged", {"inherit": "success"}], ["tmr-must-be-acknowledged", "must be acknowledged", {"inherit": "warning"}], ["tmr-start-time", "start time", {"inherit": "success"}], ["tmr-tabulated-acknowledgement", "tabulated acknowledgement", {"inherit": "bold"}], ["tmr-tabulated-description", "tabulated description", {"inherit": "font-lock-doc-face"}], ["tmr-tabulated-end-time", "tabulated end time", {"fg": "#800040"}], ["tmr-tabulated-remaining-time", "tabulated remaining time", {"fg": "#603f00"}], ["tmr-tabulated-start-time", "tabulated start time", {"fg": "#004476"}]]}, "transient": {"label": "transient", "preview": "generic", "faces": [["transient-active-infix", "active infix", {"inherit": "highlight"}], ["transient-argument", "argument", {"weight": "bold", "inherit": "font-lock-string-face"}], ["transient-delimiter", "delimiter", {"inherit": "shadow"}], ["transient-disabled-suffix", "disabled suffix", {"fg": "#000000", "bg": "#ff0000", "weight": "bold"}], ["transient-enabled-suffix", "enabled suffix", {"fg": "#000000", "bg": "#00ff00", "weight": "bold"}], ["transient-heading", "heading", {"inherit": "font-lock-keyword-face"}], ["transient-higher-level", "higher level", {"box": {"style": "line", "width": 1, "color": "#999999"}}], ["transient-inactive-argument", "inactive argument", {"inherit": "shadow"}], ["transient-inactive-value", "inactive value", {"inherit": "shadow"}], ["transient-inapt-argument", "inapt argument", {"weight": "bold", "inherit": "shadow"}], ["transient-inapt-suffix", "inapt suffix", {"slant": "italic", "inherit": "shadow"}], ["transient-key", "key", {"inherit": "font-lock-builtin-face"}], ["transient-key-exit", "key exit", {"fg": "#aa2222", "inherit": "transient-key"}], ["transient-key-noop", "key noop", {"fg": "#cccccc", "inherit": "transient-key"}], ["transient-key-recurse", "key recurse", {"fg": "#2266ff", "inherit": "transient-key"}], ["transient-key-return", "key return", {"fg": "#aaaa11", "inherit": "transient-key"}], ["transient-key-stack", "key stack", {"fg": "#dd4488", "inherit": "transient-key"}], ["transient-key-stay", "key stay", {"fg": "#22aa22", "inherit": "transient-key"}], ["transient-mismatched-key", "mismatched key", {"box": {"style": "line", "width": 1, "color": "#ff00ff"}}], ["transient-nonstandard-key", "nonstandard key", {"box": {"style": "line", "width": 1, "color": "#00ffff"}}], ["transient-unreachable", "unreachable", {"inherit": "shadow"}], ["transient-unreachable-key", "unreachable key", {"inherit": ["shadow", "transient-key"]}], ["transient-value", "value", {"weight": "bold", "inherit": "font-lock-string-face"}]]}, "vertico": {"label": "vertico", "preview": "generic", "faces": [["vertico-current", "current", {"extend": true, "inherit": "highlight"}], ["vertico-group-separator", "group separator", {"strike": {"color": null}, "inherit": "vertico-group-title"}], ["vertico-group-title", "group title", {"slant": "italic", "inherit": "shadow"}], ["vertico-multiline", "multiline", {"inherit": "shadow"}]]}, "web-mode": {"label": "web-mode", "preview": "generic", "faces": [["web-mode-annotation-face", "annotation", {"inherit": "web-mode-comment-face"}], ["web-mode-annotation-html-face", "annotation html", {"slant": "italic", "inherit": "web-mode-annotation-face"}], ["web-mode-annotation-tag-face", "annotation tag", {"underline": {"style": "line", "color": null}, "inherit": "web-mode-annotation-face"}], ["web-mode-annotation-type-face", "annotation type", {"weight": "bold", "inherit": "web-mode-annotation-face"}], ["web-mode-annotation-value-face", "annotation value", {"slant": "italic", "inherit": "web-mode-annotation-face"}], ["web-mode-block-attr-name-face", "block attr name", {"fg": "#8fbc8f"}], ["web-mode-block-attr-value-face", "block attr value", {"fg": "#5f9ea0"}], ["web-mode-block-comment-face", "block comment", {"inherit": "web-mode-comment-face"}], ["web-mode-block-control-face", "block control", {"inherit": "font-lock-preprocessor-face"}], ["web-mode-block-delimiter-face", "block delimiter", {"inherit": "font-lock-preprocessor-face"}], ["web-mode-block-face", "block", {"bg": "#ffffe0"}], ["web-mode-block-string-face", "block string", {"inherit": "web-mode-string-face"}], ["web-mode-bold-face", "bold", {"weight": "bold"}], ["web-mode-builtin-face", "builtin", {"inherit": "font-lock-builtin-face"}], ["web-mode-comment-face", "comment", {"inherit": "font-lock-comment-face"}], ["web-mode-comment-keyword-face", "comment keyword", {"weight": "bold"}], ["web-mode-constant-face", "constant", {"inherit": "font-lock-constant-face"}], ["web-mode-css-at-rule-face", "css at rule", {"inherit": "font-lock-constant-face"}], ["web-mode-css-color-face", "css color", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-comment-face", "css comment", {"inherit": "web-mode-comment-face"}], ["web-mode-css-function-face", "css function", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-priority-face", "css priority", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-property-name-face", "css property name", {"inherit": "font-lock-variable-name-face"}], ["web-mode-css-pseudo-class-face", "css pseudo class", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-selector-class-face", "css selector class", {"inherit": "font-lock-keyword-face"}], ["web-mode-css-selector-face", "css selector", {"inherit": "font-lock-keyword-face"}], ["web-mode-css-selector-tag-face", "css selector tag", {"inherit": "font-lock-keyword-face"}], ["web-mode-css-string-face", "css string", {"inherit": "web-mode-string-face"}], ["web-mode-css-variable-face", "css variable", {"slant": "italic", "inherit": "web-mode-variable-name-face"}], ["web-mode-current-column-highlight-face", "current column highlight", {"bg": "#3e3c36"}], ["web-mode-current-element-highlight-face", "current element highlight", {"fg": "#ffffff", "bg": "#000000"}], ["web-mode-doctype-face", "doctype", {"fg": "#bebebe"}], ["web-mode-error-face", "error", {"bg": "#ff0000"}], ["web-mode-filter-face", "filter", {"inherit": "font-lock-function-name-face"}], ["web-mode-folded-face", "folded", {"underline": {"style": "line", "color": null}}], ["web-mode-function-call-face", "function call", {"inherit": "font-lock-function-name-face"}], ["web-mode-function-name-face", "function name", {"inherit": "font-lock-function-name-face"}], ["web-mode-html-attr-custom-face", "html attr custom", {"inherit": "web-mode-html-attr-name-face"}], ["web-mode-html-attr-engine-face", "html attr engine", {"inherit": "web-mode-block-delimiter-face"}], ["web-mode-html-attr-equal-face", "html attr equal", {"inherit": "web-mode-html-attr-name-face"}], ["web-mode-html-attr-name-face", "html attr name", {"fg": "#8b8989"}], ["web-mode-html-attr-value-face", "html attr value", {"inherit": "font-lock-string-face"}], ["web-mode-html-entity-face", "html entity", {"slant": "italic"}], ["web-mode-html-tag-bracket-face", "html tag bracket", {"fg": "#242424"}], ["web-mode-html-tag-custom-face", "html tag custom", {"inherit": "web-mode-html-tag-face"}], ["web-mode-html-tag-face", "html tag", {"fg": "#8b8989"}], ["web-mode-html-tag-namespaced-face", "html tag namespaced", {"inherit": "web-mode-block-control-face"}], ["web-mode-html-tag-unclosed-face", "html tag unclosed", {"underline": {"style": "line", "color": null}, "inherit": "web-mode-html-tag-face"}], ["web-mode-inlay-face", "inlay", {"bg": "#ffffe0"}], ["web-mode-interpolate-color1-face", "interpolate color1", {"inherit": "web-mode-string-face"}], ["web-mode-interpolate-color2-face", "interpolate color2", {"inherit": "web-mode-string-face"}], ["web-mode-interpolate-color3-face", "interpolate color3", {"inherit": "web-mode-string-face"}], ["web-mode-interpolate-color4-face", "interpolate color4", {"inherit": "web-mode-string-face"}], ["web-mode-italic-face", "italic", {"slant": "italic"}], ["web-mode-javascript-comment-face", "javascript comment", {"inherit": "web-mode-comment-face"}], ["web-mode-javascript-string-face", "javascript string", {"inherit": "web-mode-string-face"}], ["web-mode-json-comment-face", "json comment", {"inherit": "web-mode-comment-face"}], ["web-mode-json-context-face", "json context", {"fg": "#cd69c9"}], ["web-mode-json-key-face", "json key", {"fg": "#dda0dd"}], ["web-mode-json-string-face", "json string", {"inherit": "web-mode-string-face"}], ["web-mode-jsx-depth-1-face", "jsx depth 1", {"bg": "#000053"}], ["web-mode-jsx-depth-2-face", "jsx depth 2", {"bg": "#001970"}], ["web-mode-jsx-depth-3-face", "jsx depth 3", {"bg": "#002984"}], ["web-mode-jsx-depth-4-face", "jsx depth 4", {"bg": "#49599a"}], ["web-mode-jsx-depth-5-face", "jsx depth 5", {"bg": "#9499b7"}], ["web-mode-keyword-face", "keyword", {"inherit": "font-lock-keyword-face"}], ["web-mode-param-name-face", "param name", {"fg": "#cdc9c9"}], ["web-mode-part-comment-face", "part comment", {"inherit": "web-mode-comment-face"}], ["web-mode-part-face", "part", {"inherit": "web-mode-block-face"}], ["web-mode-part-string-face", "part string", {"inherit": "web-mode-string-face"}], ["web-mode-preprocessor-face", "preprocessor", {"inherit": "font-lock-preprocessor-face"}], ["web-mode-script-face", "script", {"inherit": "web-mode-part-face"}], ["web-mode-sql-keyword-face", "sql keyword", {"weight": "bold", "slant": "italic"}], ["web-mode-string-face", "string", {"inherit": "font-lock-string-face"}], ["web-mode-style-face", "style", {"inherit": "web-mode-part-face"}], ["web-mode-symbol-face", "symbol", {"fg": "#eeb422"}], ["web-mode-type-face", "type", {"inherit": "font-lock-type-face"}], ["web-mode-underline-face", "underline", {"underline": {"style": "line", "color": null}}], ["web-mode-variable-name-face", "variable name", {"inherit": "font-lock-variable-name-face"}], ["web-mode-warning-face", "warning", {"inherit": "font-lock-warning-face"}], ["web-mode-whitespace-face", "whitespace", {"bg": "#68228b"}]]}, "yasnippet": {"label": "yasnippet", "preview": "generic", "faces": [["yas--field-debug-face", "yas field debug", {}], ["yas-field-highlight-face", "yas field highlight", {"inherit": "region"}]]}};
+const SAMPLES={"Elisp": [[["cmd", ";;"], ["cm", " cache.el"]], [["punc", "("], ["kw", "require"], ["p", " "], ["con", "'cl-lib"], ["punc", ")"]], [], [["punc", "("], ["kw", "defvar"], ["p", " "], ["var", "cache--tbl"], ["p", " "], ["punc", "("], ["fnc", "make-hash-table"], ["p", " "], ["con", ":test"], ["p", " "], ["con", "'equal"], ["punc", "))"]], [["p", " "], ["doc", "\"Memo table.\")"]], [], [["punc", "("], ["kw", "defun"], ["p", " "], ["fnd", "cache-get"], ["p", " "], ["punc", "("], ["var", "key"], ["punc", ")"]], [["p", " "], ["doc", "\"Return cached value for KEY.\""]], [["p", " "], ["punc", "("], ["kw", "or"], ["p", " "], ["punc", "("], ["bi", "gethash"], ["p", " "], ["var", "key"], ["p", " "], ["var", "cache--tbl"], ["punc", ")"]], [["p", " "], ["punc", "("], ["kw", "let"], ["p", " "], ["punc", "(("], ["var", "v"], ["p", " "], ["punc", "("], ["fnc", "compute"], ["p", " "], ["var", "key"], ["p", " "], ["num", "42"], ["punc", "))) "]], [["p", " "], ["punc", "("], ["fnc", "puthash"], ["p", " "], ["var", "key"], ["p", " "], ["var", "v"], ["p", " "], ["var", "cache--tbl"], ["punc", ") "], ["var", "v"], ["punc", "))))"]], [], [["punc", "("], ["kw", "defun"], ["p", " "], ["fnd", "cache-clear"], ["p", " "], ["punc", "()"]], [["p", " "], ["doc", "\"Empty the memo table.\""]], [["p", " "], ["punc", "("], ["kw", "interactive"], ["punc", ")"]], [["p", " "], ["punc", "("], ["fnc", "clrhash"], ["p", " "], ["var", "cache--tbl"], ["punc", ")"]], [["p", " "], ["punc", "("], ["fnc", "message"], ["p", " "], ["str", "\"cleared"], ["esc", "\\n"], ["str", "\""], ["punc", "))"]], [], [["punc", "("], ["kw", "defun"], ["p", " "], ["fnd", "cache-keys"], ["p", " "], ["punc", "()"]], [["p", " "], ["doc", "\"Return all keys.\""]], [["p", " "], ["punc", "("], ["kw", "let"], ["p", " "], ["punc", "(("], ["var", "acc"], ["p", " "], ["con", "nil"], ["punc", "))"]], [["p", " "], ["punc", "("], ["fnc", "maphash"], ["p", " "], ["punc", "("], ["kw", "lambda"], ["p", " "], ["punc", "("], ["var", "k"], ["p", " "], ["var", "_v"], ["punc", ")"], ["p", " "], ["punc", "("], ["fnc", "push"], ["p", " "], ["var", "k"], ["p", " "], ["var", "acc"], ["punc", "))"]], [["p", " "], ["var", "cache--tbl"], ["punc", ")"], ["p", " "], ["var", "acc"], ["punc", "))"]], [], [["punc", "("], ["kw", "provide"], ["p", " "], ["con", "'cache"], ["punc", ")"]]], "Go": [[["cmd", "//"], ["cm", " queue.go"]], [["kw", "package"], ["p", " "], ["var", "main"]], [], [["kw", "import"], ["p", " "], ["str", "\"fmt\""]], [], [["kw", "const"], ["p", " "], ["con", "MaxItems"], ["p", " "], ["op", "="], ["p", " "], ["num", "100"]], [], [["kw", "type"], ["p", " "], ["ty", "Order"], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"]], [["p", " "], ["prop", "ID"], ["p", " "], ["ty", "int"]], [["p", " "], ["prop", "Name"], ["p", " "], ["ty", "string"]], [["punc", "}"]], [], [["kw", "func"], ["p", " "], ["punc", "("], ["var", "q"], ["p", " "], ["op", "*"], ["ty", "Queue"], ["punc", ")"], ["p", " "], ["fnd", "Push"], ["punc", "("], ["var", "o"], ["p", " "], ["op", "*"], ["ty", "Order"], ["punc", ")"], ["p", " "], ["ty", "error"], ["p", " "], ["punc", "{"]], [["p", " "], ["cmd", "//"], ["cm", " reject nil"]], [["p", " "], ["kw", "if"], ["p", " "], ["var", "o"], ["p", " "], ["op", "=="], ["p", " "], ["con", "nil"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "return"], ["p", " "], ["fnc", "fmt.Errorf"], ["punc", "("], ["str", "\"nil"], ["esc", "\\n"], ["str", "\""], ["punc", ")"]], [["p", " "], ["punc", "}"]], [["p", " "], ["var", "q"], ["op", "."], ["prop", "items"], ["p", " "], ["op", "="], ["p", " "], ["bi", "append"], ["punc", "("], ["var", "q"], ["op", "."], ["prop", "items"], ["punc", ","], ["p", " "], ["var", "o"], ["punc", ")"]], [["p", " "], ["kw", "return"], ["p", " "], ["con", "nil"]], [["punc", "}"]], [], [["kw", "func"], ["p", " "], ["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["fnc", "fmt.Println"], ["punc", "("], ["op", "&"], ["ty", "Queue"], ["punc", "{}"], ["punc", ")"]], [["punc", "}"]]], "Python": [[["cmd", "#"], ["cm", " theme.py"]], [["kw", "from"], ["p", " "], ["var", "dataclasses"], ["p", " "], ["kw", "import"], ["p", " "], ["var", "dataclass"], ["punc", ","], ["p", " "], ["var", "field"]], [], [["con", "DEFAULT_PORT"], ["op", ":"], ["p", " "], ["ty", "int"], ["p", " "], ["op", "="], ["p", " "], ["num", "8080"]], [["con", "HEX"], ["p", " "], ["op", "="], ["p", " "], ["var", "re"], ["op", "."], ["fnc", "compile"], ["punc", "("], ["re", "r\"#[0-9a-f]{6}\""], ["punc", ")"]], [], [["dec", "@dataclass"]], [["kw", "class"], ["p", " "], ["ty", "Theme"], ["op", ":"]], [["p", " "], ["doc", "\"\"\"A color theme.\"\"\""]], [["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["ty", "str"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""]], [["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["ty", "dict"], ["p", " "], ["op", "="], ["p", " "], ["fnc", "field"], ["punc", "("], ["prop", "default_factory"], ["op", "="], ["ty", "dict"], ["punc", ")"]], [], [["p", " "], ["kw", "def"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["var", "self"], ["punc", ","], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["ty", "str"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "str"], ["p", " "], ["op", "|"], ["p", " "], ["con", "None"], ["op", ":"]], [["p", " "], ["cmd", "#"], ["cm", " fallback to none"]], [["p", " "], ["var", "v"], ["p", " "], ["op", "="], ["p", " "], ["var", "self"], ["op", "."], ["prop", "colors"], ["op", "."], ["fnc", "get"], ["punc", "("], ["var", "key"], ["punc", ","], ["p", " "], ["str", "\""], ["esc", "\\t"], ["str", "none\""], ["punc", ")"]], [["p", " "], ["kw", "if"], ["p", " "], ["bi", "len"], ["punc", "("], ["var", "v"], ["punc", ")"], ["p", " "], ["op", "=="], ["p", " "], ["num", "0"], ["op", ":"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "None"]], [["p", " "], ["kw", "return"], ["p", " "], ["var", "v"]], [], [["p", " "], ["dec", "@property"]], [["p", " "], ["kw", "def"], ["p", " "], ["fnd", "size"], ["punc", "("], ["var", "self"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "int"], ["op", ":"]], [["p", " "], ["kw", "return"], ["p", " "], ["bi", "len"], ["punc", "("], ["var", "self"], ["op", "."], ["prop", "colors"], ["punc", ")"]], [], [["var", "theme"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Theme"], ["punc", "("], ["str", "\"dupre\""], ["punc", ")"]], [["fnc", "print"], ["punc", "("], ["var", "theme"], ["op", "."], ["fnc", "resolve"], ["punc", "("], ["str", "\"bg\""], ["punc", "))"]]], "TypeScript": [[["cmd", "//"], ["cm", " orders.ts"]], [["kw", "import"], ["p", " "], ["punc", "{"], ["p", " "], ["ty", "Order"], ["p", " "], ["punc", "}"], ["p", " "], ["kw", "from"], ["p", " "], ["str", "\"./types\""]], [], [["kw", "export"], ["p", " "], ["kw", "interface"], ["p", " "], ["ty", "Queue"], ["p", " "], ["punc", "{"]], [["p", " "], ["prop", "max"], ["op", ":"], ["p", " "], ["ty", "number"], ["punc", ";"]], [["p", " "], ["prop", "items"], ["op", ":"], ["p", " "], ["ty", "Order"], ["punc", "[];"]], [["punc", "}"]], [], [["dec", "@Injectable"], ["punc", "()"]], [["kw", "export"], ["p", " "], ["kw", "class"], ["p", " "], ["ty", "OrderQueue"], ["p", " "], ["kw", "implements"], ["p", " "], ["ty", "Queue"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "private"], ["p", " "], ["prop", "re"], ["p", " "], ["op", "="], ["p", " "], ["re", "/^#[0-9a-f]{6}$/i"], ["punc", ";"]], [], [["p", " "], ["fnd", "push"], ["punc", "("], ["var", "o"], ["op", ":"], ["p", " "], ["ty", "Order"], ["punc", ")"], ["op", ":"], ["p", " "], ["ty", "boolean"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "o"], ["p", " "], ["op", "==="], ["p", " "], ["con", "null"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "false"], ["punc", ";"]], [["p", " "], ["var", "console"], ["op", "."], ["fnc", "log"], ["punc", "("], ["str", "`id "], ["punc", "${"], ["var", "o"], ["op", "."], ["prop", "id"], ["punc", "}"], ["esc", "\\n"], ["str", "`"], ["punc", ");"]], [["p", " "], ["kw", "return"], ["p", " "], ["con", "true"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"]], [], [["kw", "const"], ["p", " "], ["con", "LIMIT"], ["op", ":"], ["p", " "], ["ty", "number"], ["p", " "], ["op", "="], ["p", " "], ["num", "50"], ["punc", ";"]], [["kw", "const"], ["p", " "], ["var", "q"], ["p", " "], ["op", "="], ["p", " "], ["kw", "new"], ["p", " "], ["ty", "OrderQueue"], ["punc", "()"], ["punc", ";"]], [["var", "q"], ["op", "."], ["fnd", "push"], ["punc", "("], ["punc", "{"], ["p", " "], ["prop", "id"], ["op", ":"], ["p", " "], ["num", "1"], ["p", " "], ["punc", "}"], ["p", " "], ["kw", "as"], ["p", " "], ["ty", "Order"], ["punc", ")"], ["punc", ";"]], [["var", "console"], ["op", "."], ["fnc", "log"], ["punc", "("], ["var", "q"], ["op", "."], ["prop", "max"], ["punc", ")"], ["punc", ";"]], [["kw", "const"], ["p", " "], ["var", "cap"], ["p", " "], ["op", "="], ["p", " "], ["var", "Math"], ["op", "."], ["bi", "max"], ["punc", "("], ["con", "LIMIT"], ["punc", ","], ["p", " "], ["num", "0"], ["punc", ")"], ["punc", ";"]]], "Java": [[["cmd", "/**"], ["doc", " A color theme. */"]], [["kw", "package"], ["p", " "], ["var", "com"], ["op", "."], ["var", "dupre"], ["punc", ";"]], [["kw", "import"], ["p", " "], ["var", "java"], ["op", "."], ["var", "util"], ["op", "."], ["var", "regex"], ["op", "."], ["ty", "Pattern"], ["punc", ";"]], [], [["dec", "@Deprecated"]], [["kw", "public"], ["p", " "], ["kw", "final"], ["p", " "], ["kw", "class"], ["p", " "], ["ty", "Theme"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "private"], ["p", " "], ["kw", "static"], ["p", " "], ["kw", "final"], ["p", " "], ["ty", "int"], ["p", " "], ["con", "MAX_PORT"], ["p", " "], ["op", "="], ["p", " "], ["num", "8080"], ["punc", ";"]], [["p", " "], ["kw", "private"], ["p", " "], ["kw", "final"], ["p", " "], ["ty", "String"], ["p", " "], ["prop", "name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ";"]], [["p", " "], ["kw", "private"], ["p", " "], ["kw", "static"], ["p", " "], ["kw", "final"], ["p", " "], ["ty", "Pattern"], ["p", " "], ["con", "HEX"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Pattern"], ["op", "."], ["fnc", "compile"], ["punc", "("], ["re", "\"#[0-9a-f]{6}\""], ["punc", ")"], ["punc", ";"]], [], [["p", " "], ["dec", "@Override"]], [["p", " "], ["kw", "public"], ["p", " "], ["ty", "String"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["ty", "String"], ["p", " "], ["var", "key"], ["punc", ")"], ["p", " "], ["punc", "{"]], [["p", " "], ["cmd", "//"], ["cm", " fall back to null"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "key"], ["op", "."], ["fnc", "isEmpty"], ["punc", "()"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "null"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["var", "key"], ["op", "."], ["fnc", "strip"], ["punc", "("], ["punc", ")"], ["op", "+"], ["str", "\""], ["esc", "\\t"], ["str", "\""], ["punc", ";"]], [["p", " "], ["punc", "}"]], [], [["p", " "], ["kw", "public"], ["p", " "], ["kw", "static"], ["p", " "], ["ty", "void"], ["p", " "], ["fnd", "main"], ["punc", "("], ["ty", "String"], ["punc", "[]"], ["p", " "], ["var", "args"], ["punc", ")"], ["p", " "], ["punc", "{"]], [["p", " "], ["ty", "var"], ["p", " "], ["var", "t"], ["p", " "], ["op", "="], ["p", " "], ["kw", "new"], ["p", " "], ["ty", "Theme"], ["punc", "()"], ["punc", ";"]], [["p", " "], ["ty", "System"], ["op", "."], ["prop", "out"], ["op", "."], ["fnc", "println"], ["punc", "("], ["var", "t"], ["op", "."], ["fnc", "resolve"], ["punc", "("], ["str", "\"bg\""], ["punc", "))"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"]]], "C": [[["cmd", "/**"], ["doc", " Order queue. */"]], [["pp", "#include"], ["p", " "], ["str", "<stdio.h>"]], [["pp", "#include"], ["p", " "], ["str", "<stdlib.h>"]], [["pp", "#define"], ["p", " "], ["con", "MAX_PORT"], ["p", " "], ["num", "8080"]], [], [["kw", "typedef"], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"]], [["p", " "], ["ty", "int"], ["p", " "], ["prop", "id"], ["punc", ";"]], [["p", " "], ["kw", "const"], ["p", " "], ["ty", "char"], ["p", " "], ["op", "*"], ["prop", "name"], ["punc", ";"]], [["punc", "}"], ["p", " "], ["ty", "Order"], ["punc", ";"]], [], [["cmd", "//"], ["cm", " returns -1 on null input"]], [["ty", "int"], ["p", " "], ["fnd", "push"], ["punc", "("], ["ty", "Order"], ["p", " "], ["op", "*"], ["var", "o"], ["punc", ")"], ["p", " "], ["dec", "__attribute__"], ["punc", "(("], ["dec", "nonnull"], ["punc", "))"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "o"], ["p", " "], ["op", "=="], ["p", " "], ["con", "NULL"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["num", "-1"], ["punc", ";"]], [["p", " "], ["fnc", "printf"], ["punc", "("], ["str", "\"id=%d"], ["esc", "\\n"], ["str", "\""], ["punc", ","], ["p", " "], ["var", "o"], ["op", "->"], ["prop", "id"], ["punc", ");"]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "0"], ["punc", ";"]], [["punc", "}"]], [], [["ty", "int"], ["p", " "], ["fnd", "main"], ["punc", "("], ["ty", "void"], ["punc", ")"], ["p", " "], ["punc", "{"]], [["p", " "], ["ty", "Order"], ["p", " "], ["var", "o"], ["p", " "], ["op", "="], ["p", " "], ["punc", "{"], ["p", " "], ["op", "."], ["prop", "id"], ["p", " "], ["op", "="], ["p", " "], ["num", "1"], ["punc", ","], ["p", " "], ["op", "."], ["prop", "name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["ty", "Order"], ["p", " "], ["op", "*"], ["var", "p2"], ["p", " "], ["op", "="], ["p", " "], ["bi", "malloc"], ["punc", "("], ["bi", "sizeof"], ["punc", "("], ["ty", "Order"], ["punc", "))"], ["punc", ";"]], [["p", " "], ["fnc", "push"], ["punc", "("], ["op", "&"], ["var", "o"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["bi", "free"], ["punc", "("], ["var", "p2"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "0"], ["punc", ";"]], [["punc", "}"]]], "C++": [[["cmd", "/**"], ["doc", " A color theme. */"]], [["pp", "#include"], ["p", " "], ["str", "<string>"]], [["pp", "#include"], ["p", " "], ["str", "<regex>"]], [["pp", "#pragma"], ["p", " "], ["pp", "once"]], [], [["kw", "namespace"], ["p", " "], ["var", "dupre"], ["p", " "], ["punc", "{"]], [], [["kw", "template"], ["op", "<"], ["kw", "typename"], ["p", " "], ["ty", "T"], ["op", ">"], ["p", " "], ["kw", "class"], ["p", " "], ["ty", "Theme"], ["p", " "], ["punc", "{"]], [["kw", "public"], ["op", ":"]], [["p", " "], ["kw", "static"], ["p", " "], ["kw", "constexpr"], ["p", " "], ["ty", "int"], ["p", " "], ["con", "MAX"], ["p", " "], ["op", "="], ["p", " "], ["num", "0x20"], ["punc", ";"]], [["p", " "], ["ty", "std"], ["op", "::"], ["ty", "string"], ["p", " "], ["prop", "name_"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ";"]], [], [["p", " "], ["dec", "[[nodiscard]]"], ["p", " "], ["ty", "T"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["kw", "const"], ["p", " "], ["ty", "std"], ["op", "::"], ["ty", "string"], ["op", "&"], ["p", " "], ["var", "key"], ["punc", ")"], ["p", " "], ["kw", "const"], ["p", " "], ["punc", "{"]], [["p", " "], ["cmd", "//"], ["cm", " validate against a hex pattern"]], [["p", " "], ["kw", "static"], ["p", " "], ["ty", "std"], ["op", "::"], ["ty", "regex"], ["p", " "], ["var", "re"], ["punc", "("], ["re", "R\"(#[0-9a-f]{6})\""], ["punc", ")"], ["punc", ";"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "key"], ["op", "."], ["fnc", "empty"], ["punc", "()"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "nullptr"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["ty", "T"], ["punc", "{"], ["var", "key"], ["punc", "}"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"], ["punc", ";"]], [], [["ty", "int"], ["p", " "], ["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "auto"], ["p", " "], ["var", "t"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Theme"], ["op", "<"], ["ty", "int"], ["op", ">"], ["punc", "{}"], ["punc", ";"]], [["p", " "], ["bi", "static_cast"], ["op", "<"], ["ty", "int"], ["op", ">"], ["punc", "("], ["var", "t"], ["op", "."], ["prop", "name_"], ["op", "."], ["fnc", "size"], ["punc", "())"], ["punc", ";"]], [["p", " "], ["ty", "std"], ["op", "::"], ["fnc", "printf"], ["punc", "("], ["str", "\"%s"], ["esc", "\\n"], ["str", "\""], ["punc", ","], ["p", " "], ["var", "t"], ["op", "."], ["prop", "name_"], ["op", "."], ["fnc", "c_str"], ["punc", "())"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "0"], ["punc", ";"]], [["punc", "}"]]], "Rust": [[["cmd", "//"], ["cm", " theme.rs"]], [["dec", "#![allow(dead_code)]"]], [["kw", "use"], ["p", " "], ["var", "std"], ["op", "::"], ["var", "fmt"], ["punc", ";"]], [], [["dec", "#[derive"], ["punc", "("], ["dec", "Debug"], ["punc", ","], ["p", " "], ["dec", "Clone"], ["punc", ")]"]], [["kw", "pub"], ["p", " "], ["kw", "trait"], ["p", " "], ["ty", "Theme"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "const"], ["p", " "], ["con", "NAME"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'static"], ["p", " "], ["ty", "str"], ["punc", ";"]], [["p", " "], ["kw", "fn"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["op", "&"], ["var", "'a"], ["p", " "], ["var", "self"], ["punc", ","], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "Option"], ["op", "<"], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["op", ">"], ["punc", ";"]], [["punc", "}"]], [], [["kw", "pub"], ["p", " "], ["kw", "struct"], ["p", " "], ["ty", "Palette"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "pub"], ["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ","]], [["p", " "], ["kw", "pub"], ["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["ty", "Vec"], ["op", "<"], ["punc", "("], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ","], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ")"], ["op", ">"], ["punc", ","]], [["punc", "}"]], [], [["kw", "impl"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["ty", "Theme"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["kw", "for"], ["p", " "], ["ty", "Palette"], ["op", "<"], ["var", "'a"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "const"], ["p", " "], ["con", "NAME"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'static"], ["p", " "], ["ty", "str"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ";"]], [["p", " "], ["kw", "fn"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["op", "&"], ["var", "'a"], ["p", " "], ["var", "self"], ["punc", ","], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["punc", ")"], ["p", " "], ["op", "->"], ["p", " "], ["ty", "Option"], ["op", "<"], ["op", "&"], ["var", "'a"], ["p", " "], ["ty", "str"], ["op", ">"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["var", "key"], ["op", "."], ["fnc", "is_empty"], ["punc", "()"], ["p", " "], ["punc", "{"], ["p", " "], ["kw", "return"], ["p", " "], ["con", "None"], ["punc", ";"], ["p", " "], ["punc", "}"]], [["p", " "], ["var", "self"], ["op", "."], ["prop", "colors"], ["op", "."], ["fnc", "iter"], ["punc", "()"], ["op", "."], ["fnc", "find"], ["punc", "("], ["op", "|"], ["punc", "("], ["var", "k"], ["punc", ","], ["p", " "], ["var", "_"], ["punc", ")"], ["op", "|"], ["p", " "], ["op", "*"], ["var", "k"], ["p", " "], ["op", "=="], ["p", " "], ["var", "key"], ["punc", ")"], ["op", "."], ["fnc", "map"], ["punc", "("], ["op", "|"], ["punc", "("], ["var", "_"], ["punc", ","], ["p", " "], ["var", "v"], ["punc", ")"], ["op", "|"], ["p", " "], ["op", "*"], ["var", "v"], ["punc", ")"]], [["p", " "], ["punc", "}"]], [["punc", "}"]], [], [["kw", "fn"], ["p", " "], ["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "let"], ["p", " "], ["var", "palette"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Palette"], ["p", " "], ["punc", "{"], ["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["str", "\"dupre\""], ["punc", ","], ["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["bi", "vec!"], ["punc", "["], ["punc", "("], ["str", "\"bg\""], ["punc", ","], ["p", " "], ["str", "\"#0d0b0a\""], ["punc", ")"], ["punc", "]"], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["bi", "println!"], ["punc", "("], ["str", "\"{:?}\""], ["punc", ","], ["p", " "], ["var", "palette"], ["op", "."], ["fnc", "resolve"], ["punc", "("], ["str", "\"bg\""], ["punc", "))"], ["punc", ";"]], [["punc", "}"]]], "Zig": [[["cmd", "//"], ["cm", " theme.zig"]], [["kw", "const"], ["p", " "], ["var", "std"], ["p", " "], ["op", "="], ["p", " "], ["bi", "@import"], ["punc", "("], ["str", "\"std\""], ["punc", ")"], ["punc", ";"]], [["kw", "const"], ["p", " "], ["ty", "Allocator"], ["p", " "], ["op", "="], ["p", " "], ["var", "std"], ["op", "."], ["var", "mem"], ["op", "."], ["ty", "Allocator"], ["punc", ";"]], [], [["kw", "pub"], ["p", " "], ["kw", "const"], ["p", " "], ["ty", "Theme"], ["p", " "], ["op", "="], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"]], [["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["punc", ","]], [["p", " "], ["prop", "colors"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "Color"], ["punc", ","]], [], [["p", " "], ["kw", "pub"], ["p", " "], ["kw", "fn"], ["p", " "], ["fnd", "init"], ["punc", "("], ["var", "alloc"], ["op", ":"], ["p", " "], ["op", "*"], ["ty", "Allocator"], ["punc", ")"], ["p", " "], ["op", "!"], ["bi", "@This"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "const"], ["p", " "], ["var", "colors"], ["p", " "], ["op", "="], ["p", " "], ["kw", "try"], ["p", " "], ["var", "alloc"], ["op", "."], ["fnc", "alloc"], ["punc", "("], ["ty", "Color"], ["punc", ","], ["p", " "], ["num", "2"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["var", "colors"], ["punc", "["], ["num", "0"], ["punc", "]"], ["p", " "], ["op", "="], ["p", " "], ["ty", "Color"], ["punc", "{"], ["p", " "], ["prop", ".name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"bg\""], ["punc", ","], ["p", " "], ["prop", ".hex"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"#0d0b0a\""], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["kw", "return"], ["p", " "], ["bi", "@This"], ["punc", "()"], ["punc", "{"], ["p", " "], ["prop", ".name"], ["p", " "], ["op", "="], ["p", " "], ["str", "\"dupre\""], ["punc", ","], ["p", " "], ["prop", ".colors"], ["p", " "], ["op", "="], ["p", " "], ["var", "colors"], ["p", " "], ["punc", "}"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["punc", "}"], ["punc", ";"]], [], [["kw", "const"], ["p", " "], ["ty", "Color"], ["p", " "], ["op", "="], ["p", " "], ["kw", "struct"], ["p", " "], ["punc", "{"], ["p", " "], ["prop", "name"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["punc", ","], ["p", " "], ["prop", "hex"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["p", " "], ["punc", "}"], ["punc", ";"]], [], [["kw", "fn"], ["p", " "], ["fnd", "resolve"], ["punc", "("], ["var", "theme"], ["op", ":"], ["p", " "], ["ty", "Theme"], ["punc", ","], ["p", " "], ["kw", "comptime"], ["p", " "], ["var", "key"], ["op", ":"], ["p", " "], ["punc", "["], ["punc", ":"], ["num", "0"], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["punc", ")"], ["p", " "], ["op", "!"], ["punc", "["], ["punc", "]"], ["kw", "const"], ["p", " "], ["ty", "u8"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "inline"], ["p", " "], ["kw", "for"], ["p", " "], ["punc", "("], ["var", "theme"], ["op", "."], ["prop", "colors"], ["punc", ")"], ["p", " "], ["op", "|"], ["var", "color"], ["op", "|"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "("], ["var", "std"], ["op", "."], ["var", "mem"], ["op", "."], ["fnc", "eql"], ["punc", "("], ["ty", "u8"], ["punc", ","], ["p", " "], ["var", "color"], ["op", "."], ["prop", "name"], ["punc", ","], ["p", " "], ["var", "key"], ["punc", ")"], ["punc", ")"], ["p", " "], ["kw", "return"], ["p", " "], ["var", "color"], ["op", "."], ["prop", "hex"], ["punc", ";"]], [["p", " "], ["punc", "}"]], [["p", " "], ["kw", "return"], ["p", " "], ["con", "error.MissingColor"], ["punc", ";"]], [["punc", "}"]], [], [["kw", "test"], ["p", " "], ["str", "\"resolve bg\""], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "var"], ["p", " "], ["var", "arena"], ["p", " "], ["op", "="], ["p", " "], ["var", "std"], ["op", "."], ["var", "heap"], ["op", "."], ["ty", "ArenaAllocator"], ["op", "."], ["fnc", "init"], ["punc", "("], ["var", "std"], ["op", "."], ["var", "testing"], ["op", "."], ["prop", "allocator"], ["punc", ")"], ["punc", ";"]], [["p", " "], ["kw", "defer"], ["p", " "], ["var", "arena"], ["op", "."], ["fnc", "deinit"], ["punc", "()"], ["punc", ";"]], [["p", " "], ["kw", "try"], ["p", " "], ["var", "std"], ["op", "."], ["var", "testing"], ["op", "."], ["fnc", "expectEqualStrings"], ["punc", "("], ["str", "\"#0d0b0a\""], ["punc", ","], ["p", " "], ["kw", "try"], ["p", " "], ["fnc", "resolve"], ["punc", "("], ["kw", "try"], ["p", " "], ["ty", "Theme"], ["op", "."], ["fnc", "init"], ["punc", "("], ["op", "&"], ["var", "arena"], ["op", "."], ["prop", "allocator"], ["punc", ")"], ["punc", ","], ["p", " "], ["str", "\"bg\""], ["punc", "))"], ["punc", ";"]], [["punc", "}"]]], "Shell": [[["cmd", "#!"], ["cm", "/bin/bash"]], [["cmd", "#"], ["cm", " deploy.sh"]], [["bi", "set"], ["p", " "], ["op", "-"], ["var", "euo"], ["p", " "], ["var", "pipefail"]], [], [["var", "PORT"], ["op", "="], ["num", "8080"]], [["var", "NAME"], ["op", "="], ["str", "\"dupre\""]], [], [["fnd", "deploy"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "local"], ["p", " "], ["var", "target"], ["op", "="], ["str", "\"$1\""]], [["p", " "], ["kw", "if"], ["p", " "], ["punc", "[["], ["p", " "], ["op", "-z"], ["p", " "], ["str", "\"$target\""], ["p", " "], ["punc", "]]"], ["punc", ";"], ["p", " "], ["kw", "then"]], [["p", " "], ["bi", "echo"], ["p", " "], ["str", "\"no target\""]], [["p", " "], ["kw", "return"], ["p", " "], ["num", "1"]], [["p", " "], ["kw", "fi"]], [["p", " "], ["fnc", "rsync"], ["p", " "], ["op", "-az"], ["p", " "], ["str", "\"$NAME\""], ["p", " "], ["str", "\"$target\""]], [["punc", "}"]], [], [["fnd", "main"], ["punc", "()"], ["p", " "], ["punc", "{"]], [["p", " "], ["kw", "for"], ["p", " "], ["var", "host"], ["p", " "], ["kw", "in"], ["p", " "], ["str", "\"$@\""], ["punc", ";"], ["p", " "], ["kw", "do"]], [["p", " "], ["fnc", "deploy"], ["p", " "], ["str", "\"$host\""], ["p", " "], ["op", "||"], ["p", " "], ["bi", "exit"], ["p", " "], ["num", "1"]], [["p", " "], ["kw", "done"]], [["p", " "], ["bi", "echo"], ["p", " "], ["op", "-e"], ["p", " "], ["str", "\"all done"], ["esc", "\\n"], ["str", "\""]], [["punc", "}"]], [], [["fnc", "main"], ["p", " "], ["str", "\"$@\""]]]}, CATS=[["bg", "bg (ground)", "Aa Bb 123"], ["p", "fg", "other / whitespace"], ["kw", "keyword", "class def if return"], ["bi", "builtin", "len echo printf"], ["pp", "preprocessor", "#include #define"], ["fnd", "function \u00b7 def", "resolve push"], ["fnc", "function \u00b7 call", "printf rsync get"], ["dec", "decorator \u2192 type", "@dataclass"], ["ty", "type / class", "int str Order Queue"], ["prop", "property / field", "id name items"], ["con", "constant", "None nil NULL true"], ["num", "number", "8080 100 -1"], ["str", "string", "\"dupre\" \"fmt\""], ["esc", "escape", "\\n \\t"], ["re", "regexp", "/^#[0-9a-f]+/"], ["doc", "docstring", "\"\"\"...\"\"\""], ["cm", "comment", "# reject nil"], ["cmd", "comment delim", "# // ;;"], ["var", "variable / use", "value key self"], ["op", "operator", ": = -> =="], ["punc", "punctuation", "{ } ( ) ;"]], UI_FACES=[["cursor", "cursor", "Aa|"], ["region", "region (selection)", "selected text"], ["hl-line", "hl-line (current line)", "current line"], ["highlight", "highlight", "hover"], ["mode-line", "mode-line", "status active"], ["mode-line-highlight", "mode-line-highlight (mode-line hover)", "git:main"], ["mode-line-inactive", "mode-line-inactive", "status idle"], ["fringe", "fringe", "| |"], ["line-number", "line-number", " 42"], ["line-number-current-line", "line-number-current-line", "> 42"], ["minibuffer-prompt", "minibuffer-prompt", "M-x "], ["isearch", "isearch (match)", "match"], ["lazy-highlight", "lazy-highlight", "other match"], ["isearch-fail", "isearch-fail", "no match"], ["show-paren-match", "show-paren-match", "( )"], ["show-paren-mismatch", "show-paren-mismatch", ") ("], ["link", "link", "https://"], ["error", "error", "error!"], ["warning", "warning", "warning"], ["success", "success", "ok"], ["vertical-border", "vertical-border", "|"]], APPS={"org-mode": {"label": "org-mode", "preview": "org", "faces": [["org-document-title", "document title", {}], ["org-document-info", "document info", {}], ["org-document-info-keyword", "document info keyword", {}], ["org-level-1", "level 1", {}], ["org-level-2", "level 2", {}], ["org-level-3", "level 3", {}], ["org-level-4", "level 4", {}], ["org-level-5", "level 5", {}], ["org-level-6", "level 6", {}], ["org-level-7", "level 7", {}], ["org-level-8", "level 8", {}], ["org-headline-todo", "headline todo", {}], ["org-headline-done", "headline done", {}], ["org-todo", "todo", {}], ["org-done", "done", {}], ["org-priority", "priority", {}], ["org-tag", "tag", {}], ["org-tag-group", "tag group", {}], ["org-special-keyword", "special keyword", {}], ["org-drawer", "drawer", {}], ["org-property-value", "property value", {}], ["org-checkbox", "checkbox", {}], ["org-checkbox-statistics-todo", "checkbox statistics todo", {}], ["org-checkbox-statistics-done", "checkbox statistics done", {}], ["org-warning", "warning", {}], ["org-link", "link", {}], ["org-footnote", "footnote", {}], ["org-date", "date", {}], ["org-sexp-date", "sexp date", {}], ["org-date-selected", "date selected", {}], ["org-target", "target", {}], ["org-macro", "macro", {}], ["org-cite", "cite", {}], ["org-cite-key", "cite key", {}], ["org-block", "block", {}], ["org-block-begin-line", "block begin line", {}], ["org-block-end-line", "block end line", {}], ["org-code", "code", {}], ["org-verbatim", "verbatim", {}], ["org-inline-src-block", "inline src block", {}], ["org-quote", "quote", {}], ["org-verse", "verse", {}], ["org-latex-and-related", "latex and related", {}], ["org-table", "table", {}], ["org-table-header", "table header", {}], ["org-table-row", "table row", {}], ["org-formula", "formula", {}], ["org-column", "column", {}], ["org-column-title", "column title", {}], ["org-list-dt", "list dt", {}], ["org-meta-line", "meta line", {}], ["org-ellipsis", "ellipsis", {}], ["org-hide", "hide", {}], ["org-indent", "indent", {}], ["org-archived", "archived", {}], ["org-default", "default", {}], ["org-dispatcher-highlight", "dispatcher highlight", {}], ["org-agenda-structure", "agenda structure", {}], ["org-agenda-structure-secondary", "agenda structure secondary", {}], ["org-agenda-structure-filter", "agenda structure filter", {}], ["org-agenda-date", "agenda date", {}], ["org-agenda-date-today", "agenda date today", {}], ["org-agenda-date-weekend", "agenda date weekend", {}], ["org-agenda-date-weekend-today", "agenda date weekend today", {}], ["org-agenda-current-time", "agenda current time", {}], ["org-agenda-done", "agenda done", {}], ["org-agenda-dimmed-todo-face", "agenda dimmed todo", {}], ["org-agenda-calendar-event", "agenda calendar event", {}], ["org-agenda-calendar-sexp", "agenda calendar sexp", {}], ["org-agenda-calendar-daterange", "agenda calendar daterange", {}], ["org-agenda-diary", "agenda diary", {}], ["org-agenda-clocking", "agenda clocking", {}], ["org-agenda-column-dateline", "agenda column dateline", {}], ["org-agenda-restriction-lock", "agenda restriction lock", {}], ["org-agenda-filter-category", "agenda filter category", {}], ["org-agenda-filter-effort", "agenda filter effort", {}], ["org-agenda-filter-regexp", "agenda filter regexp", {}], ["org-agenda-filter-tags", "agenda filter tags", {}], ["org-scheduled", "scheduled", {}], ["org-scheduled-today", "scheduled today", {}], ["org-scheduled-previously", "scheduled previously", {}], ["org-upcoming-deadline", "upcoming deadline", {}], ["org-upcoming-distant-deadline", "upcoming distant deadline", {}], ["org-imminent-deadline", "imminent deadline", {}], ["org-time-grid", "time grid", {}], ["org-clock-overlay", "clock overlay", {}], ["org-mode-line-clock", "mode line clock", {}], ["org-mode-line-clock-overrun", "mode line clock overrun", {}]]}, "magit": {"label": "magit", "preview": "magit", "faces": [["magit-section-heading", "section heading", {"fg": "#8b6508", "weight": "bold", "extend": true}], ["magit-section-secondary-heading", "section secondary heading", {"weight": "bold", "extend": true}], ["magit-section-heading-selection", "section heading selection", {"fg": "#8b4c39", "extend": true}], ["magit-section-highlight", "section highlight", {"bg": "#f2f2f2", "extend": true}], ["magit-section-child-count", "section child count", {}], ["magit-diff-added", "diff added", {"fg": "#22aa22", "bg": "#ddffdd", "extend": true}], ["magit-diff-added-highlight", "diff added highlight", {"fg": "#22aa22", "bg": "#cceecc", "extend": true}], ["magit-diff-removed", "diff removed", {"fg": "#aa2222", "bg": "#ffdddd", "extend": true}], ["magit-diff-removed-highlight", "diff removed highlight", {"fg": "#aa2222", "bg": "#eecccc", "extend": true}], ["magit-diff-context", "diff context", {"fg": "#7f7f7f", "extend": true}], ["magit-diff-context-highlight", "diff context highlight", {"fg": "#7f7f7f", "bg": "#f2f2f2", "extend": true}], ["magit-diff-file-heading", "diff file heading", {"weight": "bold", "extend": true}], ["magit-diff-file-heading-highlight", "diff file heading highlight", {"extend": true, "inherit": "magit-section-highlight"}], ["magit-diff-file-heading-selection", "diff file heading selection", {"fg": "#8b4c39", "extend": true, "inherit": "magit-diff-file-heading-highlight"}], ["magit-diff-hunk-heading", "diff hunk heading", {"fg": "#333333", "bg": "#e5e5e5", "extend": true}], ["magit-diff-hunk-heading-highlight", "diff hunk heading highlight", {"fg": "#333333", "bg": "#cccccc", "extend": true}], ["magit-diff-hunk-heading-selection", "diff hunk heading selection", {"fg": "#8b4c39", "extend": true, "inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-hunk-region", "diff hunk region", {"inherit": "bold"}], ["magit-diff-lines-heading", "diff lines heading", {"bg": "#cd8162", "extend": true, "inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-lines-boundary", "diff lines boundary", {"extend": true, "inherit": "magit-diff-lines-heading"}], ["magit-diff-base", "diff base", {"fg": "#aaaa11", "bg": "#ffffcc", "extend": true}], ["magit-diff-base-highlight", "diff base highlight", {"fg": "#aaaa11", "bg": "#eeeebb", "extend": true}], ["magit-diff-our", "diff our", {"inherit": "magit-diff-removed"}], ["magit-diff-our-highlight", "diff our highlight", {"inherit": "magit-diff-removed-highlight"}], ["magit-diff-their", "diff their", {"inherit": "magit-diff-added"}], ["magit-diff-their-highlight", "diff their highlight", {"inherit": "magit-diff-added-highlight"}], ["magit-diff-conflict-heading", "diff conflict heading", {"inherit": "magit-diff-hunk-heading"}], ["magit-diff-conflict-heading-highlight", "diff conflict heading highlight", {"inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-revision-summary", "diff revision summary", {"inherit": "magit-diff-hunk-heading"}], ["magit-diff-revision-summary-highlight", "diff revision summary highlight", {"inherit": "magit-diff-hunk-heading-highlight"}], ["magit-diff-whitespace-warning", "diff whitespace warning", {"inherit": "trailing-whitespace"}], ["magit-diffstat-added", "diffstat added", {"fg": "#22aa22"}], ["magit-diffstat-removed", "diffstat removed", {"fg": "#aa2222"}], ["magit-branch-current", "branch current", {"inherit": "magit-branch-local"}], ["magit-branch-local", "branch local", {"fg": "#4a708b"}], ["magit-branch-remote", "branch remote", {"fg": "#6e8b3d"}], ["magit-branch-remote-head", "branch remote head", {"inherit": "magit-branch-remote"}], ["magit-branch-upstream", "branch upstream", {"slant": "italic"}], ["magit-branch-warning", "branch warning", {"inherit": "warning"}], ["magit-head", "head", {"inherit": "magit-branch-local"}], ["magit-tag", "tag", {"fg": "#8b6914"}], ["magit-hash", "hash", {"fg": "#999999"}], ["magit-filename", "filename", {}], ["magit-dimmed", "dimmed", {"fg": "#7f7f7f"}], ["magit-keyword", "keyword", {"inherit": "font-lock-string-face"}], ["magit-keyword-squash", "keyword squash", {"inherit": "font-lock-warning-face"}], ["magit-refname", "refname", {"fg": "#4d4d4d"}], ["magit-refname-stash", "refname stash", {"inherit": "magit-refname"}], ["magit-refname-wip", "refname wip", {"inherit": "magit-refname"}], ["magit-refname-pullreq", "refname pullreq", {"inherit": "magit-refname"}], ["magit-log-author", "log author", {"fg": "#b22222"}], ["magit-log-date", "log date", {"fg": "#4d4d4d"}], ["magit-log-graph", "log graph", {"fg": "#4d4d4d"}], ["magit-header-line", "header line", {"inherit": "magit-section-heading"}], ["magit-header-line-key", "header line key", {"inherit": "font-lock-builtin-face"}], ["magit-header-line-log-select", "header line log select", {"inherit": "bold"}], ["magit-process-ok", "process ok", {"fg": "#00ff00", "inherit": "magit-section-heading"}], ["magit-process-ng", "process ng", {"fg": "#ff0000", "inherit": "magit-section-heading"}], ["magit-mode-line-process", "mode line process", {"inherit": "mode-line-emphasis"}], ["magit-mode-line-process-error", "mode line process error", {"inherit": "error"}], ["magit-bisect-good", "bisect good", {"fg": "#556b2f"}], ["magit-bisect-bad", "bisect bad", {"fg": "#8b3a3a"}], ["magit-bisect-skip", "bisect skip", {"fg": "#b8860b"}], ["magit-blame-heading", "blame heading", {"extend": true, "inherit": "magit-blame-highlight"}], ["magit-blame-highlight", "blame highlight", {"fg": "#000000", "bg": "#cccccc", "extend": true}], ["magit-blame-hash", "blame hash", {}], ["magit-blame-name", "blame name", {}], ["magit-blame-date", "blame date", {}], ["magit-blame-summary", "blame summary", {}], ["magit-blame-dimmed", "blame dimmed", {"inherit": "magit-dimmed"}], ["magit-blame-margin", "blame margin", {"inherit": "magit-blame-highlight"}], ["magit-cherry-equivalent", "cherry equivalent", {"fg": "#ff00ff"}], ["magit-cherry-unmatched", "cherry unmatched", {"fg": "#00ffff"}], ["magit-signature-good", "signature good", {"fg": "#00ff00"}], ["magit-signature-bad", "signature bad", {"fg": "#ff0000", "weight": "bold"}], ["magit-signature-untrusted", "signature untrusted", {"fg": "#66cdaa"}], ["magit-signature-expired", "signature expired", {"fg": "#ffa500"}], ["magit-signature-expired-key", "signature expired key", {"inherit": "magit-signature-expired"}], ["magit-signature-revoked", "signature revoked", {"fg": "#d02090"}], ["magit-signature-error", "signature error", {"fg": "#add8e6"}], ["magit-reflog-commit", "reflog commit", {"fg": "#00ff00"}], ["magit-reflog-amend", "reflog amend", {"fg": "#ff00ff"}], ["magit-reflog-merge", "reflog merge", {"fg": "#00ff00"}], ["magit-reflog-checkout", "reflog checkout", {"fg": "#0000ff"}], ["magit-reflog-reset", "reflog reset", {"fg": "#ff0000"}], ["magit-reflog-rebase", "reflog rebase", {"fg": "#ff00ff"}], ["magit-reflog-cherry-pick", "reflog cherry pick", {"fg": "#00ff00"}], ["magit-reflog-remote", "reflog remote", {"fg": "#00ffff"}], ["magit-reflog-other", "reflog other", {"fg": "#00ffff"}], ["magit-sequence-pick", "sequence pick", {"inherit": "default"}], ["magit-sequence-stop", "sequence stop", {"fg": "#6e8b3d"}], ["magit-sequence-part", "sequence part", {"fg": "#8b6914"}], ["magit-sequence-head", "sequence head", {"fg": "#4a708b"}], ["magit-sequence-drop", "sequence drop", {"fg": "#cd5c5c"}], ["magit-sequence-done", "sequence done", {"inherit": "magit-hash"}], ["magit-sequence-onto", "sequence onto", {"inherit": "magit-sequence-done"}], ["magit-sequence-exec", "sequence exec", {"inherit": "magit-hash"}], ["magit-left-margin", "left margin", {"inherit": "default"}], ["git-commit-comment-action", "git commit comment action", {"inherit": "bold"}], ["git-commit-comment-branch-local", "git commit comment branch local", {"inherit": "magit-branch-local"}], ["git-commit-comment-branch-remote", "git commit comment branch remote", {"inherit": "magit-branch-remote"}], ["git-commit-comment-detached", "git commit comment detached", {"inherit": "git-commit-comment-branch-local"}], ["git-commit-comment-file", "git commit comment file", {"inherit": "git-commit-trailer-value"}], ["git-commit-comment-heading", "git commit comment heading", {"inherit": "git-commit-trailer-token"}], ["git-commit-keyword", "git commit keyword", {"inherit": "font-lock-string-face"}], ["git-commit-nonempty-second-line", "git commit nonempty second line", {"inherit": "font-lock-warning-face"}], ["git-commit-overlong-summary", "git commit overlong summary", {"inherit": "font-lock-warning-face"}], ["git-commit-summary", "git commit summary", {"inherit": "font-lock-type-face"}], ["git-commit-trailer-token", "git commit trailer token", {"inherit": "font-lock-keyword-face"}], ["git-commit-trailer-value", "git commit trailer value", {"inherit": "font-lock-string-face"}]]}, "elfeed": {"label": "elfeed", "preview": "elfeed", "faces": [["elfeed-search-date-face", "search date", {"fg": "#aaa"}], ["elfeed-search-title-face", "search title", {"fg": "#000"}], ["elfeed-search-unread-title-face", "search unread title", {"weight": "bold"}], ["elfeed-search-feed-face", "search feed", {"fg": "#aa0"}], ["elfeed-search-tag-face", "search tag", {"fg": "#070"}], ["elfeed-search-unread-count-face", "search unread count", {"fg": "#000"}], ["elfeed-search-filter-face", "search filter", {"inherit": "mode-line-buffer-id"}], ["elfeed-search-last-update-face", "search last update", {}], ["elfeed-log-date-face", "log date", {"inherit": "font-lock-type-face"}], ["elfeed-log-error-level-face", "log error level", {"fg": "#ff0000"}], ["elfeed-log-warn-level-face", "log warn level", {"fg": "#daa520"}], ["elfeed-log-info-level-face", "log info level", {"fg": "#00bfff"}], ["elfeed-log-debug-level-face", "log debug level", {"fg": "#ee00ee"}]]}, "mu4e": {"label": "mu4e", "preview": "mu4e", "faces": [["mu4e-title-face", "title", {}], ["mu4e-context-face", "context", {}], ["mu4e-modeline-face", "modeline", {}], ["mu4e-ok-face", "ok", {}], ["mu4e-warning-face", "warning", {}], ["mu4e-header-title-face", "header title", {}], ["mu4e-header-key-face", "header key", {}], ["mu4e-header-value-face", "header value", {}], ["mu4e-header-face", "header", {}], ["mu4e-header-highlight-face", "header highlight", {}], ["mu4e-header-marks-face", "header marks", {}], ["mu4e-unread-face", "unread", {}], ["mu4e-flagged-face", "flagged", {}], ["mu4e-replied-face", "replied", {}], ["mu4e-forwarded-face", "forwarded", {}], ["mu4e-draft-face", "draft", {}], ["mu4e-trashed-face", "trashed", {}], ["mu4e-related-face", "related", {}], ["mu4e-contact-face", "contact", {}], ["mu4e-special-header-value-face", "special header value", {}], ["mu4e-url-number-face", "url number", {}], ["mu4e-link-face", "link", {}], ["mu4e-footer-face", "footer", {}], ["mu4e-region-code", "region code", {}], ["mu4e-system-face", "system", {}], ["mu4e-highlight-face", "highlight", {}], ["mu4e-compose-separator-face", "compose separator", {}]]}, "gnus": {"label": "gnus (mu4e article view)", "preview": "gnus", "faces": [["gnus-header-name", "header name", {}], ["gnus-header-from", "header from", {}], ["gnus-header-subject", "header subject", {}], ["gnus-header-content", "header content", {}], ["gnus-header-newsgroups", "header newsgroups", {}], ["gnus-cite-1", "cite 1", {}], ["gnus-cite-2", "cite 2", {}], ["gnus-cite-3", "cite 3", {}], ["gnus-cite-4", "cite 4", {}], ["gnus-cite-5", "cite 5", {}], ["gnus-cite-6", "cite 6", {}], ["gnus-cite-7", "cite 7", {}], ["gnus-cite-8", "cite 8", {}], ["gnus-cite-9", "cite 9", {}], ["gnus-cite-10", "cite 10", {}], ["gnus-cite-11", "cite 11", {}], ["gnus-cite-attribution", "cite attribution", {}], ["gnus-signature", "signature", {}], ["gnus-button", "button", {}], ["gnus-emphasis-bold", "emphasis bold", {}], ["gnus-emphasis-italic", "emphasis italic", {}], ["gnus-emphasis-underline", "emphasis underline", {}], ["gnus-emphasis-strikethru", "emphasis strikethru", {}], ["gnus-emphasis-highlight-words", "emphasis highlight words", {}]]}, "org-faces": {"label": "org-faces", "preview": "orgfaces", "faces": [["org-faces-todo", "todo", {}], ["org-faces-project", "project", {}], ["org-faces-doing", "doing", {}], ["org-faces-waiting", "waiting", {}], ["org-faces-verify", "verify", {}], ["org-faces-stalled", "stalled", {}], ["org-faces-delegated", "delegated", {}], ["org-faces-failed", "failed", {}], ["org-faces-done", "done", {}], ["org-faces-cancelled", "cancelled", {}], ["org-faces-priority-a", "priority a", {}], ["org-faces-priority-b", "priority b", {}], ["org-faces-priority-c", "priority c", {}], ["org-faces-priority-d", "priority d", {}], ["org-faces-todo-dim", "todo dim", {}], ["org-faces-project-dim", "project dim", {}], ["org-faces-doing-dim", "doing dim", {}], ["org-faces-waiting-dim", "waiting dim", {}], ["org-faces-verify-dim", "verify dim", {}], ["org-faces-stalled-dim", "stalled dim", {}], ["org-faces-delegated-dim", "delegated dim", {}], ["org-faces-failed-dim", "failed dim", {}], ["org-faces-done-dim", "done dim", {}], ["org-faces-cancelled-dim", "cancelled dim", {}], ["org-faces-priority-a-dim", "priority a dim", {}], ["org-faces-priority-b-dim", "priority b dim", {}], ["org-faces-priority-c-dim", "priority c dim", {}], ["org-faces-priority-d-dim", "priority d dim", {}]]}, "ghostel": {"label": "ghostel", "preview": "ghostel", "faces": [["ghostel-default", "default", {"inherit": "default"}], ["ghostel-fake-cursor", "fake cursor", {"box": {"style": "line", "width": 1, "color": null}}], ["ghostel-fake-cursor-box", "fake cursor box", {"inherit": "cursor"}], ["ghostel-color-black", "color black", {"inherit": "ansi-color-black"}], ["ghostel-color-red", "color red", {"inherit": "ansi-color-red"}], ["ghostel-color-green", "color green", {"inherit": "ansi-color-green"}], ["ghostel-color-yellow", "color yellow", {"inherit": "ansi-color-yellow"}], ["ghostel-color-blue", "color blue", {"inherit": "ansi-color-blue"}], ["ghostel-color-magenta", "color magenta", {"inherit": "ansi-color-magenta"}], ["ghostel-color-cyan", "color cyan", {"inherit": "ansi-color-cyan"}], ["ghostel-color-white", "color white", {"inherit": "ansi-color-white"}], ["ghostel-color-bright-black", "color bright black", {"inherit": "ansi-color-bright-black"}], ["ghostel-color-bright-red", "color bright red", {"inherit": "ansi-color-bright-red"}], ["ghostel-color-bright-green", "color bright green", {"inherit": "ansi-color-bright-green"}], ["ghostel-color-bright-yellow", "color bright yellow", {"inherit": "ansi-color-bright-yellow"}], ["ghostel-color-bright-blue", "color bright blue", {"inherit": "ansi-color-bright-blue"}], ["ghostel-color-bright-magenta", "color bright magenta", {"inherit": "ansi-color-bright-magenta"}], ["ghostel-color-bright-cyan", "color bright cyan", {"inherit": "ansi-color-bright-cyan"}], ["ghostel-color-bright-white", "color bright white", {"inherit": "ansi-color-bright-white"}]]}, "auto-dim-other-buffers": {"label": "auto-dim", "preview": "autodim", "faces": [["auto-dim-other-buffers", "auto dim other buffers", {}], ["auto-dim-other-buffers-hide", "hide", {}]]}, "dashboard": {"label": "dashboard", "preview": "dashboard", "faces": [["dashboard-banner-logo-title", "banner logo title", {"inherit": "default"}], ["dashboard-text-banner", "text banner", {"inherit": "font-lock-keyword-face"}], ["dashboard-heading", "heading", {"inherit": "font-lock-keyword-face"}], ["dashboard-items-face", "items", {"inherit": "widget-button"}], ["dashboard-navigator", "navigator", {"inherit": "font-lock-keyword-face"}], ["dashboard-no-items-face", "no items", {"inherit": "widget-button"}], ["dashboard-footer-face", "footer", {"inherit": "font-lock-doc-face"}], ["dashboard-footer-icon-face", "footer icon", {"inherit": "dashboard-footer-face"}]]}, "lsp-mode": {"label": "lsp-mode", "preview": "lsp", "faces": [["lsp-signature-face", "signature", {"inherit": "lsp-details-face"}], ["lsp-signature-highlight-function-argument", "signature highlight function argument", {"inherit": "eldoc-highlight-function-argument"}], ["lsp-signature-posframe", "signature posframe", {"inherit": "tooltip"}], ["lsp-face-highlight-read", "face highlight read", {"underline": {"style": "line", "color": null}, "inherit": "highlight"}], ["lsp-face-highlight-write", "face highlight write", {"weight": "bold", "inherit": "highlight"}], ["lsp-face-highlight-textual", "face highlight textual", {"inherit": "highlight"}], ["lsp-face-rename", "face rename", {"underline": {"style": "line", "color": null}}], ["lsp-rename-placeholder-face", "rename placeholder", {"inherit": "font-lock-variable-name-face"}], ["lsp-inlay-hint-face", "inlay hint", {"inherit": "font-lock-comment-face"}], ["lsp-inlay-hint-parameter-face", "inlay hint parameter", {"inherit": "lsp-inlay-hint-face"}], ["lsp-inlay-hint-type-face", "inlay hint type", {"inherit": "lsp-inlay-hint-face"}], ["lsp-details-face", "details", {"inherit": "shadow", "height": 0.8}], ["lsp-installation-buffer-face", "installation buffer", {"fg": "#00ff00"}], ["lsp-installation-finished-buffer-face", "installation finished buffer", {"fg": "#ffa500"}]]}, "git-gutter": {"label": "git-gutter", "preview": "gitgutter", "faces": [["git-gutter:added", "added", {"fg": "#00ff00", "weight": "bold", "inherit": "default"}], ["git-gutter:modified", "modified", {"fg": "#ff00ff", "weight": "bold", "inherit": "default"}], ["git-gutter:deleted", "deleted", {"fg": "#ff0000", "weight": "bold", "inherit": "default"}], ["git-gutter:unchanged", "unchanged", {"bg": "#ffff00", "inherit": "default"}], ["git-gutter:separator", "separator", {"fg": "#00ffff", "weight": "bold", "inherit": "default"}]]}, "flycheck": {"label": "flycheck", "preview": "flycheck", "faces": [["flycheck-error", "error", {"underline": {"style": "line", "color": null}}], ["flycheck-warning", "warning", {"underline": {"style": "line", "color": null}}], ["flycheck-info", "info", {"underline": {"style": "line", "color": null}}], ["flycheck-fringe-error", "fringe error", {"inherit": "error"}], ["flycheck-fringe-warning", "fringe warning", {"inherit": "warning"}], ["flycheck-fringe-info", "fringe info", {"inherit": "success"}], ["flycheck-delimited-error", "delimited error", {}], ["flycheck-error-delimiter", "error delimiter", {}], ["flycheck-error-list-error", "error list error", {"inherit": "error"}], ["flycheck-error-list-warning", "error list warning", {"inherit": "warning"}], ["flycheck-error-list-info", "error list info", {"inherit": "success"}], ["flycheck-error-list-error-message", "error list error message", {}], ["flycheck-error-list-checker-name", "error list checker name", {"inherit": "font-lock-function-name-face"}], ["flycheck-error-list-column-number", "error list column number", {}], ["flycheck-error-list-line-number", "error list line number", {}], ["flycheck-error-list-filename", "error list filename", {"inherit": "mode-line-buffer-id"}], ["flycheck-error-list-id", "error list id", {"inherit": "font-lock-type-face"}], ["flycheck-error-list-id-with-explainer", "error list id with explainer", {"box": {"style": "released", "width": 1, "color": null}, "inherit": "flycheck-error-list-id"}], ["flycheck-error-list-highlight", "error list highlight", {"weight": "bold"}], ["flycheck-verify-select-checker", "verify select checker", {"box": {"style": "released", "width": 1, "color": null}}]]}, "dired": {"label": "dired", "preview": "dired", "faces": [["dired-header", "header", {}], ["dired-directory", "directory", {}], ["dired-symlink", "symlink", {}], ["dired-broken-symlink", "broken symlink", {}], ["dired-special", "special", {}], ["dired-set-id", "set id", {}], ["dired-perm-write", "perm write", {}], ["dired-mark", "mark", {}], ["dired-marked", "marked", {}], ["dired-flagged", "flagged", {}], ["dired-ignored", "ignored", {}], ["dired-warning", "warning", {}]]}, "dirvish": {"label": "dirvish", "preview": "dirvish", "faces": [["dirvish-inactive", "inactive", {"inherit": "shadow"}], ["dirvish-free-space", "free space", {"inherit": "font-lock-constant-face"}], ["dirvish-hl-line", "hl line", {"extend": true, "inherit": "highlight"}], ["dirvish-hl-line-inactive", "hl line inactive", {"extend": true, "inherit": "region"}], ["dirvish-file-modes", "file modes", {"fg": "#6b6b6b"}], ["dirvish-file-link-number", "file link number", {"inherit": "font-lock-constant-face"}], ["dirvish-file-user-id", "file user id", {"inherit": "font-lock-preprocessor-face"}], ["dirvish-file-group-id", "file group id", {"inherit": "dirvish-file-user-id"}], ["dirvish-file-size", "file size", {"underline": {"style": "line", "color": null}, "inherit": "completions-annotations"}], ["dirvish-file-time", "file time", {"fg": "#979797"}], ["dirvish-file-inode-number", "file inode number", {"inherit": "dirvish-file-link-number"}], ["dirvish-file-device-number", "file device number", {"inherit": "dirvish-file-link-number"}], ["dirvish-subtree-guide", "subtree guide", {"bg": "unspecified", "underline": {"style": "line", "color": null}, "inherit": "dired-ignored"}], ["dirvish-subtree-state", "subtree state", {"bg": "unspecified", "underline": {"style": "line", "color": null}, "inherit": "dired-ignored"}], ["dirvish-collapse-dir-face", "collapse dir", {"inherit": "dired-directory"}], ["dirvish-collapse-empty-dir-face", "collapse empty dir", {"inherit": "shadow"}], ["dirvish-collapse-file-face", "collapse file", {"inherit": "default"}], ["dirvish-emerge-group-title", "emerge group title", {"inherit": "dired-ignored"}], ["dirvish-media-info-heading", "media info heading", {"inherit": ["dired-header", "bold"]}], ["dirvish-media-info-property-key", "media info property key", {"inherit": ["italic"]}], ["dirvish-narrow-match-face-0", "narrow match 0", {"fg": "#223fbf", "weight": "bold"}], ["dirvish-narrow-match-face-1", "narrow match 1", {"fg": "#8f0075", "weight": "bold"}], ["dirvish-narrow-match-face-2", "narrow match 2", {"fg": "#145a00", "weight": "bold"}], ["dirvish-narrow-match-face-3", "narrow match 3", {"fg": "#804000", "weight": "bold"}], ["dirvish-narrow-split", "narrow split", {"inherit": "font-lock-negation-char-face"}], ["dirvish-proc-running", "proc running", {"inherit": "warning"}], ["dirvish-proc-finished", "proc finished", {"inherit": "success"}], ["dirvish-proc-failed", "proc failed", {"inherit": "error"}], ["dirvish-git-commit-message-face", "git commit message", {"bg": "unspecified", "underline": {"style": "line", "color": null}, "inherit": "dired-ignored"}], ["dirvish-vc-added-state", "vc added state", {"inherit": "vc-locally-added-state"}], ["dirvish-vc-edited-state", "vc edited state", {"inherit": "vc-edited-state"}], ["dirvish-vc-removed-state", "vc removed state", {"inherit": "vc-removed-state"}], ["dirvish-vc-conflict-state", "vc conflict state", {"inherit": "vc-conflict-state"}], ["dirvish-vc-locked-state", "vc locked state", {"inherit": "vc-locked-state"}], ["dirvish-vc-missing-state", "vc missing state", {"inherit": "vc-missing-state"}], ["dirvish-vc-needs-merge-face", "vc needs merge", {"bg": "#efcbcf"}], ["dirvish-vc-needs-update-state", "vc needs update state", {"inherit": "vc-needs-update-state"}], ["dirvish-vc-unregistered-face", "vc unregistered", {"inherit": "font-lock-constant-face"}]]}, "calibredb": {"label": "calibredb", "preview": "calibredb", "faces": [["calibredb-search-header-library-name-face", "search header library name", {}], ["calibredb-search-header-library-path-face", "search header library path", {}], ["calibredb-search-header-total-face", "search header total", {}], ["calibredb-search-header-filter-face", "search header filter", {}], ["calibredb-search-header-sort-face", "search header sort", {}], ["calibredb-search-header-highlight-face", "search header highlight", {}], ["calibredb-id-face", "id", {}], ["calibredb-title-face", "title", {}], ["calibredb-author-face", "author", {}], ["calibredb-format-face", "format", {}], ["calibredb-size-face", "size", {}], ["calibredb-tag-face", "tag", {}], ["calibredb-date-face", "date", {}], ["calibredb-mark-face", "mark", {}], ["calibredb-series-face", "series", {}], ["calibredb-publisher-face", "publisher", {}], ["calibredb-pubdate-face", "pubdate", {}], ["calibredb-language-face", "language", {}], ["calibredb-comment-face", "comment", {}], ["calibredb-archive-face", "archive", {}], ["calibredb-favorite-face", "favorite", {}], ["calibredb-file-face", "file", {}], ["calibredb-ids-face", "ids", {}], ["calibredb-highlight-face", "highlight", {}], ["calibredb-current-page-button-face", "current page button", {}], ["calibredb-mouse-face", "mouse", {}], ["calibredb-title-detailed-view-face", "title detailed view", {}], ["calibredb-edit-annotation-header-title-face", "edit annotation header title", {}]]}, "erc": {"label": "erc", "preview": "erc", "faces": [["erc-header-line", "header line", {}], ["erc-timestamp-face", "timestamp", {}], ["erc-notice-face", "notice", {}], ["erc-default-face", "default", {}], ["erc-current-nick-face", "current nick", {}], ["erc-my-nick-face", "my nick", {}], ["erc-my-nick-prefix-face", "my nick prefix", {}], ["erc-nick-default-face", "nick default", {}], ["erc-nick-prefix-face", "nick prefix", {}], ["erc-button-nick-default-face", "button nick default", {}], ["erc-nick-msg-face", "nick msg", {}], ["erc-direct-msg-face", "direct msg", {}], ["erc-action-face", "action", {}], ["erc-keyword-face", "keyword", {}], ["erc-pal-face", "pal", {}], ["erc-fool-face", "fool", {}], ["erc-dangerous-host-face", "dangerous host", {}], ["erc-error-face", "error", {}], ["erc-input-face", "input", {}], ["erc-prompt-face", "prompt", {}], ["erc-command-indicator-face", "command indicator", {}], ["erc-information", "information", {}], ["erc-button", "button", {}], ["erc-bold-face", "bold", {}], ["erc-italic-face", "italic", {}], ["erc-underline-face", "underline", {}], ["erc-inverse-face", "inverse", {}], ["erc-spoiler-face", "spoiler", {}], ["erc-fill-wrap-merge-indicator-face", "fill wrap merge indicator", {}], ["erc-keep-place-indicator-arrow", "keep place indicator arrow", {}], ["erc-keep-place-indicator-line", "keep place indicator line", {}]]}, "org-drill": {"label": "org-drill", "preview": "orgdrill", "faces": [["org-drill-hidden-cloze-face", "hidden cloze", {}], ["org-drill-visible-cloze-face", "visible cloze", {}], ["org-drill-visible-cloze-hint-face", "visible cloze hint", {}]]}, "org-noter": {"label": "org-noter", "preview": "orgnoter", "faces": [["org-noter-notes-exist-face", "notes exist", {}], ["org-noter-no-notes-exist-face", "no notes exist", {}]]}, "signel": {"label": "signel", "preview": "signel", "faces": [["signel-timestamp-face", "timestamp", {}], ["signel-my-msg-face", "my msg", {}], ["signel-other-msg-face", "other msg", {}], ["signel-error-face", "error", {}]]}, "pearl": {"label": "pearl", "preview": "pearl", "faces": [["pearl-preamble-summary", "preamble summary", {}], ["pearl-editable-comment", "editable comment", {}], ["pearl-readonly-comment", "readonly comment", {}], ["pearl-modified-highlight", "modified highlight", {}], ["pearl-modified-local", "modified local", {}], ["pearl-modified-unknown", "modified unknown", {}]]}, "slack": {"label": "slack", "preview": "slack", "faces": [["slack-room-info-title-face", "room info title", {}], ["slack-room-info-title-room-name-face", "room info title room name", {}], ["slack-room-info-section-title-face", "room info section title", {}], ["slack-room-info-section-label-face", "room info section label", {}], ["slack-room-unread-face", "room unread", {}], ["slack-message-output-header", "message output header", {}], ["slack-message-output-text", "message output text", {}], ["slack-message-output-reaction", "message output reaction", {}], ["slack-message-output-reaction-pressed", "message output reaction pressed", {}], ["slack-message-deleted-face", "message deleted", {}], ["slack-new-message-marker-face", "new message marker", {}], ["slack-all-thread-buffer-thread-header-face", "all thread buffer thread header", {}], ["slack-message-mention-face", "message mention", {}], ["slack-message-mention-me-face", "message mention me", {}], ["slack-message-mention-keyword-face", "message mention keyword", {}], ["slack-channel-button-face", "channel button", {}], ["slack-mrkdwn-bold-face", "mrkdwn bold", {}], ["slack-mrkdwn-italic-face", "mrkdwn italic", {}], ["slack-mrkdwn-code-face", "mrkdwn code", {}], ["slack-mrkdwn-code-block-face", "mrkdwn code block", {}], ["slack-mrkdwn-strike-face", "mrkdwn strike", {}], ["slack-mrkdwn-blockquote-face", "mrkdwn blockquote", {}], ["slack-mrkdwn-list-face", "mrkdwn list", {}], ["slack-attachment-header", "attachment header", {}], ["slack-attachment-footer", "attachment footer", {}], ["slack-attachment-pad", "attachment pad", {}], ["slack-attachment-field-title", "attachment field title", {}], ["slack-message-attachment-preview-header-face", "message attachment preview header", {}], ["slack-preview-face", "preview", {}], ["slack-block-highlight-source-overlay-face", "block highlight source overlay", {}], ["slack-message-action-face", "message action", {}], ["slack-message-action-primary-face", "message action primary", {}], ["slack-message-action-danger-face", "message action danger", {}], ["slack-button-block-element-face", "button block element", {}], ["slack-button-primary-block-element-face", "button primary block element", {}], ["slack-button-danger-block-element-face", "button danger block element", {}], ["slack-select-block-element-face", "select block element", {}], ["slack-overflow-block-element-face", "overflow block element", {}], ["slack-date-picker-block-element-face", "date picker block element", {}], ["slack-dialog-title-face", "dialog title", {}], ["slack-dialog-element-label-face", "dialog element label", {}], ["slack-dialog-element-hint-face", "dialog element hint", {}], ["slack-dialog-element-placeholder-face", "dialog element placeholder", {}], ["slack-dialog-element-error-face", "dialog element error", {}], ["slack-dialog-submit-button-face", "dialog submit button", {}], ["slack-dialog-cancel-button-face", "dialog cancel button", {}], ["slack-dialog-select-element-input-face", "dialog select element input", {}], ["slack-user-active-face", "user active", {}], ["slack-user-dnd-face", "user dnd", {}], ["slack-user-profile-header-face", "user profile header", {}], ["slack-user-profile-property-name-face", "user profile property name", {}], ["slack-profile-image-face", "profile image", {}], ["slack-search-result-message-header-face", "search result message header", {}], ["slack-search-result-message-username-face", "search result message username", {}], ["slack-modeline-has-unreads-face", "modeline has unreads", {}], ["slack-modeline-channel-has-unreads-face", "modeline channel has unreads", {}], ["slack-modeline-thread-has-unreads-face", "modeline thread has unreads", {}]]}, "telega": {"label": "telega", "preview": "telega", "faces": [["telega-root-heading", "root heading", {}], ["telega-tracking", "tracking", {}], ["telega-unread-unmuted-modeline", "unread unmuted modeline", {}], ["telega-username", "username", {}], ["telega-user-online-status", "user online status", {}], ["telega-user-non-online-status", "user non online status", {}], ["telega-secret-title", "secret title", {}], ["telega-contact-birthdays-today", "contact birthdays today", {}], ["telega-muted-count", "muted count", {}], ["telega-unmuted-count", "unmuted count", {}], ["telega-mention-count", "mention count", {}], ["telega-has-chatbuf-brackets", "has chatbuf brackets", {}], ["telega-delim-face", "delim", {}], ["telega-shadow", "shadow", {}], ["telega-link", "link", {}], ["telega-blue", "blue", {}], ["telega-red", "red", {}], ["telega-msg-heading", "msg heading", {}], ["telega-msg-user-title", "msg user title", {}], ["telega-msg-self-title", "msg self title", {}], ["telega-msg-deleted", "msg deleted", {}], ["telega-msg-sponsored", "msg sponsored", {}], ["telega-msg-inline-reply", "msg inline reply", {}], ["telega-msg-inline-forward", "msg inline forward", {}], ["telega-msg-inline-other", "msg inline other", {}], ["telega-entity-type-bold", "entity type bold", {}], ["telega-entity-type-italic", "entity type italic", {}], ["telega-entity-type-underline", "entity type underline", {}], ["telega-entity-type-strikethrough", "entity type strikethrough", {}], ["telega-entity-type-code", "entity type code", {}], ["telega-entity-type-pre", "entity type pre", {}], ["telega-entity-type-blockquote", "entity type blockquote", {}], ["telega-entity-type-mention", "entity type mention", {}], ["telega-entity-type-hashtag", "entity type hashtag", {}], ["telega-entity-type-cashtag", "entity type cashtag", {}], ["telega-entity-type-botcommand", "entity type botcommand", {}], ["telega-entity-type-texturl", "entity type texturl", {}], ["telega-entity-type-spoiler", "entity type spoiler", {}], ["telega-reaction", "reaction", {}], ["telega-reaction-chosen", "reaction chosen", {}], ["telega-reaction-paid", "reaction paid", {}], ["telega-reaction-paid-chosen", "reaction paid chosen", {}], ["telega-highlight-text-face", "highlight text", {}], ["telega-button-highlight", "button highlight", {}], ["telega-chat-prompt", "chat prompt", {}], ["telega-chat-prompt-aux", "chat prompt aux", {}], ["telega-chat-input-attachment", "chat input attachment", {}], ["telega-topic-button", "topic button", {}], ["telega-filter-active", "filter active", {}], ["telega-filter-button-active", "filter button active", {}], ["telega-filter-button-inactive", "filter button inactive", {}], ["telega-checklist-stats-done", "checklist stats done", {}], ["telega-checklist-stats-todo", "checklist stats todo", {}], ["telega-box-button", "box button", {}], ["telega-box-button-active", "box button active", {}], ["telega-box-button-default-active", "box button default active", {}], ["telega-box-button-default-passive", "box button default passive", {}], ["telega-box-button-primary-active", "box button primary active", {}], ["telega-box-button-primary-passive", "box button primary passive", {}], ["telega-box-button-success-active", "box button success active", {}], ["telega-box-button-success-passive", "box button success passive", {}], ["telega-box-button-danger-active", "box button danger active", {}], ["telega-box-button-danger-passive", "box button danger passive", {}], ["telega-box-button-ui-active", "box button ui active", {}], ["telega-box-button-ui-passive", "box button ui passive", {}], ["telega-box-button2-active", "box button2 active", {}], ["telega-box-button2-passive", "box button2 passive", {}], ["telega-box-button2-white-foreground", "box button2 white foreground", {}], ["telega-describe-item-title", "describe item title", {}], ["telega-describe-section-title", "describe section title", {}], ["telega-describe-subsection-title", "describe subsection title", {}], ["telega-enckey-00", "enckey 00", {}], ["telega-enckey-01", "enckey 01", {}], ["telega-enckey-10", "enckey 10", {}], ["telega-enckey-11", "enckey 11", {}], ["telega-palette-builtin-blue", "palette builtin blue", {}], ["telega-palette-builtin-green", "palette builtin green", {}], ["telega-palette-builtin-orange", "palette builtin orange", {}], ["telega-palette-builtin-purple", "palette builtin purple", {}], ["telega-webpage-title", "webpage title", {}], ["telega-webpage-subtitle", "webpage subtitle", {}], ["telega-webpage-header", "webpage header", {}], ["telega-webpage-subheader", "webpage subheader", {}], ["telega-webpage-outline", "webpage outline", {}], ["telega-webpage-fixed", "webpage fixed", {}], ["telega-webpage-preformatted", "webpage preformatted", {}], ["telega-webpage-marked", "webpage marked", {}], ["telega-webpage-strike-through", "webpage strike through", {}], ["telega-webpage-chat-link", "webpage chat link", {}], ["telega-link-preview-sitename", "link preview sitename", {}], ["telega-link-preview-title", "link preview title", {}]]}, "shr": {"label": "shr (HTML: nov/eww/mail)", "preview": "shr", "faces": [["shr-h1", "h1", {}], ["shr-h2", "h2", {}], ["shr-h3", "h3", {}], ["shr-h4", "h4", {}], ["shr-h5", "h5", {}], ["shr-h6", "h6", {}], ["shr-text", "text", {}], ["shr-link", "link", {}], ["shr-selected-link", "selected link", {}], ["shr-code", "code", {}], ["shr-mark", "mark", {}], ["shr-strike-through", "strike through", {}], ["shr-sup", "sup", {}], ["shr-abbreviation", "abbreviation", {}], ["shr-sliced-image", "sliced image", {}]]}, "2048-game": {"label": "2048-game", "preview": "generic", "faces": [["twentyfortyeight-face-1024", "twentyfortyeight 1024", {"fg": "#000000", "bg": "#ffd700"}], ["twentyfortyeight-face-128", "twentyfortyeight 128", {"fg": "#ffffff", "bg": "#8b0000"}], ["twentyfortyeight-face-16", "twentyfortyeight 16", {"fg": "#000000", "bg": "#ffa500"}], ["twentyfortyeight-face-2", "twentyfortyeight 2", {"fg": "#000000", "bg": "#f0e68c"}], ["twentyfortyeight-face-2048", "twentyfortyeight 2048", {"fg": "#000000", "bg": "#ffff00"}], ["twentyfortyeight-face-256", "twentyfortyeight 256", {"fg": "#ffffff", "bg": "#8b008b"}], ["twentyfortyeight-face-32", "twentyfortyeight 32", {"fg": "#000000", "bg": "#ff4500"}], ["twentyfortyeight-face-4", "twentyfortyeight 4", {"fg": "#000000", "bg": "#deb887"}], ["twentyfortyeight-face-512", "twentyfortyeight 512", {"fg": "#000000", "bg": "#ff00ff"}], ["twentyfortyeight-face-64", "twentyfortyeight 64", {"fg": "#ffffff", "bg": "#b22222"}], ["twentyfortyeight-face-8", "twentyfortyeight 8", {"fg": "#000000", "bg": "#cd8500"}]]}, "alert": {"label": "alert", "preview": "generic", "faces": [["alert-high-face", "high", {"fg": "#ff8c00", "weight": "bold"}], ["alert-low-face", "low", {"fg": "#00008b"}], ["alert-moderate-face", "moderate", {"fg": "#ffd700", "weight": "bold"}], ["alert-normal-face", "normal", {}], ["alert-trivial-face", "trivial", {"fg": "#9400d3"}], ["alert-urgent-face", "urgent", {"fg": "#ff0000", "weight": "bold"}]]}, "all-the-icons": {"label": "all-the-icons", "preview": "generic", "faces": [["all-the-icons-blue", "blue", {"fg": "#6a9fb5"}], ["all-the-icons-blue-alt", "blue alt", {"fg": "#2188b6"}], ["all-the-icons-cyan", "cyan", {"fg": "#75b5aa"}], ["all-the-icons-cyan-alt", "cyan alt", {"fg": "#0595bd"}], ["all-the-icons-dblue", "dblue", {"fg": "#446674"}], ["all-the-icons-dcyan", "dcyan", {"fg": "#48746d"}], ["all-the-icons-dgreen", "dgreen", {"fg": "#6d8143"}], ["all-the-icons-dmaroon", "dmaroon", {"fg": "#72584b"}], ["all-the-icons-dorange", "dorange", {"fg": "#915b2d"}], ["all-the-icons-dpink", "dpink", {"fg": "#7e5d5f"}], ["all-the-icons-dpurple", "dpurple", {"fg": "#694863"}], ["all-the-icons-dred", "dred", {"fg": "#843031"}], ["all-the-icons-dsilver", "dsilver", {"fg": "#838484"}], ["all-the-icons-dyellow", "dyellow", {"fg": "#b48d56"}], ["all-the-icons-green", "green", {"fg": "#90a959"}], ["all-the-icons-lblue", "lblue", {"fg": "#677174"}], ["all-the-icons-lcyan", "lcyan", {"fg": "#2c7d6e"}], ["all-the-icons-lgreen", "lgreen", {"fg": "#3d6837"}], ["all-the-icons-lmaroon", "lmaroon", {"fg": "#ce7a4e"}], ["all-the-icons-lorange", "lorange", {"fg": "#ffa500"}], ["all-the-icons-lpink", "lpink", {"fg": "#ff505b"}], ["all-the-icons-lpurple", "lpurple", {"fg": "#e69dd6"}], ["all-the-icons-lred", "lred", {"fg": "#eb595a"}], ["all-the-icons-lsilver", "lsilver", {"fg": "#7f7869"}], ["all-the-icons-lyellow", "lyellow", {"fg": "#ff9300"}], ["all-the-icons-maroon", "maroon", {"fg": "#8f5536"}], ["all-the-icons-orange", "orange", {"fg": "#d4843e"}], ["all-the-icons-pink", "pink", {"fg": "#fc505b"}], ["all-the-icons-purple", "purple", {"fg": "#68295b"}], ["all-the-icons-purple-alt", "purple alt", {"fg": "#5d54e1"}], ["all-the-icons-red", "red", {"fg": "#ac4142"}], ["all-the-icons-red-alt", "red alt", {"fg": "#843031"}], ["all-the-icons-silver", "silver", {"fg": "#716e68"}], ["all-the-icons-yellow", "yellow", {"fg": "#ffcc0e"}]]}, "company": {"label": "company", "preview": "generic", "faces": [["company-echo", "echo", {}], ["company-echo-common", "echo common", {"fg": "#8b1a1a"}], ["company-preview", "preview", {"inherit": ["company-tooltip-selection", "company-tooltip"]}], ["company-preview-common", "preview common", {"inherit": "company-tooltip-common-selection"}], ["company-preview-search", "preview search", {"inherit": "company-tooltip-common-selection"}], ["company-tooltip", "tooltip", {"fg": "#000000", "bg": "#fff8dc"}], ["company-tooltip-annotation", "tooltip annotation", {"fg": "#8b1a1a"}], ["company-tooltip-annotation-selection", "tooltip annotation selection", {"inherit": "company-tooltip-annotation"}], ["company-tooltip-common", "tooltip common", {"fg": "#8b0000"}], ["company-tooltip-common-selection", "tooltip common selection", {"inherit": "company-tooltip-common"}], ["company-tooltip-deprecated", "tooltip deprecated", {"strike": {"color": null}}], ["company-tooltip-mouse", "tooltip mouse", {"inherit": "highlight"}], ["company-tooltip-quick-access", "tooltip quick access", {"inherit": "company-tooltip-annotation"}], ["company-tooltip-quick-access-selection", "tooltip quick access selection", {"inherit": "company-tooltip-annotation-selection"}], ["company-tooltip-scrollbar-thumb", "tooltip scrollbar thumb", {"bg": "#cd5c5c"}], ["company-tooltip-scrollbar-track", "tooltip scrollbar track", {"bg": "#f5deb3"}], ["company-tooltip-search", "tooltip search", {"inherit": "highlight"}], ["company-tooltip-search-selection", "tooltip search selection", {"inherit": "highlight"}], ["company-tooltip-selection", "tooltip selection", {"bg": "#add8e6"}]]}, "company-box": {"label": "company-box", "preview": "generic", "faces": [["company-box-annotation", "annotation", {"inherit": "company-tooltip-annotation"}], ["company-box-background", "background", {"inherit": "company-tooltip"}], ["company-box-candidate", "candidate", {"fg": "#000000"}], ["company-box-numbers", "numbers", {"inherit": "company-box-candidate"}], ["company-box-scrollbar", "scrollbar", {"inherit": "company-tooltip-selection"}], ["company-box-selection", "selection", {"extend": true, "inherit": "company-tooltip-selection"}]]}, "consult": {"label": "consult", "preview": "generic", "faces": [["consult-async-failed", "async failed", {"inherit": "error"}], ["consult-async-finished", "async finished", {"inherit": "success"}], ["consult-async-running", "async running", {"inherit": "consult-narrow-indicator"}], ["consult-async-split", "async split", {"inherit": "font-lock-negation-char-face"}], ["consult-bookmark", "bookmark", {"inherit": "font-lock-constant-face"}], ["consult-buffer", "buffer", {}], ["consult-file", "file", {"inherit": "font-lock-function-name-face"}], ["consult-grep-context", "grep context", {"inherit": "shadow"}], ["consult-help", "help", {"inherit": "shadow"}], ["consult-highlight-mark", "highlight mark", {"inherit": "consult-highlight-match"}], ["consult-highlight-match", "highlight match", {"inherit": "match"}], ["consult-key", "key", {"inherit": "font-lock-keyword-face"}], ["consult-line-number", "line number", {"inherit": "consult-key"}], ["consult-line-number-prefix", "line number prefix", {"inherit": "line-number"}], ["consult-line-number-wrapped", "line number wrapped", {"inherit": "warning"}], ["consult-narrow-indicator", "narrow indicator", {"inherit": "warning"}], ["consult-preview-insertion", "preview insertion", {"inherit": "region"}], ["consult-preview-line", "preview line", {"extend": true, "inherit": "consult-preview-insertion"}], ["consult-preview-match", "preview match", {"inherit": "isearch"}], ["consult-separator", "separator", {}]]}, "embark": {"label": "embark", "preview": "generic", "faces": [["embark-collect-annotation", "collect annotation", {"inherit": "completions-annotations"}], ["embark-collect-candidate", "collect candidate", {"inherit": "default"}], ["embark-collect-group-separator", "collect group separator", {"slant": "italic", "strike": {"color": null}, "inherit": "shadow"}], ["embark-collect-group-title", "collect group title", {"slant": "italic", "inherit": "shadow"}], ["embark-keybinding", "keybinding", {"inherit": "success"}], ["embark-keybinding-repeat", "keybinding repeat", {"inherit": "font-lock-builtin-face"}], ["embark-keymap", "keymap", {"slant": "italic"}], ["embark-selected", "selected", {"inherit": "match"}], ["embark-target", "target", {"inherit": "highlight"}], ["embark-verbose-indicator-documentation", "verbose indicator documentation", {"inherit": "completions-annotations"}], ["embark-verbose-indicator-shadowed", "verbose indicator shadowed", {"inherit": "shadow"}], ["embark-verbose-indicator-title", "verbose indicator title", {"weight": "bold", "height": 1.1}]]}, "emms": {"label": "emms", "preview": "generic", "faces": [["emms-browser-album-face", "browser album", {}], ["emms-browser-albumartist-face", "browser albumartist", {}], ["emms-browser-artist-face", "browser artist", {}], ["emms-browser-composer-face", "browser composer", {}], ["emms-browser-performer-face", "browser performer", {}], ["emms-browser-track-face", "browser track", {}], ["emms-browser-year/genre-face", "browser year/genre", {}], ["emms-metaplaylist-mode-current-face", "metaplaylist mode current", {"fg": "#ffffff", "bg": "#cd0000"}], ["emms-metaplaylist-mode-face", "metaplaylist mode", {"fg": "#cd0000"}], ["emms-playlist-selected-face", "playlist selected", {"fg": "#ffffff", "bg": "#0000cd"}], ["emms-playlist-track-face", "playlist track", {"fg": "#0000ff"}]]}, "flyspell-correct": {"label": "flyspell-correct", "preview": "generic", "faces": [["flyspell-correct-highlight-face", "highlight", {"inherit": "isearch"}]]}, "highlight-indent-guides": {"label": "highlight-indent-guides", "preview": "generic", "faces": [["highlight-indent-guides-character-face", "character", {}], ["highlight-indent-guides-even-face", "even", {}], ["highlight-indent-guides-odd-face", "odd", {}], ["highlight-indent-guides-stack-character-face", "stack character", {}], ["highlight-indent-guides-stack-even-face", "stack even", {}], ["highlight-indent-guides-stack-odd-face", "stack odd", {}], ["highlight-indent-guides-top-character-face", "top character", {}], ["highlight-indent-guides-top-even-face", "top even", {}], ["highlight-indent-guides-top-odd-face", "top odd", {}]]}, "hl-todo": {"label": "hl-todo", "preview": "generic", "faces": [["hl-todo", "hl todo", {"fg": "#cc9393", "weight": "bold"}], ["hl-todo-flymake-type", "flymake type", {"inherit": "font-lock-keyword-face"}]]}, "json-mode": {"label": "json-mode", "preview": "generic", "faces": [["json-mode-object-name-face", "object name", {}]]}, "llama": {"label": "llama", "preview": "generic", "faces": [["llama-##-macro", "## macro", {"inherit": "font-lock-function-call-face"}], ["llama-deleted-argument", "deleted argument", {"box": {"style": "line", "width": 1, "color": "#ff0000"}}], ["llama-llama-macro", "llama macro", {"inherit": "font-lock-keyword-face"}], ["llama-mandatory-argument", "mandatory argument", {"inherit": "font-lock-variable-use-face"}], ["llama-optional-argument", "optional argument", {"inherit": "font-lock-type-face"}]]}, "lv": {"label": "lv", "preview": "generic", "faces": [["lv-separator", "separator", {"bg": "#cccccc"}]]}, "magit-section": {"label": "magit-section", "preview": "generic", "faces": [["magit-left-margin", "magit left margin", {"inherit": "default"}], ["magit-section-child-count", "child count", {}], ["magit-section-heading", "heading", {"fg": "#8b6508", "weight": "bold", "extend": true}], ["magit-section-heading-selection", "heading selection", {"fg": "#8b4c39", "extend": true}], ["magit-section-highlight", "highlight", {"bg": "#f2f2f2", "extend": true}], ["magit-section-secondary-heading", "secondary heading", {"weight": "bold", "extend": true}]]}, "malyon": {"label": "malyon", "preview": "generic", "faces": [["malyon-face-bold", "face bold", {"inherit": "bold"}], ["malyon-face-error", "face error", {"inherit": "error"}], ["malyon-face-italic", "face italic", {"inherit": "italic"}], ["malyon-face-plain", "face plain", {"inherit": "default"}], ["malyon-face-reverse", "face reverse", {"inverse": true, "inherit": "default"}]]}, "marginalia": {"label": "marginalia", "preview": "generic", "faces": [["marginalia-archive", "archive", {"inherit": "warning"}], ["marginalia-char", "char", {"inherit": "marginalia-key"}], ["marginalia-date", "date", {"inherit": "marginalia-key"}], ["marginalia-documentation", "documentation", {"inherit": "completions-annotations"}], ["marginalia-file-name", "file name", {"inherit": "marginalia-documentation"}], ["marginalia-file-owner", "file owner", {"inherit": "font-lock-preprocessor-face"}], ["marginalia-file-priv-dir", "file priv dir", {"inherit": "font-lock-keyword-face"}], ["marginalia-file-priv-exec", "file priv exec", {"inherit": "font-lock-function-name-face"}], ["marginalia-file-priv-link", "file priv link", {"inherit": "font-lock-keyword-face"}], ["marginalia-file-priv-no", "file priv no", {"inherit": "shadow"}], ["marginalia-file-priv-other", "file priv other", {"inherit": "font-lock-constant-face"}], ["marginalia-file-priv-rare", "file priv rare", {"inherit": "font-lock-variable-name-face"}], ["marginalia-file-priv-read", "file priv read", {"inherit": "font-lock-type-face"}], ["marginalia-file-priv-write", "file priv write", {"inherit": "font-lock-builtin-face"}], ["marginalia-function", "function", {"inherit": "font-lock-function-name-face"}], ["marginalia-installed", "installed", {"inherit": "success"}], ["marginalia-key", "key", {"inherit": "font-lock-keyword-face"}], ["marginalia-lighter", "lighter", {"inherit": "marginalia-size"}], ["marginalia-list", "list", {"inherit": "font-lock-constant-face"}], ["marginalia-mode", "mode", {"inherit": "marginalia-key"}], ["marginalia-modified", "modified", {"inherit": "font-lock-negation-char-face"}], ["marginalia-null", "null", {"inherit": "font-lock-comment-face"}], ["marginalia-number", "number", {"inherit": "font-lock-constant-face"}], ["marginalia-off", "off", {"inherit": "error"}], ["marginalia-on", "on", {"inherit": "success"}], ["marginalia-size", "size", {"inherit": "marginalia-number"}], ["marginalia-string", "string", {"inherit": "font-lock-string-face"}], ["marginalia-symbol", "symbol", {"inherit": "font-lock-type-face"}], ["marginalia-true", "true", {"inherit": "font-lock-builtin-face"}], ["marginalia-type", "type", {"inherit": "marginalia-key"}], ["marginalia-value", "value", {"inherit": "marginalia-key"}], ["marginalia-version", "version", {"inherit": "marginalia-number"}]]}, "markdown-mode": {"label": "markdown-mode", "preview": "markdown", "faces": [["markdown-blockquote-face", "markdown blockquote", {"inherit": "font-lock-doc-face"}], ["markdown-bold-face", "markdown bold", {"inherit": "bold"}], ["markdown-code-face", "markdown code", {"inherit": "fixed-pitch"}], ["markdown-comment-face", "markdown comment", {"inherit": "font-lock-comment-face"}], ["markdown-footnote-marker-face", "markdown footnote marker", {"inherit": "markdown-markup-face"}], ["markdown-footnote-text-face", "markdown footnote text", {"inherit": "font-lock-comment-face"}], ["markdown-gfm-checkbox-face", "markdown gfm checkbox", {"inherit": "font-lock-builtin-face"}], ["markdown-header-delimiter-face", "markdown header delimiter", {"inherit": "markdown-markup-face"}], ["markdown-header-face", "markdown header", {"weight": "bold", "inherit": ["font-lock-function-name-face"]}], ["markdown-header-face-1", "markdown header 1", {"inherit": "markdown-header-face"}], ["markdown-header-face-2", "markdown header 2", {"inherit": "markdown-header-face"}], ["markdown-header-face-3", "markdown header 3", {"inherit": "markdown-header-face"}], ["markdown-header-face-4", "markdown header 4", {"inherit": "markdown-header-face"}], ["markdown-header-face-5", "markdown header 5", {"inherit": "markdown-header-face"}], ["markdown-header-face-6", "markdown header 6", {"inherit": "markdown-header-face"}], ["markdown-header-rule-face", "markdown header rule", {"inherit": "markdown-markup-face"}], ["markdown-highlight-face", "markdown highlight", {"inherit": "highlight"}], ["markdown-highlighting-face", "markdown highlighting", {"fg": "#000000", "bg": "#ffff00"}], ["markdown-hr-face", "markdown hr", {"inherit": "markdown-markup-face"}], ["markdown-html-attr-name-face", "markdown html attr name", {"inherit": "font-lock-variable-name-face"}], ["markdown-html-attr-value-face", "markdown html attr value", {"inherit": "font-lock-string-face"}], ["markdown-html-entity-face", "markdown html entity", {"inherit": "font-lock-variable-name-face"}], ["markdown-html-tag-delimiter-face", "markdown html tag delimiter", {"inherit": "markdown-markup-face"}], ["markdown-html-tag-name-face", "markdown html tag name", {"inherit": "font-lock-type-face"}], ["markdown-inline-code-face", "markdown inline code", {"inherit": ["markdown-code-face", "font-lock-constant-face"]}], ["markdown-italic-face", "markdown italic", {"inherit": "italic"}], ["markdown-language-info-face", "markdown language info", {"inherit": "font-lock-string-face"}], ["markdown-language-keyword-face", "markdown language keyword", {"inherit": "font-lock-type-face"}], ["markdown-line-break-face", "markdown line break", {"underline": {"style": "line", "color": null}, "inherit": "font-lock-constant-face"}], ["markdown-link-face", "markdown link", {"inherit": "link"}], ["markdown-link-title-face", "markdown link title", {"inherit": "font-lock-comment-face"}], ["markdown-list-face", "markdown list", {"inherit": "markdown-markup-face"}], ["markdown-markup-face", "markdown markup", {"inherit": "shadow"}], ["markdown-math-face", "markdown math", {"inherit": "font-lock-string-face"}], ["markdown-metadata-key-face", "markdown metadata key", {"inherit": "font-lock-variable-name-face"}], ["markdown-metadata-value-face", "markdown metadata value", {"inherit": "font-lock-string-face"}], ["markdown-missing-link-face", "markdown missing link", {"inherit": "font-lock-warning-face"}], ["markdown-plain-url-face", "markdown plain url", {"inherit": "markdown-link-face"}], ["markdown-pre-face", "markdown pre", {"inherit": ["markdown-code-face", "font-lock-constant-face"]}], ["markdown-reference-face", "markdown reference", {"inherit": "markdown-markup-face"}], ["markdown-strike-through-face", "markdown strike through", {"strike": {"color": null}}], ["markdown-table-face", "markdown table", {"inherit": ["markdown-code-face"]}], ["markdown-url-face", "markdown url", {"inherit": "font-lock-string-face"}]]}, "nerd-icons": {"label": "nerd-icons", "preview": "generic", "faces": [["nerd-icons-blue", "blue", {"fg": "#6a9fb5"}], ["nerd-icons-blue-alt", "blue alt", {"fg": "#2188b6"}], ["nerd-icons-cyan", "cyan", {"fg": "#75b5aa"}], ["nerd-icons-cyan-alt", "cyan alt", {"fg": "#0595bd"}], ["nerd-icons-dblue", "dblue", {"fg": "#446674"}], ["nerd-icons-dcyan", "dcyan", {"fg": "#48746d"}], ["nerd-icons-dgreen", "dgreen", {"fg": "#6d8143"}], ["nerd-icons-dmaroon", "dmaroon", {"fg": "#72584b"}], ["nerd-icons-dorange", "dorange", {"fg": "#915b2d"}], ["nerd-icons-dpink", "dpink", {"fg": "#7e5d5f"}], ["nerd-icons-dpurple", "dpurple", {"fg": "#694863"}], ["nerd-icons-dred", "dred", {"fg": "#843031"}], ["nerd-icons-dsilver", "dsilver", {"fg": "#838484"}], ["nerd-icons-dyellow", "dyellow", {"fg": "#b48d56"}], ["nerd-icons-green", "green", {"fg": "#90a959"}], ["nerd-icons-lblue", "lblue", {"fg": "#677174"}], ["nerd-icons-lcyan", "lcyan", {"fg": "#2c7d6e"}], ["nerd-icons-lgreen", "lgreen", {"fg": "#3d6837"}], ["nerd-icons-lmaroon", "lmaroon", {"fg": "#ce7a4e"}], ["nerd-icons-lorange", "lorange", {"fg": "#ffa500"}], ["nerd-icons-lpink", "lpink", {"fg": "#ff505b"}], ["nerd-icons-lpurple", "lpurple", {"fg": "#e69dd6"}], ["nerd-icons-lred", "lred", {"fg": "#eb595a"}], ["nerd-icons-lsilver", "lsilver", {"fg": "#7f7869"}], ["nerd-icons-lyellow", "lyellow", {"fg": "#ff9300"}], ["nerd-icons-maroon", "maroon", {"fg": "#8f5536"}], ["nerd-icons-orange", "orange", {"fg": "#d4843e"}], ["nerd-icons-pink", "pink", {"fg": "#fc505b"}], ["nerd-icons-purple", "purple", {"fg": "#68295b"}], ["nerd-icons-purple-alt", "purple alt", {"fg": "#5d54e1"}], ["nerd-icons-red", "red", {"fg": "#ac4142"}], ["nerd-icons-red-alt", "red alt", {"fg": "#843031"}], ["nerd-icons-silver", "silver", {"fg": "#716e68"}], ["nerd-icons-yellow", "yellow", {"fg": "#ffcc0e"}]]}, "nerd-icons-completion": {"label": "nerd-icons-completion", "preview": "generic", "faces": [["nerd-icons-completion-dir-face", "dir", {}]]}, "orderless": {"label": "orderless", "preview": "generic", "faces": [["orderless-match-face-0", "match 0", {"fg": "#223fbf", "weight": "bold"}], ["orderless-match-face-1", "match 1", {"fg": "#8f0075", "weight": "bold"}], ["orderless-match-face-2", "match 2", {"fg": "#145a00", "weight": "bold"}], ["orderless-match-face-3", "match 3", {"fg": "#804000", "weight": "bold"}]]}, "org-roam": {"label": "org-roam", "preview": "generic", "faces": [["org-roam-dailies-calendar-note", "dailies calendar note", {"underline": {"style": "line", "color": null}, "inherit": ["org-link"]}], ["org-roam-dim", "dim", {"fg": "#999999"}], ["org-roam-header-line", "header line", {"fg": "#8b6508", "weight": "bold", "extend": true}], ["org-roam-olp", "olp", {"fg": "#999999"}], ["org-roam-preview-heading", "preview heading", {"fg": "#4d4d4d", "bg": "#cccccc", "extend": true}], ["org-roam-preview-heading-highlight", "preview heading highlight", {"fg": "#4d4d4d", "bg": "#bfbfbf", "extend": true}], ["org-roam-preview-heading-selection", "preview heading selection", {"fg": "#8b4c39", "extend": true, "inherit": "org-roam-preview-heading-highlight"}], ["org-roam-preview-region", "preview region", {"inherit": "bold"}], ["org-roam-title", "title", {"weight": "bold"}]]}, "org-superstar": {"label": "org-superstar", "preview": "generic", "faces": [["org-superstar-first", "first", {"inherit": "org-warning"}], ["org-superstar-header-bullet", "header bullet", {}], ["org-superstar-item", "item", {"inherit": "default"}], ["org-superstar-leading", "leading", {"fg": "#bebebe", "inherit": "default"}]]}, "prescient": {"label": "prescient", "preview": "generic", "faces": [["prescient-primary-highlight", "primary highlight", {"weight": "bold"}], ["prescient-secondary-highlight", "secondary highlight", {"underline": {"style": "line", "color": null}, "inherit": "prescient-primary-highlight"}]]}, "rainbow-delimiters": {"label": "rainbow-delimiters", "preview": "generic", "faces": [["rainbow-delimiters-base-error-face", "base error", {"fg": "#88090b", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-base-face", "base", {"inherit": "unspecified"}], ["rainbow-delimiters-depth-1-face", "depth 1", {"fg": "#707183", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-2-face", "depth 2", {"fg": "#7388d6", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-3-face", "depth 3", {"fg": "#909183", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-4-face", "depth 4", {"fg": "#709870", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-5-face", "depth 5", {"fg": "#907373", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-6-face", "depth 6", {"fg": "#6276ba", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-7-face", "depth 7", {"fg": "#858580", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-8-face", "depth 8", {"fg": "#80a880", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-depth-9-face", "depth 9", {"fg": "#887070", "inherit": "rainbow-delimiters-base-face"}], ["rainbow-delimiters-mismatched-face", "mismatched", {"inherit": "rainbow-delimiters-unmatched-face"}], ["rainbow-delimiters-unmatched-face", "unmatched", {"inherit": "rainbow-delimiters-base-error-face"}]]}, "symbol-overlay": {"label": "symbol-overlay", "preview": "generic", "faces": [["symbol-overlay-default-face", "default", {"inherit": "highlight"}], ["symbol-overlay-face-1", "face 1", {"fg": "#000000", "bg": "#1e90ff"}], ["symbol-overlay-face-2", "face 2", {"fg": "#000000", "bg": "#ff69b4"}], ["symbol-overlay-face-3", "face 3", {"fg": "#000000", "bg": "#ffff00"}], ["symbol-overlay-face-4", "face 4", {"fg": "#000000", "bg": "#da70d6"}], ["symbol-overlay-face-5", "face 5", {"fg": "#000000", "bg": "#ff0000"}], ["symbol-overlay-face-6", "face 6", {"fg": "#000000", "bg": "#fa8072"}], ["symbol-overlay-face-7", "face 7", {"fg": "#000000", "bg": "#00ff7f"}], ["symbol-overlay-face-8", "face 8", {"fg": "#000000", "bg": "#40e0d0"}]]}, "tmr": {"label": "tmr", "preview": "generic", "faces": [["tmr-description", "description", {"inherit": "bold"}], ["tmr-duration", "duration", {}], ["tmr-end-time", "end time", {"inherit": "error"}], ["tmr-finished", "finished", {"inherit": "error"}], ["tmr-is-acknowledged", "is acknowledged", {"inherit": "success"}], ["tmr-must-be-acknowledged", "must be acknowledged", {"inherit": "warning"}], ["tmr-start-time", "start time", {"inherit": "success"}], ["tmr-tabulated-acknowledgement", "tabulated acknowledgement", {"inherit": "bold"}], ["tmr-tabulated-description", "tabulated description", {"inherit": "font-lock-doc-face"}], ["tmr-tabulated-end-time", "tabulated end time", {"fg": "#800040"}], ["tmr-tabulated-remaining-time", "tabulated remaining time", {"fg": "#603f00"}], ["tmr-tabulated-start-time", "tabulated start time", {"fg": "#004476"}]]}, "transient": {"label": "transient", "preview": "generic", "faces": [["transient-active-infix", "active infix", {"inherit": "highlight"}], ["transient-argument", "argument", {"weight": "bold", "inherit": "font-lock-string-face"}], ["transient-delimiter", "delimiter", {"inherit": "shadow"}], ["transient-disabled-suffix", "disabled suffix", {"fg": "#000000", "bg": "#ff0000", "weight": "bold"}], ["transient-enabled-suffix", "enabled suffix", {"fg": "#000000", "bg": "#00ff00", "weight": "bold"}], ["transient-heading", "heading", {"inherit": "font-lock-keyword-face"}], ["transient-higher-level", "higher level", {"box": {"style": "line", "width": 1, "color": "#999999"}}], ["transient-inactive-argument", "inactive argument", {"inherit": "shadow"}], ["transient-inactive-value", "inactive value", {"inherit": "shadow"}], ["transient-inapt-argument", "inapt argument", {"weight": "bold", "inherit": "shadow"}], ["transient-inapt-suffix", "inapt suffix", {"slant": "italic", "inherit": "shadow"}], ["transient-key", "key", {"inherit": "font-lock-builtin-face"}], ["transient-key-exit", "key exit", {"fg": "#aa2222", "inherit": "transient-key"}], ["transient-key-noop", "key noop", {"fg": "#cccccc", "inherit": "transient-key"}], ["transient-key-recurse", "key recurse", {"fg": "#2266ff", "inherit": "transient-key"}], ["transient-key-return", "key return", {"fg": "#aaaa11", "inherit": "transient-key"}], ["transient-key-stack", "key stack", {"fg": "#dd4488", "inherit": "transient-key"}], ["transient-key-stay", "key stay", {"fg": "#22aa22", "inherit": "transient-key"}], ["transient-mismatched-key", "mismatched key", {"box": {"style": "line", "width": 1, "color": "#ff00ff"}}], ["transient-nonstandard-key", "nonstandard key", {"box": {"style": "line", "width": 1, "color": "#00ffff"}}], ["transient-unreachable", "unreachable", {"inherit": "shadow"}], ["transient-unreachable-key", "unreachable key", {"inherit": ["shadow", "transient-key"]}], ["transient-value", "value", {"weight": "bold", "inherit": "font-lock-string-face"}]]}, "vertico": {"label": "vertico", "preview": "generic", "faces": [["vertico-current", "current", {"extend": true, "inherit": "highlight"}], ["vertico-group-separator", "group separator", {"strike": {"color": null}, "inherit": "vertico-group-title"}], ["vertico-group-title", "group title", {"slant": "italic", "inherit": "shadow"}], ["vertico-multiline", "multiline", {"inherit": "shadow"}]]}, "web-mode": {"label": "web-mode", "preview": "generic", "faces": [["web-mode-annotation-face", "annotation", {"inherit": "web-mode-comment-face"}], ["web-mode-annotation-html-face", "annotation html", {"slant": "italic", "inherit": "web-mode-annotation-face"}], ["web-mode-annotation-tag-face", "annotation tag", {"underline": {"style": "line", "color": null}, "inherit": "web-mode-annotation-face"}], ["web-mode-annotation-type-face", "annotation type", {"weight": "bold", "inherit": "web-mode-annotation-face"}], ["web-mode-annotation-value-face", "annotation value", {"slant": "italic", "inherit": "web-mode-annotation-face"}], ["web-mode-block-attr-name-face", "block attr name", {"fg": "#8fbc8f"}], ["web-mode-block-attr-value-face", "block attr value", {"fg": "#5f9ea0"}], ["web-mode-block-comment-face", "block comment", {"inherit": "web-mode-comment-face"}], ["web-mode-block-control-face", "block control", {"inherit": "font-lock-preprocessor-face"}], ["web-mode-block-delimiter-face", "block delimiter", {"inherit": "font-lock-preprocessor-face"}], ["web-mode-block-face", "block", {"bg": "#ffffe0"}], ["web-mode-block-string-face", "block string", {"inherit": "web-mode-string-face"}], ["web-mode-bold-face", "bold", {"weight": "bold"}], ["web-mode-builtin-face", "builtin", {"inherit": "font-lock-builtin-face"}], ["web-mode-comment-face", "comment", {"inherit": "font-lock-comment-face"}], ["web-mode-comment-keyword-face", "comment keyword", {"weight": "bold"}], ["web-mode-constant-face", "constant", {"inherit": "font-lock-constant-face"}], ["web-mode-css-at-rule-face", "css at rule", {"inherit": "font-lock-constant-face"}], ["web-mode-css-color-face", "css color", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-comment-face", "css comment", {"inherit": "web-mode-comment-face"}], ["web-mode-css-function-face", "css function", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-priority-face", "css priority", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-property-name-face", "css property name", {"inherit": "font-lock-variable-name-face"}], ["web-mode-css-pseudo-class-face", "css pseudo class", {"inherit": "font-lock-builtin-face"}], ["web-mode-css-selector-class-face", "css selector class", {"inherit": "font-lock-keyword-face"}], ["web-mode-css-selector-face", "css selector", {"inherit": "font-lock-keyword-face"}], ["web-mode-css-selector-tag-face", "css selector tag", {"inherit": "font-lock-keyword-face"}], ["web-mode-css-string-face", "css string", {"inherit": "web-mode-string-face"}], ["web-mode-css-variable-face", "css variable", {"slant": "italic", "inherit": "web-mode-variable-name-face"}], ["web-mode-current-column-highlight-face", "current column highlight", {"bg": "#3e3c36"}], ["web-mode-current-element-highlight-face", "current element highlight", {"fg": "#ffffff", "bg": "#000000"}], ["web-mode-doctype-face", "doctype", {"fg": "#bebebe"}], ["web-mode-error-face", "error", {"bg": "#ff0000"}], ["web-mode-filter-face", "filter", {"inherit": "font-lock-function-name-face"}], ["web-mode-folded-face", "folded", {"underline": {"style": "line", "color": null}}], ["web-mode-function-call-face", "function call", {"inherit": "font-lock-function-name-face"}], ["web-mode-function-name-face", "function name", {"inherit": "font-lock-function-name-face"}], ["web-mode-html-attr-custom-face", "html attr custom", {"inherit": "web-mode-html-attr-name-face"}], ["web-mode-html-attr-engine-face", "html attr engine", {"inherit": "web-mode-block-delimiter-face"}], ["web-mode-html-attr-equal-face", "html attr equal", {"inherit": "web-mode-html-attr-name-face"}], ["web-mode-html-attr-name-face", "html attr name", {"fg": "#8b8989"}], ["web-mode-html-attr-value-face", "html attr value", {"inherit": "font-lock-string-face"}], ["web-mode-html-entity-face", "html entity", {"slant": "italic"}], ["web-mode-html-tag-bracket-face", "html tag bracket", {"fg": "#242424"}], ["web-mode-html-tag-custom-face", "html tag custom", {"inherit": "web-mode-html-tag-face"}], ["web-mode-html-tag-face", "html tag", {"fg": "#8b8989"}], ["web-mode-html-tag-namespaced-face", "html tag namespaced", {"inherit": "web-mode-block-control-face"}], ["web-mode-html-tag-unclosed-face", "html tag unclosed", {"underline": {"style": "line", "color": null}, "inherit": "web-mode-html-tag-face"}], ["web-mode-inlay-face", "inlay", {"bg": "#ffffe0"}], ["web-mode-interpolate-color1-face", "interpolate color1", {"inherit": "web-mode-string-face"}], ["web-mode-interpolate-color2-face", "interpolate color2", {"inherit": "web-mode-string-face"}], ["web-mode-interpolate-color3-face", "interpolate color3", {"inherit": "web-mode-string-face"}], ["web-mode-interpolate-color4-face", "interpolate color4", {"inherit": "web-mode-string-face"}], ["web-mode-italic-face", "italic", {"slant": "italic"}], ["web-mode-javascript-comment-face", "javascript comment", {"inherit": "web-mode-comment-face"}], ["web-mode-javascript-string-face", "javascript string", {"inherit": "web-mode-string-face"}], ["web-mode-json-comment-face", "json comment", {"inherit": "web-mode-comment-face"}], ["web-mode-json-context-face", "json context", {"fg": "#cd69c9"}], ["web-mode-json-key-face", "json key", {"fg": "#dda0dd"}], ["web-mode-json-string-face", "json string", {"inherit": "web-mode-string-face"}], ["web-mode-jsx-depth-1-face", "jsx depth 1", {"bg": "#000053"}], ["web-mode-jsx-depth-2-face", "jsx depth 2", {"bg": "#001970"}], ["web-mode-jsx-depth-3-face", "jsx depth 3", {"bg": "#002984"}], ["web-mode-jsx-depth-4-face", "jsx depth 4", {"bg": "#49599a"}], ["web-mode-jsx-depth-5-face", "jsx depth 5", {"bg": "#9499b7"}], ["web-mode-keyword-face", "keyword", {"inherit": "font-lock-keyword-face"}], ["web-mode-param-name-face", "param name", {"fg": "#cdc9c9"}], ["web-mode-part-comment-face", "part comment", {"inherit": "web-mode-comment-face"}], ["web-mode-part-face", "part", {"inherit": "web-mode-block-face"}], ["web-mode-part-string-face", "part string", {"inherit": "web-mode-string-face"}], ["web-mode-preprocessor-face", "preprocessor", {"inherit": "font-lock-preprocessor-face"}], ["web-mode-script-face", "script", {"inherit": "web-mode-part-face"}], ["web-mode-sql-keyword-face", "sql keyword", {"weight": "bold", "slant": "italic"}], ["web-mode-string-face", "string", {"inherit": "font-lock-string-face"}], ["web-mode-style-face", "style", {"inherit": "web-mode-part-face"}], ["web-mode-symbol-face", "symbol", {"fg": "#eeb422"}], ["web-mode-type-face", "type", {"inherit": "font-lock-type-face"}], ["web-mode-underline-face", "underline", {"underline": {"style": "line", "color": null}}], ["web-mode-variable-name-face", "variable name", {"inherit": "font-lock-variable-name-face"}], ["web-mode-warning-face", "warning", {"inherit": "font-lock-warning-face"}], ["web-mode-whitespace-face", "whitespace", {"bg": "#68228b"}]]}, "yasnippet": {"label": "yasnippet", "preview": "generic", "faces": [["yas--field-debug-face", "yas field debug", {}], ["yas-field-highlight-face", "yas field highlight", {"inherit": "region"}]]}};
const COLOR_NAMES=[["alice-blue", "#f0f8ff"], ["antique-white", "#faebd7"], ["aquamarine", "#7fffd4"], ["azure", "#f0ffff"], ["beige", "#f5f5dc"], ["bisque", "#ffe4c4"], ["black", "#000000"], ["blanched-almond", "#ffebcd"], ["blue", "#0000ff"], ["blue-violet", "#8a2be2"], ["brown", "#a52a2a"], ["burlywood", "#deb887"], ["cadet-blue", "#5f9ea0"], ["chartreuse", "#7fff00"], ["chocolate", "#d2691e"], ["coral", "#ff7f50"], ["cornflower-blue", "#6495ed"], ["cornsilk", "#fff8dc"], ["cyan", "#00ffff"], ["dark-blue", "#00008b"], ["dark-cyan", "#008b8b"], ["dark-goldenrod", "#b8860b"], ["dark-green", "#006400"], ["dark-grey", "#a9a9a9"], ["dark-khaki", "#bdb76b"], ["dark-magenta", "#8b008b"], ["dark-olive", "#556b2f"], ["dark-orange", "#ff8c00"], ["dark-orchid", "#9932cc"], ["dark-red", "#8b0000"], ["dark-salmon", "#e9967a"], ["dark-sea", "#8fbc8f"], ["dark-slate", "#2f4f4f"], ["dark-slate", "#483d8b"], ["dark-turquoise", "#00ced1"], ["dark-violet", "#9400d3"], ["deep-pink", "#ff1493"], ["deep-sky", "#00bfff"], ["dim-gray", "#696969"], ["dodger-blue", "#1e90ff"], ["firebrick", "#b22222"], ["floral-white", "#fffaf0"], ["forest-green", "#228b22"], ["gainsboro", "#dcdcdc"], ["ghost-white", "#f8f8ff"], ["gold", "#ffd700"], ["goldenrod", "#daa520"], ["gray", "#bebebe"], ["green", "#00ff00"], ["green-yellow", "#adff2f"], ["honeydew", "#f0fff0"], ["hot-pink", "#ff69b4"], ["indian-red", "#cd5c5c"], ["ivory", "#fffff0"], ["khaki", "#f0e68c"], ["lavender", "#e6e6fa"], ["lavender-blush", "#fff0f5"], ["lawn-green", "#7cfc00"], ["lemon-chiffon", "#fffacd"], ["light-blue", "#add8e6"], ["light-coral", "#f08080"], ["light-cyan", "#e0ffff"], ["light-goldenrod", "#eedd82"], ["light-goldenrod", "#fafad2"], ["light-green", "#90ee90"], ["light-grey", "#d3d3d3"], ["light-pink", "#ffb6c1"], ["light-salmon", "#ffa07a"], ["light-sea", "#20b2aa"], ["light-sky", "#87cefa"], ["light-slate", "#778899"], ["light-slate", "#8470ff"], ["light-steel", "#b0c4de"], ["light-yellow", "#ffffe0"], ["lime-green", "#32cd32"], ["linen", "#faf0e6"], ["magenta", "#ff00ff"], ["maroon", "#b03060"], ["medium-aquamarine", "#66cdaa"], ["medium-blue", "#0000cd"], ["medium-orchid", "#ba55d3"], ["medium-purple", "#9370db"], ["medium-sea", "#3cb371"], ["medium-slate", "#7b68ee"], ["medium-spring", "#00fa9a"], ["medium-turquoise", "#48d1cc"], ["medium-violet", "#c71585"], ["midnight-blue", "#191970"], ["mint-cream", "#f5fffa"], ["misty-rose", "#ffe4e1"], ["moccasin", "#ffe4b5"], ["navajo-white", "#ffdead"], ["navy", "#000080"], ["old-lace", "#fdf5e6"], ["olive-drab", "#6b8e23"], ["orange", "#ffa500"], ["orange-red", "#ff4500"], ["orchid", "#da70d6"], ["pale-goldenrod", "#eee8aa"], ["pale-green", "#98fb98"], ["pale-turquoise", "#afeeee"], ["pale-violet", "#db7093"], ["papaya-whip", "#ffefd5"], ["peach-puff", "#ffdab9"], ["peru", "#cd853f"], ["pink", "#ffc0cb"], ["plum", "#dda0dd"], ["powder-blue", "#b0e0e6"], ["purple", "#a020f0"], ["red", "#ff0000"], ["rosy-brown", "#bc8f8f"], ["royal-blue", "#4169e1"], ["saddle-brown", "#8b4513"], ["salmon", "#fa8072"], ["sandy-brown", "#f4a460"], ["sea-green", "#2e8b57"], ["seashell", "#fff5ee"], ["sienna", "#a0522d"], ["sky-blue", "#87ceeb"], ["slate-blue", "#6a5acd"], ["slate-gray", "#708090"], ["snow", "#fffafa"], ["spring-green", "#00ff7f"], ["steel-blue", "#4682b4"], ["tan", "#d2b48c"], ["thistle", "#d8bfd8"], ["tomato", "#ff6347"], ["turquoise", "#40e0d0"], ["violet", "#ee82ee"], ["violet-red", "#d02090"], ["wheat", "#f5deb3"], ["white", "#ffffff"], ["white-smoke", "#f5f5f5"], ["yellow", "#ffff00"], ["yellow-green", "#9acd32"]];
let MAP={"kw": "#d3d3d3", "bi": "#d3d3d3", "pp": "#d3d3d3", "fnd": "#0000ff", "fnc": "#0000ff", "dec": "", "ty": "#e5e5e5", "prop": "#e5e5e5", "con": "#d3d3d3", "num": "#000000", "esc": "#000000", "str": "#696969", "re": "#696969", "doc": "#696969", "cm": "#696969", "cmd": "#696969", "var": "#e5e5e5", "op": "#000000", "punc": "#000000", "p": "#000000", "bg": "#ffffff"}, PALETTE=[["#ffffff", "bg", "ground"], ["#000000", "fg", "ground"], ["#d3d3d3", "lightgray", "lightgray"], ["#0000ff", "blue1", "blue"], ["#e5e5e5", "gray90", "gray"], ["#696969", "dimgray", "dimgray"], ["#eedc82", "lightgoldenrod2", "lightgoldenrod"], ["#b4eeb4", "darkseagreen2", "darkseagreen"], ["#bfbfbf", "grey75", "grey"], ["#333333", "grey20", "grey"], ["#f2f2f2", "grey95", "grey"], ["#ff00ff", "magenta", "magenta"], ["#b0e2ff", "lightskyblue1", "lightskyblue"], ["#cd00cd", "magenta3", "magenta"], ["#afeeee", "paleturquoise", "paleturquoise"], ["#ffc1c1", "rosybrown1", "rosybrown"], ["#40e0d0", "turquoise", "turquoise"], ["#a020f0", "purple", "purple"], ["#3a5fcd", "royalblue3", "royalblue"], ["#ff0000", "red", "red"], ["#ff8c00", "dark-orange", "dark-orange"], ["#228b22", "forestgreen", "forestgreen"], ["#8b6508", "darkgoldenrod4", "darkgoldenrod"], ["#8b4c39", "salmon4", "salmon"], ["#22aa22", "color-24", "color-24"], ["#ddffdd", "color-25", "color-25"], ["#cceecc", "color-26", "color-26"], ["#aa2222", "color-27", "color-27"], ["#ffdddd", "color-28", "color-28"], ["#eecccc", "color-29", "color-29"], ["#7f7f7f", "grey50", "grey"], ["#cccccc", "grey80", "grey"], ["#cd8162", "lightsalmon3", "lightsalmon"], ["#aaaa11", "color-33", "color-33"], ["#ffffcc", "color-34", "color-34"], ["#eeeebb", "color-35", "color-35"], ["#4a708b", "skyblue4", "skyblue"], ["#6e8b3d", "darkolivegreen4", "darkolivegreen"], ["#8b6914", "goldenrod4", "goldenrod"], ["#999999", "grey60", "grey"], ["#4d4d4d", "grey30", "grey"], ["#b22222", "firebrick", "firebrick"], ["#00ff00", "green", "green"], ["#556b2f", "darkolivegreen", "darkolivegreen"], ["#8b3a3a", "indianred4", "indianred"], ["#b8860b", "darkgoldenrod", "darkgoldenrod"], ["#00ffff", "cyan", "cyan"], ["#66cdaa", "medium-aquamarine", "medium-aquamarine"], ["#ffa500", "orange", "orange"], ["#d02090", "violet-red", "violet-red"], ["#add8e6", "light-blue", "light-blue"], ["#cd5c5c", "indian-red", "indian-red"], ["#aaa", "color-52", "color-52"], ["#000", "color-53", "color-53"], ["#aa0", "color-54", "color-54"], ["#070", "color-55", "color-55"], ["#daa520", "goldenrod", "goldenrod"], ["#00bfff", "deep-sky-blue", "deep-sky-blue"], ["#ee00ee", "magenta2", "magenta"], ["#ffff00", "yellow", "yellow"], ["#6b6b6b", "color-60", "color-60"], ["#979797", "color-61", "color-61"], ["unspecified", "color-62", "color-62"], ["#223fbf", "color-63", "color-63"], ["#8f0075", "color-64", "color-64"], ["#145a00", "color-65", "color-65"], ["#804000", "color-66", "color-66"], ["#efcbcf", "color-67", "color-67"], ["#ffd700", "gold", "gold"], ["#8b0000", "darkred", "darkred"], ["#f0e68c", "khaki", "khaki"], ["#8b008b", "dark-magenta", "dark-magenta"], ["#ff4500", "orange-red", "orange-red"], ["#deb887", "burlywood", "burlywood"], ["#cd8500", "orange3", "orange"], ["#00008b", "dark-blue", "dark-blue"], ["#9400d3", "dark-violet", "dark-violet"], ["#6a9fb5", "color-77", "color-77"], ["#2188b6", "color-78", "color-78"], ["#75b5aa", "color-79", "color-79"], ["#0595bd", "color-80", "color-80"], ["#446674", "color-81", "color-81"], ["#48746d", "color-82", "color-82"], ["#6d8143", "color-83", "color-83"], ["#72584b", "color-84", "color-84"], ["#915b2d", "color-85", "color-85"], ["#7e5d5f", "color-86", "color-86"], ["#694863", "color-87", "color-87"], ["#843031", "color-88", "color-88"], ["#838484", "color-89", "color-89"], ["#b48d56", "color-90", "color-90"], ["#90a959", "color-91", "color-91"], ["#677174", "color-92", "color-92"], ["#2c7d6e", "color-93", "color-93"], ["#3d6837", "color-94", "color-94"], ["#ce7a4e", "color-95", "color-95"], ["#ff505b", "color-96", "color-96"], ["#e69dd6", "color-97", "color-97"], ["#eb595a", "color-98", "color-98"], ["#7f7869", "color-99", "color-99"], ["#ff9300", "color-100", "color-100"], ["#8f5536", "color-101", "color-101"], ["#d4843e", "color-102", "color-102"], ["#fc505b", "color-103", "color-103"], ["#68295b", "color-104", "color-104"], ["#5d54e1", "color-105", "color-105"], ["#ac4142", "color-106", "color-106"], ["#716e68", "color-107", "color-107"], ["#ffcc0e", "color-108", "color-108"], ["#8b1a1a", "firebrick4", "firebrick"], ["#fff8dc", "cornsilk", "cornsilk"], ["#f5deb3", "wheat", "wheat"], ["#cd0000", "red3", "red"], ["#0000cd", "blue3", "blue"], ["#cc9393", "color-114", "color-114"], ["#bebebe", "gray", "gray"], ["#88090b", "color-116", "color-116"], ["#707183", "color-117", "color-117"], ["#7388d6", "color-118", "color-118"], ["#909183", "color-119", "color-119"], ["#709870", "color-120", "color-120"], ["#907373", "color-121", "color-121"], ["#6276ba", "color-122", "color-122"], ["#858580", "color-123", "color-123"], ["#80a880", "color-124", "color-124"], ["#887070", "color-125", "color-125"], ["#1e90ff", "dodger-blue", "dodger-blue"], ["#ff69b4", "hot-pink", "hot-pink"], ["#da70d6", "orchid", "orchid"], ["#fa8072", "salmon", "salmon"], ["#00ff7f", "spring-green", "spring-green"], ["#800040", "color-131", "color-131"], ["#603f00", "color-132", "color-132"], ["#004476", "color-133", "color-133"], ["#2266ff", "color-134", "color-134"], ["#dd4488", "color-135", "color-135"], ["#8fbc8f", "color-136", "color-136"], ["#5f9ea0", "color-137", "color-137"], ["#ffffe0", "lightyellow1", "lightyellow"], ["#3e3c36", "color-139", "color-139"], ["#8b8989", "snow4", "snow"], ["#242424", "grey14", "grey"], ["#cd69c9", "orchid3", "orchid"], ["#dda0dd", "plum", "plum"], ["#000053", "color-144", "color-144"], ["#001970", "color-145", "color-145"], ["#002984", "color-146", "color-146"], ["#49599a", "color-147", "color-147"], ["#9499b7", "color-148", "color-148"], ["#cdc9c9", "snow3", "snow"], ["#eeb422", "goldenrod2", "goldenrod"], ["#68228b", "darkorchid4", "darkorchid"]], SYNTAX={"kw": {"fg": "#d3d3d3", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "bi": {"fg": "#d3d3d3", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "pp": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "font-lock-builtin-face", "height": null}, "fnd": {"fg": "#0000ff", "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "fnc": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "font-lock-function-name-face", "height": null}, "dec": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "ty": {"fg": "#e5e5e5", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "prop": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "font-lock-variable-name-face", "height": null}, "con": {"fg": "#d3d3d3", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": null, "underline": {"style": "line", "color": null}, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "num": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "esc": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "font-lock-regexp-grouping-backslash", "height": null}, "str": {"fg": "#696969", "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": "italic", "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "re": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "font-lock-string-face", "height": null}, "doc": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "font-lock-string-face", "height": null}, "cm": {"fg": "#696969", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": "italic", "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "cmd": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "font-lock-comment-face", "height": null}, "var": {"fg": "#e5e5e5", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": "italic", "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "op": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "punc": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "p": {"fg": "#000000", "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "bg": {"fg": "#ffffff", "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}}, UIMAP={"cursor": {"fg": null, "bg": "#000000", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "region": {"fg": null, "bg": "#eedc82", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": true, "inherit": null, "height": null}, "hl-line": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": true, "inherit": "highlight", "height": null}, "highlight": {"fg": null, "bg": "#b4eeb4", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "mode-line": {"fg": "#000000", "bg": "#bfbfbf", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": {"style": "released", "width": 1, "color": null}, "inverse": false, "extend": false, "inherit": null, "height": null}, "mode-line-highlight": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": {"style": "released", "width": 1, "color": null}, "inverse": false, "extend": false, "inherit": null, "height": null}, "mode-line-inactive": {"fg": "#333333", "bg": "#e5e5e5", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": {"style": "line", "width": 1, "color": "#bfbfbf"}, "inverse": false, "extend": false, "inherit": "mode-line", "height": null}, "fringe": {"fg": null, "bg": "#f2f2f2", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "line-number": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": ["shadow", "default"], "height": null}, "line-number-current-line": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": "line-number", "height": null}, "minibuffer-prompt": {"fg": "#ff00ff", "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "isearch": {"fg": "#b0e2ff", "bg": "#cd00cd", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "lazy-highlight": {"fg": null, "bg": "#afeeee", "distant-fg": "#000000", "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "isearch-fail": {"fg": null, "bg": "#ffc1c1", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "show-paren-match": {"fg": null, "bg": "#40e0d0", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "show-paren-mismatch": {"fg": "#ffffff", "bg": "#a020f0", "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "link": {"fg": "#3a5fcd", "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": {"style": "line", "color": null}, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "error": {"fg": "#ff0000", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "warning": {"fg": "#ff8c00", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "success": {"fg": "#228b22", "bg": null, "distant-fg": null, "family": null, "weight": "bold", "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}, "vertical-border": {"fg": null, "bg": null, "distant-fg": null, "family": null, "weight": null, "slant": null, "underline": null, "strike": null, "overline": null, "box": null, "inverse": false, "extend": false, "inherit": null, "height": null}};
let LOCKED=new Set([]); // rows whose choice is decided (controls disabled, skipped by erase/reset batch actions)
@@ -523,6 +523,11 @@ function reliefColors(bgHex) {
};
return { hl: one(1.2, 0x8000), sh: one(0.6, 0x4000) };
}
+
+// OKLCH of a hex, and the pure black/white endpoint test. Shared by app-core
+// and palette-generator-core (both previously kept their own identical copies).
+function oklchOf(hex){return oklab2oklch(srgb2oklab(hex));}
+function isPureEndpointHex(hex){const h=(hex||'').toLowerCase();return h==='#ffffff'||h==='#000000';}
// Pure package-model + dropdown logic, inlined verbatim from app-core.js. The
// wrappers above (pname/seedPkgmap/ddList/pkgEffFg/pkgEffBg) delegate here.
// Pure app logic — the package-face model and the dropdown option list — with no
@@ -553,10 +558,80 @@ function migrateLegacyFace(d){
return out;
}
+// --- face CSS rendering ------------------------------------------------------
+// Pure builders for the face preview/inline CSS strings. app.js's syntaxStyle /
+// uiCss / ofs / udeco wrappers differ only in how they resolve fg/bg and whether
+// they add a font-size; they all delegate here. cssWeight maps the curated weight
+// names to numeric CSS weights; faceDecoration is the underline/strike value.
+function cssWeight(w){const M={light:300,normal:400,medium:500,semibold:600,bold:700,heavy:900};return w&&M[w]!=null?M[w]:'normal';}
+function faceDecoration(face){return ((face.underline?'underline ':'')+(face.strike?'line-through':'')).trim()||'none';}
+// A face's :box, rendered as an inset box-shadow (no layout shift). Returns the
+// box-shadow VALUE (or '' for no box). 'line' is a flat border in the box color
+// (or the face's own color when unset); 'released'/'pressed' are the 3D button
+// styles Emacs draws, derived from explicit box color when set, otherwise BG so
+// they read on any color (reliefColors is ported from xterm.c).
+function boxCss(b,bg){if(!b||!b.style)return '';const w=b.width||1;
+ if(b.style==='released'||b.style==='pressed'){
+ const r=(b.color||bg)?reliefColors(b.color||bg):{hl:null,sh:null};
+ const hl=r.hl||'#ffffff33',sh=r.sh||'#00000066';
+ const [a,z]=b.style==='released'?[hl,sh]:[sh,hl];
+ return `inset ${w}px ${w}px 0 ${a},inset -${w}px -${w}px 0 ${z}`;}
+ return `inset 0 0 0 ${w}px ${b.color||'currentColor'}`;}
+// CSS declaration string for FACE with already-resolved FG/BG. opts: noBg
+// (never emit background), fontSize (em number for height), boxBg (background
+// handed to the relief shading). Declaration order matches the strings the four
+// callers previously assembled by hand, so the rendered output is unchanged.
+function faceCss(face,fg,bg,opts){
+ opts=opts||{};
+ const parts=['color:'+fg];
+ if(bg&&!opts.noBg)parts.push('background:'+bg);
+ parts.push('font-weight:'+cssWeight(face.weight),
+ 'font-style:'+(face.slant||'normal'),
+ 'text-decoration:'+faceDecoration(face));
+ if(opts.fontSize!=null)parts.push('font-size:'+opts.fontSize+'em');
+ const bx=boxCss(face.box,opts.boxBg);
+ if(bx)parts.push('box-shadow:'+bx);
+ return parts.join(';');
+}
+
+// Single source of truth for the per-face attribute model. One row per
+// attribute drives both normalizePkgFace (defaulting + palette resolution) and
+// packagesForExport (which attrs serialize and when). Adding a face attribute
+// is one row here, not an edit in four hand-kept lists.
+// def : value when unset
+// resolve : fg/bg/distant-fg run through the palette name->hex resolver
+// coerce : 'bool' -> !!v ; 'height' -> v||1 ; default -> v ?? def
+// emit : export rule -- 'always' | 'truthy' | 'non-one' | 'bool'
+// A hoisted function rather than a const: the inlined page calls normalizePkgFace
+// at top level (seedPkgmap) before this point in source order, and a const would
+// be in its temporal dead zone there; a function declaration is hoisted.
+function faceAttrs(){return [
+ {k:'fg', def:null, resolve:true, emit:'always'},
+ {k:'bg', def:null, resolve:true, emit:'always'},
+ {k:'distant-fg', def:null, resolve:true, emit:'truthy'},
+ {k:'family', def:null, emit:'truthy'},
+ {k:'weight', def:null, emit:'truthy'},
+ {k:'slant', def:null, emit:'truthy'},
+ {k:'underline', def:null, emit:'truthy'},
+ {k:'strike', def:null, emit:'truthy'},
+ {k:'overline', def:null, emit:'truthy'},
+ {k:'inherit', def:null, emit:'always'},
+ {k:'height', def:1, coerce:'height', emit:'non-one'},
+ {k:'box', def:null, emit:'truthy'},
+ {k:'inverse', def:false, coerce:'bool', emit:'bool'},
+ {k:'extend', def:false, coerce:'bool', emit:'bool'},
+];}
+
function normalizePkgFace(d,source,palette){
d=migrateLegacyFace(d||{});
const resolve=(v)=>palette?nameToHex(v,palette):v;
- return {fg:resolve(d.fg)??null,bg:resolve(d.bg)??null,'distant-fg':resolve(d['distant-fg'])??null,family:d.family??null,weight:d.weight??null,slant:d.slant??null,underline:d.underline??null,strike:d.strike??null,overline:d.overline??null,inherit:d.inherit??null,height:d.height||1,box:d.box??null,inverse:!!d.inverse,extend:!!d.extend,source:source||d.source||'user'};
+ const out={};
+ for(const a of faceAttrs()){
+ let v=a.resolve?resolve(d[a.k]):d[a.k];
+ out[a.k]=a.coerce==='bool'?!!v:a.coerce==='height'?(v||1):(v??a.def);
+ }
+ out.source=source||d.source||'user';
+ return out;
}
@@ -564,7 +639,8 @@ function normalizePkgFace(d,source,palette){
function buildPkgmap(apps,palette){const m={};for(const app in apps){m[app]={};for(const row of apps[app].faces){m[app][row[0]]=normalizePkgFace(row[2],'default',palette);}}return m;}
// The package faces worth exporting (anything seeded or user-touched), trimmed.
-function packagesForExport(map){const out={};for(const app in map){const faces={};for(const face in map[app]){const f=map[app][face];if(f.source==='default'||f.source==='user'||f.source==='cleared'){const o={fg:f.fg,bg:f.bg,inherit:f.inherit,source:f.source};if(f.weight)o.weight=f.weight;if(f.slant)o.slant=f.slant;if(f.underline)o.underline=f.underline;if(f.strike)o.strike=f.strike;if(f['distant-fg'])o['distant-fg']=f['distant-fg'];if(f.family)o.family=f.family;if(f.overline)o.overline=f.overline;if(f.inverse)o.inverse=true;if(f.extend)o.extend=true;if(f.height&&f.height!==1)o.height=f.height;if(f.box)o.box=f.box;faces[face]=o;}}if(Object.keys(faces).length)out[app]=faces;}return out;}
+// Driven by FACE_ATTRS: each attribute's `emit` rule decides whether it lands.
+function packagesForExport(map){const out={};for(const app in map){const faces={};for(const face in map[app]){const f=map[app][face];if(f.source==='default'||f.source==='user'||f.source==='cleared'){const o={};for(const a of faceAttrs()){const v=f[a.k];if(a.emit==='always')o[a.k]=v;else if(a.emit==='truthy'){if(v)o[a.k]=v;}else if(a.emit==='non-one'){if(v&&v!==1)o[a.k]=v;}else if(a.emit==='bool'){if(v)o[a.k]=true;}}o.source=f.source;faces[face]=o;}}if(Object.keys(faces).length)out[app]=faces;}return out;}
// Merge an imported package block into a face map, filling missing fields.
function mergePackagesInto(map,pkgs){if(!pkgs)return;for(const app in pkgs){if(!map[app])map[app]={};for(const face in pkgs[app]){const f=pkgs[app][face]||{};map[app][face]=normalizePkgFace(f,f.source||'user');}}}
@@ -586,16 +662,16 @@ const SYNTAX_INHERIT={cmd:'cm',doc:'str',prop:'var',fnc:'fnd'};
// theme's default foreground (the chain's floor). `dec` (decorator) is pinned to
// `ty`: Emacs has no decorator face and renders decorators with
// font-lock-type-face, so a dec color set in the studio would never reach Emacs.
+// Walk an inherit chain from START, returning the first truthy valueFn(key) or
+// null. nextFn(key) gives the parent key; a seen-set guards against a cycle.
+function walkInheritChain(start,nextFn,valueFn){
+ let k=start;const seen={};
+ while(k&&!seen[k]){seen[k]=1;const v=valueFn(k);if(v)return v;k=nextFn(k);}
+ return null;
+}
function resolveSyntaxFg(cat,syntax,defaultFg){
- let k=(cat==='dec')?'ty':cat;
- const seen={};
- while(k&&!seen[k]){
- seen[k]=1;
- const fg=syntax[k]&&syntax[k].fg;
- if(fg)return fg;
- k=SYNTAX_INHERIT[k];
- }
- return defaultFg;
+ const start=(cat==='dec')?'ty':cat;
+ return walkInheritChain(start,k=>SYNTAX_INHERIT[k],k=>syntax[k]&&syntax[k].fg)||defaultFg;
}
// Emacs built-in inherit chains for the ui faces whose parent is also a studio ui
@@ -607,15 +683,7 @@ const UI_INHERIT={'mode-line-inactive':'mode-line','line-number-current-line':'l
// nothing up the chain is set. The caller applies its own floor (default fg,
// ground, or transparent), since that floor differs per attribute and face.
function resolveUiAttr(face,attr,uimap){
- let f=face;
- const seen={};
- while(f&&!seen[f]){
- seen[f]=1;
- const v=uimap[f]&&uimap[f][attr];
- if(v)return v;
- f=UI_INHERIT[f];
- }
- return null;
+ return walkInheritChain(face,f=>UI_INHERIT[f],f=>uimap[f]&&uimap[f][attr]);
}
// Text color for a swatch-dropdown popup row. A row showing a real palette color
@@ -694,9 +762,7 @@ function lMax(hue,chroma,fgSet,target){
// the editable truth; these pure functions group it, regenerate a ramp, and plan
// assignment re-point across a regenerate.
-function oklchOf(hex){return oklab2oklch(srgb2oklab(hex));}
function isReservedGroundLikeName(name){return /^(bg|fg)(?:[-_+].+|\d.*)$/i.test(name||'');}
-function isPureEndpointHex(hex){const h=(hex||'').toLowerCase();return h==='#ffffff'||h==='#000000';}
function interpOklabHex(a,b,t,offset){
const lab={L:a.L+(b.L-a.L)*t,a:a.a+(b.a-a.a)*t,b:a.b+(b.b-a.b)*t};
const lrgb=oklab2lrgb(lab.L,lab.a,lab.b);
@@ -1034,8 +1100,6 @@ function contrastTitle(r){
// from app-core.js, but owns candidate hue selection, naming, contrast filtering,
// and conversion from preview columns to palette entries.
-function oklchOf(hex){return oklab2oklch(srgb2oklab(hex));}
-function isPureEndpointHex(hex){const h=(hex||'').toLowerCase();return h==='#ffffff'||h==='#000000';}
function generatedExistingNames(palette){
return new Set((palette||[]).map(p=>(p&&p[1]||'').toLowerCase()).filter(Boolean));
}
@@ -1056,7 +1120,7 @@ function uniqueGeneratedName(base,used){
function hueOfHex(hex,fallback){
const h=typeof hex==='string'?normHex(hex):null;
if(!h)return fallback;
- const lch=oklab2oklch(srgb2oklab(h));
+ const lch=oklchOf(h);
return Number.isFinite(lch.H)?lch.H:fallback;
}
function generatorSourceHue(palette,ground,cfg){
@@ -1172,16 +1236,14 @@ function randomChroma(rng){
}
function vibeChroma(vibe,rng){
const rnd=typeof rng==='function'?rng:Math.random;
- if(vibe==='muted')return 0.045+rnd()*0.035;
- if(vibe==='pastel')return 0.035+rnd()*0.045;
- if(vibe==='deep')return 0.085+rnd()*0.055;
- if(vibe==='jewel')return 0.12+rnd()*0.075;
- if(vibe==='earthy')return 0.055+rnd()*0.04;
- if(vibe==='warm'||vibe==='cool')return 0.08+rnd()*0.06;
- if(vibe==='neon')return 0.18+rnd()*0.09;
- if(vibe==='strange')return 0.145+rnd()*0.095;
- if(vibe==='balanced')return 0.075+rnd()*0.045;
- return 0.12+rnd()*0.07;
+ // [base, range]: chroma is base + rnd()*range. Table, not an if-ladder, so a
+ // vibe is one row to read or tune. The default covers unknown vibes.
+ const t={muted:[0.045,0.035],pastel:[0.035,0.045],deep:[0.085,0.055],
+ jewel:[0.12,0.075],earthy:[0.055,0.04],warm:[0.08,0.06],
+ cool:[0.08,0.06],neon:[0.18,0.09],strange:[0.145,0.095],
+ balanced:[0.075,0.045]};
+ const [base,range]=t[vibe]||[0.12,0.07];
+ return base+rnd()*range;
}
function accentCandidateForHue(hue,ground,cfg){
const C=cfg&&cfg.vibe?vibeChroma(cfg.vibe,cfg.rng):(cfg&&cfg.scheme==='random'?randomChroma(cfg.rng):generatorChroma(cfg&&cfg.chromaMode)), target=generatorTarget(cfg&&cfg.contrastMode), bg=ground&&ground.bg;
@@ -1565,7 +1627,7 @@ function mkEnumSelect(opts,get,set,title){
function mkLineStyleControl(states,get,set,opts={}){const wrap=document.createElement('div');wrap.className='boxctl';
const cluster=document.createElement('div');cluster.className='boxcluster';const btns={};
states.forEach(([v,title,glyph])=>{const b=document.createElement('button');b.className='boxbtn';b.dataset.style=v;b.textContent=glyph;b.title=title;
- b.onclick=()=>{const cur=get();set(v?Object.assign({color:(cur&&cur.color)||null},opts.styled?{style:v}:{}):null);paint();};
+ b.onclick=()=>{const cur=get();set(v?(opts.toState?opts.toState(v,cur):Object.assign({color:(cur&&cur.color)||null},opts.styled?{style:v}:{})):null);paint();};
cluster.appendChild(b);btns[v]=b;});
const dd=mkColorDropdown(ddList((get()&&get().color)||''),(get()&&get().color)||'',h=>{const cur=get();if(!cur)return;set(Object.assign({},cur,{color:h||null}));paint();},{compact:true,defaultHex:opts.defaultHex});
function paint(){const cur=get(),active=opts.styled?(cur&&cur.style?cur.style:''):(cur?'on':'');
@@ -2124,46 +2186,24 @@ function uf(f){return UIMAP[f]||{};}
// Map a weight name to a CSS font-weight for the live previews. The named
// weights light/medium/semibold/heavy aren't CSS keywords, so resolve to the
// numeric scale; an unset weight renders normal.
-function cssWeight(w){const M={light:300,normal:400,medium:500,semibold:600,bold:700,heavy:900};return w&&M[w]!=null?M[w]:'normal';}
-function udeco(o){return `font-weight:${cssWeight(o.weight)};font-style:${o.slant||'normal'};text-decoration:${(o.underline?'underline ':'')+(o.strike?'line-through':'')||'none'}`;}
-// A face's :box, rendered as an inset box-shadow (no layout shift). Returns the
-// box-shadow VALUE (or '' for no box). 'line' is a flat border in the box color
-// (or the face's own color when unset); 'released'/'pressed' are the 3D button
-// styles Emacs draws, derived from explicit box color when set, otherwise the
-// background so they read on any color.
-function boxCss(b,bg){if(!b||!b.style)return '';const w=b.width||1;
- if(b.style==='released'||b.style==='pressed'){
- // Emacs derives the 3D edges from a base color (reliefColors, ported from
- // xterm.c); the translucent pair is only the no-color fallback.
- const r=(b.color||bg)?reliefColors(b.color||bg):{hl:null,sh:null};
- const hl=r.hl||'#ffffff33',sh=r.sh||'#00000066';
- const [a,z]=b.style==='released'?[hl,sh]:[sh,hl];
- return `inset ${w}px ${w}px 0 ${a},inset -${w}px -${w}px 0 ${z}`;}
- return `inset 0 0 0 ${w}px ${b.color||'currentColor'}`;}
-function syntaxStyle(k){const s=syntaxFace(k),fg=(k==='bg'?MAP['p']:resolveSyntaxFg(k,SYNTAX,MAP['p'])),bg=s.bg||null,dec=(s.underline?'underline ':'')+(s.strike?'line-through':''),
- bx=boxCss(s.box,bg||MAP['bg']);
- return `color:${fg};${bg?'background:'+bg+';':''}font-weight:${cssWeight(s.weight)};font-style:${s.slant||'normal'};text-decoration:${dec.trim()||'none'}${bx?';box-shadow:'+bx:''}`;}
+// cssWeight, boxCss, faceDecoration, and faceCss live in app-core.js now.
+// udeco keeps its own (untrimmed) decoration form, so it stays here.
+function udeco(o){return 'font-weight:'+cssWeight(o.weight)+';font-style:'+(o.slant||'normal')+';text-decoration:'+((o.underline?'underline ':'')+(o.strike?'line-through':'')||'none');}
+function syntaxStyle(k){const s=syntaxFace(k),fg=(k==='bg'?MAP['p']:resolveSyntaxFg(k,SYNTAX,MAP['p'])),bg=s.bg||null;return faceCss(s,fg,bg,{boxBg:bg||MAP['bg']});}
// The per-row box control: none / line / raised / pressed plus optional line
// color. get()/set() read and write the face's box object (null = no box).
// Box control: a 2x2 cluster of radio buttons for the four box styles (no box /
// line / pressed / raised), plus a compact color swatch shown only while a box
// style is active. Replaces the old wide select+swatch to reclaim column width.
-function mkBoxControl(get,set,opts={}){const wrap=document.createElement('div');wrap.className='boxctl';
- const cluster=document.createElement('div');cluster.className='boxcluster';
- const states=[['','no box',''],['line','line box','□'],['pressed','pressed','▼'],['released','raised','▲']];
- const btns={};
- states.forEach(([v,title,glyph])=>{const b=document.createElement('button');b.className='boxbtn';b.dataset.style=v;b.textContent=glyph;b.title=title;
- b.onclick=()=>{const cur=get();set(v?{style:v,width:(cur&&cur.width)||1,color:(cur&&cur.color)||null}:null);paint();};
- cluster.appendChild(b);btns[v]=b;});
- const dd=mkColorDropdown(ddList((get()&&get().color)||''),(get()&&get().color)||'',h=>{const cur=get();if(!cur)return;set(Object.assign({},cur,{color:h||null}));paint();},{compact:true,defaultHex:opts.defaultHex});
- function paint(){const cur=get(),style=cur&&cur.style?cur.style:'';
- for(const v in btns)btns[v].classList.toggle('on',v===style);
- dd.style.display=style?'':'none';dd.setValue(cur&&cur.color?cur.color:'');
- const locked=wrap.dataset.locked==='1';
- for(const v in btns)btns[v].disabled=locked;
- const ddoff=locked||!style;dd.dataset.locked=ddoff?'1':'';dd.classList.toggle('locked',ddoff);if(dd.syncLocked)dd.syncLocked();}
- wrap.syncLocked=()=>paint();
- wrap.append(cluster,dd);paint();return wrap;}
+// Box control: a 2x2 cluster of the four box styles (no box / line / pressed /
+// raised) plus a compact color swatch shown while a style is active. Shares the
+// cluster/dropdown/paint machinery with mkLineStyleControl; it differs only in
+// that its state object carries `width`, so it passes a toState builder.
+function mkBoxControl(get,set,opts={}){
+ return mkLineStyleControl(
+ [['','no box',''],['line','line box','□'],['pressed','pressed','▼'],['released','raised','▲']],
+ get,set,
+ Object.assign({styled:true,toState:(v,cur)=>({style:v,width:(cur&&cur.width)||1,color:(cur&&cur.color)||null})},opts));}
function flashRow(tr){if(!tr)return;tr.scrollIntoView({block:'center',behavior:'smooth'});tr.classList.remove('flash');void tr.offsetWidth;tr.classList.add('flash');}
function flashEl(el){if(!el)return;el.scrollIntoView({block:'nearest',inline:'nearest',behavior:'smooth'});el.classList.remove('flashtok');void el.offsetWidth;el.classList.add('flashtok');}
// Flash every matching element but scroll only the first into view, so a face
@@ -2176,9 +2216,7 @@ function flashUiPreview(f){const sp=document.querySelectorAll(`#mockframe [data-
function flashPkg(f){flashRow(document.querySelector(`#pkgbody tr[data-face="${f}"]`));}
function flashPkgPreview(f){const sp=document.querySelectorAll(`#pkgpreview [data-face="${f}"]`);if(sp.length){flashEls(sp);return;}const row=document.querySelector(`#pkgbody tr[data-face="${f}"]`);if(row)flashEl(row.querySelector('.cat'));}
function mockSpan(k,t){return `<span data-k="${k}" style="${syntaxStyle(k)}">${esc(t)}</span>`;}
-function uiCss(o,fgv,bgv,opts={}){const fg=fgv===undefined?effFg(o.fg):fgv,bg=bgv===undefined?o.bg:bgv,dec=(o.underline?'underline ':'')+(o.strike?'line-through':''),
- bx=boxCss(o.box,bg||MAP['bg']);
- return `color:${fg};${bg&&!opts.noBg?'background:'+bg+';':''}font-weight:${cssWeight(o.weight)};font-style:${o.slant||'normal'};text-decoration:${dec.trim()||'none'}${bx?';box-shadow:'+bx:''}`;}
+function uiCss(o,fgv,bgv,opts={}){const fg=fgv===undefined?effFg(o.fg):fgv,bg=bgv===undefined?o.bg:bgv;return faceCss(o,fg,bg,{noBg:opts.noBg,boxBg:bg||MAP['bg']});}
function syncMockHeight(){const t=document.getElementById('uitable'),m=document.getElementById('mockframe');if(!t||!m)return;const lb=m.previousElementSibling,lbh=lb?lb.getBoundingClientRect().height+10:30;m.style.height=Math.max(t.getBoundingClientRect().height-lbh,220)+'px';}
function buildMockFrame(){
const fr=document.getElementById('mockframe');if(!fr)return;
@@ -2322,7 +2360,13 @@ function buildPkgTable(){
applyTableSort('pkgbody');
updateLockToggle('pkg');
}
-function ofs(app,face){const f=PKGMAP[app][face]||{},fg=effFg(pkgEffFg(app,face)),bg=pkgEffBg(app,face);const dec=(f.underline?'underline ':'')+(f.strike?'line-through':'');const bx=boxCss(f.box,bg||MAP['bg']);return `color:${fg};${bg?'background:'+bg+';':''}font-weight:${cssWeight(f.weight)};font-style:${f.slant||'normal'};text-decoration:${dec.trim()||'none'};font-size:${(f.height||1)}em${bx?';box-shadow:'+bx:''}`;}
+// The per-package preview renderers live in previews.js, spliced here so the
+// PACKAGE_PREVIEWS registry below can reference them.
+// previews.js -- the bespoke per-package preview renderers, extracted from
+// app.js. Pure preview HTML builders (ofs/os/previewLines + renderXxxPreview);
+// they reference shared globals (PKGMAP, MAP, faceCss, effFg, ...) and are
+// inlined into the page's single script element via the PREVIEWS_J token in app.js.
+function ofs(app,face){const f=PKGMAP[app][face]||{},fg=effFg(pkgEffFg(app,face)),bg=pkgEffBg(app,face);return faceCss(f,fg,bg,{fontSize:(f.height||1),boxBg:bg||MAP['bg']});}
function os(app,face,txt){return `<span data-face="${face}" style="${ofs(app,face)}">${txt}</span>`;}
// Shared wrapper for the line-based package previews: a monospace pre block.
// Each renderer builds its own L array of os(...) lines and returns previewLines(L).
@@ -2781,6 +2825,7 @@ function renderMarkdownPreview(){const a='markdown-mode',L=[];
L.push(os(a,'markdown-html-tag-delimiter-face','&lt;')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','&gt;')+'Ctrl-C'+os(a,'markdown-html-tag-delimiter-face','&lt;/')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','&gt;'));
L.push(os(a,'markdown-footnote-marker-face','[^1]:')+' '+os(a,'markdown-footnote-text-face','the footnote text.'));
return previewLines(L);}
+
const PACKAGE_PREVIEWS={
autodim:renderAutodimPreview,markdown:renderMarkdownPreview,
org:renderOrgPreview,magit:renderMagitPreview,elfeed:renderElfeedPreview,ghostel:renderGhostelPreview,