# -*- coding: utf-8 -*-
# gui/styles/labels.py
"""Стили для QLabel и текстовых меток"""

LABELS = {

    "ERROR_LABEL": """
        color: #c0392b;
        font-weight: bold;
    """,

    "INFO_LABEL": """
        QLabel {
            font-size: 22px;
            font-weight: 600;
            color: palette(window-text);
            background-color: transparent;
        }
    """,
    "INFO_LABEL_LIGHT": """
        QLabel {
            font-size: 22px;
            font-weight: 600;
            color: #172B4D;
            background-color: transparent;
        }
    """,

    "INFO_NOTE_LABEL": """
        color: #42526E;
        font-size: 12px;
    """,

    "INFO_TEXT_BORDERED": """
        QLabel {
            font-size: 14px;
            font-weight: 600;
            color: palette(window-text);
            background-color: palette(base);
            border: 1px solid palette(mid);
            border-radius: 0px;
            padding: 4px 8px;
            qproperty-alignment: 'AlignVCenter | AlignLeft';
        }
    """,
    "INFO_TEXT_BORDERED_LIGHT": """
        QLabel {
            font-size: 14px;
            font-weight: 600;
            color: #172B4D;
            background-color: #FFFFFF;
            border: 1px solid #DFE1E6;
            border-radius: 0px;
            padding: 4px 8px;
            qproperty-alignment: 'AlignVCenter | AlignLeft';
        }
    """,
    
    "INFO_TEXT_GRAY": """
        QLabel {
            font-size: 14px;
            font-weight: 600;
            color: palette(window-text);
            border: none;
            qproperty-alignment: 'AlignBottom | AlignLeft';
        }
    """,

    "INFO_TEXT_GRAY_SMALL": """
        QLabel {
            font-size: 12px;
            font-weight: 600;
            color: palette(window-text);
            border: none;
            qproperty-alignment: 'AlignBottom | AlignLeft';
        }
    """,

    "INFO_TEXT": """
        QLabel {
            font-size: 14px;
            font-weight: 600;
            color: palette(window-text);
            border: none;
            padding: 8px 0px;
            qproperty-alignment: 'AlignBottom | AlignLeft';
        }
    """,

    "MODULE_TITLE": """
        QLabel {
            font-size: 32px;
            font-weight: bold;
            color: palette(window-text);
            margin-bottom: 10px;
            background-color: transparent;
        }
    """,
    "MODULE_TITLE_LIGHT": """
        QLabel {
            font-size: 32px;
            font-weight: bold;
            color: #172B4D;
            margin-bottom: 10px;
            background-color: transparent;
        }
    """,
    
    "PROJECT_TREE_LABEL": """
        QLabel {
            font-size: 14px;
            font-weight: 600;
            color: palette(window-text);
            background-color: palette(base);
            border: 1px solid palette(mid);
            border-radius: 0px;
            
            min-width: 400px;
            min-height: 200px;
        }
    """,

    "STATUS_LABEL": """
        QLabel {
            font-size: 14px;
            color: palette(window-text);
            background-color: palette(base);
            border: 1px solid palette(mid);
            border-radius: 0px;
            padding: 2px 8px;
        }
    """,
    "STATUS_LABEL_LIGHT": """
        QLabel {
            font-size: 14px;
            color: #172B4D;
            background-color: #FFFFFF;
            border: 1px solid #DFE1E6;
            border-radius: 0px;
            padding: 2px 8px;
        }
    """,

    "TITLE_BAR": """
        QLabel {
            background-color: #3C3C3C;
            color: palette(button-text);
            border: 1px solid palette(mid);
            border-top-left-radius: 0px;
            border-top-right-radius: 0px;
            border-bottom-left-radius: 0px;
            border-bottom-right-radius: 0px;
            font-size: 16px;
            text-align: center;
        }
    """,
    "TITLE_BAR_LIGHT": """
        QLabel {
            background-color: #FFFFFF;
            color: #172B4D;
            border: 1px solid #DFE1E6;
            border-top-left-radius: 0px;
            border-top-right-radius: 0px;
            border-bottom-left-radius: 0px;
            border-bottom-right-radius: 0px;
            font-size: 16px;
            text-align: center;
        }
    """,
    "WIDGET_LABEL": """
        QLabel {
            font-size: 48px;
            font-weight: bold;
            color: palette(window-text);
            background-color: palette(base);
            border: 1px solid palette(mid);
            border-radius: 0px;
            min-width: 400px;
            min-height: 200px;
        }
    """,

    "ZONE_PROPERTIES_TITLE": """
        QLabel {
            background-color: #3C3C3C;
            color: palette(button-text);
            border-left: 0px;
            border-right: 0px;
            border-top: 0px;
            border-bottom: 1px solid palette(mid);
            border-top-left-radius: 0px;
            border-top-right-radius: 0px;
            border-bottom-left-radius: 0px;
            border-bottom-right-radius: 0px;
            font-size: 16px;
            text-align: center;
        }
    """,
    "ZONE_PROPERTIES_TITLE_LIGHT": """
        QLabel {
            background-color: #F4F5F7;
            color: #172B4D;
            border-left: 0px;
            border-right: 0px;
            border-top: 0px;
            border-bottom: 1px solid #DFE1E6;
            border-top-left-radius: 0px;
            border-top-right-radius: 0px;
            border-bottom-left-radius: 0px;
            border-bottom-right-radius: 0px;
            font-size: 16px;
            text-align: center;
        }
    """,
}





