Coverage for src / lexigram / admin / settings / panel / branding_spec.py: 93%
15 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-13 22:14 +0800
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-13 22:14 +0800
1"""Branding and theme configuration specification."""
3from __future__ import annotations
5from lexigram.admin.settings.panel.models import BrandingSettings
6from lexigram.admin.settings.panel.nodes import ColorNode, PydanticConfigSpec
7from lexigram.admin.settings.panel.registry import ConfigRegistry
9__all__ = ["BrandingSpec", "register_spec"]
12class BrandingSpec(PydanticConfigSpec):
13 """Branding and theme settings spec."""
15 namespace = "admin.branding"
16 label = "Branding & Theme"
17 icon = "palette"
18 description = "Site name, colors, logo, and theme preference."
19 model = BrandingSettings
20 node_overrides = {"primary_color": ColorNode}
21 required_permissions = frozenset({"admin.settings.edit"})
24def register_spec(registry: ConfigRegistry) -> None:
25 """Register this spec with the config registry."""
26 registry.register_spec("system", BrandingSpec)