diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/theme-studio/WIP.json | 5702 | ||||
| -rw-r--r-- | scripts/theme-studio/app-core.js | 109 | ||||
| -rw-r--r-- | scripts/theme-studio/app.js | 516 | ||||
| -rw-r--r-- | scripts/theme-studio/app_inventory.py | 33 | ||||
| -rw-r--r-- | scripts/theme-studio/build-theme.el | 29 | ||||
| -rw-r--r-- | scripts/theme-studio/capture-default-faces.py | 30 | ||||
| -rw-r--r-- | scripts/theme-studio/colormath.js | 7 | ||||
| -rw-r--r-- | scripts/theme-studio/default_faces.py | 111 | ||||
| -rw-r--r-- | scripts/theme-studio/face_data.py | 30 | ||||
| -rw-r--r-- | scripts/theme-studio/face_specs.py | 54 | ||||
| -rw-r--r-- | scripts/theme-studio/generate.py | 57 | ||||
| -rw-r--r-- | scripts/theme-studio/palette-generator-core.js | 24 | ||||
| -rw-r--r-- | scripts/theme-studio/previews.js | 463 | ||||
| -rw-r--r-- | scripts/theme-studio/test-app-core.mjs | 121 | ||||
| -rw-r--r-- | scripts/theme-studio/test-colormath.mjs | 31 | ||||
| -rw-r--r-- | scripts/theme-studio/test-palette-generator-core.mjs | 78 | ||||
| -rw-r--r-- | scripts/theme-studio/theme-studio.html | 197 |
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','<2026-06-08 Sun>')+' '+os(a,'org-special-keyword','DEADLINE:')+' '+os(a,'org-date','<2026-06-12 Thu>')); - 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','<<target>>')+', 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','<%%(diary-float 6 5 2)>')+'.'); - 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 <christine@example.com>')); - 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 <christine@example.com>')); - 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]')+' <'+os(a,'erc-my-nick-prefix-face','@')+os(a,'erc-my-nick-face','craig')+'> '+os(a,'erc-input-face','hello everyone')); - L.push(os(a,'erc-timestamp-face','[10:25]')+' <'+os(a,'erc-nick-prefix-face','+')+os(a,'erc-nick-default-face','bob')+'> '+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','<friend>')+' '+os(a,'erc-fool-face','<troll>')+' '+os(a,'erc-dangerous-host-face','<bad@host>')); - L.push(os(a,'erc-timestamp-face','[10:27]')+' '+os(a,'erc-direct-msg-face','(DM)')+' <'+os(a,'erc-nick-msg-face','bob')+'> 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','>')+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>')+' '+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','> add a comment (editable)')); - L.push(' '+os(a,'pearl-readonly-comment','> 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','> 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','> 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','>')+' '+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','<!-- a one-line tagline -->')); - 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','<')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','>')+'Ctrl-C'+os(a,'markdown-html-tag-delimiter-face','</')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','>')); - 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','<2026-06-08 Sun>')+' '+os(a,'org-special-keyword','DEADLINE:')+' '+os(a,'org-date','<2026-06-12 Thu>')); + 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','<<target>>')+', 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','<%%(diary-float 6 5 2)>')+'.'); + 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 <christine@example.com>')); + 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 <christine@example.com>')); + 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]')+' <'+os(a,'erc-my-nick-prefix-face','@')+os(a,'erc-my-nick-face','craig')+'> '+os(a,'erc-input-face','hello everyone')); + L.push(os(a,'erc-timestamp-face','[10:25]')+' <'+os(a,'erc-nick-prefix-face','+')+os(a,'erc-nick-default-face','bob')+'> '+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','<friend>')+' '+os(a,'erc-fool-face','<troll>')+' '+os(a,'erc-dangerous-host-face','<bad@host>')); + L.push(os(a,'erc-timestamp-face','[10:27]')+' '+os(a,'erc-direct-msg-face','(DM)')+' <'+os(a,'erc-nick-msg-face','bob')+'> 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','>')+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>')+' '+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','> add a comment (editable)')); + L.push(' '+os(a,'pearl-readonly-comment','> 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','> 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','> 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','>')+' '+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','<!-- a one-line tagline -->')); + 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','<')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','>')+'Ctrl-C'+os(a,'markdown-html-tag-delimiter-face','</')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','>')); + 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','<')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','>')+'Ctrl-C'+os(a,'markdown-html-tag-delimiter-face','</')+os(a,'markdown-html-tag-name-face','kbd')+os(a,'markdown-html-tag-delimiter-face','>')); 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, |
