[package]
name = "esp32-ui"
version = "0.1.0"
edition = "2024"
license = "MIT OR Apache-2.0"
description = "Construct ESP32 UI firmware with Slint - Graphical interface for AI assistant"
authors = ["Construct Team"]

[dependencies]
anyhow = "1.0"
esp-idf-svc = "0.48"
log = { version = "0.4", default-features = false }

# Slint UI - MCU optimized
slint = { version = "1.10", default-features = false, features = [
    "compat-1-2",
    "libm",
    "renderer-software",
] }

[build-dependencies]
embuild = { version = "0.31", features = ["elf"] }
slint-build = "1.10"

[features]
default = ["std", "display-st7789"]
std = ["esp-idf-svc/std"]

# Display selection (choose one)
display-st7789 = []  # 320x240 or 135x240
display-ili9341 = [] # 320x240
display-ssd1306 = [] # 128x64 OLED

# Input
touch-xpt2046 = []   # Resistive touch
touch-ft6x36 = []    # Capacitive touch

[profile.release]
opt-level = "s"
lto = true
codegen-units = 1
strip = true
panic = "abort"

[profile.dev]
opt-level = "s"
