# -*- coding: utf-8 -*-
# gui/styles/inputs.py

"""Стили для полей ввода"""

INPUTS = {

    "COORDINATE_INPUT": """
        QDoubleSpinBox {
            border: 1px solid palette(mid);
            border-radius: 0px;
            font-size: 14px;
            background-color: palette(base);
            color: palette(text);
            padding: 4px 8px;
        }
        QDoubleSpinBox:focus {
            border: 2px solid palette(highlight);
            outline: none;
        }
    """,

    "COORDINATE_INPUT_DARK": """
        QDoubleSpinBox {
            border: 1px solid #5a5a5a;
            border-radius: 0px;
            font-size: 14px;
            background-color: #2e2e2e;
            color: #f2f2f2;
            padding: 4px 8px;
        }
        QDoubleSpinBox:focus {
            border: 2px solid #3b82f6;
            outline: none;
        }
    """,

    "COORDINATE_INPUT_LIGHT": """
        QDoubleSpinBox {
            border: 1px solid #DFE1E6;
            border-radius: 0px;
            font-size: 14px;
            background-color: #FFFFFF;
            color: #172B4D;
            padding: 4px 8px;
        }
        QDoubleSpinBox:focus {
            border: 2px solid #0C66E4;
            outline: none;
        }
    """,

    "COORDINATE_INPUT_DARK_ACTIVE": """
        QDoubleSpinBox {
            border: 2px solid #3b82f6;
            border-radius: 0px;
            font-size: 14px;
            background-color: #2e2e2e;
            color: #f2f2f2;
            padding: 4px 8px;
        }
    """,

    "COORDINATE_INPUT_LIGHT_ACTIVE": """
        QDoubleSpinBox {
            border: 2px solid #0C66E4;
            border-radius: 0px;
            font-size: 14px;
            background-color: #FFFFFF;
            color: #172B4D;
            padding: 4px 8px;
        }
    """,

    "ERROR_DIALOG_TEXT": """
        QTextEdit {
            background-color: white;
            border: 1px solid #ccc;
            border-radius: 0px;
            font-family: monospace;
            font-size: 12px;
        }
    """,

    "FORM_WIDGET": """
        QWidget {
            background-color: transparent;
        }
        QLabel {
            color: palette(window-text);
            font-size: 14px;
        }
        QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
            border: 1px solid palette(mid);
            border-radius: 0px;
            font-size: 14px;
            background-color: palette(base);
            color: palette(text);
            padding: 4px 8px;
        }
        QRadioButton {
            color: palette(window-text);
            background-color: transparent;
        }
        QRadioButton::indicator:unchecked {
            background-color: palette(base);
            border: 1px solid palette(mid);
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: palette(base);
            border: 2px solid palette(highlight);
            border-radius: 0px;
        }
        QLineEdit:focus, QComboBox:focus, QSpinBox:focus, QDoubleSpinBox:focus, QTextEdit:focus {
            border: 2px solid palette(highlight);
            outline: none;
        }
    """,

    "FORM_WIDGET_DARK": """
        QWidget {
            background-color: transparent;
        }
        QLabel, QRadioButton {
            color: #f2f2f2;
            font-size: 14px;
        }
        QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
            border: 1px solid #5a5a5a;
            border-radius: 0px;
            font-size: 14px;
            background-color: #2e2e2e;
            color: #f2f2f2;
            padding: 4px 8px;
        }
        QRadioButton::indicator:unchecked {
            background-color: #2e2e2e;
            border: 1px solid #7a7a7a;
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: #2e2e2e;
            border: 2px solid #3b82f6;
            border-radius: 0px;
        }
        QLineEdit:focus, QComboBox:focus, QSpinBox:focus, QDoubleSpinBox:focus, QTextEdit:focus {
            border: 2px solid #3b82f6;
            outline: none;
        }
    """,

    "FORM_WIDGET_LIGHT": """
        QWidget {
            background-color: transparent;
        }
        QLabel, QRadioButton {
            color: #172B4D;
            font-size: 14px;
        }
        QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
            border: 1px solid #DFE1E6;
            border-radius: 0px;
            font-size: 14px;
            background-color: #FFFFFF;
            color: #172B4D;
            padding: 4px 8px;
        }
        QRadioButton::indicator:unchecked {
            background-color: #FFFFFF;
            border: 1px solid #DFE1E6;
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: #FFFFFF;
            border: 2px solid #0C66E4;
            border-radius: 0px;
        }
        QLineEdit:focus, QComboBox:focus, QSpinBox:focus, QDoubleSpinBox:focus, QTextEdit:focus {
            border: 2px solid #0C66E4;
            outline: none;
        }
        QLineEdit::placeholder {
            color: #5E6C84;
        }
    """,

    "FORM_WIDGET_DARK_ACTIVE": """
        QWidget {
            background-color: transparent;
        }
        QLabel {
            color: #ffffff;
            font-size: 14px;
        }
        QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
            border: 2px solid #0078d4;
            border-radius: 0px;
            font-size: 14px;
            background-color: #333;
            color: #ffffff;
            padding: 4px 8px;
        }
        QRadioButton {
            color: #ffffff;
            background-color: transparent;
        }
        QRadioButton::indicator:unchecked {
            background-color: #666;
            border: 1px solid #999;
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: #ffffff;
            border: 1px solid #999;
            border-radius: 0px;
        }
    """,
    "FORM_WIDGET_LIGHT_ACTIVE": """
        QWidget {
            background-color: transparent;
        }
        QLabel {
            color: #172B4D;
            font-size: 14px;
        }
        QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit {
            border: 2px solid #0C66E4;
            border-radius: 0px;
            font-size: 14px;
            background-color: #FFFFFF;
            color: #172B4D;
            padding: 4px 8px;
        }
        QRadioButton {
            color: #172B4D;
            background-color: transparent;
        }
        QRadioButton::indicator:unchecked {
            background-color: #FFFFFF;
            border: 1px solid #DFE1E6;
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: #FFFFFF;
            border: 2px solid #0C66E4;
            border-radius: 0px;
        }
    """,
    "TEXT_INPUT": """
        QLineEdit {
            border: 1px solid palette(mid);
            border-radius: 0px;
            font-size: 14px;
            background-color: palette(base);
            color: palette(text);
            padding: 4px 8px;
        }
        QLineEdit:focus {
            border: 2px solid palette(highlight);
            outline: none;
        }
    """,

    "TEXT_INPUT_DARK": """
        QLineEdit {
            border: 1px solid #5a5a5a;
            border-radius: 0px;
            font-size: 14px;
            background-color: #2e2e2e;
            color: #f2f2f2;
            padding: 4px 8px;
        }
        QLineEdit:focus {
            border: 2px solid #3b82f6;
            outline: none;
        }
    """,

    "TEXT_INPUT_LIGHT": """
        QLineEdit {
            border: 1px solid #DFE1E6;
            border-radius: 0px;
            font-size: 14px;
            background-color: #FFFFFF;
            color: #172B4D;
            padding: 4px 8px;
        }
        QLineEdit:focus {
            border: 2px solid #0C66E4;
            outline: none;
        }
        QLineEdit::placeholder {
            color: #5E6C84;
        }
    """,

    "TEXT_INPUT_DARK_ACTIVE": """
        QLineEdit {
            border: 2px solid #0078d4;
            border-radius: 0px;
            font-size: 14px;
            background-color: #333;
            color: #ffffff;
            padding: 4px 8px;
        }
    """,

    "TEXT_INPUT_LIGHT_ACTIVE": """
        QLineEdit {
            border: 2px solid #0C66E4;
            border-radius: 0px;
            font-size: 14px;
            background-color: #FFFFFF;
            color: #172B4D;
            padding: 4px 8px;
        }
    """,

    "RADIO_BUTTON": """
        QWidget {
            background-color: transparent;
            border: none;
        }
        QRadioButton {
            color: palette(window-text);
            background-color: transparent;
            border: none;
        }
        QRadioButton::indicator:unchecked {
            background-color: palette(base);
            border: 1px solid palette(mid);
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: palette(base);
            border: 2px solid palette(highlight);
            border-radius: 0px;
        }
    """,

    "RADIO_BUTTON_DARK": """
        QWidget {
            background-color: transparent;
            border: none;
        }
        QRadioButton {
            color: #f2f2f2;
            background-color: transparent;
            border: none;
        }
        QRadioButton::indicator:unchecked {
            background-color: #2e2e2e;
            border: 1px solid #7a7a7a;
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: #2e2e2e;
            border: 2px solid #3b82f6;
            border-radius: 0px;
        }
    """,

    "RADIO_BUTTON_LIGHT": """
        QWidget {
            background-color: transparent;
            border: none;
        }
        QRadioButton {
            color: #172B4D;
            background-color: transparent;
            border: none;
        }
        QRadioButton::indicator:unchecked {
            background-color: #FFFFFF;
            border: 1px solid #DFE1E6;
            border-radius: 0px;
        }
        QRadioButton::indicator:checked {
            background-color: #FFFFFF;
            border: 2px solid #0C66E4;
            border-radius: 0px;
        }
    """,
}




