Package-level declarations

Types

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
class UserVisibleProfile(val id: String, val name: @Composable () -> String, val icon: @Composable () -> Painter)

id is used as the persistence key for this profile's overrides.

Functions

Link copied to clipboard
fun AnimatedPersistentKepkoTheme(persistence: PersistenceManager = LocalKepkoPersistenceManager.current, isSystemInDarkTheme: Boolean = isSystemInDarkTheme(), profileId: String? = null, content: @Composable () -> Unit)
Link copied to clipboard
fun PersistentKepkoTheme(dimensions: Dimensions = KepkoTheme.dimensions, isSystemInDarkTheme: Boolean = isSystemInDarkTheme(), profileId: String? = null, content: @Composable () -> Unit)
fun PersistentKepkoTheme(persistenceManager: PersistenceManager, dimensions: Dimensions = KepkoTheme.dimensions, isSystemInDarkTheme: Boolean = isSystemInDarkTheme(), profileId: String? = null, content: @Composable () -> Unit)

A KepkoTheme wrapper that automatically persists and restores theme preferences.

Link copied to clipboard
fun PersistentPreferenceThemeButton(onClick: () -> Unit, modifier: Modifier = Modifier, persistence: PersistenceManager = LocalKepkoPersistenceManager.current, targetProfile: UserVisibleProfile? = null, text: String = Strings.preferenceThemeScreenTitle, description: String = persistence.themeButtonDescription(targetProfile))

A ready-made navigation button, with the active theme preferences shown in the description.

Link copied to clipboard
fun PersistentPreferenceThemeContent(persistence: PersistenceManager = LocalKepkoPersistenceManager.current, isSystemInDarkTheme: Boolean, activeProfile: UserVisibleProfile? = null, targetProfile: UserVisibleProfile? = null, modifier: Modifier = Modifier)
Link copied to clipboard
fun PersistentPreferenceThemeScreen(onBackClick: () -> Unit, modifier: Modifier = Modifier, persistence: PersistenceManager = LocalKepkoPersistenceManager.current, isSystemInDarkTheme: Boolean = isSystemInDarkTheme(), activeProfile: UserVisibleProfile? = null, targetProfile: UserVisibleProfile? = null)

A theme preferences screen which allows easy integration when used with PersistentKepkoTheme.

Link copied to clipboard
fun PreviewPersistentKepkoTheme(isSystemInDarkTheme: Boolean = false, configure: PreviewPersistenceManager.() -> Unit = {}, content: @Composable () -> Unit)

A PersistentKepkoTheme implementation for preview purposes.