"""zuzu — Build personal apps in Python."""

from zuzu.record import record, Record
from zuzu.field import date, image, Choice, Currency, Percent, Rating
from zuzu.app import app, page

# Generated components
from zuzu.components._generated.display import (
    title, text, image as image_display, metric,
    list, grid, chart, card, badge, progress,
    richtext, hint, embed, countdown, gauge,
)
from zuzu.components._generated.input import (
    text_input, number_input, select, date_input,
    checkbox, switch, slider, time_input, datetime_input,
    file_input, image_input, markdown_input,
)
from zuzu.components._generated.action import button, alert, go_to, link, fab, action_row
from zuzu.components._generated.layout import section, columns, tabs, separator

# Manual components (too complex for codegen)
from zuzu.components.manual import write, form

from zuzu.runtime.spec import show

__version__ = "0.1.0"

__all__ = [
    # Core
    "record", "Record", "app", "page", "show",
    # Types
    "date", "image", "Choice", "Currency", "Percent", "Rating",
    # Display (generated)
    "title", "text", "image_display", "metric", "list", "grid", "chart", "card", "badge",
    "progress", "richtext", "hint", "embed", "countdown", "gauge",
    # Display (manual)
    "write",
    # Input (generated)
    "text_input", "number_input", "select", "date_input", "checkbox",
    "switch", "slider", "time_input", "datetime_input", "file_input",
    "image_input", "markdown_input",
    # Input (manual)
    "form",
    # Layout (generated)
    "section", "columns", "tabs", "separator",
    # Action (generated)
    "button", "alert", "go_to", "link", "fab", "action_row",
]
