# -*- coding: utf-8 -*-
# gui/__init__.py

from __future__ import annotations

from .styles import APP_STYLES
from .components.button import Button
from .components.label import Label


def __getattr__(name: str):
    """Лениво отдать `MainWindow`, не создавая цикл `gui -> window -> hub -> gui`."""
    if name == "MainWindow":
        from .window import MainWindow

        return MainWindow
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

__all__ = [
    'MainWindow',
    'APP_STYLES',
    'Button',
    'Label',
]


# ---------------------------------------------------------------------------
# Module workflow notes
# ---------------------------------------------------------------------------
#
# 1) Назначение модуля:
#    Пакетный __init__.py для gui/. Реэкспортирует ключевые классы
#    для удобного импорта: MainWindow, APP_STYLES, Button, Label.
#
# 2) Зависимости модуля:
#    Реимпорт из: styles (APP_STYLES), components.button (Button),
#    components.label (Label). MainWindow импортируется лениво через
#    __getattr__, чтобы не создавать цикл с hub во время plugin-import.
#
# 3) Экспорт (__all__):
#    MainWindow, Button, Label.
#    Также доступен APP_STYLES (не в __all__, но импортируется).
