2025-11-10 20:06:38 +03:00

29 lines
901 B
Python

from .css import merge_css_classes
from .text import text_value
SIZE_SM = "sm"
SIZE_MD = "md"
SIZE_LG = "lg"
SIZES = [SIZE_SM, SIZE_MD, SIZE_LG]
DEFAULT_SIZE = SIZE_MD
def parse_size(value, default=None):
"""Return size if it is valid, default size if size is empty, or throws exception."""
size = text_value(value or default)
if size not in SIZES:
valid_sizes = ", ".join(SIZES)
raise ValueError(f'Invalid value "{size}" for parameter "size" (valid values are {valid_sizes}).')
return size
def get_size_class(size, prefix, *, default=None, skip=None):
"""Return CSS class for size with given prefix, unless size needs to be skipped."""
size = parse_size(size, default=default)
if skip:
if isinstance(skip, str):
skip = merge_css_classes(skip).split(" ")
if size in skip:
return ""
return f"{prefix}-{size}"