Package-level declarations

Types

Link copied to clipboard
Link copied to clipboard
data class DomposableBrowserHistoryRecord<S : Any>(val position: Int, val value: S)
Link copied to clipboard
class DomposableBrowserHistoryState<S : Any>(initialValue: S, initialPosition: Int = 0)

Browser-history mechanics for a caller-owned stack or snapshot.

Link copied to clipboard
sealed interface DomposableBrowserUrls
Link copied to clipboard
class DomposableNavigator<R : Any>(initialRoute: R)

Optional observable navigation state. Routes and dependencies remain application-owned.

Link copied to clipboard

Functions

Link copied to clipboard
expect fun <R : Any> DomposableBrowserHistory(backStack: SnapshotStateList<DomposableEntryScope<R>>, codec: DomposableRouteCodec<R>, urls: DomposableBrowserUrls = DomposableBrowserUrls.Hash)

Application-owned URL codec; hash URLs support GitHub Pages project hosting.

expect fun <S : Any> DomposableBrowserHistory(state: DomposableBrowserHistoryState<S>, codec: DomposableBrowserHistoryCodec<S>, onBeforeRestore: () -> Unit = {}, onRestore: (DomposableBrowserHistoryRecord<S>?) -> Unit)

The caller owns the value, URL codec, restore policy, and browser stack semantics.

Application-owned URL codec; hash URLs support GitHub Pages project hosting.

Application-owned URL codec; hash URLs support GitHub Pages project hosting.

The caller owns the value, URL codec, restore policy, and browser stack semantics.

The caller owns the value, URL codec, restore policy, and browser stack semantics.

Link copied to clipboard
expect fun <T : Any> DomposableNavDisplay(entries: List<NavEntry<T>>, modifier: DomposableModifier = DomposableModifier, visibleEntries: Int = 1, onBack: () -> Unit)

Displays ordinary Navigation 3 entries. The caller owns the stack, entry provider and decorators. Native targets delegate to NavDisplay; Kotlin/JS composes directly into semantic HTML. Entries must already be decorated when ownership/saveable adapters are required.

actual fun <T : Any> DomposableNavDisplay(entries: List<NavEntry<T>>, modifier: DomposableModifier, visibleEntries: Int, onBack: () -> Unit)

Displays ordinary Navigation 3 entries. The caller owns the stack, entry provider and decorators. Native targets delegate to NavDisplay; Kotlin/JS composes directly into semantic HTML. Entries must already be decorated when ownership/saveable adapters are required.

fun <T : Any> DomposableNavDisplay(entries: List<NavEntry<T>>, sceneStrategies: List<SceneStrategy<T>>, modifier: DomposableModifier = DomposableModifier, sceneDecoratorStrategies: List<SceneDecoratorStrategy<T>> = emptyList(), onBack: () -> Unit)

Native Nav3 integration with caller-owned scenes, chrome, entry decorators and back-stack policy.

actual fun <T : Any> DomposableNavDisplay(entries: List<NavEntry<T>>, modifier: DomposableModifier, visibleEntries: Int, onBack: () -> Unit)

Displays ordinary Navigation 3 entries. The caller owns the stack, entry provider and decorators. Native targets delegate to NavDisplay; Kotlin/JS composes directly into semantic HTML. Entries must already be decorated when ownership/saveable adapters are required.

Link copied to clipboard
fun <R : Any> DomposableNavHost(navigator: DomposableNavigator<R>, entries: List<DomposableDestination<*>>, modifier: DomposableModifier = DomposableModifier, visibleEntries: Int = 1, onRootBack: () -> Unit = {})

Convenience host. Entries may be generated by KSP or declared with DomposableDestination.

Link copied to clipboard
fun <R : Any> DomposableNavigation3Host(backStack: List<DomposableEntryScope<R>>, screens: DomposableScreenRegistry, modifier: DomposableModifier = DomposableModifier, visibleEntries: Int = 1, onBack: () -> Unit)
Link copied to clipboard

Optional entry ownership adapter. Pass the result to native NavDisplay or DomposableNavDisplay.

Link copied to clipboard
fun <R : Any> rememberDomposableNavigator(initialRoute: R, codec: DomposableRouteCodec<R>? = null, browserUrls: DomposableBrowserUrls = DomposableBrowserUrls.Hash): DomposableNavigator<R>

Without a codec, navigation is entirely in memory. HTML/Wasm history is an explicit opt-in.

Link copied to clipboard
fun <R : Any> DomposableRouteCodec<R>.urlFor(route: R, urls: DomposableBrowserUrls = DomposableBrowserUrls.Hash): String

Generates an anchor URL using the same rules as the HTML/Wasm history binding.