from typing import Literal


from rich.box import (
    ASCII,
    ASCII2,
    ASCII_DOUBLE_HEAD,
    SQUARE,
    SQUARE_DOUBLE_HEAD,
    MINIMAL,
    MINIMAL_HEAVY_HEAD,
    MINIMAL_DOUBLE_HEAD,
    SIMPLE,
    SIMPLE_HEAD,
    SIMPLE_HEAVY,
    HORIZONTALS,
    ROUNDED,
    HEAVY,
    HEAVY_EDGE,
    HEAVY_HEAD,
    DOUBLE,
    DOUBLE_EDGE,
    MARKDOWN,
)

BOX_STYLES = Literal[
    "ASCII",
    "ASCII2",
    "ASCII_DOUBLE_HEAD",
    "SQUARE",
    "SQUARE_DOUBLE_HEAD",
    "MINIMAL",
    "MINIMAL_HEAVY_HEAD",
    "MINIMAL_DOUBLE_HEAD",
    "SIMPLE",
    "SIMPLE_HEAD",
    "SIMPLE_HEAVY",
    "HORIZONTALS",
    "ROUNDED",
    "HEAVY",
    "HEAVY_EDGE",
    "HEAVY_HEAD",
    "DOUBLE",
    "DOUBLE_EDGE",
    "MARKDOWN",
]

BOXES = {
    "ASCII": ASCII,
    "ASCII2": ASCII2,
    "ASCII_DOUBLE_HEAD": ASCII_DOUBLE_HEAD,
    "SQUARE": SQUARE,
    "SQUARE_DOUBLE_HEAD": SQUARE_DOUBLE_HEAD,
    "MINIMAL": MINIMAL,
    "MINIMAL_HEAVY_HEAD": MINIMAL_HEAVY_HEAD,
    "MINIMAL_DOUBLE_HEAD": MINIMAL_DOUBLE_HEAD,
    "SIMPLE": SIMPLE,
    "SIMPLE_HEAD": SIMPLE_HEAD,
    "SIMPLE_HEAVY": SIMPLE_HEAVY,
    "HORIZONTALS": HORIZONTALS,
    "ROUNDED": ROUNDED,
    "HEAVY": HEAVY,
    "HEAVY_EDGE": HEAVY_EDGE,
    "HEAVY_HEAD": HEAVY_HEAD,
    "DOUBLE": DOUBLE,
    "DOUBLE_EDGE": DOUBLE_EDGE,
    "MARKDOWN": MARKDOWN,
}