# ---------------------------------------------------------------------------
# Module workflow notes
# ---------------------------------------------------------------------------
#
# 1) Назначение модуля:
#    Определение QSS-стилей для QLabel и текстовых меток: заголовки модулей,
#    информационные метки, статусные строки, title bar'ы, зонные заголовки
#    свойств, метки проектного дерева и стилизованные виджет-метки.
#    Поддержка тем: стандартная (palette) и _LIGHT-варианты.
#
# 2) Зависимости модуля:
#    Импорты: нет
#    Хост/базовый класс: нет (модуль-словарь)
#    Внешние библиотеки: нет
#
# 3) Экспорт:
#    Словарь LABELS: dict[str, str] — ключ → QSS-строка.
#    Ключи: ERROR_LABEL, INFO_LABEL, INFO_LABEL_LIGHT, INFO_NOTE_LABEL,
#           INFO_TEXT_BORDERED, INFO_TEXT_BORDERED_LIGHT, INFO_TEXT_GRAY,
#           INFO_TEXT_GRAY_SMALL, INFO_TEXT, MODULE_TITLE, MODULE_TITLE_LIGHT,
#           PROJECT_TREE_LABEL, STATUS_LABEL, STATUS_LABEL_LIGHT,
#           TITLE_BAR, TITLE_BAR_LIGHT, WIDGET_LABEL,
#           ZONE_PROPERTIES_TITLE, ZONE_PROPERTIES_TITLE_LIGHT.
#
# 4) Состояние (поля):
#    LABELS: dict[str, str] — единственный экспортируемый словарь.
#
# 5) Последовательность действий и вызовов:
#    Нет вызовов; модуль декларативный.
#    Импортируется в gui/styles/__init__.py → APP_STYLES.update(LABELS).
#
# 6) Побочные эффекты:
#    Нет побочных эффектов при импорте.
#
# 7) Границы ответственности:
#    НЕ применяет стили — только хранит QSS-строки.
#    НЕ содержит стили для кнопок (→ buttons.py) или полей ввода (→ inputs.py).
#
# 8) Обработка ошибок:
#    Нет; модуль декларативный.
#
# 9) Инварианты и контракты:
#    - Каждый ключ с поддержкой светлой темы имеет суффикс _LIGHT.
#    - Все QSS-строки — валидный Qt StyleSheet синтаксис.
#    - ERROR_LABEL использует inline-стиль (без селектора QLabel {}).
#
# 10) Правило сопровождения:
#     Новые стили меток добавлять сюда по паттерну KEY / KEY_LIGHT.
#     Для стилей с qproperty-alignment использовать строковые значения
#     Qt ('AlignVCenter | AlignLeft'). Не смешивать стили кнопок и меток.
