"""
Collection of reusable components for building full screen applications.
These are higher level abstractions on top of the `prompt_toolkit.layout`
module.

Most of these widgets implement the ``__pt_container__`` method, which makes it
possible to embed these in the layout like any other container.
"""
from __future__ import annotations

from .base import (
    Box,
    Button,
    Checkbox,
    CheckboxList,
    Frame,
    HorizontalLine,
    Label,
    ProgressBar,
    RadioList,
    Shadow,
    TextArea,
    VerticalLine,
)
from .dialogs import Dialog
from .menus import MenuContainer, MenuItem
from .toolbars import (
    ArgToolbar,
    CompletionsToolbar,
    FormattedTextToolbar,
    SearchToolbar,
    SystemToolbar,
    ValidationToolbar,
)

__all__ = [
    # Base.
    "TextArea",
    "Label",
    "Button",
    "Frame",
    "Shadow",
    "Box",
    "VerticalLine",
    "HorizontalLine",
    "CheckboxList",
    "RadioList",
    "Checkbox",
    "ProgressBar",
    # Toolbars.
    "ArgToolbar",
    "CompletionsToolbar",
    "FormattedTextToolbar",
    "SearchToolbar",
    "SystemToolbar",
    "ValidationToolbar",
    # Dialogs.
    "Dialog",
    # Menus.
    "MenuContainer",
    "MenuItem",
]