# ---------------------------------------------------------------------------
# Module workflow notes
# ---------------------------------------------------------------------------
#
# 1) Назначение модуля:
#    Определение QSS-стилей для полей ввода: координатные input'ы
#    (QDoubleSpinBox), текстовые поля (QLineEdit), формы (QLineEdit +
#    QComboBox + QSpinBox + QRadioButton + QTextEdit), радио-кнопки.
#    Поддержка тем: стандартная (palette), dark, light, active-варианты.
#
# 2) Зависимости модуля:
#    Импорты: нет
#    Хост/базовый класс: нет (модуль-словарь)
#    Внешние библиотеки: нет
#
# 3) Экспорт:
#    Словарь INPUTS: dict[str, str] — ключ → QSS-строка.
#    Ключи: COORDINATE_INPUT, COORDINATE_INPUT_DARK, COORDINATE_INPUT_LIGHT,
#           ERROR_DIALOG_TEXT, FORM_WIDGET, FORM_WIDGET_DARK, FORM_WIDGET_LIGHT,
#           FORM_WIDGET_DARK_ACTIVE, FORM_WIDGET_LIGHT_ACTIVE,
#           TEXT_INPUT, TEXT_INPUT_DARK, TEXT_INPUT_LIGHT,
#           TEXT_INPUT_DARK_ACTIVE, TEXT_INPUT_LIGHT_ACTIVE,
#           RADIO_BUTTON, RADIO_BUTTON_DARK, RADIO_BUTTON_LIGHT.
#
# 4) Состояние (поля):
#    INPUTS: dict[str, str] — единственный экспортируемый словарь.
#
# 5) Последовательность действий и вызовов:
#    Нет вызовов; модуль содержит только декларативные QSS-строки.
#    Импортируется в gui/styles/__init__.py → APP_STYLES.update(INPUTS).
#
# 6) Побочные эффекты:
#    Нет побочных эффектов при импорте.
#
# 7) Границы ответственности:
#    НЕ применяет стили — только хранит QSS-строки.
#    НЕ содержит стили для кнопок, меток или контейнеров.
#
# 8) Обработка ошибок:
#    Нет; модуль декларативный.
#
# 9) Инварианты и контракты:
#    - Каждый ключ имеет варианты: базовый (palette), _DARK, _LIGHT.
#    - Active-варианты имеют суффикс _DARK_ACTIVE / _LIGHT_ACTIVE.
#    - Все QSS-строки — валидный Qt StyleSheet синтаксис.
#
# 10) Правило сопровождения:
#     Новые стили полей ввода добавлять сюда, соблюдая паттерн
#     KEY / KEY_DARK / KEY_LIGHT. Active-варианты — по необходимости.
#     Не дублировать стили кнопок (→ buttons.py) или меток (→ labels.py).
