Package-level declarations

Types

Link copied to clipboard
data class DomposableAdaptiveInfo(val size: DomposableSize, val widthClass: DomposableWidthClass, val reducedMotion: Boolean = false, val precisePointer: Boolean = false)
Link copied to clipboard
data class DomposableBreakpoints(val medium: Float = 600.0f, val expanded: Float = 840.0f, val large: Float = 1200.0f)
Link copied to clipboard
sealed interface DomposablePane<out R : Any>

Route relationships; the application owns route identity and navigation mutations.

Link copied to clipboard
sealed interface DomposablePaneLayout<out T>
Link copied to clipboard
data class DomposablePaneRecipe(val dualPaneFrom: DomposableWidthClass = DomposableWidthClass.Expanded)
Link copied to clipboard
data class DomposableResponsive<T>(val compact: T, val medium: T = compact, val expanded: T = medium, val large: T = expanded)

Properties

Link copied to clipboard

Null outside a paired presentation, so screens retain their standalone chrome.

Functions

Link copied to clipboard
fun <T : Any> DomposablePaneScaffold(layout: DomposablePaneLayout<T>, listLabel: String, detailLabel: String, modifier: DomposableModifier = DomposableModifier, listModifier: DomposableModifier = DomposableModifier, detailModifier: DomposableModifier = DomposableModifier, listFraction: Float = 0.33f, minListWidth: DomposableLength = 0.dp, maxListWidth: DomposableLength? = null, gap: DomposableLength = 0.dp, retainedList: T? = null, singlePaneRole: DomposablePaneRole = DomposablePaneRole.Detail, contentKey: (T) -> Any = { it }, content: @Composable (T) -> Unit)

Renders caller-owned entries in one or two panes, without owning navigation or ViewModels. retainedList keeps a list composed when a compact detail temporarily hides it. Pane modifiers configure brand spacing and separators; no HTML or native layout code is needed. Native expanded panes fill their bounded parent height; HTML panes stretch to the taller pane's content.

Link copied to clipboard
fun domposablePaneShouldReplaceDetail(current: DomposablePane<*>?, next: DomposablePane<*>?, canShowTwoPanes: Boolean): Boolean

Wide selections replace the selected detail; compact selections keep ordinary Back history.

Link copied to clipboard
fun <T, R : Any> ensureDomposablePaneParent(entries: List<T>, route: (T) -> R, pane: (R) -> DomposablePane<R>?, createEntry: (R) -> T): List<T>

Restore a declared direct-link parent once, retaining all existing entry identities.

Link copied to clipboard
fun rememberDomposableAdaptiveInfo(size: DomposableSize, breakpoints: DomposableBreakpoints = DomposableBreakpoints(), reducedMotion: Boolean? = null, precisePointer: Boolean? = null): DomposableAdaptiveInfo

Supply measured feature-content size here, independently of the application shell.

Link copied to clipboard
fun <T> resolveDomposablePaneLayout(entries: List<T>, canShowTwoPanes: Boolean, pane: (T) -> DomposablePane<*>?): DomposablePaneLayout<T>

Unrelated tasks remain single destinations; resizing never mutates the entry stack.