select

context(step: Step.State)
fun <T, O : SelectOption<T>> Terminal.select(title: String, options: () -> List<O>, option: Triple<CLIOption<*>, String?, () -> T?>? = null, keyOptions: Map<String, KeyOption> = emptyMap(), defaultCursor: Int? = null, onHover: suspend (option: O, index: Int) -> Unit? = null, details: (data: T, index: Int) -> Widget?? = null, pageSize: Int = 10, maxPages: Int = 20, returnable: Boolean = true): T

Adds CLI option + undo


context(step: Step.State)
fun <T, O : SelectOption<T>> Terminal.select(title: String, options: List<O>, option: Triple<CLIOption<*>, String?, () -> T?>? = null, keyOptions: Map<String, KeyOption> = emptyMap(), defaultCursor: Int? = null, onHover: suspend (option: O, index: Int) -> Unit? = null, details: (data: T, index: Int) -> Widget?? = null, pageSize: Int = 10, maxPages: Int = 20, returnable: Boolean = true): T