package dev.ulfrx.recipe.ui.screens.shell.search

/**
 * Shell-wide search state shape, exposed by
 * [dev.ulfrx.recipe.ui.screens.search.ShellSearchViewModel] as a hot
 * `StateFlow<SearchState>`.
 *
 * Three logical states (Apple Music pattern):
 *  - **A** — Closed: `isOpen=false`. Default tab is rendered; floating search
 *    button sits in the dock's trailing slot.
 *  - **B** — Open, unfocused: `isOpen=true, isFocused=false`. The SearchScreen
 *    is on stage with curated/quick-nav content; chrome shows collapsed dock
 *    icon + search pill (placeholder, no input).
 *  - **C** — Open, focused: `isOpen=true, isFocused=true`. Search input is
 *    active; chrome hides the collapsed dock icon and shows an X dismiss
 *    button on the right.
 *
 * `query` is the live input echo (results plumbing arrives once per-feature
 * SearchSources exist in Phase 5/6/8/9).
 */
data class SearchState(
    val isOpen: Boolean = false,
    val isFocused: Boolean = false,
    val query: String = "",
)
