Coverage for src / lexigram / ui / constants.py: 91%
22 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-10 04:11 +0800
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-10 04:11 +0800
1"""UI package constants and enums."""
3from __future__ import annotations
5from enum import StrEnum
6import importlib.metadata
8try:
9 __version__: str = importlib.metadata.version("lexigram-ui")
10except ImportError:
11 __version__ = "0.0.0"
14ENV_PREFIX: str = "LEX_UI__"
15ENV_NESTED_DELIMITER: str = "__"
18class UITheme(StrEnum):
19 """Available UI themes."""
21 DEFAULT = "default"
22 DARK = "dark"
23 LIGHT = "light"
24 SYSTEM = "system"
27class Breakpoint(StrEnum):
28 """Responsive design breakpoints."""
30 SM = "640px"
31 MD = "768px"
32 LG = "1024px"
33 XL = "1280px"
34 XXL = "1536px"
37UI_CSP_REQUIREMENTS: dict[str, set[str]] = {
38 "script-src": {
39 "https://unpkg.com",
40 "https://cdn.jsdelivr.net",
41 "https://cdn.tailwindcss.com",
42 },
43 "style-src": {
44 "https://cdn.jsdelivr.net",
45 "https://cdn.tailwindcss.com",
46 "https://unpkg.com",
47 },
48 "connect-src": {
49 "https://unpkg.com",
50 },
51}
53__all__ = [
54 "Breakpoint",
55 "ENV_NESTED_DELIMITER",
56 "ENV_PREFIX",
57 "UITheme",
58 "UI_CSP_REQUIREMENTS",
59 "__version__",
60]