aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio/face_specs.py
blob: 32de68e0862aa36d426bfbdbb9a446e7affd0054 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"""Shared face-spec defaults for theme-studio generation."""

from __future__ import annotations

from typing import Any


STYLE_DEFAULTS: dict[str, Any] = {
    "fg": None,
    "bg": None,
    "bold": False,
    "italic": False,
    "underline": False,
    "strike": False,
}

PACKAGE_DEFAULTS: dict[str, Any] = {
    **STYLE_DEFAULTS,
    "inherit": None,
    "height": 1,
    "box": None,
}


def face_spec(spec: dict[str, Any] | None = None, *, package: bool = False) -> dict[str, Any]:
    out = dict(PACKAGE_DEFAULTS if package else STYLE_DEFAULTS)
    if spec:
        out.update(spec)
    return out


def ui_face_spec(spec: dict[str, Any] | None = None) -> dict[str, Any]:
    return face_spec(spec, package=False)


def package_face_spec(spec: dict[str, Any] | None = None) -> dict[str, Any]:
    return face_spec(spec, package=True)