package dev.keluna.example import dev.keluna.core.Element import dev.keluna.core.UiTree import dev.keluna.ui.* /** Application state and behavior live entirely in Kotlin. See adjacent Counter.css. */ class Counter { val tree = UiTree() val increment: Element init { var count = 0 var button: Element? = null tree.root.column(scope = "counter") { heading("Hello, Keluna") label("Kotlin/Native state. Your system WebView. Local CSS.") val status = label("Count: 0").apply { cssClass("counter-value") attribute("aria-live", "polite") } button = button("Increment") { count++ status.text = "Count: $count" status.cssClass("active", count > 0) } } increment = checkNotNull(button) } }