From 7067f20406e7d98bdbc16c54cc1f9d99c075d2e2 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 14 Nov 2024 13:52:54 -0500 Subject: [PATCH] Introduce kotlin binary compatibility checker (#1800) Not enforced yet but setting the ground work. See #1796 --- backstack/api/android/backstack.api | 85 +++++++ backstack/api/backstack.klib.api | 97 ++++++++ backstack/api/jvm/backstack.api | 85 +++++++ backstack/build.gradle.kts | 1 + build.gradle.kts | 36 +++ .../android/circuit-codegen-annotations.api | 5 + .../api/circuit-codegen-annotations.klib.api | 16 ++ .../api/jvm/circuit-codegen-annotations.api | 5 + .../api/android/circuit-foundation.api | 213 +++++++++++++++++ .../api/circuit-foundation.klib.api | 226 ++++++++++++++++++ .../api/jvm/circuit-foundation.api | 209 ++++++++++++++++ circuit-foundation/build.gradle.kts | 1 + .../api/android/circuit-overlay.api | 66 +++++ circuit-overlay/api/circuit-overlay.klib.api | 70 ++++++ circuit-overlay/api/jvm/circuit-overlay.api | 66 +++++ circuit-overlay/build.gradle.kts | 1 + .../api/android/circuit-retained.api | 88 +++++++ .../api/circuit-retained.klib.api | 90 +++++++ circuit-retained/api/jvm/circuit-retained.api | 87 +++++++ .../api/android/circuit-runtime-presenter.api | 12 + .../api/circuit-runtime-presenter.klib.api | 17 ++ .../api/jvm/circuit-runtime-presenter.api | 12 + circuit-runtime-presenter/build.gradle.kts | 1 + .../api/android/circuit-runtime-screen.api | 9 + .../api/circuit-runtime-screen.klib.api | 13 + .../api/jvm/circuit-runtime-screen.api | 9 + circuit-runtime-screen/build.gradle.kts | 1 + .../api/android/circuit-runtime-ui.api | 12 + .../api/circuit-runtime-ui.klib.api | 17 ++ .../api/jvm/circuit-runtime-ui.api | 12 + circuit-runtime-ui/build.gradle.kts | 1 + .../api/android/circuit-runtime.api | 57 +++++ circuit-runtime/api/circuit-runtime.klib.api | 64 +++++ circuit-runtime/api/jvm/circuit-runtime.api | 57 +++++ circuit-runtime/build.gradle.kts | 1 + .../circuit/runtime/ExperimentalCircuitApi.kt | 20 ++ .../circuit/runtime/InternalCircuitApi.kt | 6 +- circuit-test/api/android/circuit-test.api | 111 +++++++++ circuit-test/api/circuit-test.klib.api | 140 +++++++++++ circuit-test/api/jvm/circuit-test.api | 111 +++++++++ circuitx/android/api/android.api | 39 +++ circuitx/effects/api/android/effects.api | 10 + circuitx/effects/api/effects.klib.api | 11 + circuitx/effects/api/jvm/effects.api | 6 + .../api/android/gesture-navigation.api | 18 ++ .../api/gesture-navigation.klib.api | 20 ++ .../api/jvm/gesture-navigation.api | 12 + circuitx/overlays/api/android/overlays.api | 48 ++++ circuitx/overlays/api/jvm/overlays.api | 48 ++++ circuitx/overlays/api/overlays.klib.api | 54 +++++ gradle/libs.versions.toml | 4 +- samples/star/apk/build.gradle.kts | 1 + 52 files changed, 2395 insertions(+), 6 deletions(-) create mode 100644 backstack/api/android/backstack.api create mode 100644 backstack/api/backstack.klib.api create mode 100644 backstack/api/jvm/backstack.api create mode 100644 circuit-codegen-annotations/api/android/circuit-codegen-annotations.api create mode 100644 circuit-codegen-annotations/api/circuit-codegen-annotations.klib.api create mode 100644 circuit-codegen-annotations/api/jvm/circuit-codegen-annotations.api create mode 100644 circuit-foundation/api/android/circuit-foundation.api create mode 100644 circuit-foundation/api/circuit-foundation.klib.api create mode 100644 circuit-foundation/api/jvm/circuit-foundation.api create mode 100644 circuit-overlay/api/android/circuit-overlay.api create mode 100644 circuit-overlay/api/circuit-overlay.klib.api create mode 100644 circuit-overlay/api/jvm/circuit-overlay.api create mode 100644 circuit-retained/api/android/circuit-retained.api create mode 100644 circuit-retained/api/circuit-retained.klib.api create mode 100644 circuit-retained/api/jvm/circuit-retained.api create mode 100644 circuit-runtime-presenter/api/android/circuit-runtime-presenter.api create mode 100644 circuit-runtime-presenter/api/circuit-runtime-presenter.klib.api create mode 100644 circuit-runtime-presenter/api/jvm/circuit-runtime-presenter.api create mode 100644 circuit-runtime-screen/api/android/circuit-runtime-screen.api create mode 100644 circuit-runtime-screen/api/circuit-runtime-screen.klib.api create mode 100644 circuit-runtime-screen/api/jvm/circuit-runtime-screen.api create mode 100644 circuit-runtime-ui/api/android/circuit-runtime-ui.api create mode 100644 circuit-runtime-ui/api/circuit-runtime-ui.klib.api create mode 100644 circuit-runtime-ui/api/jvm/circuit-runtime-ui.api create mode 100644 circuit-runtime/api/android/circuit-runtime.api create mode 100644 circuit-runtime/api/circuit-runtime.klib.api create mode 100644 circuit-runtime/api/jvm/circuit-runtime.api create mode 100644 circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/ExperimentalCircuitApi.kt create mode 100644 circuit-test/api/android/circuit-test.api create mode 100644 circuit-test/api/circuit-test.klib.api create mode 100644 circuit-test/api/jvm/circuit-test.api create mode 100644 circuitx/android/api/android.api create mode 100644 circuitx/effects/api/android/effects.api create mode 100644 circuitx/effects/api/effects.klib.api create mode 100644 circuitx/effects/api/jvm/effects.api create mode 100644 circuitx/gesture-navigation/api/android/gesture-navigation.api create mode 100644 circuitx/gesture-navigation/api/gesture-navigation.klib.api create mode 100644 circuitx/gesture-navigation/api/jvm/gesture-navigation.api create mode 100644 circuitx/overlays/api/android/overlays.api create mode 100644 circuitx/overlays/api/jvm/overlays.api create mode 100644 circuitx/overlays/api/overlays.klib.api diff --git a/backstack/api/android/backstack.api b/backstack/api/android/backstack.api new file mode 100644 index 000000000..f16c25ff5 --- /dev/null +++ b/backstack/api/android/backstack.api @@ -0,0 +1,85 @@ +public abstract interface class com/slack/circuit/backstack/BackStack : java/lang/Iterable, kotlin/jvm/internal/markers/KMappedMarker { + public abstract fun containsRecord (Lcom/slack/circuit/backstack/BackStack$Record;Z)Z + public abstract fun getSize ()I + public abstract fun getTopRecord ()Lcom/slack/circuit/backstack/BackStack$Record; + public abstract fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/backstack/BackStack$Record; + public static synthetic fun pop$default (Lcom/slack/circuit/backstack/BackStack;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/backstack/BackStack$Record; + public fun popUntil (Lkotlin/jvm/functions/Function1;)Lkotlinx/collections/immutable/ImmutableList; + public abstract fun push (Lcom/slack/circuit/backstack/BackStack$Record;Ljava/lang/String;)Z + public abstract fun push (Lcom/slack/circuit/runtime/screen/Screen;Ljava/lang/String;)Z + public static synthetic fun push$default (Lcom/slack/circuit/backstack/BackStack;Lcom/slack/circuit/backstack/BackStack$Record;Ljava/lang/String;ILjava/lang/Object;)Z + public static synthetic fun push$default (Lcom/slack/circuit/backstack/BackStack;Lcom/slack/circuit/runtime/screen/Screen;Ljava/lang/String;ILjava/lang/Object;)Z + public abstract fun restoreState (Lcom/slack/circuit/runtime/screen/Screen;)Z + public abstract fun saveState ()V +} + +public abstract interface class com/slack/circuit/backstack/BackStack$Record { + public abstract fun awaitResult (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getKey ()Ljava/lang/String; + public abstract fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; +} + +public final class com/slack/circuit/backstack/BackStackKt { + public static final fun isAtRoot (Lcom/slack/circuit/backstack/BackStack;)Z + public static final fun isEmpty (Lcom/slack/circuit/backstack/BackStack;)Z +} + +public abstract interface class com/slack/circuit/backstack/BackStackRecordLocalProvider { + public abstract fun providedValuesFor (Lcom/slack/circuit/backstack/BackStack$Record;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/backstack/ProvidedValues; +} + +public final class com/slack/circuit/backstack/BackStackRecordLocalProviderKt { + public static final fun providedValuesForBackStack (Lcom/slack/circuit/backstack/BackStack;Lkotlinx/collections/immutable/ImmutableList;ZLandroidx/compose/runtime/Composer;II)Lkotlinx/collections/immutable/ImmutableMap; +} + +public abstract interface class com/slack/circuit/backstack/NavDecoration { + public abstract fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public abstract interface class com/slack/circuit/backstack/ProvidedValues { + public abstract fun provideValues (Landroidx/compose/runtime/Composer;I)Lkotlinx/collections/immutable/ImmutableList; +} + +public final class com/slack/circuit/backstack/SaveableBackStack : com/slack/circuit/backstack/BackStack { + public static final field $stable I + public fun (Lcom/slack/circuit/backstack/SaveableBackStack$Record;)V + public fun (Lcom/slack/circuit/runtime/screen/Screen;)V + public synthetic fun containsRecord (Lcom/slack/circuit/backstack/BackStack$Record;Z)Z + public fun containsRecord (Lcom/slack/circuit/backstack/SaveableBackStack$Record;Z)Z + public fun getSize ()I + public synthetic fun getTopRecord ()Lcom/slack/circuit/backstack/BackStack$Record; + public fun getTopRecord ()Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public fun iterator ()Ljava/util/Iterator; + public synthetic fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/backstack/BackStack$Record; + public fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public synthetic fun push (Lcom/slack/circuit/backstack/BackStack$Record;Ljava/lang/String;)Z + public fun push (Lcom/slack/circuit/backstack/SaveableBackStack$Record;Ljava/lang/String;)Z + public fun push (Lcom/slack/circuit/runtime/screen/Screen;Ljava/lang/String;)Z + public final fun push (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;)Z + public fun restoreState (Lcom/slack/circuit/runtime/screen/Screen;)Z + public fun saveState ()V +} + +public final class com/slack/circuit/backstack/SaveableBackStack$Record : com/slack/circuit/backstack/BackStack$Record { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun awaitResult (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;)Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public static synthetic fun copy$default (Lcom/slack/circuit/backstack/SaveableBackStack$Record;Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;ILjava/lang/Object;)Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public fun equals (Ljava/lang/Object;)Z + public final fun getArgs ()Ljava/util/Map; + public fun getKey ()Ljava/lang/String; + public fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/backstack/SaveableBackStackKt { + public static final fun rememberSaveableBackStack (Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/backstack/SaveableBackStack; + public static final fun rememberSaveableBackStack (Ljava/util/List;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/backstack/SaveableBackStack; +} + diff --git a/backstack/api/backstack.klib.api b/backstack/api/backstack.klib.api new file mode 100644 index 000000000..92a36f6c8 --- /dev/null +++ b/backstack/api/backstack.klib.api @@ -0,0 +1,97 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, wasmJs] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +abstract fun interface <#A: in com.slack.circuit.backstack/BackStack.Record> com.slack.circuit.backstack/BackStackRecordLocalProvider { // com.slack.circuit.backstack/BackStackRecordLocalProvider|null[0] + abstract fun providedValuesFor(#A, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.backstack/ProvidedValues // com.slack.circuit.backstack/BackStackRecordLocalProvider.providedValuesFor|providedValuesFor(1:0;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +} + +abstract fun interface com.slack.circuit.backstack/ProvidedValues { // com.slack.circuit.backstack/ProvidedValues|null[0] + abstract fun provideValues(androidx.compose.runtime/Composer?, kotlin/Int): kotlinx.collections.immutable/ImmutableList> // com.slack.circuit.backstack/ProvidedValues.provideValues|provideValues(androidx.compose.runtime.Composer?;kotlin.Int){}[0] +} + +abstract interface <#A: com.slack.circuit.backstack/BackStack.Record> com.slack.circuit.backstack/BackStack : kotlin.collections/Iterable<#A> { // com.slack.circuit.backstack/BackStack|null[0] + abstract val size // com.slack.circuit.backstack/BackStack.size|{}size[0] + abstract fun (): kotlin/Int // com.slack.circuit.backstack/BackStack.size.|(){}[0] + abstract val topRecord // com.slack.circuit.backstack/BackStack.topRecord|{}topRecord[0] + abstract fun (): #A? // com.slack.circuit.backstack/BackStack.topRecord.|(){}[0] + + abstract fun containsRecord(#A, kotlin/Boolean): kotlin/Boolean // com.slack.circuit.backstack/BackStack.containsRecord|containsRecord(1:0;kotlin.Boolean){}[0] + abstract fun pop(com.slack.circuit.runtime.screen/PopResult? = ...): #A? // com.slack.circuit.backstack/BackStack.pop|pop(com.slack.circuit.runtime.screen.PopResult?){}[0] + abstract fun push(#A, kotlin/String? = ...): kotlin/Boolean // com.slack.circuit.backstack/BackStack.push|push(1:0;kotlin.String?){}[0] + abstract fun push(com.slack.circuit.runtime.screen/Screen, kotlin/String? = ...): kotlin/Boolean // com.slack.circuit.backstack/BackStack.push|push(com.slack.circuit.runtime.screen.Screen;kotlin.String?){}[0] + abstract fun restoreState(com.slack.circuit.runtime.screen/Screen): kotlin/Boolean // com.slack.circuit.backstack/BackStack.restoreState|restoreState(com.slack.circuit.runtime.screen.Screen){}[0] + abstract fun saveState() // com.slack.circuit.backstack/BackStack.saveState|saveState(){}[0] + open fun popUntil(kotlin/Function1<#A, kotlin/Boolean>): kotlinx.collections.immutable/ImmutableList<#A> // com.slack.circuit.backstack/BackStack.popUntil|popUntil(kotlin.Function1<1:0,kotlin.Boolean>){}[0] + + abstract interface Record { // com.slack.circuit.backstack/BackStack.Record|null[0] + abstract val key // com.slack.circuit.backstack/BackStack.Record.key|{}key[0] + abstract fun (): kotlin/String // com.slack.circuit.backstack/BackStack.Record.key.|(){}[0] + abstract val screen // com.slack.circuit.backstack/BackStack.Record.screen|{}screen[0] + abstract fun (): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.backstack/BackStack.Record.screen.|(){}[0] + + abstract suspend fun awaitResult(kotlin/String): com.slack.circuit.runtime.screen/PopResult? // com.slack.circuit.backstack/BackStack.Record.awaitResult|awaitResult(kotlin.String){}[0] + } +} + +abstract interface com.slack.circuit.backstack/NavDecoration { // com.slack.circuit.backstack/NavDecoration|null[0] + abstract fun <#A1: kotlin/Any?> DecoratedContent(kotlinx.collections.immutable/ImmutableList<#A1>, kotlin/Int, androidx.compose.ui/Modifier, kotlin/Function3<#A1, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.backstack/NavDecoration.DecoratedContent|DecoratedContent(kotlinx.collections.immutable.ImmutableList<0:0>;kotlin.Int;androidx.compose.ui.Modifier;kotlin.Function3<0:0,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +} + +final class com.slack.circuit.backstack/SaveableBackStack : com.slack.circuit.backstack/BackStack { // com.slack.circuit.backstack/SaveableBackStack|null[0] + constructor (com.slack.circuit.backstack/SaveableBackStack.Record) // com.slack.circuit.backstack/SaveableBackStack.|(com.slack.circuit.backstack.SaveableBackStack.Record){}[0] + constructor (com.slack.circuit.runtime.screen/Screen) // com.slack.circuit.backstack/SaveableBackStack.|(com.slack.circuit.runtime.screen.Screen){}[0] + + final val size // com.slack.circuit.backstack/SaveableBackStack.size|{}size[0] + final fun (): kotlin/Int // com.slack.circuit.backstack/SaveableBackStack.size.|(){}[0] + final val topRecord // com.slack.circuit.backstack/SaveableBackStack.topRecord|{}topRecord[0] + final fun (): com.slack.circuit.backstack/SaveableBackStack.Record? // com.slack.circuit.backstack/SaveableBackStack.topRecord.|(){}[0] + + final fun containsRecord(com.slack.circuit.backstack/SaveableBackStack.Record, kotlin/Boolean): kotlin/Boolean // com.slack.circuit.backstack/SaveableBackStack.containsRecord|containsRecord(com.slack.circuit.backstack.SaveableBackStack.Record;kotlin.Boolean){}[0] + final fun iterator(): kotlin.collections/Iterator // com.slack.circuit.backstack/SaveableBackStack.iterator|iterator(){}[0] + final fun pop(com.slack.circuit.runtime.screen/PopResult?): com.slack.circuit.backstack/SaveableBackStack.Record? // com.slack.circuit.backstack/SaveableBackStack.pop|pop(com.slack.circuit.runtime.screen.PopResult?){}[0] + final fun push(com.slack.circuit.backstack/SaveableBackStack.Record, kotlin/String?): kotlin/Boolean // com.slack.circuit.backstack/SaveableBackStack.push|push(com.slack.circuit.backstack.SaveableBackStack.Record;kotlin.String?){}[0] + final fun push(com.slack.circuit.runtime.screen/Screen, kotlin.collections/Map, kotlin/String?): kotlin/Boolean // com.slack.circuit.backstack/SaveableBackStack.push|push(com.slack.circuit.runtime.screen.Screen;kotlin.collections.Map;kotlin.String?){}[0] + final fun push(com.slack.circuit.runtime.screen/Screen, kotlin/String?): kotlin/Boolean // com.slack.circuit.backstack/SaveableBackStack.push|push(com.slack.circuit.runtime.screen.Screen;kotlin.String?){}[0] + final fun restoreState(com.slack.circuit.runtime.screen/Screen): kotlin/Boolean // com.slack.circuit.backstack/SaveableBackStack.restoreState|restoreState(com.slack.circuit.runtime.screen.Screen){}[0] + final fun saveState() // com.slack.circuit.backstack/SaveableBackStack.saveState|saveState(){}[0] + + final class Record : com.slack.circuit.backstack/BackStack.Record { // com.slack.circuit.backstack/SaveableBackStack.Record|null[0] + constructor (com.slack.circuit.runtime.screen/Screen, kotlin.collections/Map = ..., kotlin/String = ...) // com.slack.circuit.backstack/SaveableBackStack.Record.|(com.slack.circuit.runtime.screen.Screen;kotlin.collections.Map;kotlin.String){}[0] + + final val args // com.slack.circuit.backstack/SaveableBackStack.Record.args|{}args[0] + final fun (): kotlin.collections/Map // com.slack.circuit.backstack/SaveableBackStack.Record.args.|(){}[0] + final val key // com.slack.circuit.backstack/SaveableBackStack.Record.key|{}key[0] + final fun (): kotlin/String // com.slack.circuit.backstack/SaveableBackStack.Record.key.|(){}[0] + final val screen // com.slack.circuit.backstack/SaveableBackStack.Record.screen|{}screen[0] + final fun (): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.backstack/SaveableBackStack.Record.screen.|(){}[0] + + final fun component1(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.backstack/SaveableBackStack.Record.component1|component1(){}[0] + final fun component2(): kotlin.collections/Map // com.slack.circuit.backstack/SaveableBackStack.Record.component2|component2(){}[0] + final fun component3(): kotlin/String // com.slack.circuit.backstack/SaveableBackStack.Record.component3|component3(){}[0] + final fun copy(com.slack.circuit.runtime.screen/Screen = ..., kotlin.collections/Map = ..., kotlin/String = ...): com.slack.circuit.backstack/SaveableBackStack.Record // com.slack.circuit.backstack/SaveableBackStack.Record.copy|copy(com.slack.circuit.runtime.screen.Screen;kotlin.collections.Map;kotlin.String){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.backstack/SaveableBackStack.Record.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.backstack/SaveableBackStack.Record.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.backstack/SaveableBackStack.Record.toString|toString(){}[0] + final suspend fun awaitResult(kotlin/String): com.slack.circuit.runtime.screen/PopResult? // com.slack.circuit.backstack/SaveableBackStack.Record.awaitResult|awaitResult(kotlin.String){}[0] + } +} + +final val com.slack.circuit.backstack/com_slack_circuit_backstack_CompositeProvidedValues$stableprop // com.slack.circuit.backstack/com_slack_circuit_backstack_CompositeProvidedValues$stableprop|#static{}com_slack_circuit_backstack_CompositeProvidedValues$stableprop[0] +final val com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack$stableprop // com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack$stableprop|#static{}com_slack_circuit_backstack_SaveableBackStack$stableprop[0] +final val com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack_Record$stableprop // com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack_Record$stableprop|#static{}com_slack_circuit_backstack_SaveableBackStack_Record$stableprop[0] +final val com.slack.circuit.backstack/isAtRoot // com.slack.circuit.backstack/isAtRoot|@com.slack.circuit.backstack.BackStack{}isAtRoot[0] + final fun (com.slack.circuit.backstack/BackStack).(): kotlin/Boolean // com.slack.circuit.backstack/isAtRoot.|@com.slack.circuit.backstack.BackStack(){}[0] +final val com.slack.circuit.backstack/isEmpty // com.slack.circuit.backstack/isEmpty|@com.slack.circuit.backstack.BackStack{}isEmpty[0] + final fun (com.slack.circuit.backstack/BackStack).(): kotlin/Boolean // com.slack.circuit.backstack/isEmpty.|@com.slack.circuit.backstack.BackStack(){}[0] + +final fun <#A: com.slack.circuit.backstack/BackStack.Record> com.slack.circuit.backstack/providedValuesForBackStack(com.slack.circuit.backstack/BackStack<#A>, kotlinx.collections.immutable/ImmutableList>?, kotlin/Boolean, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): kotlinx.collections.immutable/ImmutableMap<#A, com.slack.circuit.backstack/ProvidedValues> // com.slack.circuit.backstack/providedValuesForBackStack|providedValuesForBackStack(com.slack.circuit.backstack.BackStack<0:0>;kotlinx.collections.immutable.ImmutableList>?;kotlin.Boolean;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun com.slack.circuit.backstack/com_slack_circuit_backstack_CompositeProvidedValues$stableprop_getter(): kotlin/Int // com.slack.circuit.backstack/com_slack_circuit_backstack_CompositeProvidedValues$stableprop_getter|com_slack_circuit_backstack_CompositeProvidedValues$stableprop_getter(){}[0] +final fun com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack$stableprop_getter(): kotlin/Int // com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack$stableprop_getter|com_slack_circuit_backstack_SaveableBackStack$stableprop_getter(){}[0] +final fun com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack_Record$stableprop_getter(): kotlin/Int // com.slack.circuit.backstack/com_slack_circuit_backstack_SaveableBackStack_Record$stableprop_getter|com_slack_circuit_backstack_SaveableBackStack_Record$stableprop_getter(){}[0] +final fun com.slack.circuit.backstack/rememberSaveableBackStack(com.slack.circuit.runtime.screen/Screen, kotlin/Function1?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): com.slack.circuit.backstack/SaveableBackStack // com.slack.circuit.backstack/rememberSaveableBackStack|rememberSaveableBackStack(com.slack.circuit.runtime.screen.Screen;kotlin.Function1?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.backstack/rememberSaveableBackStack(kotlin.collections/List, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.backstack/SaveableBackStack // com.slack.circuit.backstack/rememberSaveableBackStack|rememberSaveableBackStack(kotlin.collections.List;androidx.compose.runtime.Composer?;kotlin.Int){}[0] diff --git a/backstack/api/jvm/backstack.api b/backstack/api/jvm/backstack.api new file mode 100644 index 000000000..f16c25ff5 --- /dev/null +++ b/backstack/api/jvm/backstack.api @@ -0,0 +1,85 @@ +public abstract interface class com/slack/circuit/backstack/BackStack : java/lang/Iterable, kotlin/jvm/internal/markers/KMappedMarker { + public abstract fun containsRecord (Lcom/slack/circuit/backstack/BackStack$Record;Z)Z + public abstract fun getSize ()I + public abstract fun getTopRecord ()Lcom/slack/circuit/backstack/BackStack$Record; + public abstract fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/backstack/BackStack$Record; + public static synthetic fun pop$default (Lcom/slack/circuit/backstack/BackStack;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/backstack/BackStack$Record; + public fun popUntil (Lkotlin/jvm/functions/Function1;)Lkotlinx/collections/immutable/ImmutableList; + public abstract fun push (Lcom/slack/circuit/backstack/BackStack$Record;Ljava/lang/String;)Z + public abstract fun push (Lcom/slack/circuit/runtime/screen/Screen;Ljava/lang/String;)Z + public static synthetic fun push$default (Lcom/slack/circuit/backstack/BackStack;Lcom/slack/circuit/backstack/BackStack$Record;Ljava/lang/String;ILjava/lang/Object;)Z + public static synthetic fun push$default (Lcom/slack/circuit/backstack/BackStack;Lcom/slack/circuit/runtime/screen/Screen;Ljava/lang/String;ILjava/lang/Object;)Z + public abstract fun restoreState (Lcom/slack/circuit/runtime/screen/Screen;)Z + public abstract fun saveState ()V +} + +public abstract interface class com/slack/circuit/backstack/BackStack$Record { + public abstract fun awaitResult (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun getKey ()Ljava/lang/String; + public abstract fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; +} + +public final class com/slack/circuit/backstack/BackStackKt { + public static final fun isAtRoot (Lcom/slack/circuit/backstack/BackStack;)Z + public static final fun isEmpty (Lcom/slack/circuit/backstack/BackStack;)Z +} + +public abstract interface class com/slack/circuit/backstack/BackStackRecordLocalProvider { + public abstract fun providedValuesFor (Lcom/slack/circuit/backstack/BackStack$Record;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/backstack/ProvidedValues; +} + +public final class com/slack/circuit/backstack/BackStackRecordLocalProviderKt { + public static final fun providedValuesForBackStack (Lcom/slack/circuit/backstack/BackStack;Lkotlinx/collections/immutable/ImmutableList;ZLandroidx/compose/runtime/Composer;II)Lkotlinx/collections/immutable/ImmutableMap; +} + +public abstract interface class com/slack/circuit/backstack/NavDecoration { + public abstract fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public abstract interface class com/slack/circuit/backstack/ProvidedValues { + public abstract fun provideValues (Landroidx/compose/runtime/Composer;I)Lkotlinx/collections/immutable/ImmutableList; +} + +public final class com/slack/circuit/backstack/SaveableBackStack : com/slack/circuit/backstack/BackStack { + public static final field $stable I + public fun (Lcom/slack/circuit/backstack/SaveableBackStack$Record;)V + public fun (Lcom/slack/circuit/runtime/screen/Screen;)V + public synthetic fun containsRecord (Lcom/slack/circuit/backstack/BackStack$Record;Z)Z + public fun containsRecord (Lcom/slack/circuit/backstack/SaveableBackStack$Record;Z)Z + public fun getSize ()I + public synthetic fun getTopRecord ()Lcom/slack/circuit/backstack/BackStack$Record; + public fun getTopRecord ()Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public fun iterator ()Ljava/util/Iterator; + public synthetic fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/backstack/BackStack$Record; + public fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public synthetic fun push (Lcom/slack/circuit/backstack/BackStack$Record;Ljava/lang/String;)Z + public fun push (Lcom/slack/circuit/backstack/SaveableBackStack$Record;Ljava/lang/String;)Z + public fun push (Lcom/slack/circuit/runtime/screen/Screen;Ljava/lang/String;)Z + public final fun push (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;)Z + public fun restoreState (Lcom/slack/circuit/runtime/screen/Screen;)Z + public fun saveState ()V +} + +public final class com/slack/circuit/backstack/SaveableBackStack$Record : com/slack/circuit/backstack/BackStack$Record { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun awaitResult (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;)Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public static synthetic fun copy$default (Lcom/slack/circuit/backstack/SaveableBackStack$Record;Lcom/slack/circuit/runtime/screen/Screen;Ljava/util/Map;Ljava/lang/String;ILjava/lang/Object;)Lcom/slack/circuit/backstack/SaveableBackStack$Record; + public fun equals (Ljava/lang/Object;)Z + public final fun getArgs ()Ljava/util/Map; + public fun getKey ()Ljava/lang/String; + public fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/backstack/SaveableBackStackKt { + public static final fun rememberSaveableBackStack (Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/backstack/SaveableBackStack; + public static final fun rememberSaveableBackStack (Ljava/util/List;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/backstack/SaveableBackStack; +} + diff --git a/backstack/build.gradle.kts b/backstack/build.gradle.kts index d3d3fb142..02705b238 100644 --- a/backstack/build.gradle.kts +++ b/backstack/build.gradle.kts @@ -112,6 +112,7 @@ androidComponents { beforeVariants { variant -> variant.androidTest.enable = fal baselineProfile { mergeIntoMain = true saveInSrc = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) filter { include("com.slack.circuit.backstack.**") } } diff --git a/build.gradle.kts b/build.gradle.kts index a33ee4e89..a097d288f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,6 +14,7 @@ import com.vanniktech.maven.publish.MavenPublishBaseExtension import io.gitlab.arturbosch.detekt.Detekt import io.gitlab.arturbosch.detekt.extensions.DetektExtension import java.net.URI +import kotlinx.validation.ExperimentalBCVApi import org.jetbrains.dokka.gradle.DokkaTaskPartial import org.jetbrains.kotlin.compose.compiler.gradle.ComposeCompilerGradlePluginExtension import org.jetbrains.kotlin.gradle.dsl.JvmTarget @@ -54,6 +55,7 @@ plugins { alias(libs.plugins.kotlin.plugin.compose) apply false alias(libs.plugins.baselineprofile) apply false alias(libs.plugins.emulatorWtf) apply false + alias(libs.plugins.binaryCompatibilityValidator) } val ktfmtVersion = libs.versions.ktfmt.get() @@ -463,3 +465,37 @@ subprojects { } } } + +apiValidation { + @OptIn(ExperimentalBCVApi::class) + klib { + enabled = true + strictValidation = false + } + nonPublicMarkers += + setOf( + "com.slack.circuit.runtime.InternalCircuitApi", + "com.slack.circuit.runtime.ExperimentalCircuitApi", + "com.slack.circuit.test.ExperimentalForInheritanceCircuitTestApi", + ) + ignoredPackages += + setOf("com.slack.circuit.foundation.internal", "com.slack.circuit.runtime.internal") + // Annoyingly this only uses simple names + // https://github.com/Kotlin/binary-compatibility-validator/issues/16 + ignoredProjects += + listOf( + "counter", + "circuit-codegen", + "apps", + "mosaic", + "interop", + "kotlin-inject", + "star", + "apk", + "benchmark", + "coil-rule", + "tacos", + "tutorial", + "internal-test-utils", + ) +} diff --git a/circuit-codegen-annotations/api/android/circuit-codegen-annotations.api b/circuit-codegen-annotations/api/android/circuit-codegen-annotations.api new file mode 100644 index 000000000..74e62a37f --- /dev/null +++ b/circuit-codegen-annotations/api/android/circuit-codegen-annotations.api @@ -0,0 +1,5 @@ +public abstract interface annotation class com/slack/circuit/codegen/annotations/CircuitInject : java/lang/annotation/Annotation { + public abstract fun scope ()Ljava/lang/Class; + public abstract fun screen ()Ljava/lang/Class; +} + diff --git a/circuit-codegen-annotations/api/circuit-codegen-annotations.klib.api b/circuit-codegen-annotations/api/circuit-codegen-annotations.klib.api new file mode 100644 index 000000000..3b9e061c5 --- /dev/null +++ b/circuit-codegen-annotations/api/circuit-codegen-annotations.klib.api @@ -0,0 +1,16 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosX64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +open annotation class com.slack.circuit.codegen.annotations/CircuitInject : kotlin/Annotation { // com.slack.circuit.codegen.annotations/CircuitInject|null[0] + constructor (kotlin.reflect/KClass, kotlin.reflect/KClass<*>) // com.slack.circuit.codegen.annotations/CircuitInject.|(kotlin.reflect.KClass;kotlin.reflect.KClass<*>){}[0] + + final val scope // com.slack.circuit.codegen.annotations/CircuitInject.scope|{}scope[0] + final fun (): kotlin.reflect/KClass<*> // com.slack.circuit.codegen.annotations/CircuitInject.scope.|(){}[0] + final val screen // com.slack.circuit.codegen.annotations/CircuitInject.screen|{}screen[0] + final fun (): kotlin.reflect/KClass // com.slack.circuit.codegen.annotations/CircuitInject.screen.|(){}[0] +} diff --git a/circuit-codegen-annotations/api/jvm/circuit-codegen-annotations.api b/circuit-codegen-annotations/api/jvm/circuit-codegen-annotations.api new file mode 100644 index 000000000..74e62a37f --- /dev/null +++ b/circuit-codegen-annotations/api/jvm/circuit-codegen-annotations.api @@ -0,0 +1,5 @@ +public abstract interface annotation class com/slack/circuit/codegen/annotations/CircuitInject : java/lang/annotation/Annotation { + public abstract fun scope ()Ljava/lang/Class; + public abstract fun screen ()Ljava/lang/Class; +} + diff --git a/circuit-foundation/api/android/circuit-foundation.api b/circuit-foundation/api/android/circuit-foundation.api new file mode 100644 index 000000000..694aebd61 --- /dev/null +++ b/circuit-foundation/api/android/circuit-foundation.api @@ -0,0 +1,213 @@ +public final class com/slack/circuit/foundation/AnsweringNavigatorKt { + public static final fun answeringNavigationAvailable (Landroidx/compose/runtime/Composer;I)Z + public static final fun rememberAnsweringNavigator (Lcom/slack/circuit/backstack/BackStack;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/GoToNavigator; + public static final fun rememberAnsweringNavigator (Lcom/slack/circuit/runtime/Navigator;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/GoToNavigator; +} + +public final class com/slack/circuit/foundation/Circuit { + public static final field $stable I + public synthetic fun (Lcom/slack/circuit/foundation/Circuit$Builder;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getDefaultNavDecoration ()Lcom/slack/circuit/backstack/NavDecoration; + public final fun getOnUnavailableContent ()Lkotlin/jvm/functions/Function4; + public final fun getPresentWithLifecycle ()Z + public final fun newBuilder ()Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun nextPresenter (Lcom/slack/circuit/runtime/presenter/Presenter$Factory;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/presenter/Presenter; + public final fun nextUi (Lcom/slack/circuit/runtime/ui/Ui$Factory;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/ui/Ui; + public final fun presenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/presenter/Presenter; + public static synthetic fun presenter$default (Lcom/slack/circuit/foundation/Circuit;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;ILjava/lang/Object;)Lcom/slack/circuit/runtime/presenter/Presenter; + public final fun ui (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/ui/Ui; + public static synthetic fun ui$default (Lcom/slack/circuit/foundation/Circuit;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;ILjava/lang/Object;)Lcom/slack/circuit/runtime/ui/Ui; +} + +public final class com/slack/circuit/foundation/Circuit$Builder { + public static final field $stable I + public fun ()V + public final fun addPresenterFactories (Ljava/lang/Iterable;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addPresenterFactory (Lcom/slack/circuit/runtime/presenter/Presenter$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addPresenterFactory ([Lcom/slack/circuit/runtime/presenter/Presenter$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addUiFactories (Ljava/lang/Iterable;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addUiFactory (Lcom/slack/circuit/runtime/ui/Ui$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addUiFactory ([Lcom/slack/circuit/runtime/ui/Ui$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun build ()Lcom/slack/circuit/foundation/Circuit; + public final fun eventListenerFactory (Lcom/slack/circuit/foundation/EventListener$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun getDefaultNavDecoration ()Lcom/slack/circuit/backstack/NavDecoration; + public final fun getEventListenerFactory ()Lcom/slack/circuit/foundation/EventListener$Factory; + public final fun getOnUnavailableContent ()Lkotlin/jvm/functions/Function4; + public final fun getPresentWithLifecycle ()Z + public final fun getPresenterFactories ()Ljava/util/List; + public final fun getUiFactories ()Ljava/util/List; + public final fun presentWithLifecycle (Z)Lcom/slack/circuit/foundation/Circuit$Builder; + public static synthetic fun presentWithLifecycle$default (Lcom/slack/circuit/foundation/Circuit$Builder;ZILjava/lang/Object;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun setDefaultNavDecoration (Lcom/slack/circuit/backstack/NavDecoration;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun setOnUnavailableContent (Lkotlin/jvm/functions/Function4;)Lcom/slack/circuit/foundation/Circuit$Builder; +} + +public final class com/slack/circuit/foundation/CircuitCompositionLocalsKt { + public static final fun CircuitCompositionLocals (Lcom/slack/circuit/foundation/Circuit;Lcom/slack/circuit/retained/RetainedStateRegistry;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitPreview (Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V + public static final fun getLocalCircuit ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/foundation/CircuitConfigKt { + public static final fun getConfig (Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/foundation/Circuit; + public static final fun setConfig (Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/Circuit;)V +} + +public final class com/slack/circuit/foundation/CircuitContentKt { + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/Circuit;Lkotlin/jvm/functions/Function4;Ljava/lang/Object;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Lcom/slack/circuit/foundation/Circuit;Lkotlin/jvm/functions/Function4;Ljava/lang/Object;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/Circuit;Lkotlin/jvm/functions/Function4;Ljava/lang/Object;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/presenter/Presenter;Lcom/slack/circuit/runtime/ui/Ui;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/EventListener;Ljava/lang/Object;ZLandroidx/compose/runtime/Composer;II)V + public static final fun rememberEventListener (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;ZLcom/slack/circuit/foundation/EventListener$Factory;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/foundation/EventListener; + public static final fun rememberPresenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/EventListener;Lcom/slack/circuit/runtime/presenter/Presenter$Factory;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/runtime/presenter/Presenter; + public static final fun rememberUi (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/EventListener;Lcom/slack/circuit/runtime/ui/Ui$Factory;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/runtime/ui/Ui; +} + +public final class com/slack/circuit/foundation/CircuitKt { + public static final fun getCircuit (Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/foundation/Circuit; + public static final fun setCircuit (Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/Circuit;)V +} + +public final class com/slack/circuit/foundation/ComposableSingletons$CircuitKt { + public static final field INSTANCE Lcom/slack/circuit/foundation/ComposableSingletons$CircuitKt; + public static field lambda-1 Lkotlin/jvm/functions/Function4; + public fun ()V + public final fun getLambda-1$circuit_foundation_release ()Lkotlin/jvm/functions/Function4; +} + +public abstract interface annotation class com/slack/circuit/foundation/DelicateCircuitFoundationApi : java/lang/annotation/Annotation { +} + +public abstract interface class com/slack/circuit/foundation/EventListener { + public static final field Companion Lcom/slack/circuit/foundation/EventListener$Companion; + public fun dispose ()V + public fun onAfterCreatePresenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/presenter/Presenter;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onAfterCreateUi (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/ui/Ui;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onBeforeCreatePresenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onBeforeCreateUi (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onDisposeContent ()V + public fun onDisposePresent ()V + public fun onStartContent ()V + public fun onStartPresent ()V + public fun onState (Lcom/slack/circuit/runtime/CircuitUiState;)V + public fun onUnavailableContent (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/presenter/Presenter;Lcom/slack/circuit/runtime/ui/Ui;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun start ()V +} + +public final class com/slack/circuit/foundation/EventListener$Companion { + public final fun getNONE ()Lcom/slack/circuit/foundation/EventListener; +} + +public abstract interface class com/slack/circuit/foundation/EventListener$Factory { + public abstract fun create (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/foundation/EventListener; +} + +public abstract interface class com/slack/circuit/foundation/NavEvent : com/slack/circuit/runtime/CircuitUiEvent { +} + +public final class com/slack/circuit/foundation/NavEvent$GoTo : com/slack/circuit/foundation/NavEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;)Lcom/slack/circuit/foundation/NavEvent$GoTo; + public static synthetic fun copy$default (Lcom/slack/circuit/foundation/NavEvent$GoTo;Lcom/slack/circuit/runtime/screen/Screen;ILjava/lang/Object;)Lcom/slack/circuit/foundation/NavEvent$GoTo; + public fun equals (Ljava/lang/Object;)Z + public final fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/foundation/NavEvent$Pop : com/slack/circuit/foundation/NavEvent { + public static final field $stable I + public fun ()V + public fun (Lcom/slack/circuit/runtime/screen/PopResult;)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/PopResult;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/PopResult; + public final fun copy (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/foundation/NavEvent$Pop; + public static synthetic fun copy$default (Lcom/slack/circuit/foundation/NavEvent$Pop;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/foundation/NavEvent$Pop; + public fun equals (Ljava/lang/Object;)Z + public final fun getResult ()Lcom/slack/circuit/runtime/screen/PopResult; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/foundation/NavEvent$ResetRoot : com/slack/circuit/foundation/NavEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;ZZ)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Z + public final fun component3 ()Z + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lcom/slack/circuit/foundation/NavEvent$ResetRoot; + public static synthetic fun copy$default (Lcom/slack/circuit/foundation/NavEvent$ResetRoot;Lcom/slack/circuit/runtime/screen/Screen;ZZILjava/lang/Object;)Lcom/slack/circuit/foundation/NavEvent$ResetRoot; + public fun equals (Ljava/lang/Object;)Z + public final fun getNewRoot ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getRestoreState ()Z + public final fun getSaveState ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/foundation/NavEventKt { + public static final fun onNavEvent (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/foundation/NavEvent;)V +} + +public final class com/slack/circuit/foundation/NavigableCircuitContentKt { + public static final fun NavigableCircuitContent (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/backstack/BackStack;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/Circuit;Lkotlinx/collections/immutable/ImmutableMap;Lcom/slack/circuit/backstack/NavDecoration;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V + public static final fun getLocalBackStack ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/foundation/NavigatorDefaults { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/foundation/NavigatorDefaults; +} + +public final class com/slack/circuit/foundation/NavigatorDefaults$DefaultDecoration : com/slack/circuit/backstack/NavDecoration { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/foundation/NavigatorDefaults$DefaultDecoration; + public fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuit/foundation/NavigatorDefaults$EmptyDecoration : com/slack/circuit/backstack/NavDecoration { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/foundation/NavigatorDefaults$EmptyDecoration; + public fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuit/foundation/NavigatorImplKt { + public static final fun Navigator (Lcom/slack/circuit/backstack/BackStack;Lkotlin/jvm/functions/Function1;)Lcom/slack/circuit/runtime/Navigator; + public static final fun rememberCircuitNavigator (Lcom/slack/circuit/backstack/BackStack;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/Navigator; +} + +public final class com/slack/circuit/foundation/Navigator_androidKt { + public static final fun rememberCircuitNavigator (Lcom/slack/circuit/backstack/BackStack;ZLandroidx/compose/runtime/Composer;II)Lcom/slack/circuit/runtime/Navigator; +} + +public abstract interface class com/slack/circuit/foundation/NonPausablePresenter : com/slack/circuit/runtime/presenter/Presenter { +} + +public final class com/slack/circuit/foundation/PausableStateKt { + public static final fun pausableState (Ljava/lang/String;ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; + public static final fun presentWithLifecycle (Lcom/slack/circuit/runtime/presenter/Presenter;Ljava/lang/String;ZLandroidx/compose/runtime/Composer;II)Lcom/slack/circuit/runtime/CircuitUiState; +} + +public final class com/slack/circuit/foundation/RecordContentProvider { + public static final field $stable I + public fun (Lcom/slack/circuit/backstack/BackStack$Record;Lkotlin/jvm/functions/Function3;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getRecord ()Lcom/slack/circuit/backstack/BackStack$Record; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface class com/slack/circuit/foundation/RecordLifecycle { + public abstract fun isActive ()Z +} + +public final class com/slack/circuit/foundation/RecordLifecycleKt { + public static final fun getLocalRecordLifecycle ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/foundation/SaveableBackstack_ScreenKt { + public static final synthetic fun getScreen (Lcom/slack/circuit/backstack/SaveableBackStack$Record;)Lcom/slack/circuit/runtime/screen/Screen; +} + diff --git a/circuit-foundation/api/circuit-foundation.klib.api b/circuit-foundation/api/circuit-foundation.klib.api new file mode 100644 index 000000000..4b67fea89 --- /dev/null +++ b/circuit-foundation/api/circuit-foundation.klib.api @@ -0,0 +1,226 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, wasmJs] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +open annotation class com.slack.circuit.foundation/DelicateCircuitFoundationApi : kotlin/Annotation { // com.slack.circuit.foundation/DelicateCircuitFoundationApi|null[0] + constructor () // com.slack.circuit.foundation/DelicateCircuitFoundationApi.|(){}[0] +} + +abstract interface <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.foundation/NonPausablePresenter : com.slack.circuit.runtime.presenter/Presenter<#A> // com.slack.circuit.foundation/NonPausablePresenter|null[0] + +abstract interface com.slack.circuit.foundation/EventListener { // com.slack.circuit.foundation/EventListener|null[0] + open fun dispose() // com.slack.circuit.foundation/EventListener.dispose|dispose(){}[0] + open fun onAfterCreatePresenter(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/Navigator, com.slack.circuit.runtime.presenter/Presenter<*>?, com.slack.circuit.runtime/CircuitContext) // com.slack.circuit.foundation/EventListener.onAfterCreatePresenter|onAfterCreatePresenter(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.Navigator;com.slack.circuit.runtime.presenter.Presenter<*>?;com.slack.circuit.runtime.CircuitContext){}[0] + open fun onAfterCreateUi(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime.ui/Ui<*>?, com.slack.circuit.runtime/CircuitContext) // com.slack.circuit.foundation/EventListener.onAfterCreateUi|onAfterCreateUi(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.ui.Ui<*>?;com.slack.circuit.runtime.CircuitContext){}[0] + open fun onBeforeCreatePresenter(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/Navigator, com.slack.circuit.runtime/CircuitContext) // com.slack.circuit.foundation/EventListener.onBeforeCreatePresenter|onBeforeCreatePresenter(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.Navigator;com.slack.circuit.runtime.CircuitContext){}[0] + open fun onBeforeCreateUi(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/CircuitContext) // com.slack.circuit.foundation/EventListener.onBeforeCreateUi|onBeforeCreateUi(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.CircuitContext){}[0] + open fun onDisposeContent() // com.slack.circuit.foundation/EventListener.onDisposeContent|onDisposeContent(){}[0] + open fun onDisposePresent() // com.slack.circuit.foundation/EventListener.onDisposePresent|onDisposePresent(){}[0] + open fun onStartContent() // com.slack.circuit.foundation/EventListener.onStartContent|onStartContent(){}[0] + open fun onStartPresent() // com.slack.circuit.foundation/EventListener.onStartPresent|onStartPresent(){}[0] + open fun onState(com.slack.circuit.runtime/CircuitUiState) // com.slack.circuit.foundation/EventListener.onState|onState(com.slack.circuit.runtime.CircuitUiState){}[0] + open fun onUnavailableContent(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime.presenter/Presenter<*>?, com.slack.circuit.runtime.ui/Ui<*>?, com.slack.circuit.runtime/CircuitContext) // com.slack.circuit.foundation/EventListener.onUnavailableContent|onUnavailableContent(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.presenter.Presenter<*>?;com.slack.circuit.runtime.ui.Ui<*>?;com.slack.circuit.runtime.CircuitContext){}[0] + open fun start() // com.slack.circuit.foundation/EventListener.start|start(){}[0] + + abstract fun interface Factory { // com.slack.circuit.foundation/EventListener.Factory|null[0] + abstract fun create(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/CircuitContext): com.slack.circuit.foundation/EventListener // com.slack.circuit.foundation/EventListener.Factory.create|create(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.CircuitContext){}[0] + } + + final object Companion { // com.slack.circuit.foundation/EventListener.Companion|null[0] + final val NONE // com.slack.circuit.foundation/EventListener.Companion.NONE|{}NONE[0] + final fun (): com.slack.circuit.foundation/EventListener // com.slack.circuit.foundation/EventListener.Companion.NONE.|(){}[0] + } +} + +abstract interface com.slack.circuit.foundation/RecordLifecycle { // com.slack.circuit.foundation/RecordLifecycle|null[0] + abstract val isActive // com.slack.circuit.foundation/RecordLifecycle.isActive|{}isActive[0] + abstract fun (): kotlin/Boolean // com.slack.circuit.foundation/RecordLifecycle.isActive.|(){}[0] +} + +sealed interface com.slack.circuit.foundation/NavEvent : com.slack.circuit.runtime/CircuitUiEvent { // com.slack.circuit.foundation/NavEvent|null[0] + final class GoTo : com.slack.circuit.foundation/NavEvent { // com.slack.circuit.foundation/NavEvent.GoTo|null[0] + constructor (com.slack.circuit.runtime.screen/Screen) // com.slack.circuit.foundation/NavEvent.GoTo.|(com.slack.circuit.runtime.screen.Screen){}[0] + + final val screen // com.slack.circuit.foundation/NavEvent.GoTo.screen|{}screen[0] + final fun (): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.foundation/NavEvent.GoTo.screen.|(){}[0] + + final fun component1(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.foundation/NavEvent.GoTo.component1|component1(){}[0] + final fun copy(com.slack.circuit.runtime.screen/Screen = ...): com.slack.circuit.foundation/NavEvent.GoTo // com.slack.circuit.foundation/NavEvent.GoTo.copy|copy(com.slack.circuit.runtime.screen.Screen){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.foundation/NavEvent.GoTo.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.foundation/NavEvent.GoTo.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.foundation/NavEvent.GoTo.toString|toString(){}[0] + } + + final class Pop : com.slack.circuit.foundation/NavEvent { // com.slack.circuit.foundation/NavEvent.Pop|null[0] + constructor (com.slack.circuit.runtime.screen/PopResult? = ...) // com.slack.circuit.foundation/NavEvent.Pop.|(com.slack.circuit.runtime.screen.PopResult?){}[0] + + final val result // com.slack.circuit.foundation/NavEvent.Pop.result|{}result[0] + final fun (): com.slack.circuit.runtime.screen/PopResult? // com.slack.circuit.foundation/NavEvent.Pop.result.|(){}[0] + + final fun component1(): com.slack.circuit.runtime.screen/PopResult? // com.slack.circuit.foundation/NavEvent.Pop.component1|component1(){}[0] + final fun copy(com.slack.circuit.runtime.screen/PopResult? = ...): com.slack.circuit.foundation/NavEvent.Pop // com.slack.circuit.foundation/NavEvent.Pop.copy|copy(com.slack.circuit.runtime.screen.PopResult?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.foundation/NavEvent.Pop.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.foundation/NavEvent.Pop.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.foundation/NavEvent.Pop.toString|toString(){}[0] + } + + final class ResetRoot : com.slack.circuit.foundation/NavEvent { // com.slack.circuit.foundation/NavEvent.ResetRoot|null[0] + constructor (com.slack.circuit.runtime.screen/Screen, kotlin/Boolean, kotlin/Boolean) // com.slack.circuit.foundation/NavEvent.ResetRoot.|(com.slack.circuit.runtime.screen.Screen;kotlin.Boolean;kotlin.Boolean){}[0] + + final val newRoot // com.slack.circuit.foundation/NavEvent.ResetRoot.newRoot|{}newRoot[0] + final fun (): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.foundation/NavEvent.ResetRoot.newRoot.|(){}[0] + final val restoreState // com.slack.circuit.foundation/NavEvent.ResetRoot.restoreState|{}restoreState[0] + final fun (): kotlin/Boolean // com.slack.circuit.foundation/NavEvent.ResetRoot.restoreState.|(){}[0] + final val saveState // com.slack.circuit.foundation/NavEvent.ResetRoot.saveState|{}saveState[0] + final fun (): kotlin/Boolean // com.slack.circuit.foundation/NavEvent.ResetRoot.saveState.|(){}[0] + + final fun component1(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.foundation/NavEvent.ResetRoot.component1|component1(){}[0] + final fun component2(): kotlin/Boolean // com.slack.circuit.foundation/NavEvent.ResetRoot.component2|component2(){}[0] + final fun component3(): kotlin/Boolean // com.slack.circuit.foundation/NavEvent.ResetRoot.component3|component3(){}[0] + final fun copy(com.slack.circuit.runtime.screen/Screen = ..., kotlin/Boolean = ..., kotlin/Boolean = ...): com.slack.circuit.foundation/NavEvent.ResetRoot // com.slack.circuit.foundation/NavEvent.ResetRoot.copy|copy(com.slack.circuit.runtime.screen.Screen;kotlin.Boolean;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.foundation/NavEvent.ResetRoot.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.foundation/NavEvent.ResetRoot.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.foundation/NavEvent.ResetRoot.toString|toString(){}[0] + } +} + +final class <#A: com.slack.circuit.backstack/BackStack.Record> com.slack.circuit.foundation/RecordContentProvider { // com.slack.circuit.foundation/RecordContentProvider|null[0] + constructor (#A, kotlin/Function3<#A, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>) // com.slack.circuit.foundation/RecordContentProvider.|(1:0;kotlin.Function3<1:0,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}[0] + + final val record // com.slack.circuit.foundation/RecordContentProvider.record|{}record[0] + final fun (): #A // com.slack.circuit.foundation/RecordContentProvider.record.|(){}[0] + + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.foundation/RecordContentProvider.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.foundation/RecordContentProvider.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.foundation/RecordContentProvider.toString|toString(){}[0] +} + +final class com.slack.circuit.foundation/Circuit { // com.slack.circuit.foundation/Circuit|null[0] + final val defaultNavDecoration // com.slack.circuit.foundation/Circuit.defaultNavDecoration|{}defaultNavDecoration[0] + final fun (): com.slack.circuit.backstack/NavDecoration // com.slack.circuit.foundation/Circuit.defaultNavDecoration.|(){}[0] + final val onUnavailableContent // com.slack.circuit.foundation/Circuit.onUnavailableContent|{}onUnavailableContent[0] + final fun (): kotlin/Function4 // com.slack.circuit.foundation/Circuit.onUnavailableContent.|(){}[0] + final val presentWithLifecycle // com.slack.circuit.foundation/Circuit.presentWithLifecycle|{}presentWithLifecycle[0] + final fun (): kotlin/Boolean // com.slack.circuit.foundation/Circuit.presentWithLifecycle.|(){}[0] + + final fun newBuilder(): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.newBuilder|newBuilder(){}[0] + final fun nextPresenter(com.slack.circuit.runtime.presenter/Presenter.Factory?, com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/Navigator, com.slack.circuit.runtime/CircuitContext): com.slack.circuit.runtime.presenter/Presenter<*>? // com.slack.circuit.foundation/Circuit.nextPresenter|nextPresenter(com.slack.circuit.runtime.presenter.Presenter.Factory?;com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.Navigator;com.slack.circuit.runtime.CircuitContext){}[0] + final fun nextUi(com.slack.circuit.runtime.ui/Ui.Factory?, com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/CircuitContext): com.slack.circuit.runtime.ui/Ui<*>? // com.slack.circuit.foundation/Circuit.nextUi|nextUi(com.slack.circuit.runtime.ui.Ui.Factory?;com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.CircuitContext){}[0] + final fun presenter(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/Navigator, com.slack.circuit.runtime/CircuitContext = ...): com.slack.circuit.runtime.presenter/Presenter<*>? // com.slack.circuit.foundation/Circuit.presenter|presenter(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.Navigator;com.slack.circuit.runtime.CircuitContext){}[0] + final fun ui(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/CircuitContext = ...): com.slack.circuit.runtime.ui/Ui<*>? // com.slack.circuit.foundation/Circuit.ui|ui(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.CircuitContext){}[0] + + final class Builder { // com.slack.circuit.foundation/Circuit.Builder|null[0] + constructor () // com.slack.circuit.foundation/Circuit.Builder.|(){}[0] + + final val presenterFactories // com.slack.circuit.foundation/Circuit.Builder.presenterFactories|{}presenterFactories[0] + final fun (): kotlin.collections/MutableList // com.slack.circuit.foundation/Circuit.Builder.presenterFactories.|(){}[0] + final val uiFactories // com.slack.circuit.foundation/Circuit.Builder.uiFactories|{}uiFactories[0] + final fun (): kotlin.collections/MutableList // com.slack.circuit.foundation/Circuit.Builder.uiFactories.|(){}[0] + + final var defaultNavDecoration // com.slack.circuit.foundation/Circuit.Builder.defaultNavDecoration|{}defaultNavDecoration[0] + final fun (): com.slack.circuit.backstack/NavDecoration // com.slack.circuit.foundation/Circuit.Builder.defaultNavDecoration.|(){}[0] + final var eventListenerFactory // com.slack.circuit.foundation/Circuit.Builder.eventListenerFactory|{}eventListenerFactory[0] + final fun (): com.slack.circuit.foundation/EventListener.Factory? // com.slack.circuit.foundation/Circuit.Builder.eventListenerFactory.|(){}[0] + final var onUnavailableContent // com.slack.circuit.foundation/Circuit.Builder.onUnavailableContent|{}onUnavailableContent[0] + final fun (): kotlin/Function4 // com.slack.circuit.foundation/Circuit.Builder.onUnavailableContent.|(){}[0] + final var presentWithLifecycle // com.slack.circuit.foundation/Circuit.Builder.presentWithLifecycle|{}presentWithLifecycle[0] + final fun (): kotlin/Boolean // com.slack.circuit.foundation/Circuit.Builder.presentWithLifecycle.|(){}[0] + + final fun addPresenterFactories(kotlin.collections/Iterable): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addPresenterFactories|addPresenterFactories(kotlin.collections.Iterable){}[0] + final fun addPresenterFactory(com.slack.circuit.runtime.presenter/Presenter.Factory): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addPresenterFactory|addPresenterFactory(com.slack.circuit.runtime.presenter.Presenter.Factory){}[0] + final fun addPresenterFactory(kotlin/Array...): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addPresenterFactory|addPresenterFactory(kotlin.Array...){}[0] + final fun addUiFactories(kotlin.collections/Iterable): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addUiFactories|addUiFactories(kotlin.collections.Iterable){}[0] + final fun addUiFactory(com.slack.circuit.runtime.ui/Ui.Factory): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addUiFactory|addUiFactory(com.slack.circuit.runtime.ui.Ui.Factory){}[0] + final fun addUiFactory(kotlin/Array...): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addUiFactory|addUiFactory(kotlin.Array...){}[0] + final fun build(): com.slack.circuit.foundation/Circuit // com.slack.circuit.foundation/Circuit.Builder.build|build(){}[0] + final fun eventListenerFactory(com.slack.circuit.foundation/EventListener.Factory): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.eventListenerFactory|eventListenerFactory(com.slack.circuit.foundation.EventListener.Factory){}[0] + final fun presentWithLifecycle(kotlin/Boolean = ...): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.presentWithLifecycle|presentWithLifecycle(kotlin.Boolean){}[0] + final fun setDefaultNavDecoration(com.slack.circuit.backstack/NavDecoration): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.setDefaultNavDecoration|setDefaultNavDecoration(com.slack.circuit.backstack.NavDecoration){}[0] + final fun setOnUnavailableContent(kotlin/Function4): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.setOnUnavailableContent|setOnUnavailableContent(kotlin.Function4){}[0] + final inline fun <#A2: reified com.slack.circuit.runtime.screen/Screen, #B2: com.slack.circuit.runtime/CircuitUiState> addPresenter(com.slack.circuit.runtime.presenter/Presenter<#B2>): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addPresenter|addPresenter(com.slack.circuit.runtime.presenter.Presenter<0:1>){0§;1§}[0] + final inline fun <#A2: reified com.slack.circuit.runtime.screen/Screen, #B2: com.slack.circuit.runtime/CircuitUiState> addPresenter(crossinline kotlin/Function3<#A2, com.slack.circuit.runtime/Navigator, com.slack.circuit.runtime/CircuitContext, com.slack.circuit.runtime.presenter/Presenter<#B2>>): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addPresenter|addPresenter(kotlin.Function3<0:0,com.slack.circuit.runtime.Navigator,com.slack.circuit.runtime.CircuitContext,com.slack.circuit.runtime.presenter.Presenter<0:1>>){0§;1§}[0] + final inline fun <#A2: reified com.slack.circuit.runtime.screen/Screen, #B2: com.slack.circuit.runtime/CircuitUiState> addStaticUi(crossinline kotlin/Function4<#A2, androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addStaticUi|addStaticUi(kotlin.Function4<0:0,androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){0§;1§}[0] + final inline fun <#A2: reified com.slack.circuit.runtime.screen/Screen, #B2: com.slack.circuit.runtime/CircuitUiState> addUi(crossinline kotlin/Function4<#B2, androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>): com.slack.circuit.foundation/Circuit.Builder // com.slack.circuit.foundation/Circuit.Builder.addUi|addUi(kotlin.Function4<0:1,androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){0§;1§}[0] + } +} + +final object com.slack.circuit.foundation/NavigatorDefaults { // com.slack.circuit.foundation/NavigatorDefaults|null[0] + final object DefaultDecoration : com.slack.circuit.backstack/NavDecoration { // com.slack.circuit.foundation/NavigatorDefaults.DefaultDecoration|null[0] + final fun <#A2: kotlin/Any?> DecoratedContent(kotlinx.collections.immutable/ImmutableList<#A2>, kotlin/Int, androidx.compose.ui/Modifier, kotlin/Function3<#A2, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.foundation/NavigatorDefaults.DefaultDecoration.DecoratedContent|DecoratedContent(kotlinx.collections.immutable.ImmutableList<0:0>;kotlin.Int;androidx.compose.ui.Modifier;kotlin.Function3<0:0,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] + } + + final object EmptyDecoration : com.slack.circuit.backstack/NavDecoration { // com.slack.circuit.foundation/NavigatorDefaults.EmptyDecoration|null[0] + final fun <#A2: kotlin/Any?> DecoratedContent(kotlinx.collections.immutable/ImmutableList<#A2>, kotlin/Int, androidx.compose.ui/Modifier, kotlin/Function3<#A2, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.foundation/NavigatorDefaults.EmptyDecoration.DecoratedContent|DecoratedContent(kotlinx.collections.immutable.ImmutableList<0:0>;kotlin.Int;androidx.compose.ui.Modifier;kotlin.Function3<0:0,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] + } +} + +final val com.slack.circuit.foundation/LocalBackStack // com.slack.circuit.foundation/LocalBackStack|{}LocalBackStack[0] + final fun (): androidx.compose.runtime/ProvidableCompositionLocal?> // com.slack.circuit.foundation/LocalBackStack.|(){}[0] +final val com.slack.circuit.foundation/LocalCircuit // com.slack.circuit.foundation/LocalCircuit|{}LocalCircuit[0] + final fun (): androidx.compose.runtime/ProvidableCompositionLocal // com.slack.circuit.foundation/LocalCircuit.|(){}[0] +final val com.slack.circuit.foundation/LocalRecordLifecycle // com.slack.circuit.foundation/LocalRecordLifecycle|{}LocalRecordLifecycle[0] + final fun (): androidx.compose.runtime/ProvidableCompositionLocal // com.slack.circuit.foundation/LocalRecordLifecycle.|(){}[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit$stableprop|#static{}com_slack_circuit_foundation_Circuit$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit_Builder$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit_Builder$stableprop|#static{}com_slack_circuit_foundation_Circuit_Builder$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRecordLifecycle$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRecordLifecycle$stableprop|#static{}com_slack_circuit_foundation_MutableRecordLifecycle$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRef$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRef$stableprop|#static{}com_slack_circuit_foundation_MutableRef$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_GoTo$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_GoTo$stableprop|#static{}com_slack_circuit_foundation_NavEvent_GoTo$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_Pop$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_Pop$stableprop|#static{}com_slack_circuit_foundation_NavEvent_Pop$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_ResetRoot$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_ResetRoot$stableprop|#static{}com_slack_circuit_foundation_NavEvent_ResetRoot$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults$stableprop|#static{}com_slack_circuit_foundation_NavigatorDefaults$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_DefaultDecoration$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_DefaultDecoration$stableprop|#static{}com_slack_circuit_foundation_NavigatorDefaults_DefaultDecoration$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_EmptyDecoration$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_EmptyDecoration$stableprop|#static{}com_slack_circuit_foundation_NavigatorDefaults_EmptyDecoration$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorImpl$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorImpl$stableprop|#static{}com_slack_circuit_foundation_NavigatorImpl$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_RecordContentProvider$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_RecordContentProvider$stableprop|#static{}com_slack_circuit_foundation_RecordContentProvider$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_StatelessUiState$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_StatelessUiState$stableprop|#static{}com_slack_circuit_foundation_StatelessUiState$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_StaticPresenter$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_StaticPresenter$stableprop|#static{}com_slack_circuit_foundation_StaticPresenter$stableprop[0] +final val com.slack.circuit.foundation/com_slack_circuit_foundation_StaticUi$stableprop // com.slack.circuit.foundation/com_slack_circuit_foundation_StaticUi$stableprop|#static{}com_slack_circuit_foundation_StaticUi$stableprop[0] +final val com.slack.circuit.foundation/screen // com.slack.circuit.foundation/screen|@com.slack.circuit.backstack.SaveableBackStack.Record{}screen[0] + final fun (com.slack.circuit.backstack/SaveableBackStack.Record).(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.foundation/screen.|@com.slack.circuit.backstack.SaveableBackStack.Record(){}[0] + +final var com.slack.circuit.foundation/circuit // com.slack.circuit.foundation/circuit|@com.slack.circuit.runtime.CircuitContext{}circuit[0] + final fun (com.slack.circuit.runtime/CircuitContext).(): com.slack.circuit.foundation/Circuit // com.slack.circuit.foundation/circuit.|@com.slack.circuit.runtime.CircuitContext(){}[0] + final fun (com.slack.circuit.runtime/CircuitContext).(com.slack.circuit.foundation/Circuit) // com.slack.circuit.foundation/circuit.|@com.slack.circuit.runtime.CircuitContext(com.slack.circuit.foundation.Circuit){}[0] +final var com.slack.circuit.foundation/config // com.slack.circuit.foundation/config|@com.slack.circuit.runtime.CircuitContext{}config[0] + final fun (com.slack.circuit.runtime/CircuitContext).(): com.slack.circuit.foundation/Circuit // com.slack.circuit.foundation/config.|@com.slack.circuit.runtime.CircuitContext(){}[0] + final fun (com.slack.circuit.runtime/CircuitContext).(com.slack.circuit.foundation/Circuit) // com.slack.circuit.foundation/config.|@com.slack.circuit.runtime.CircuitContext(com.slack.circuit.foundation.Circuit){}[0] + +final fun (com.slack.circuit.runtime/Navigator).com.slack.circuit.foundation/onNavEvent(com.slack.circuit.foundation/NavEvent) // com.slack.circuit.foundation/onNavEvent|onNavEvent@com.slack.circuit.runtime.Navigator(com.slack.circuit.foundation.NavEvent){}[0] +final fun <#A: com.slack.circuit.backstack/BackStack.Record> com.slack.circuit.foundation/NavigableCircuitContent(com.slack.circuit.runtime/Navigator, com.slack.circuit.backstack/BackStack<#A>, androidx.compose.ui/Modifier?, com.slack.circuit.foundation/Circuit?, kotlinx.collections.immutable/ImmutableMap?, com.slack.circuit.backstack/NavDecoration?, kotlin/Function4?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.foundation/NavigableCircuitContent|NavigableCircuitContent(com.slack.circuit.runtime.Navigator;com.slack.circuit.backstack.BackStack<0:0>;androidx.compose.ui.Modifier?;com.slack.circuit.foundation.Circuit?;kotlinx.collections.immutable.ImmutableMap?;com.slack.circuit.backstack.NavDecoration?;kotlin.Function4?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun <#A: com.slack.circuit.runtime.screen/PopResult> com.slack.circuit.foundation/rememberAnsweringNavigator(com.slack.circuit.backstack/BackStack, kotlin.reflect/KClass<#A>, kotlin.coroutines/SuspendFunction2, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.runtime/GoToNavigator // com.slack.circuit.foundation/rememberAnsweringNavigator|rememberAnsweringNavigator(com.slack.circuit.backstack.BackStack;kotlin.reflect.KClass<0:0>;kotlin.coroutines.SuspendFunction2;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final fun <#A: com.slack.circuit.runtime.screen/PopResult> com.slack.circuit.foundation/rememberAnsweringNavigator(com.slack.circuit.runtime/Navigator, kotlin.reflect/KClass<#A>, kotlin.coroutines/SuspendFunction2, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.runtime/GoToNavigator // com.slack.circuit.foundation/rememberAnsweringNavigator|rememberAnsweringNavigator(com.slack.circuit.runtime.Navigator;kotlin.reflect.KClass<0:0>;kotlin.coroutines.SuspendFunction2;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final fun <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.foundation/CircuitContent(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime.presenter/Presenter<#A>, com.slack.circuit.runtime.ui/Ui<#A>, androidx.compose.ui/Modifier?, com.slack.circuit.foundation/EventListener?, kotlin/Any?, kotlin/Boolean, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.foundation/CircuitContent|CircuitContent(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.presenter.Presenter<0:0>;com.slack.circuit.runtime.ui.Ui<0:0>;androidx.compose.ui.Modifier?;com.slack.circuit.foundation.EventListener?;kotlin.Any?;kotlin.Boolean;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.foundation/pausableState(kotlin/String?, kotlin/Boolean, kotlin/Function2, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.slack.circuit.foundation/pausableState|pausableState(kotlin.String?;kotlin.Boolean;kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun com.slack.circuit.foundation/CircuitCompositionLocals(com.slack.circuit.foundation/Circuit, com.slack.circuit.retained/RetainedStateRegistry?, kotlin/Function2, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.foundation/CircuitCompositionLocals|CircuitCompositionLocals(com.slack.circuit.foundation.Circuit;com.slack.circuit.retained.RetainedStateRegistry?;kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.foundation/CircuitContent(com.slack.circuit.runtime.screen/Screen, androidx.compose.ui/Modifier?, com.slack.circuit.foundation/Circuit?, kotlin/Function4?, kotlin/Any?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.foundation/CircuitContent|CircuitContent(com.slack.circuit.runtime.screen.Screen;androidx.compose.ui.Modifier?;com.slack.circuit.foundation.Circuit?;kotlin.Function4?;kotlin.Any?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.foundation/CircuitContent(com.slack.circuit.runtime.screen/Screen, androidx.compose.ui/Modifier?, kotlin/Function1, com.slack.circuit.foundation/Circuit?, kotlin/Function4?, kotlin/Any?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.foundation/CircuitContent|CircuitContent(com.slack.circuit.runtime.screen.Screen;androidx.compose.ui.Modifier?;kotlin.Function1;com.slack.circuit.foundation.Circuit?;kotlin.Function4?;kotlin.Any?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.foundation/CircuitContent(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/Navigator, androidx.compose.ui/Modifier?, com.slack.circuit.foundation/Circuit?, kotlin/Function4?, kotlin/Any?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.foundation/CircuitContent|CircuitContent(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.Navigator;androidx.compose.ui.Modifier?;com.slack.circuit.foundation.Circuit?;kotlin.Function4?;kotlin.Any?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.foundation/CircuitPreview(kotlin/Function2, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.foundation/CircuitPreview|CircuitPreview(kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +final fun com.slack.circuit.foundation/Navigator(com.slack.circuit.backstack/BackStack, kotlin/Function1): com.slack.circuit.runtime/Navigator // com.slack.circuit.foundation/Navigator|Navigator(com.slack.circuit.backstack.BackStack;kotlin.Function1){}[0] +final fun com.slack.circuit.foundation/answeringNavigationAvailable(androidx.compose.runtime/Composer?, kotlin/Int): kotlin/Boolean // com.slack.circuit.foundation/answeringNavigationAvailable|answeringNavigationAvailable(androidx.compose.runtime.Composer?;kotlin.Int){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit$stableprop_getter|com_slack_circuit_foundation_Circuit$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit_Builder$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_Circuit_Builder$stableprop_getter|com_slack_circuit_foundation_Circuit_Builder$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRecordLifecycle$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRecordLifecycle$stableprop_getter|com_slack_circuit_foundation_MutableRecordLifecycle$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRef$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_MutableRef$stableprop_getter|com_slack_circuit_foundation_MutableRef$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_GoTo$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_GoTo$stableprop_getter|com_slack_circuit_foundation_NavEvent_GoTo$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_Pop$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_Pop$stableprop_getter|com_slack_circuit_foundation_NavEvent_Pop$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_ResetRoot$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_NavEvent_ResetRoot$stableprop_getter|com_slack_circuit_foundation_NavEvent_ResetRoot$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults$stableprop_getter|com_slack_circuit_foundation_NavigatorDefaults$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_DefaultDecoration$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_DefaultDecoration$stableprop_getter|com_slack_circuit_foundation_NavigatorDefaults_DefaultDecoration$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_EmptyDecoration$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorDefaults_EmptyDecoration$stableprop_getter|com_slack_circuit_foundation_NavigatorDefaults_EmptyDecoration$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorImpl$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_NavigatorImpl$stableprop_getter|com_slack_circuit_foundation_NavigatorImpl$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_RecordContentProvider$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_RecordContentProvider$stableprop_getter|com_slack_circuit_foundation_RecordContentProvider$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_StatelessUiState$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_StatelessUiState$stableprop_getter|com_slack_circuit_foundation_StatelessUiState$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_StaticPresenter$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_StaticPresenter$stableprop_getter|com_slack_circuit_foundation_StaticPresenter$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/com_slack_circuit_foundation_StaticUi$stableprop_getter(): kotlin/Int // com.slack.circuit.foundation/com_slack_circuit_foundation_StaticUi$stableprop_getter|com_slack_circuit_foundation_StaticUi$stableprop_getter(){}[0] +final fun com.slack.circuit.foundation/rememberCircuitNavigator(com.slack.circuit.backstack/BackStack, kotlin/Function1, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.runtime/Navigator // com.slack.circuit.foundation/rememberCircuitNavigator|rememberCircuitNavigator(com.slack.circuit.backstack.BackStack;kotlin.Function1;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +final inline fun <#A: com.slack.circuit.runtime/CircuitUiState> (com.slack.circuit.runtime.presenter/Presenter<#A>).com.slack.circuit.foundation/presentWithLifecycle(kotlin/String?, kotlin/Boolean, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.slack.circuit.foundation/presentWithLifecycle|presentWithLifecycle@com.slack.circuit.runtime.presenter.Presenter<0:0>(kotlin.String?;kotlin.Boolean;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final inline fun <#A: reified com.slack.circuit.runtime.screen/PopResult> com.slack.circuit.foundation/rememberAnsweringNavigator(com.slack.circuit.backstack/BackStack, noinline kotlin.coroutines/SuspendFunction2, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.runtime/GoToNavigator // com.slack.circuit.foundation/rememberAnsweringNavigator|rememberAnsweringNavigator(com.slack.circuit.backstack.BackStack;kotlin.coroutines.SuspendFunction2;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final inline fun <#A: reified com.slack.circuit.runtime.screen/PopResult> com.slack.circuit.foundation/rememberAnsweringNavigator(com.slack.circuit.runtime/Navigator, noinline kotlin.coroutines/SuspendFunction2, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.runtime/GoToNavigator // com.slack.circuit.foundation/rememberAnsweringNavigator|rememberAnsweringNavigator(com.slack.circuit.runtime.Navigator;kotlin.coroutines.SuspendFunction2;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final inline fun com.slack.circuit.foundation/rememberEventListener(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/CircuitContext?, kotlin/Boolean, com.slack.circuit.foundation/EventListener.Factory?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): com.slack.circuit.foundation/EventListener // com.slack.circuit.foundation/rememberEventListener|rememberEventListener(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.CircuitContext?;kotlin.Boolean;com.slack.circuit.foundation.EventListener.Factory?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final inline fun com.slack.circuit.foundation/rememberPresenter(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/Navigator?, com.slack.circuit.runtime/CircuitContext?, com.slack.circuit.foundation/EventListener?, com.slack.circuit.runtime.presenter/Presenter.Factory, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): com.slack.circuit.runtime.presenter/Presenter? // com.slack.circuit.foundation/rememberPresenter|rememberPresenter(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.Navigator?;com.slack.circuit.runtime.CircuitContext?;com.slack.circuit.foundation.EventListener?;com.slack.circuit.runtime.presenter.Presenter.Factory;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final inline fun com.slack.circuit.foundation/rememberUi(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/CircuitContext?, com.slack.circuit.foundation/EventListener?, com.slack.circuit.runtime.ui/Ui.Factory, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): com.slack.circuit.runtime.ui/Ui? // com.slack.circuit.foundation/rememberUi|rememberUi(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.CircuitContext?;com.slack.circuit.foundation.EventListener?;com.slack.circuit.runtime.ui.Ui.Factory;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] diff --git a/circuit-foundation/api/jvm/circuit-foundation.api b/circuit-foundation/api/jvm/circuit-foundation.api new file mode 100644 index 000000000..d431f7fec --- /dev/null +++ b/circuit-foundation/api/jvm/circuit-foundation.api @@ -0,0 +1,209 @@ +public final class com/slack/circuit/foundation/AnsweringNavigatorKt { + public static final fun answeringNavigationAvailable (Landroidx/compose/runtime/Composer;I)Z + public static final fun rememberAnsweringNavigator (Lcom/slack/circuit/backstack/BackStack;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/GoToNavigator; + public static final fun rememberAnsweringNavigator (Lcom/slack/circuit/runtime/Navigator;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/GoToNavigator; +} + +public final class com/slack/circuit/foundation/Circuit { + public static final field $stable I + public synthetic fun (Lcom/slack/circuit/foundation/Circuit$Builder;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getDefaultNavDecoration ()Lcom/slack/circuit/backstack/NavDecoration; + public final fun getOnUnavailableContent ()Lkotlin/jvm/functions/Function4; + public final fun getPresentWithLifecycle ()Z + public final fun newBuilder ()Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun nextPresenter (Lcom/slack/circuit/runtime/presenter/Presenter$Factory;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/presenter/Presenter; + public final fun nextUi (Lcom/slack/circuit/runtime/ui/Ui$Factory;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/ui/Ui; + public final fun presenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/presenter/Presenter; + public static synthetic fun presenter$default (Lcom/slack/circuit/foundation/Circuit;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;ILjava/lang/Object;)Lcom/slack/circuit/runtime/presenter/Presenter; + public final fun ui (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/ui/Ui; + public static synthetic fun ui$default (Lcom/slack/circuit/foundation/Circuit;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;ILjava/lang/Object;)Lcom/slack/circuit/runtime/ui/Ui; +} + +public final class com/slack/circuit/foundation/Circuit$Builder { + public static final field $stable I + public fun ()V + public final fun addPresenterFactories (Ljava/lang/Iterable;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addPresenterFactory (Lcom/slack/circuit/runtime/presenter/Presenter$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addPresenterFactory ([Lcom/slack/circuit/runtime/presenter/Presenter$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addUiFactories (Ljava/lang/Iterable;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addUiFactory (Lcom/slack/circuit/runtime/ui/Ui$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun addUiFactory ([Lcom/slack/circuit/runtime/ui/Ui$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun build ()Lcom/slack/circuit/foundation/Circuit; + public final fun eventListenerFactory (Lcom/slack/circuit/foundation/EventListener$Factory;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun getDefaultNavDecoration ()Lcom/slack/circuit/backstack/NavDecoration; + public final fun getEventListenerFactory ()Lcom/slack/circuit/foundation/EventListener$Factory; + public final fun getOnUnavailableContent ()Lkotlin/jvm/functions/Function4; + public final fun getPresentWithLifecycle ()Z + public final fun getPresenterFactories ()Ljava/util/List; + public final fun getUiFactories ()Ljava/util/List; + public final fun presentWithLifecycle (Z)Lcom/slack/circuit/foundation/Circuit$Builder; + public static synthetic fun presentWithLifecycle$default (Lcom/slack/circuit/foundation/Circuit$Builder;ZILjava/lang/Object;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun setDefaultNavDecoration (Lcom/slack/circuit/backstack/NavDecoration;)Lcom/slack/circuit/foundation/Circuit$Builder; + public final fun setOnUnavailableContent (Lkotlin/jvm/functions/Function4;)Lcom/slack/circuit/foundation/Circuit$Builder; +} + +public final class com/slack/circuit/foundation/CircuitCompositionLocalsKt { + public static final fun CircuitCompositionLocals (Lcom/slack/circuit/foundation/Circuit;Lcom/slack/circuit/retained/RetainedStateRegistry;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitPreview (Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V + public static final fun getLocalCircuit ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/foundation/CircuitConfigKt { + public static final fun getConfig (Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/foundation/Circuit; + public static final fun setConfig (Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/Circuit;)V +} + +public final class com/slack/circuit/foundation/CircuitContentKt { + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/Circuit;Lkotlin/jvm/functions/Function4;Ljava/lang/Object;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Lcom/slack/circuit/foundation/Circuit;Lkotlin/jvm/functions/Function4;Ljava/lang/Object;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/Circuit;Lkotlin/jvm/functions/Function4;Ljava/lang/Object;Landroidx/compose/runtime/Composer;II)V + public static final fun CircuitContent (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/presenter/Presenter;Lcom/slack/circuit/runtime/ui/Ui;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/EventListener;Ljava/lang/Object;ZLandroidx/compose/runtime/Composer;II)V + public static final fun rememberEventListener (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;ZLcom/slack/circuit/foundation/EventListener$Factory;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/foundation/EventListener; + public static final fun rememberPresenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/EventListener;Lcom/slack/circuit/runtime/presenter/Presenter$Factory;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/runtime/presenter/Presenter; + public static final fun rememberUi (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/EventListener;Lcom/slack/circuit/runtime/ui/Ui$Factory;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/runtime/ui/Ui; +} + +public final class com/slack/circuit/foundation/CircuitKt { + public static final fun getCircuit (Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/foundation/Circuit; + public static final fun setCircuit (Lcom/slack/circuit/runtime/CircuitContext;Lcom/slack/circuit/foundation/Circuit;)V +} + +public final class com/slack/circuit/foundation/ComposableSingletons$CircuitKt { + public static final field INSTANCE Lcom/slack/circuit/foundation/ComposableSingletons$CircuitKt; + public static field lambda-1 Lkotlin/jvm/functions/Function4; + public fun ()V + public final fun getLambda-1$circuit_foundation ()Lkotlin/jvm/functions/Function4; +} + +public abstract interface annotation class com/slack/circuit/foundation/DelicateCircuitFoundationApi : java/lang/annotation/Annotation { +} + +public abstract interface class com/slack/circuit/foundation/EventListener { + public static final field Companion Lcom/slack/circuit/foundation/EventListener$Companion; + public fun dispose ()V + public fun onAfterCreatePresenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/presenter/Presenter;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onAfterCreateUi (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/ui/Ui;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onBeforeCreatePresenter (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onBeforeCreateUi (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun onDisposeContent ()V + public fun onDisposePresent ()V + public fun onStartContent ()V + public fun onStartPresent ()V + public fun onState (Lcom/slack/circuit/runtime/CircuitUiState;)V + public fun onUnavailableContent (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/presenter/Presenter;Lcom/slack/circuit/runtime/ui/Ui;Lcom/slack/circuit/runtime/CircuitContext;)V + public fun start ()V +} + +public final class com/slack/circuit/foundation/EventListener$Companion { + public final fun getNONE ()Lcom/slack/circuit/foundation/EventListener; +} + +public abstract interface class com/slack/circuit/foundation/EventListener$Factory { + public abstract fun create (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/foundation/EventListener; +} + +public abstract interface class com/slack/circuit/foundation/NavEvent : com/slack/circuit/runtime/CircuitUiEvent { +} + +public final class com/slack/circuit/foundation/NavEvent$GoTo : com/slack/circuit/foundation/NavEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;)Lcom/slack/circuit/foundation/NavEvent$GoTo; + public static synthetic fun copy$default (Lcom/slack/circuit/foundation/NavEvent$GoTo;Lcom/slack/circuit/runtime/screen/Screen;ILjava/lang/Object;)Lcom/slack/circuit/foundation/NavEvent$GoTo; + public fun equals (Ljava/lang/Object;)Z + public final fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/foundation/NavEvent$Pop : com/slack/circuit/foundation/NavEvent { + public static final field $stable I + public fun ()V + public fun (Lcom/slack/circuit/runtime/screen/PopResult;)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/PopResult;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/PopResult; + public final fun copy (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/foundation/NavEvent$Pop; + public static synthetic fun copy$default (Lcom/slack/circuit/foundation/NavEvent$Pop;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/foundation/NavEvent$Pop; + public fun equals (Ljava/lang/Object;)Z + public final fun getResult ()Lcom/slack/circuit/runtime/screen/PopResult; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/foundation/NavEvent$ResetRoot : com/slack/circuit/foundation/NavEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;ZZ)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Z + public final fun component3 ()Z + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lcom/slack/circuit/foundation/NavEvent$ResetRoot; + public static synthetic fun copy$default (Lcom/slack/circuit/foundation/NavEvent$ResetRoot;Lcom/slack/circuit/runtime/screen/Screen;ZZILjava/lang/Object;)Lcom/slack/circuit/foundation/NavEvent$ResetRoot; + public fun equals (Ljava/lang/Object;)Z + public final fun getNewRoot ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getRestoreState ()Z + public final fun getSaveState ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/foundation/NavEventKt { + public static final fun onNavEvent (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/foundation/NavEvent;)V +} + +public final class com/slack/circuit/foundation/NavigableCircuitContentKt { + public static final fun NavigableCircuitContent (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/backstack/BackStack;Landroidx/compose/ui/Modifier;Lcom/slack/circuit/foundation/Circuit;Lkotlinx/collections/immutable/ImmutableMap;Lcom/slack/circuit/backstack/NavDecoration;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V + public static final fun getLocalBackStack ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/foundation/NavigatorDefaults { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/foundation/NavigatorDefaults; +} + +public final class com/slack/circuit/foundation/NavigatorDefaults$DefaultDecoration : com/slack/circuit/backstack/NavDecoration { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/foundation/NavigatorDefaults$DefaultDecoration; + public fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuit/foundation/NavigatorDefaults$EmptyDecoration : com/slack/circuit/backstack/NavDecoration { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/foundation/NavigatorDefaults$EmptyDecoration; + public fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuit/foundation/NavigatorImplKt { + public static final fun Navigator (Lcom/slack/circuit/backstack/BackStack;Lkotlin/jvm/functions/Function1;)Lcom/slack/circuit/runtime/Navigator; + public static final fun rememberCircuitNavigator (Lcom/slack/circuit/backstack/BackStack;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/Navigator; +} + +public abstract interface class com/slack/circuit/foundation/NonPausablePresenter : com/slack/circuit/runtime/presenter/Presenter { +} + +public final class com/slack/circuit/foundation/PausableStateKt { + public static final fun pausableState (Ljava/lang/String;ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; + public static final fun presentWithLifecycle (Lcom/slack/circuit/runtime/presenter/Presenter;Ljava/lang/String;ZLandroidx/compose/runtime/Composer;II)Lcom/slack/circuit/runtime/CircuitUiState; +} + +public final class com/slack/circuit/foundation/RecordContentProvider { + public static final field $stable I + public fun (Lcom/slack/circuit/backstack/BackStack$Record;Lkotlin/jvm/functions/Function3;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getRecord ()Lcom/slack/circuit/backstack/BackStack$Record; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract interface class com/slack/circuit/foundation/RecordLifecycle { + public abstract fun isActive ()Z +} + +public final class com/slack/circuit/foundation/RecordLifecycleKt { + public static final fun getLocalRecordLifecycle ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/foundation/SaveableBackstack_ScreenKt { + public static final synthetic fun getScreen (Lcom/slack/circuit/backstack/SaveableBackStack$Record;)Lcom/slack/circuit/runtime/screen/Screen; +} + diff --git a/circuit-foundation/build.gradle.kts b/circuit-foundation/build.gradle.kts index 4079b124f..e4de48a2c 100644 --- a/circuit-foundation/build.gradle.kts +++ b/circuit-foundation/build.gradle.kts @@ -155,6 +155,7 @@ android { baselineProfile { mergeIntoMain = true saveInSrc = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) filter { include("com.slack.circuit.foundation.**") } } diff --git a/circuit-overlay/api/android/circuit-overlay.api b/circuit-overlay/api/android/circuit-overlay.api new file mode 100644 index 000000000..ff1b96bd3 --- /dev/null +++ b/circuit-overlay/api/android/circuit-overlay.api @@ -0,0 +1,66 @@ +public abstract class com/slack/circuit/overlay/AnimatedOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public fun (Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)V + public abstract fun AnimatedContent (Landroidx/compose/animation/AnimatedVisibilityScope;Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V + public final fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V + public final fun getEnterTransition ()Landroidx/compose/animation/EnterTransition; + public final fun getExitTransition ()Landroidx/compose/animation/ExitTransition; +} + +public final class com/slack/circuit/overlay/ComposableSingletons$ContentWithOverlaysKt { + public static final field INSTANCE Lcom/slack/circuit/overlay/ComposableSingletons$ContentWithOverlaysKt; + public static field lambda-1 Lkotlin/jvm/functions/Function4; + public fun ()V + public final fun getLambda-1$circuit_overlay_release ()Lkotlin/jvm/functions/Function4; +} + +public final class com/slack/circuit/overlay/ContentWithOverlaysKt { + public static final fun ContentWithOverlays (Landroidx/compose/ui/Modifier;Lcom/slack/circuit/overlay/OverlayHost;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V +} + +public abstract interface class com/slack/circuit/overlay/Overlay { + public abstract fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuit/overlay/OverlayEffectKt { + public static final fun OverlayEffect ([Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V +} + +public abstract interface class com/slack/circuit/overlay/OverlayHost { + public abstract fun getCurrentOverlayData ()Lcom/slack/circuit/overlay/OverlayHostData; + public abstract fun show (Lcom/slack/circuit/overlay/Overlay;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public abstract interface class com/slack/circuit/overlay/OverlayHostData { + public abstract fun finish (Ljava/lang/Object;)V + public abstract fun getOverlay ()Lcom/slack/circuit/overlay/Overlay; +} + +public final class com/slack/circuit/overlay/OverlayKt { + public static final fun getLocalOverlayHost ()Landroidx/compose/runtime/ProvidableCompositionLocal; + public static final fun rememberOverlayHost (Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/overlay/OverlayHost; +} + +public abstract interface class com/slack/circuit/overlay/OverlayNavigator { + public abstract fun finish (Ljava/lang/Object;)V +} + +public abstract interface class com/slack/circuit/overlay/OverlayScope : com/slack/circuit/overlay/OverlayHost, kotlinx/coroutines/CoroutineScope { +} + +public final class com/slack/circuit/overlay/OverlayState : java/lang/Enum { + public static final field HIDDEN Lcom/slack/circuit/overlay/OverlayState; + public static final field SHOWING Lcom/slack/circuit/overlay/OverlayState; + public static final field UNAVAILABLE Lcom/slack/circuit/overlay/OverlayState; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lcom/slack/circuit/overlay/OverlayState; + public static fun values ()[Lcom/slack/circuit/overlay/OverlayState; +} + +public final class com/slack/circuit/overlay/OverlayStateKt { + public static final fun getLocalOverlayState ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public abstract interface annotation class com/slack/circuit/overlay/ReadOnlyOverlayApi : java/lang/annotation/Annotation { +} + diff --git a/circuit-overlay/api/circuit-overlay.klib.api b/circuit-overlay/api/circuit-overlay.klib.api new file mode 100644 index 000000000..17e269709 --- /dev/null +++ b/circuit-overlay/api/circuit-overlay.klib.api @@ -0,0 +1,70 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, wasmJs] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +open annotation class com.slack.circuit.overlay/ReadOnlyOverlayApi : kotlin/Annotation { // com.slack.circuit.overlay/ReadOnlyOverlayApi|null[0] + constructor () // com.slack.circuit.overlay/ReadOnlyOverlayApi.|(){}[0] +} + +final enum class com.slack.circuit.overlay/OverlayState : kotlin/Enum { // com.slack.circuit.overlay/OverlayState|null[0] + enum entry HIDDEN // com.slack.circuit.overlay/OverlayState.HIDDEN|null[0] + enum entry SHOWING // com.slack.circuit.overlay/OverlayState.SHOWING|null[0] + enum entry UNAVAILABLE // com.slack.circuit.overlay/OverlayState.UNAVAILABLE|null[0] + + final val entries // com.slack.circuit.overlay/OverlayState.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.slack.circuit.overlay/OverlayState.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.slack.circuit.overlay/OverlayState // com.slack.circuit.overlay/OverlayState.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.slack.circuit.overlay/OverlayState.values|values#static(){}[0] +} + +abstract fun interface <#A: kotlin/Any> com.slack.circuit.overlay/Overlay { // com.slack.circuit.overlay/Overlay|null[0] + abstract fun Content(com.slack.circuit.overlay/OverlayNavigator<#A>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.overlay/Overlay.Content|Content(com.slack.circuit.overlay.OverlayNavigator<1:0>;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +} + +abstract fun interface <#A: kotlin/Any> com.slack.circuit.overlay/OverlayNavigator { // com.slack.circuit.overlay/OverlayNavigator|null[0] + abstract fun finish(#A) // com.slack.circuit.overlay/OverlayNavigator.finish|finish(1:0){}[0] +} + +abstract interface <#A: kotlin/Any> com.slack.circuit.overlay/OverlayHostData { // com.slack.circuit.overlay/OverlayHostData|null[0] + abstract val overlay // com.slack.circuit.overlay/OverlayHostData.overlay|{}overlay[0] + abstract fun (): com.slack.circuit.overlay/Overlay<#A> // com.slack.circuit.overlay/OverlayHostData.overlay.|(){}[0] + + abstract fun finish(#A) // com.slack.circuit.overlay/OverlayHostData.finish|finish(1:0){}[0] +} + +abstract interface com.slack.circuit.overlay/OverlayHost { // com.slack.circuit.overlay/OverlayHost|null[0] + abstract val currentOverlayData // com.slack.circuit.overlay/OverlayHost.currentOverlayData|{}currentOverlayData[0] + abstract fun (): com.slack.circuit.overlay/OverlayHostData? // com.slack.circuit.overlay/OverlayHost.currentOverlayData.|(){}[0] + + abstract suspend fun <#A1: kotlin/Any> show(com.slack.circuit.overlay/Overlay<#A1>): #A1 // com.slack.circuit.overlay/OverlayHost.show|show(com.slack.circuit.overlay.Overlay<0:0>){0§}[0] +} + +abstract interface com.slack.circuit.overlay/OverlayScope : com.slack.circuit.overlay/OverlayHost, kotlinx.coroutines/CoroutineScope // com.slack.circuit.overlay/OverlayScope|null[0] + +abstract class <#A: kotlin/Any> com.slack.circuit.overlay/AnimatedOverlay : com.slack.circuit.overlay/Overlay<#A> { // com.slack.circuit.overlay/AnimatedOverlay|null[0] + constructor (androidx.compose.animation/EnterTransition, androidx.compose.animation/ExitTransition) // com.slack.circuit.overlay/AnimatedOverlay.|(androidx.compose.animation.EnterTransition;androidx.compose.animation.ExitTransition){}[0] + + final val enterTransition // com.slack.circuit.overlay/AnimatedOverlay.enterTransition|{}enterTransition[0] + final fun (): androidx.compose.animation/EnterTransition // com.slack.circuit.overlay/AnimatedOverlay.enterTransition.|(){}[0] + final val exitTransition // com.slack.circuit.overlay/AnimatedOverlay.exitTransition|{}exitTransition[0] + final fun (): androidx.compose.animation/ExitTransition // com.slack.circuit.overlay/AnimatedOverlay.exitTransition.|(){}[0] + + abstract fun (androidx.compose.animation/AnimatedVisibilityScope).AnimatedContent(com.slack.circuit.overlay/OverlayNavigator<#A>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.overlay/AnimatedOverlay.AnimatedContent|AnimatedContent@androidx.compose.animation.AnimatedVisibilityScope(com.slack.circuit.overlay.OverlayNavigator<1:0>;androidx.compose.runtime.Composer?;kotlin.Int){}[0] + final fun Content(com.slack.circuit.overlay/OverlayNavigator<#A>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.overlay/AnimatedOverlay.Content|Content(com.slack.circuit.overlay.OverlayNavigator<1:0>;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +} + +final val com.slack.circuit.overlay/LocalOverlayHost // com.slack.circuit.overlay/LocalOverlayHost|{}LocalOverlayHost[0] + final fun (): androidx.compose.runtime/ProvidableCompositionLocal // com.slack.circuit.overlay/LocalOverlayHost.|(){}[0] +final val com.slack.circuit.overlay/LocalOverlayState // com.slack.circuit.overlay/LocalOverlayState|{}LocalOverlayState[0] + final fun (): androidx.compose.runtime/ProvidableCompositionLocal // com.slack.circuit.overlay/LocalOverlayState.|(){}[0] +final val com.slack.circuit.overlay/com_slack_circuit_overlay_AnimatedOverlay$stableprop // com.slack.circuit.overlay/com_slack_circuit_overlay_AnimatedOverlay$stableprop|#static{}com_slack_circuit_overlay_AnimatedOverlay$stableprop[0] + +final fun com.slack.circuit.overlay/ContentWithOverlays(androidx.compose.ui/Modifier?, com.slack.circuit.overlay/OverlayHost?, kotlin/Function2, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.overlay/ContentWithOverlays|ContentWithOverlays(androidx.compose.ui.Modifier?;com.slack.circuit.overlay.OverlayHost?;kotlin.Function2;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.overlay/OverlayEffect(kotlin/Array..., kotlin/Function2?, kotlin.coroutines/SuspendFunction1, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // com.slack.circuit.overlay/OverlayEffect|OverlayEffect(kotlin.Array...;kotlin.Function2?;kotlin.coroutines.SuspendFunction1;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.overlay/com_slack_circuit_overlay_AnimatedOverlay$stableprop_getter(): kotlin/Int // com.slack.circuit.overlay/com_slack_circuit_overlay_AnimatedOverlay$stableprop_getter|com_slack_circuit_overlay_AnimatedOverlay$stableprop_getter(){}[0] +final fun com.slack.circuit.overlay/rememberOverlayHost(androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.overlay/OverlayHost // com.slack.circuit.overlay/rememberOverlayHost|rememberOverlayHost(androidx.compose.runtime.Composer?;kotlin.Int){}[0] diff --git a/circuit-overlay/api/jvm/circuit-overlay.api b/circuit-overlay/api/jvm/circuit-overlay.api new file mode 100644 index 000000000..df0158cdc --- /dev/null +++ b/circuit-overlay/api/jvm/circuit-overlay.api @@ -0,0 +1,66 @@ +public abstract class com/slack/circuit/overlay/AnimatedOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public fun (Landroidx/compose/animation/EnterTransition;Landroidx/compose/animation/ExitTransition;)V + public abstract fun AnimatedContent (Landroidx/compose/animation/AnimatedVisibilityScope;Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V + public final fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V + public final fun getEnterTransition ()Landroidx/compose/animation/EnterTransition; + public final fun getExitTransition ()Landroidx/compose/animation/ExitTransition; +} + +public final class com/slack/circuit/overlay/ComposableSingletons$ContentWithOverlaysKt { + public static final field INSTANCE Lcom/slack/circuit/overlay/ComposableSingletons$ContentWithOverlaysKt; + public static field lambda-1 Lkotlin/jvm/functions/Function4; + public fun ()V + public final fun getLambda-1$circuit_overlay ()Lkotlin/jvm/functions/Function4; +} + +public final class com/slack/circuit/overlay/ContentWithOverlaysKt { + public static final fun ContentWithOverlays (Landroidx/compose/ui/Modifier;Lcom/slack/circuit/overlay/OverlayHost;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V +} + +public abstract interface class com/slack/circuit/overlay/Overlay { + public abstract fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuit/overlay/OverlayEffectKt { + public static final fun OverlayEffect ([Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V +} + +public abstract interface class com/slack/circuit/overlay/OverlayHost { + public abstract fun getCurrentOverlayData ()Lcom/slack/circuit/overlay/OverlayHostData; + public abstract fun show (Lcom/slack/circuit/overlay/Overlay;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public abstract interface class com/slack/circuit/overlay/OverlayHostData { + public abstract fun finish (Ljava/lang/Object;)V + public abstract fun getOverlay ()Lcom/slack/circuit/overlay/Overlay; +} + +public final class com/slack/circuit/overlay/OverlayKt { + public static final fun getLocalOverlayHost ()Landroidx/compose/runtime/ProvidableCompositionLocal; + public static final fun rememberOverlayHost (Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/overlay/OverlayHost; +} + +public abstract interface class com/slack/circuit/overlay/OverlayNavigator { + public abstract fun finish (Ljava/lang/Object;)V +} + +public abstract interface class com/slack/circuit/overlay/OverlayScope : com/slack/circuit/overlay/OverlayHost, kotlinx/coroutines/CoroutineScope { +} + +public final class com/slack/circuit/overlay/OverlayState : java/lang/Enum { + public static final field HIDDEN Lcom/slack/circuit/overlay/OverlayState; + public static final field SHOWING Lcom/slack/circuit/overlay/OverlayState; + public static final field UNAVAILABLE Lcom/slack/circuit/overlay/OverlayState; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lcom/slack/circuit/overlay/OverlayState; + public static fun values ()[Lcom/slack/circuit/overlay/OverlayState; +} + +public final class com/slack/circuit/overlay/OverlayStateKt { + public static final fun getLocalOverlayState ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public abstract interface annotation class com/slack/circuit/overlay/ReadOnlyOverlayApi : java/lang/annotation/Annotation { +} + diff --git a/circuit-overlay/build.gradle.kts b/circuit-overlay/build.gradle.kts index 324eaad98..7da820e88 100644 --- a/circuit-overlay/build.gradle.kts +++ b/circuit-overlay/build.gradle.kts @@ -73,6 +73,7 @@ androidComponents { beforeVariants { variant -> variant.androidTest.enable = fal baselineProfile { mergeIntoMain = true saveInSrc = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) filter { include("com.slack.circuit.overlay.**") } } diff --git a/circuit-retained/api/android/circuit-retained.api b/circuit-retained/api/android/circuit-retained.api new file mode 100644 index 000000000..7870b92d7 --- /dev/null +++ b/circuit-retained/api/android/circuit-retained.api @@ -0,0 +1,88 @@ +public final class com/slack/circuit/retained/AndroidContinuityKt { + public static final fun continuityRetainedStateRegistry (Ljava/lang/String;Landroidx/lifecycle/ViewModelProvider$Factory;Lcom/slack/circuit/retained/CanRetainChecker;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/retained/RetainedStateRegistry; + public static final fun continuityRetainedStateRegistry (Ljava/lang/String;Lcom/slack/circuit/retained/CanRetainChecker;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/retained/RetainedStateRegistry; +} + +public abstract interface class com/slack/circuit/retained/CanRetainChecker { + public static final field Companion Lcom/slack/circuit/retained/CanRetainChecker$Companion; + public abstract fun canRetain (Lcom/slack/circuit/retained/RetainedStateRegistry;)Z +} + +public final class com/slack/circuit/retained/CanRetainChecker$Companion { + public final fun getAlways ()Lcom/slack/circuit/retained/CanRetainChecker; +} + +public final class com/slack/circuit/retained/CanRetainCheckerKt { + public static final fun getLocalCanRetainChecker ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/retained/CanRetainChecker_androidKt { + public static final fun rememberCanRetainChecker (Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/retained/CanRetainChecker; +} + +public final class com/slack/circuit/retained/CollectRetainedKt { + public static final fun collectAsRetainedState (Lkotlinx/coroutines/flow/Flow;Ljava/lang/Object;Lkotlin/coroutines/CoroutineContext;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; + public static final fun collectAsRetainedState (Lkotlinx/coroutines/flow/StateFlow;Lkotlin/coroutines/CoroutineContext;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; +} + +public final class com/slack/circuit/retained/Continuity { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/retained/Continuity; + public static final field KEY Ljava/lang/String; +} + +public abstract interface annotation class com/slack/circuit/retained/DelicateCircuitRetainedApi : java/lang/annotation/Annotation { +} + +public final class com/slack/circuit/retained/NoOpRetainedStateRegistry : com/slack/circuit/retained/RetainedStateRegistry { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/retained/NoOpRetainedStateRegistry; + public fun consumeValue (Ljava/lang/String;)Ljava/lang/Object; + public fun forgetUnclaimedValues ()V + public fun registerValue (Ljava/lang/String;Lcom/slack/circuit/retained/RetainedValueProvider;)Lcom/slack/circuit/retained/RetainedStateRegistry$Entry; + public fun saveAll ()V + public fun saveValue (Ljava/lang/String;)V +} + +public final class com/slack/circuit/retained/ProduceRetainedStateKt { + public static final fun produceRetainedState (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;[Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; +} + +public final class com/slack/circuit/retained/RememberRetainedKt { + public static final fun rememberRetained ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/MutableState; + public static final fun rememberRetained ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; + public static final fun rememberRetained ([Ljava/lang/Object;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; + public static final fun rememberRetainedSaveable ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/MutableState; + public static final fun rememberRetainedSaveable ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; +} + +public abstract interface class com/slack/circuit/retained/RetainedStateRegistry { + public abstract fun consumeValue (Ljava/lang/String;)Ljava/lang/Object; + public abstract fun forgetUnclaimedValues ()V + public abstract fun registerValue (Ljava/lang/String;Lcom/slack/circuit/retained/RetainedValueProvider;)Lcom/slack/circuit/retained/RetainedStateRegistry$Entry; + public abstract fun saveAll ()V + public abstract fun saveValue (Ljava/lang/String;)V +} + +public abstract interface class com/slack/circuit/retained/RetainedStateRegistry$Entry { + public abstract fun unregister ()V +} + +public final class com/slack/circuit/retained/RetainedStateRegistryKt { + public static final fun RetainedStateRegistry (Ljava/util/Map;)Lcom/slack/circuit/retained/RetainedStateRegistry; + public static synthetic fun RetainedStateRegistry$default (Ljava/util/Map;ILjava/lang/Object;)Lcom/slack/circuit/retained/RetainedStateRegistry; + public static final fun getLocalRetainedStateRegistry ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public abstract interface class com/slack/circuit/retained/RetainedValueHolder { + public abstract fun getValue ()Ljava/lang/Object; +} + +public abstract interface class com/slack/circuit/retained/RetainedValueProvider : kotlin/jvm/functions/Function0 { + public abstract fun invoke ()Ljava/lang/Object; +} + diff --git a/circuit-retained/api/circuit-retained.klib.api b/circuit-retained/api/circuit-retained.klib.api new file mode 100644 index 000000000..d9bb2e987 --- /dev/null +++ b/circuit-retained/api/circuit-retained.klib.api @@ -0,0 +1,90 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosX64] +// Alias: native => [iosArm64, iosSimulatorArm64, iosX64, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosX64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +open annotation class com.slack.circuit.retained/DelicateCircuitRetainedApi : kotlin/Annotation { // com.slack.circuit.retained/DelicateCircuitRetainedApi|null[0] + constructor () // com.slack.circuit.retained/DelicateCircuitRetainedApi.|(){}[0] +} + +abstract fun interface com.slack.circuit.retained/CanRetainChecker { // com.slack.circuit.retained/CanRetainChecker|null[0] + abstract fun canRetain(com.slack.circuit.retained/RetainedStateRegistry): kotlin/Boolean // com.slack.circuit.retained/CanRetainChecker.canRetain|canRetain(com.slack.circuit.retained.RetainedStateRegistry){}[0] + + final object Companion { // com.slack.circuit.retained/CanRetainChecker.Companion|null[0] + final val Always // com.slack.circuit.retained/CanRetainChecker.Companion.Always|{}Always[0] + final fun (): com.slack.circuit.retained/CanRetainChecker // com.slack.circuit.retained/CanRetainChecker.Companion.Always.|(){}[0] + } +} + +abstract interface <#A: kotlin/Any?> com.slack.circuit.retained/RetainedValueHolder { // com.slack.circuit.retained/RetainedValueHolder|null[0] + abstract val value // com.slack.circuit.retained/RetainedValueHolder.value|{}value[0] + abstract fun (): #A // com.slack.circuit.retained/RetainedValueHolder.value.|(){}[0] +} + +abstract interface com.slack.circuit.retained/RetainedStateRegistry { // com.slack.circuit.retained/RetainedStateRegistry|null[0] + abstract fun consumeValue(kotlin/String): kotlin/Any? // com.slack.circuit.retained/RetainedStateRegistry.consumeValue|consumeValue(kotlin.String){}[0] + abstract fun forgetUnclaimedValues() // com.slack.circuit.retained/RetainedStateRegistry.forgetUnclaimedValues|forgetUnclaimedValues(){}[0] + abstract fun registerValue(kotlin/String, com.slack.circuit.retained/RetainedValueProvider): com.slack.circuit.retained/RetainedStateRegistry.Entry // com.slack.circuit.retained/RetainedStateRegistry.registerValue|registerValue(kotlin.String;com.slack.circuit.retained.RetainedValueProvider){}[0] + abstract fun saveAll() // com.slack.circuit.retained/RetainedStateRegistry.saveAll|saveAll(){}[0] + abstract fun saveValue(kotlin/String) // com.slack.circuit.retained/RetainedStateRegistry.saveValue|saveValue(kotlin.String){}[0] + + abstract interface Entry { // com.slack.circuit.retained/RetainedStateRegistry.Entry|null[0] + abstract fun unregister() // com.slack.circuit.retained/RetainedStateRegistry.Entry.unregister|unregister(){}[0] + } +} + +final object com.slack.circuit.retained/Continuity { // com.slack.circuit.retained/Continuity|null[0] + final const val KEY // com.slack.circuit.retained/Continuity.KEY|{}KEY[0] + final fun (): kotlin/String // com.slack.circuit.retained/Continuity.KEY.|(){}[0] +} + +final object com.slack.circuit.retained/NoOpRetainedStateRegistry : com.slack.circuit.retained/RetainedStateRegistry { // com.slack.circuit.retained/NoOpRetainedStateRegistry|null[0] + final fun consumeValue(kotlin/String): kotlin/Any? // com.slack.circuit.retained/NoOpRetainedStateRegistry.consumeValue|consumeValue(kotlin.String){}[0] + final fun forgetUnclaimedValues() // com.slack.circuit.retained/NoOpRetainedStateRegistry.forgetUnclaimedValues|forgetUnclaimedValues(){}[0] + final fun registerValue(kotlin/String, com.slack.circuit.retained/RetainedValueProvider): com.slack.circuit.retained/RetainedStateRegistry.Entry // com.slack.circuit.retained/NoOpRetainedStateRegistry.registerValue|registerValue(kotlin.String;com.slack.circuit.retained.RetainedValueProvider){}[0] + final fun saveAll() // com.slack.circuit.retained/NoOpRetainedStateRegistry.saveAll|saveAll(){}[0] + final fun saveValue(kotlin/String) // com.slack.circuit.retained/NoOpRetainedStateRegistry.saveValue|saveValue(kotlin.String){}[0] +} + +final val com.slack.circuit.retained/LocalCanRetainChecker // com.slack.circuit.retained/LocalCanRetainChecker|{}LocalCanRetainChecker[0] + final fun (): androidx.compose.runtime/ProvidableCompositionLocal // com.slack.circuit.retained/LocalCanRetainChecker.|(){}[0] +final val com.slack.circuit.retained/LocalRetainedStateRegistry // com.slack.circuit.retained/LocalRetainedStateRegistry|{}LocalRetainedStateRegistry[0] + final fun (): androidx.compose.runtime/ProvidableCompositionLocal // com.slack.circuit.retained/LocalRetainedStateRegistry.|(){}[0] +final val com.slack.circuit.retained/com_slack_circuit_retained_Continuity$stableprop // com.slack.circuit.retained/com_slack_circuit_retained_Continuity$stableprop|#static{}com_slack_circuit_retained_Continuity$stableprop[0] +final val com.slack.circuit.retained/com_slack_circuit_retained_NoOpRetainedStateRegistry$stableprop // com.slack.circuit.retained/com_slack_circuit_retained_NoOpRetainedStateRegistry$stableprop|#static{}com_slack_circuit_retained_NoOpRetainedStateRegistry$stableprop[0] +final val com.slack.circuit.retained/com_slack_circuit_retained_RetainableSaveableHolder_Value$stableprop // com.slack.circuit.retained/com_slack_circuit_retained_RetainableSaveableHolder_Value$stableprop|#static{}com_slack_circuit_retained_RetainableSaveableHolder_Value$stableprop[0] +final val com.slack.circuit.retained/com_slack_circuit_retained_RetainedStateRegistryImpl$stableprop // com.slack.circuit.retained/com_slack_circuit_retained_RetainedStateRegistryImpl$stableprop|#static{}com_slack_circuit_retained_RetainedStateRegistryImpl$stableprop[0] + +final fun <#A: #B, #B: kotlin/Any?> (kotlinx.coroutines.flow/Flow<#A>).com.slack.circuit.retained/collectAsRetainedState(#B, kotlin.coroutines/CoroutineContext?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): androidx.compose.runtime/State<#B> // com.slack.circuit.retained/collectAsRetainedState|collectAsRetainedState@kotlinx.coroutines.flow.Flow<0:0>(0:1;kotlin.coroutines.CoroutineContext?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§<0:1>;1§}[0] +final fun <#A: kotlin/Any> com.slack.circuit.retained/rememberRetained(kotlin/Array..., androidx.compose.runtime.saveable/Saver<#A, out kotlin/Any>, kotlin/String?, kotlin/Function0<#A>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.slack.circuit.retained/rememberRetained|rememberRetained(kotlin.Array...;androidx.compose.runtime.saveable.Saver<0:0,out|kotlin.Any>;kotlin.String?;kotlin.Function0<0:0>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any> com.slack.circuit.retained/rememberRetained(kotlin/Array..., kotlin/String?, kotlin/Function0<#A>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.slack.circuit.retained/rememberRetained|rememberRetained(kotlin.Array...;kotlin.String?;kotlin.Function0<0:0>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any> com.slack.circuit.retained/rememberRetainedSaveable(kotlin/Array..., androidx.compose.runtime.saveable/Saver<#A, out kotlin/Any>?, kotlin/String?, kotlin/Function0<#A>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.slack.circuit.retained/rememberRetainedSaveable|rememberRetainedSaveable(kotlin.Array...;androidx.compose.runtime.saveable.Saver<0:0,out|kotlin.Any>?;kotlin.String?;kotlin.Function0<0:0>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> (kotlinx.coroutines.flow/StateFlow<#A>).com.slack.circuit.retained/collectAsRetainedState(kotlin.coroutines/CoroutineContext?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): androidx.compose.runtime/State<#A> // com.slack.circuit.retained/collectAsRetainedState|collectAsRetainedState@kotlinx.coroutines.flow.StateFlow<0:0>(kotlin.coroutines.CoroutineContext?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.retained/produceRetainedState(#A, kotlin.coroutines/SuspendFunction1, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int): androidx.compose.runtime/State<#A> // com.slack.circuit.retained/produceRetainedState|produceRetainedState(0:0;kotlin.coroutines.SuspendFunction1,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.retained/produceRetainedState(#A, kotlin/Any?, kotlin.coroutines/SuspendFunction1, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int): androidx.compose.runtime/State<#A> // com.slack.circuit.retained/produceRetainedState|produceRetainedState(0:0;kotlin.Any?;kotlin.coroutines.SuspendFunction1,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.retained/produceRetainedState(#A, kotlin/Any?, kotlin/Any?, kotlin.coroutines/SuspendFunction1, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int): androidx.compose.runtime/State<#A> // com.slack.circuit.retained/produceRetainedState|produceRetainedState(0:0;kotlin.Any?;kotlin.Any?;kotlin.coroutines.SuspendFunction1,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.retained/produceRetainedState(#A, kotlin/Any?, kotlin/Any?, kotlin/Any?, kotlin.coroutines/SuspendFunction1, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int): androidx.compose.runtime/State<#A> // com.slack.circuit.retained/produceRetainedState|produceRetainedState(0:0;kotlin.Any?;kotlin.Any?;kotlin.Any?;kotlin.coroutines.SuspendFunction1,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.retained/produceRetainedState(#A, kotlin/Array..., kotlin.coroutines/SuspendFunction1, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int): androidx.compose.runtime/State<#A> // com.slack.circuit.retained/produceRetainedState|produceRetainedState(0:0;kotlin.Array...;kotlin.coroutines.SuspendFunction1,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.retained/rememberRetained(kotlin/Array..., androidx.compose.runtime.saveable/Saver<#A, out kotlin/Any>, kotlin/String?, kotlin/Function0>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): androidx.compose.runtime/MutableState<#A> // com.slack.circuit.retained/rememberRetained|rememberRetained(kotlin.Array...;androidx.compose.runtime.saveable.Saver<0:0,out|kotlin.Any>;kotlin.String?;kotlin.Function0>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun <#A: kotlin/Any?> com.slack.circuit.retained/rememberRetainedSaveable(kotlin/Array..., androidx.compose.runtime.saveable/Saver<#A, out kotlin/Any>, kotlin/String?, kotlin/Function0>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): androidx.compose.runtime/MutableState<#A> // com.slack.circuit.retained/rememberRetainedSaveable|rememberRetainedSaveable(kotlin.Array...;androidx.compose.runtime.saveable.Saver<0:0,out|kotlin.Any>;kotlin.String?;kotlin.Function0>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§}[0] +final fun com.slack.circuit.retained/RetainedStateRegistry(kotlin.collections/Map> = ...): com.slack.circuit.retained/RetainedStateRegistry // com.slack.circuit.retained/RetainedStateRegistry|RetainedStateRegistry(kotlin.collections.Map>){}[0] +final fun com.slack.circuit.retained/com_slack_circuit_retained_Continuity$stableprop_getter(): kotlin/Int // com.slack.circuit.retained/com_slack_circuit_retained_Continuity$stableprop_getter|com_slack_circuit_retained_Continuity$stableprop_getter(){}[0] +final fun com.slack.circuit.retained/com_slack_circuit_retained_NoOpRetainedStateRegistry$stableprop_getter(): kotlin/Int // com.slack.circuit.retained/com_slack_circuit_retained_NoOpRetainedStateRegistry$stableprop_getter|com_slack_circuit_retained_NoOpRetainedStateRegistry$stableprop_getter(){}[0] +final fun com.slack.circuit.retained/com_slack_circuit_retained_RetainableSaveableHolder_Value$stableprop_getter(): kotlin/Int // com.slack.circuit.retained/com_slack_circuit_retained_RetainableSaveableHolder_Value$stableprop_getter|com_slack_circuit_retained_RetainableSaveableHolder_Value$stableprop_getter(){}[0] +final fun com.slack.circuit.retained/com_slack_circuit_retained_RetainedStateRegistryImpl$stableprop_getter(): kotlin/Int // com.slack.circuit.retained/com_slack_circuit_retained_RetainedStateRegistryImpl$stableprop_getter|com_slack_circuit_retained_RetainedStateRegistryImpl$stableprop_getter(){}[0] +final fun com.slack.circuit.retained/continuityRetainedStateRegistry(kotlin/String?, com.slack.circuit.retained/CanRetainChecker?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): com.slack.circuit.retained/RetainedStateRegistry // com.slack.circuit.retained/continuityRetainedStateRegistry|continuityRetainedStateRegistry(kotlin.String?;com.slack.circuit.retained.CanRetainChecker?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0] +final fun com.slack.circuit.retained/rememberCanRetainChecker(androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.retained/CanRetainChecker // com.slack.circuit.retained/rememberCanRetainChecker|rememberCanRetainChecker(androidx.compose.runtime.Composer?;kotlin.Int){}[0] + +// Targets: [native] +abstract fun interface com.slack.circuit.retained/RetainedValueProvider : kotlin/Function0 { // com.slack.circuit.retained/RetainedValueProvider|null[0] + abstract fun invoke(): kotlin/Any? // com.slack.circuit.retained/RetainedValueProvider.invoke|invoke(){}[0] +} + +// Targets: [js, wasmJs] +abstract fun interface com.slack.circuit.retained/RetainedValueProvider { // com.slack.circuit.retained/RetainedValueProvider|null[0] + abstract fun invoke(): kotlin/Any? // com.slack.circuit.retained/RetainedValueProvider.invoke|invoke(){}[0] +} diff --git a/circuit-retained/api/jvm/circuit-retained.api b/circuit-retained/api/jvm/circuit-retained.api new file mode 100644 index 000000000..384214896 --- /dev/null +++ b/circuit-retained/api/jvm/circuit-retained.api @@ -0,0 +1,87 @@ +public abstract interface class com/slack/circuit/retained/CanRetainChecker { + public static final field Companion Lcom/slack/circuit/retained/CanRetainChecker$Companion; + public abstract fun canRetain (Lcom/slack/circuit/retained/RetainedStateRegistry;)Z +} + +public final class com/slack/circuit/retained/CanRetainChecker$Companion { + public final fun getAlways ()Lcom/slack/circuit/retained/CanRetainChecker; +} + +public final class com/slack/circuit/retained/CanRetainCheckerKt { + public static final fun getLocalCanRetainChecker ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public final class com/slack/circuit/retained/CanRetainChecker_jvmKt { + public static final fun rememberCanRetainChecker (Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/retained/CanRetainChecker; +} + +public final class com/slack/circuit/retained/CollectRetainedKt { + public static final fun collectAsRetainedState (Lkotlinx/coroutines/flow/Flow;Ljava/lang/Object;Lkotlin/coroutines/CoroutineContext;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; + public static final fun collectAsRetainedState (Lkotlinx/coroutines/flow/StateFlow;Lkotlin/coroutines/CoroutineContext;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; +} + +public final class com/slack/circuit/retained/Continuity { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/retained/Continuity; + public static final field KEY Ljava/lang/String; +} + +public final class com/slack/circuit/retained/Continuity_jvmKt { + public static final fun continuityRetainedStateRegistry (Ljava/lang/String;Lcom/slack/circuit/retained/CanRetainChecker;Landroidx/compose/runtime/Composer;II)Lcom/slack/circuit/retained/RetainedStateRegistry; +} + +public abstract interface annotation class com/slack/circuit/retained/DelicateCircuitRetainedApi : java/lang/annotation/Annotation { +} + +public final class com/slack/circuit/retained/NoOpRetainedStateRegistry : com/slack/circuit/retained/RetainedStateRegistry { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/retained/NoOpRetainedStateRegistry; + public fun consumeValue (Ljava/lang/String;)Ljava/lang/Object; + public fun forgetUnclaimedValues ()V + public fun registerValue (Ljava/lang/String;Lcom/slack/circuit/retained/RetainedValueProvider;)Lcom/slack/circuit/retained/RetainedStateRegistry$Entry; + public fun saveAll ()V + public fun saveValue (Ljava/lang/String;)V +} + +public final class com/slack/circuit/retained/ProduceRetainedStateKt { + public static final fun produceRetainedState (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; + public static final fun produceRetainedState (Ljava/lang/Object;[Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State; +} + +public final class com/slack/circuit/retained/RememberRetainedKt { + public static final fun rememberRetained ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/MutableState; + public static final fun rememberRetained ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; + public static final fun rememberRetained ([Ljava/lang/Object;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; + public static final fun rememberRetainedSaveable ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/MutableState; + public static final fun rememberRetainedSaveable ([Ljava/lang/Object;Landroidx/compose/runtime/saveable/Saver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)Ljava/lang/Object; +} + +public abstract interface class com/slack/circuit/retained/RetainedStateRegistry { + public abstract fun consumeValue (Ljava/lang/String;)Ljava/lang/Object; + public abstract fun forgetUnclaimedValues ()V + public abstract fun registerValue (Ljava/lang/String;Lcom/slack/circuit/retained/RetainedValueProvider;)Lcom/slack/circuit/retained/RetainedStateRegistry$Entry; + public abstract fun saveAll ()V + public abstract fun saveValue (Ljava/lang/String;)V +} + +public abstract interface class com/slack/circuit/retained/RetainedStateRegistry$Entry { + public abstract fun unregister ()V +} + +public final class com/slack/circuit/retained/RetainedStateRegistryKt { + public static final fun RetainedStateRegistry (Ljava/util/Map;)Lcom/slack/circuit/retained/RetainedStateRegistry; + public static synthetic fun RetainedStateRegistry$default (Ljava/util/Map;ILjava/lang/Object;)Lcom/slack/circuit/retained/RetainedStateRegistry; + public static final fun getLocalRetainedStateRegistry ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public abstract interface class com/slack/circuit/retained/RetainedValueHolder { + public abstract fun getValue ()Ljava/lang/Object; +} + +public abstract interface class com/slack/circuit/retained/RetainedValueProvider : kotlin/jvm/functions/Function0 { + public abstract fun invoke ()Ljava/lang/Object; +} + diff --git a/circuit-runtime-presenter/api/android/circuit-runtime-presenter.api b/circuit-runtime-presenter/api/android/circuit-runtime-presenter.api new file mode 100644 index 000000000..23d0c4d2a --- /dev/null +++ b/circuit-runtime-presenter/api/android/circuit-runtime-presenter.api @@ -0,0 +1,12 @@ +public abstract interface class com/slack/circuit/runtime/presenter/Presenter { + public abstract fun present (Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/CircuitUiState; +} + +public abstract interface class com/slack/circuit/runtime/presenter/Presenter$Factory { + public abstract fun create (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/presenter/Presenter; +} + +public final class com/slack/circuit/runtime/presenter/PresenterKt { + public static final fun presenterOf (Lkotlin/jvm/functions/Function2;)Lcom/slack/circuit/runtime/presenter/Presenter; +} + diff --git a/circuit-runtime-presenter/api/circuit-runtime-presenter.klib.api b/circuit-runtime-presenter/api/circuit-runtime-presenter.klib.api new file mode 100644 index 000000000..4a1cc1a6e --- /dev/null +++ b/circuit-runtime-presenter/api/circuit-runtime-presenter.klib.api @@ -0,0 +1,17 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosX64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +abstract interface <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.runtime.presenter/Presenter { // com.slack.circuit.runtime.presenter/Presenter|null[0] + abstract fun present(androidx.compose.runtime/Composer?, kotlin/Int): #A // com.slack.circuit.runtime.presenter/Presenter.present|present(androidx.compose.runtime.Composer?;kotlin.Int){}[0] + + abstract fun interface Factory { // com.slack.circuit.runtime.presenter/Presenter.Factory|null[0] + abstract fun create(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/Navigator, com.slack.circuit.runtime/CircuitContext): com.slack.circuit.runtime.presenter/Presenter<*>? // com.slack.circuit.runtime.presenter/Presenter.Factory.create|create(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.Navigator;com.slack.circuit.runtime.CircuitContext){}[0] + } +} + +final inline fun <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.runtime.presenter/presenterOf(crossinline kotlin/Function2): com.slack.circuit.runtime.presenter/Presenter<#A> // com.slack.circuit.runtime.presenter/presenterOf|presenterOf(kotlin.Function2){0§}[0] diff --git a/circuit-runtime-presenter/api/jvm/circuit-runtime-presenter.api b/circuit-runtime-presenter/api/jvm/circuit-runtime-presenter.api new file mode 100644 index 000000000..23d0c4d2a --- /dev/null +++ b/circuit-runtime-presenter/api/jvm/circuit-runtime-presenter.api @@ -0,0 +1,12 @@ +public abstract interface class com/slack/circuit/runtime/presenter/Presenter { + public abstract fun present (Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/CircuitUiState; +} + +public abstract interface class com/slack/circuit/runtime/presenter/Presenter$Factory { + public abstract fun create (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/presenter/Presenter; +} + +public final class com/slack/circuit/runtime/presenter/PresenterKt { + public static final fun presenterOf (Lkotlin/jvm/functions/Function2;)Lcom/slack/circuit/runtime/presenter/Presenter; +} + diff --git a/circuit-runtime-presenter/build.gradle.kts b/circuit-runtime-presenter/build.gradle.kts index 848bee136..72b09241f 100644 --- a/circuit-runtime-presenter/build.gradle.kts +++ b/circuit-runtime-presenter/build.gradle.kts @@ -58,6 +58,7 @@ androidComponents { beforeVariants { variant -> variant.androidTest.enable = fal baselineProfile { mergeIntoMain = true saveInSrc = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) filter { include("com.slack.circuit.runtime.presenter.**") } } diff --git a/circuit-runtime-screen/api/android/circuit-runtime-screen.api b/circuit-runtime-screen/api/android/circuit-runtime-screen.api new file mode 100644 index 000000000..241d025b6 --- /dev/null +++ b/circuit-runtime-screen/api/android/circuit-runtime-screen.api @@ -0,0 +1,9 @@ +public abstract interface class com/slack/circuit/runtime/screen/PopResult : android/os/Parcelable { +} + +public abstract interface class com/slack/circuit/runtime/screen/Screen : android/os/Parcelable { +} + +public abstract interface class com/slack/circuit/runtime/screen/StaticScreen : com/slack/circuit/runtime/screen/Screen { +} + diff --git a/circuit-runtime-screen/api/circuit-runtime-screen.klib.api b/circuit-runtime-screen/api/circuit-runtime-screen.klib.api new file mode 100644 index 000000000..3734f4772 --- /dev/null +++ b/circuit-runtime-screen/api/circuit-runtime-screen.klib.api @@ -0,0 +1,13 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosX64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +abstract interface com.slack.circuit.runtime.screen/PopResult // com.slack.circuit.runtime.screen/PopResult|null[0] + +abstract interface com.slack.circuit.runtime.screen/Screen // com.slack.circuit.runtime.screen/Screen|null[0] + +abstract interface com.slack.circuit.runtime.screen/StaticScreen : com.slack.circuit.runtime.screen/Screen // com.slack.circuit.runtime.screen/StaticScreen|null[0] diff --git a/circuit-runtime-screen/api/jvm/circuit-runtime-screen.api b/circuit-runtime-screen/api/jvm/circuit-runtime-screen.api new file mode 100644 index 000000000..a85d3ac88 --- /dev/null +++ b/circuit-runtime-screen/api/jvm/circuit-runtime-screen.api @@ -0,0 +1,9 @@ +public abstract interface class com/slack/circuit/runtime/screen/PopResult { +} + +public abstract interface class com/slack/circuit/runtime/screen/Screen { +} + +public abstract interface class com/slack/circuit/runtime/screen/StaticScreen : com/slack/circuit/runtime/screen/Screen { +} + diff --git a/circuit-runtime-screen/build.gradle.kts b/circuit-runtime-screen/build.gradle.kts index 6a780aa82..3305d7699 100644 --- a/circuit-runtime-screen/build.gradle.kts +++ b/circuit-runtime-screen/build.gradle.kts @@ -66,6 +66,7 @@ androidComponents { beforeVariants { variant -> variant.androidTest.enable = fal baselineProfile { mergeIntoMain = true saveInSrc = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) filter { diff --git a/circuit-runtime-ui/api/android/circuit-runtime-ui.api b/circuit-runtime-ui/api/android/circuit-runtime-ui.api new file mode 100644 index 000000000..46a948ded --- /dev/null +++ b/circuit-runtime-ui/api/android/circuit-runtime-ui.api @@ -0,0 +1,12 @@ +public abstract interface class com/slack/circuit/runtime/ui/Ui { + public abstract fun Content (Lcom/slack/circuit/runtime/CircuitUiState;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V +} + +public abstract interface class com/slack/circuit/runtime/ui/Ui$Factory { + public abstract fun create (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/ui/Ui; +} + +public final class com/slack/circuit/runtime/ui/UiKt { + public static final fun ui (Lkotlin/jvm/functions/Function4;)Lcom/slack/circuit/runtime/ui/Ui; +} + diff --git a/circuit-runtime-ui/api/circuit-runtime-ui.klib.api b/circuit-runtime-ui/api/circuit-runtime-ui.klib.api new file mode 100644 index 000000000..29b6b4781 --- /dev/null +++ b/circuit-runtime-ui/api/circuit-runtime-ui.klib.api @@ -0,0 +1,17 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, wasmJs] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +abstract interface <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.runtime.ui/Ui { // com.slack.circuit.runtime.ui/Ui|null[0] + abstract fun Content(#A, androidx.compose.ui/Modifier, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuit.runtime.ui/Ui.Content|Content(1:0;androidx.compose.ui.Modifier;androidx.compose.runtime.Composer?;kotlin.Int){}[0] + + abstract fun interface Factory { // com.slack.circuit.runtime.ui/Ui.Factory|null[0] + abstract fun create(com.slack.circuit.runtime.screen/Screen, com.slack.circuit.runtime/CircuitContext): com.slack.circuit.runtime.ui/Ui<*>? // com.slack.circuit.runtime.ui/Ui.Factory.create|create(com.slack.circuit.runtime.screen.Screen;com.slack.circuit.runtime.CircuitContext){}[0] + } +} + +final inline fun <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.runtime.ui/ui(crossinline kotlin/Function4<#A, androidx.compose.ui/Modifier, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>): com.slack.circuit.runtime.ui/Ui<#A> // com.slack.circuit.runtime.ui/ui|ui(kotlin.Function4<0:0,androidx.compose.ui.Modifier,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){0§}[0] diff --git a/circuit-runtime-ui/api/jvm/circuit-runtime-ui.api b/circuit-runtime-ui/api/jvm/circuit-runtime-ui.api new file mode 100644 index 000000000..46a948ded --- /dev/null +++ b/circuit-runtime-ui/api/jvm/circuit-runtime-ui.api @@ -0,0 +1,12 @@ +public abstract interface class com/slack/circuit/runtime/ui/Ui { + public abstract fun Content (Lcom/slack/circuit/runtime/CircuitUiState;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V +} + +public abstract interface class com/slack/circuit/runtime/ui/Ui$Factory { + public abstract fun create (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/CircuitContext;)Lcom/slack/circuit/runtime/ui/Ui; +} + +public final class com/slack/circuit/runtime/ui/UiKt { + public static final fun ui (Lkotlin/jvm/functions/Function4;)Lcom/slack/circuit/runtime/ui/Ui; +} + diff --git a/circuit-runtime-ui/build.gradle.kts b/circuit-runtime-ui/build.gradle.kts index 370ccc876..1f2a26fbd 100644 --- a/circuit-runtime-ui/build.gradle.kts +++ b/circuit-runtime-ui/build.gradle.kts @@ -49,6 +49,7 @@ androidComponents { beforeVariants { variant -> variant.androidTest.enable = fal baselineProfile { mergeIntoMain = true saveInSrc = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) filter { include("com.slack.circuit.runtime.ui.**") } } diff --git a/circuit-runtime/api/android/circuit-runtime.api b/circuit-runtime/api/android/circuit-runtime.api new file mode 100644 index 000000000..bbaae6894 --- /dev/null +++ b/circuit-runtime/api/android/circuit-runtime.api @@ -0,0 +1,57 @@ +public final class com/slack/circuit/runtime/CircuitContext { + public static final field $stable I + public static final field Companion Lcom/slack/circuit/runtime/CircuitContext$Companion; + public final fun clearTags ()V + public final fun getParent ()Lcom/slack/circuit/runtime/CircuitContext; + public final fun putTag (Lkotlin/reflect/KClass;Ljava/lang/Object;)V + public final fun tag (Lkotlin/reflect/KClass;)Ljava/lang/Object; +} + +public final class com/slack/circuit/runtime/CircuitContext$Companion { + public final fun getEMPTY ()Lcom/slack/circuit/runtime/CircuitContext; +} + +public abstract interface class com/slack/circuit/runtime/CircuitUiEvent { +} + +public abstract interface class com/slack/circuit/runtime/CircuitUiState { +} + +public abstract interface annotation class com/slack/circuit/runtime/ExperimentalCircuitApi : java/lang/annotation/Annotation { +} + +public abstract interface class com/slack/circuit/runtime/GoToNavigator { + public abstract fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z +} + +public abstract interface annotation class com/slack/circuit/runtime/InternalCircuitApi : java/lang/annotation/Annotation { +} + +public abstract interface class com/slack/circuit/runtime/Navigator : com/slack/circuit/runtime/GoToNavigator { + public abstract fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z + public abstract fun peek ()Lcom/slack/circuit/runtime/screen/Screen; + public abstract fun peekBackStack ()Lkotlinx/collections/immutable/ImmutableList; + public abstract fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/runtime/screen/Screen; + public static synthetic fun pop$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/runtime/screen/Screen; + public abstract fun resetRoot (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lkotlinx/collections/immutable/ImmutableList; + public static synthetic fun resetRoot$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/Screen;ZZILjava/lang/Object;)Lkotlinx/collections/immutable/ImmutableList; +} + +public final class com/slack/circuit/runtime/Navigator$NoOp : com/slack/circuit/runtime/Navigator { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/runtime/Navigator$NoOp; + public fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z + public fun peek ()Lcom/slack/circuit/runtime/screen/Screen; + public fun peekBackStack ()Lkotlinx/collections/immutable/ImmutableList; + public fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/runtime/screen/Screen; + public fun resetRoot (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lkotlinx/collections/immutable/ImmutableList; +} + +public final class com/slack/circuit/runtime/NavigatorKt { + public static final fun popRoot (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/PopResult;)V + public static synthetic fun popRoot$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)V + public static final fun popUntil (Lcom/slack/circuit/runtime/Navigator;Lkotlin/jvm/functions/Function1;)V + public static final fun resetRoot (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ljava/util/List; + public static synthetic fun resetRoot$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/util/List; +} + diff --git a/circuit-runtime/api/circuit-runtime.klib.api b/circuit-runtime/api/circuit-runtime.klib.api new file mode 100644 index 000000000..ddee8641f --- /dev/null +++ b/circuit-runtime/api/circuit-runtime.klib.api @@ -0,0 +1,64 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, linuxArm64, linuxX64, macosArm64, macosX64, mingwX64, tvosArm64, tvosSimulatorArm64, tvosX64, wasmJs, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosX64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +open annotation class com.slack.circuit.runtime/ExperimentalCircuitApi : kotlin/Annotation { // com.slack.circuit.runtime/ExperimentalCircuitApi|null[0] + constructor () // com.slack.circuit.runtime/ExperimentalCircuitApi.|(){}[0] +} + +open annotation class com.slack.circuit.runtime/InternalCircuitApi : kotlin/Annotation { // com.slack.circuit.runtime/InternalCircuitApi|null[0] + constructor () // com.slack.circuit.runtime/InternalCircuitApi.|(){}[0] +} + +abstract interface com.slack.circuit.runtime/CircuitUiEvent // com.slack.circuit.runtime/CircuitUiEvent|null[0] + +abstract interface com.slack.circuit.runtime/CircuitUiState // com.slack.circuit.runtime/CircuitUiState|null[0] + +abstract interface com.slack.circuit.runtime/GoToNavigator { // com.slack.circuit.runtime/GoToNavigator|null[0] + abstract fun goTo(com.slack.circuit.runtime.screen/Screen): kotlin/Boolean // com.slack.circuit.runtime/GoToNavigator.goTo|goTo(com.slack.circuit.runtime.screen.Screen){}[0] +} + +abstract interface com.slack.circuit.runtime/Navigator : com.slack.circuit.runtime/GoToNavigator { // com.slack.circuit.runtime/Navigator|null[0] + abstract fun goTo(com.slack.circuit.runtime.screen/Screen): kotlin/Boolean // com.slack.circuit.runtime/Navigator.goTo|goTo(com.slack.circuit.runtime.screen.Screen){}[0] + abstract fun peek(): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.runtime/Navigator.peek|peek(){}[0] + abstract fun peekBackStack(): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.runtime/Navigator.peekBackStack|peekBackStack(){}[0] + abstract fun pop(com.slack.circuit.runtime.screen/PopResult? = ...): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.runtime/Navigator.pop|pop(com.slack.circuit.runtime.screen.PopResult?){}[0] + abstract fun resetRoot(com.slack.circuit.runtime.screen/Screen, kotlin/Boolean = ..., kotlin/Boolean = ...): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.runtime/Navigator.resetRoot|resetRoot(com.slack.circuit.runtime.screen.Screen;kotlin.Boolean;kotlin.Boolean){}[0] + + final object NoOp : com.slack.circuit.runtime/Navigator { // com.slack.circuit.runtime/Navigator.NoOp|null[0] + final fun goTo(com.slack.circuit.runtime.screen/Screen): kotlin/Boolean // com.slack.circuit.runtime/Navigator.NoOp.goTo|goTo(com.slack.circuit.runtime.screen.Screen){}[0] + final fun peek(): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.runtime/Navigator.NoOp.peek|peek(){}[0] + final fun peekBackStack(): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.runtime/Navigator.NoOp.peekBackStack|peekBackStack(){}[0] + final fun pop(com.slack.circuit.runtime.screen/PopResult?): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.runtime/Navigator.NoOp.pop|pop(com.slack.circuit.runtime.screen.PopResult?){}[0] + final fun resetRoot(com.slack.circuit.runtime.screen/Screen, kotlin/Boolean, kotlin/Boolean): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.runtime/Navigator.NoOp.resetRoot|resetRoot(com.slack.circuit.runtime.screen.Screen;kotlin.Boolean;kotlin.Boolean){}[0] + } +} + +final class com.slack.circuit.runtime/CircuitContext { // com.slack.circuit.runtime/CircuitContext|null[0] + final val parent // com.slack.circuit.runtime/CircuitContext.parent|{}parent[0] + final fun (): com.slack.circuit.runtime/CircuitContext? // com.slack.circuit.runtime/CircuitContext.parent.|(){}[0] + + final fun <#A1: kotlin/Any, #B1: #A1> putTag(kotlin.reflect/KClass<#A1>, #B1?) // com.slack.circuit.runtime/CircuitContext.putTag|putTag(kotlin.reflect.KClass<0:0>;0:1?){0§;1§<0:0>}[0] + final fun <#A1: kotlin/Any> tag(kotlin.reflect/KClass<#A1>): #A1? // com.slack.circuit.runtime/CircuitContext.tag|tag(kotlin.reflect.KClass<0:0>){0§}[0] + final fun clearTags() // com.slack.circuit.runtime/CircuitContext.clearTags|clearTags(){}[0] + final inline fun <#A1: reified kotlin/Any> putTag(#A1?) // com.slack.circuit.runtime/CircuitContext.putTag|putTag(0:0?){0§}[0] + final inline fun <#A1: reified kotlin/Any> tag(): #A1? // com.slack.circuit.runtime/CircuitContext.tag|tag(){0§}[0] + + final object Companion { // com.slack.circuit.runtime/CircuitContext.Companion|null[0] + final val EMPTY // com.slack.circuit.runtime/CircuitContext.Companion.EMPTY|{}EMPTY[0] + final fun (): com.slack.circuit.runtime/CircuitContext // com.slack.circuit.runtime/CircuitContext.Companion.EMPTY.|(){}[0] + } +} + +final val com.slack.circuit.runtime/com_slack_circuit_runtime_CircuitContext$stableprop // com.slack.circuit.runtime/com_slack_circuit_runtime_CircuitContext$stableprop|#static{}com_slack_circuit_runtime_CircuitContext$stableprop[0] +final val com.slack.circuit.runtime/com_slack_circuit_runtime_Navigator_NoOp$stableprop // com.slack.circuit.runtime/com_slack_circuit_runtime_Navigator_NoOp$stableprop|#static{}com_slack_circuit_runtime_Navigator_NoOp$stableprop[0] + +final fun (com.slack.circuit.runtime/Navigator).com.slack.circuit.runtime/popRoot(com.slack.circuit.runtime.screen/PopResult? = ...) // com.slack.circuit.runtime/popRoot|popRoot@com.slack.circuit.runtime.Navigator(com.slack.circuit.runtime.screen.PopResult?){}[0] +final fun (com.slack.circuit.runtime/Navigator).com.slack.circuit.runtime/popUntil(kotlin/Function1) // com.slack.circuit.runtime/popUntil|popUntil@com.slack.circuit.runtime.Navigator(kotlin.Function1){}[0] +final fun com.slack.circuit.runtime/com_slack_circuit_runtime_CircuitContext$stableprop_getter(): kotlin/Int // com.slack.circuit.runtime/com_slack_circuit_runtime_CircuitContext$stableprop_getter|com_slack_circuit_runtime_CircuitContext$stableprop_getter(){}[0] +final fun com.slack.circuit.runtime/com_slack_circuit_runtime_Navigator_NoOp$stableprop_getter(): kotlin/Int // com.slack.circuit.runtime/com_slack_circuit_runtime_Navigator_NoOp$stableprop_getter|com_slack_circuit_runtime_Navigator_NoOp$stableprop_getter(){}[0] +final inline fun (com.slack.circuit.runtime/Navigator).com.slack.circuit.runtime/resetRoot(com.slack.circuit.runtime.screen/Screen, kotlin/Function1 = ..., kotlin/Function1 = ...): kotlin.collections/List // com.slack.circuit.runtime/resetRoot|resetRoot@com.slack.circuit.runtime.Navigator(com.slack.circuit.runtime.screen.Screen;kotlin.Function1;kotlin.Function1){}[0] diff --git a/circuit-runtime/api/jvm/circuit-runtime.api b/circuit-runtime/api/jvm/circuit-runtime.api new file mode 100644 index 000000000..bbaae6894 --- /dev/null +++ b/circuit-runtime/api/jvm/circuit-runtime.api @@ -0,0 +1,57 @@ +public final class com/slack/circuit/runtime/CircuitContext { + public static final field $stable I + public static final field Companion Lcom/slack/circuit/runtime/CircuitContext$Companion; + public final fun clearTags ()V + public final fun getParent ()Lcom/slack/circuit/runtime/CircuitContext; + public final fun putTag (Lkotlin/reflect/KClass;Ljava/lang/Object;)V + public final fun tag (Lkotlin/reflect/KClass;)Ljava/lang/Object; +} + +public final class com/slack/circuit/runtime/CircuitContext$Companion { + public final fun getEMPTY ()Lcom/slack/circuit/runtime/CircuitContext; +} + +public abstract interface class com/slack/circuit/runtime/CircuitUiEvent { +} + +public abstract interface class com/slack/circuit/runtime/CircuitUiState { +} + +public abstract interface annotation class com/slack/circuit/runtime/ExperimentalCircuitApi : java/lang/annotation/Annotation { +} + +public abstract interface class com/slack/circuit/runtime/GoToNavigator { + public abstract fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z +} + +public abstract interface annotation class com/slack/circuit/runtime/InternalCircuitApi : java/lang/annotation/Annotation { +} + +public abstract interface class com/slack/circuit/runtime/Navigator : com/slack/circuit/runtime/GoToNavigator { + public abstract fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z + public abstract fun peek ()Lcom/slack/circuit/runtime/screen/Screen; + public abstract fun peekBackStack ()Lkotlinx/collections/immutable/ImmutableList; + public abstract fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/runtime/screen/Screen; + public static synthetic fun pop$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/runtime/screen/Screen; + public abstract fun resetRoot (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lkotlinx/collections/immutable/ImmutableList; + public static synthetic fun resetRoot$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/Screen;ZZILjava/lang/Object;)Lkotlinx/collections/immutable/ImmutableList; +} + +public final class com/slack/circuit/runtime/Navigator$NoOp : com/slack/circuit/runtime/Navigator { + public static final field $stable I + public static final field INSTANCE Lcom/slack/circuit/runtime/Navigator$NoOp; + public fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z + public fun peek ()Lcom/slack/circuit/runtime/screen/Screen; + public fun peekBackStack ()Lkotlinx/collections/immutable/ImmutableList; + public fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/runtime/screen/Screen; + public fun resetRoot (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lkotlinx/collections/immutable/ImmutableList; +} + +public final class com/slack/circuit/runtime/NavigatorKt { + public static final fun popRoot (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/PopResult;)V + public static synthetic fun popRoot$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)V + public static final fun popUntil (Lcom/slack/circuit/runtime/Navigator;Lkotlin/jvm/functions/Function1;)V + public static final fun resetRoot (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ljava/util/List; + public static synthetic fun resetRoot$default (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/util/List; +} + diff --git a/circuit-runtime/build.gradle.kts b/circuit-runtime/build.gradle.kts index 08cc8f4a0..e92cc472e 100644 --- a/circuit-runtime/build.gradle.kts +++ b/circuit-runtime/build.gradle.kts @@ -61,6 +61,7 @@ androidComponents { beforeVariants { variant -> variant.androidTest.enable = fal baselineProfile { mergeIntoMain = true saveInSrc = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) filter { diff --git a/circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/ExperimentalCircuitApi.kt b/circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/ExperimentalCircuitApi.kt new file mode 100644 index 000000000..1ac6f9ec2 --- /dev/null +++ b/circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/ExperimentalCircuitApi.kt @@ -0,0 +1,20 @@ +// Copyright (C) 2024 Slack Technologies, LLC +// SPDX-License-Identifier: Apache-2.0 +package com.slack.circuit.runtime + +@Retention(AnnotationRetention.BINARY) +@Target( + AnnotationTarget.CLASS, + AnnotationTarget.FUNCTION, + AnnotationTarget.TYPEALIAS, + AnnotationTarget.PROPERTY, + AnnotationTarget.CONSTRUCTOR, +) +@RequiresOptIn( + level = RequiresOptIn.Level.ERROR, + message = + "This is an experimental Circuit API that may be changed or removed at any time. " + + "This usually means it's under active development or incubation, please report " + + "any feedback on the issue tracker.", +) +public annotation class ExperimentalCircuitApi diff --git a/circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/InternalCircuitApi.kt b/circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/InternalCircuitApi.kt index e70caf2c0..ab87a0e97 100644 --- a/circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/InternalCircuitApi.kt +++ b/circuit-runtime/src/commonMain/kotlin/com/slack/circuit/runtime/InternalCircuitApi.kt @@ -3,9 +3,9 @@ package com.slack.circuit.runtime /** - * Marks declarations that are **internal** in Circuit API, which means that should not be used - * outside of `com.slack.circuit`, because their signatures and semantics will change between future - * releases without any warnings and without providing any migration aids. + * Marks declarations that are **internal** in Circuit's API, meaning that they should not be used + * outside of Circuit's first party API. This is their signatures and semantics will change between + * future releases without any warnings and without providing any migration aids. */ @Retention(AnnotationRetention.BINARY) @Target( diff --git a/circuit-test/api/android/circuit-test.api b/circuit-test/api/android/circuit-test.api new file mode 100644 index 000000000..1084efd1a --- /dev/null +++ b/circuit-test/api/android/circuit-test.api @@ -0,0 +1,111 @@ +public abstract interface class com/slack/circuit/test/BaseTestEventSinkType : kotlin/jvm/functions/Function1 { + public abstract fun invoke (Ljava/lang/Object;)V +} + +public abstract interface class com/slack/circuit/test/CircuitReceiveTurbine : app/cash/turbine/ReceiveTurbine { + public abstract fun awaitUnchanged (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public abstract interface annotation class com/slack/circuit/test/ExperimentalForInheritanceCircuitTestApi : java/lang/annotation/Annotation { +} + +public final class com/slack/circuit/test/FakeNavigator : com/slack/circuit/runtime/Navigator { + public static final field $stable I + public fun (Lcom/slack/circuit/backstack/BackStack;)V + public fun (Lcom/slack/circuit/runtime/screen/Screen;[Lcom/slack/circuit/runtime/screen/Screen;)V + public final fun assertGoToIsEmpty ()V + public final fun assertIsEmpty ()V + public final fun assertPopIsEmpty ()V + public final fun assertResetRootIsEmpty ()V + public final fun awaitNextGoTo (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun awaitNextScreen (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun awaitPop (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun awaitResetRoot (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun expectNoEvents ()V + public final fun expectNoGoToEvents ()V + public final fun expectNoPopEvents ()V + public final fun expectNoResetRootEvents ()V + public fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z + public fun peek ()Lcom/slack/circuit/runtime/screen/Screen; + public fun peekBackStack ()Lkotlinx/collections/immutable/ImmutableList; + public fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/runtime/screen/Screen; + public fun resetRoot (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lkotlinx/collections/immutable/ImmutableList; + public final fun takeNextScreen ()Lcom/slack/circuit/runtime/screen/Screen; +} + +public final class com/slack/circuit/test/FakeNavigator$GoToEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Z)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Z + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Z)Lcom/slack/circuit/test/FakeNavigator$GoToEvent; + public static synthetic fun copy$default (Lcom/slack/circuit/test/FakeNavigator$GoToEvent;Lcom/slack/circuit/runtime/screen/Screen;ZILjava/lang/Object;)Lcom/slack/circuit/test/FakeNavigator$GoToEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getSuccess ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/test/FakeNavigator$PopEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Lcom/slack/circuit/runtime/screen/PopResult; + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/test/FakeNavigator$PopEvent; + public static synthetic fun copy$default (Lcom/slack/circuit/test/FakeNavigator$PopEvent;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/test/FakeNavigator$PopEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getPoppedScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getResult ()Lcom/slack/circuit/runtime/screen/PopResult; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/test/FakeNavigator$ResetRootEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZ)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Lkotlinx/collections/immutable/ImmutableList; + public final fun component3 ()Z + public final fun component4 ()Z + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZ)Lcom/slack/circuit/test/FakeNavigator$ResetRootEvent; + public static synthetic fun copy$default (Lcom/slack/circuit/test/FakeNavigator$ResetRootEvent;Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZILjava/lang/Object;)Lcom/slack/circuit/test/FakeNavigator$ResetRootEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getNewRoot ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getOldScreens ()Lkotlinx/collections/immutable/ImmutableList; + public final fun getRestoreState ()Z + public final fun getSaveState ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/test/PresenterTestExtensionsKt { + public static final fun presenterTestOf-i8z2VEo (Lkotlin/jvm/functions/Function2;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun presenterTestOf-i8z2VEo$default (Lkotlin/jvm/functions/Function2;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun test-i8z2VEo (Lcom/slack/circuit/runtime/presenter/Presenter;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun test-i8z2VEo$default (Lcom/slack/circuit/runtime/presenter/Presenter;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + +public final class com/slack/circuit/test/TestEventSink : com/slack/circuit/test/BaseTestEventSinkType { + public static final field $stable I + public static final field Companion Lcom/slack/circuit/test/TestEventSink$Companion; + public fun ()V + public final fun assertEvent (Lcom/slack/circuit/runtime/CircuitUiEvent;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEvent (Lkotlin/jvm/functions/Function1;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEventAt (ILcom/slack/circuit/runtime/CircuitUiEvent;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEventAt (ILkotlin/jvm/functions/Function1;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEventCount (I)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEvents (Lkotlin/jvm/functions/Function2;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEvents ([Lcom/slack/circuit/runtime/CircuitUiEvent;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertNoEvents ()Lcom/slack/circuit/test/TestEventSink; + public fun invoke (Lcom/slack/circuit/runtime/CircuitUiEvent;)V + public synthetic fun invoke (Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun invoke (Ljava/lang/Object;)V +} + +public final class com/slack/circuit/test/TestEventSink$Companion { + public final fun getDEFAULT_TIMEOUT-UwyO8pc ()J +} + diff --git a/circuit-test/api/circuit-test.klib.api b/circuit-test/api/circuit-test.klib.api new file mode 100644 index 000000000..c68f2d153 --- /dev/null +++ b/circuit-test/api/circuit-test.klib.api @@ -0,0 +1,140 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, wasmJs] +// Alias: apple => [iosArm64, iosSimulatorArm64, iosX64, macosArm64, macosX64] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +open annotation class com.slack.circuit.test/ExperimentalForInheritanceCircuitTestApi : kotlin/Annotation { // com.slack.circuit.test/ExperimentalForInheritanceCircuitTestApi|null[0] + constructor () // com.slack.circuit.test/ExperimentalForInheritanceCircuitTestApi.|(){}[0] +} + +abstract interface <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.test/CircuitReceiveTurbine : app.cash.turbine/ReceiveTurbine<#A> { // com.slack.circuit.test/CircuitReceiveTurbine|null[0] + abstract suspend fun awaitUnchanged() // com.slack.circuit.test/CircuitReceiveTurbine.awaitUnchanged|awaitUnchanged(){}[0] +} + +final class <#A: com.slack.circuit.runtime/CircuitUiEvent> com.slack.circuit.test/TestEventSink : com.slack.circuit.test/BaseTestEventSinkType<#A> { // com.slack.circuit.test/TestEventSink|null[0] + constructor () // com.slack.circuit.test/TestEventSink.|(){}[0] + + final fun assertEvent(#A): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertEvent|assertEvent(1:0){}[0] + final fun assertEvent(kotlin/Function1<#A, kotlin/Boolean>): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertEvent|assertEvent(kotlin.Function1<1:0,kotlin.Boolean>){}[0] + final fun assertEventAt(kotlin/Int, #A): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertEventAt|assertEventAt(kotlin.Int;1:0){}[0] + final fun assertEventAt(kotlin/Int, kotlin/Function1<#A, kotlin/Boolean>): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertEventAt|assertEventAt(kotlin.Int;kotlin.Function1<1:0,kotlin.Boolean>){}[0] + final fun assertEventCount(kotlin/Int): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertEventCount|assertEventCount(kotlin.Int){}[0] + final fun assertEvents(kotlin/Array...): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertEvents|assertEvents(kotlin.Array...){}[0] + final fun assertEvents(kotlin/Function2): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertEvents|assertEvents(kotlin.Function2){}[0] + final fun assertNoEvents(): com.slack.circuit.test/TestEventSink<#A> // com.slack.circuit.test/TestEventSink.assertNoEvents|assertNoEvents(){}[0] + final fun invoke(#A) // com.slack.circuit.test/TestEventSink.invoke|invoke(1:0){}[0] + + final object Companion { // com.slack.circuit.test/TestEventSink.Companion|null[0] + final val DEFAULT_TIMEOUT // com.slack.circuit.test/TestEventSink.Companion.DEFAULT_TIMEOUT|{}DEFAULT_TIMEOUT[0] + final fun (): kotlin.time/Duration // com.slack.circuit.test/TestEventSink.Companion.DEFAULT_TIMEOUT.|(){}[0] + } +} + +final class com.slack.circuit.test/FakeNavigator : com.slack.circuit.runtime/Navigator { // com.slack.circuit.test/FakeNavigator|null[0] + constructor (com.slack.circuit.backstack/BackStack) // com.slack.circuit.test/FakeNavigator.|(com.slack.circuit.backstack.BackStack){}[0] + constructor (com.slack.circuit.runtime.screen/Screen, kotlin/Array...) // com.slack.circuit.test/FakeNavigator.|(com.slack.circuit.runtime.screen.Screen;kotlin.Array...){}[0] + + final fun assertGoToIsEmpty() // com.slack.circuit.test/FakeNavigator.assertGoToIsEmpty|assertGoToIsEmpty(){}[0] + final fun assertIsEmpty() // com.slack.circuit.test/FakeNavigator.assertIsEmpty|assertIsEmpty(){}[0] + final fun assertPopIsEmpty() // com.slack.circuit.test/FakeNavigator.assertPopIsEmpty|assertPopIsEmpty(){}[0] + final fun assertResetRootIsEmpty() // com.slack.circuit.test/FakeNavigator.assertResetRootIsEmpty|assertResetRootIsEmpty(){}[0] + final fun expectNoEvents() // com.slack.circuit.test/FakeNavigator.expectNoEvents|expectNoEvents(){}[0] + final fun expectNoGoToEvents() // com.slack.circuit.test/FakeNavigator.expectNoGoToEvents|expectNoGoToEvents(){}[0] + final fun expectNoPopEvents() // com.slack.circuit.test/FakeNavigator.expectNoPopEvents|expectNoPopEvents(){}[0] + final fun expectNoResetRootEvents() // com.slack.circuit.test/FakeNavigator.expectNoResetRootEvents|expectNoResetRootEvents(){}[0] + final fun goTo(com.slack.circuit.runtime.screen/Screen): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.goTo|goTo(com.slack.circuit.runtime.screen.Screen){}[0] + final fun peek(): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.test/FakeNavigator.peek|peek(){}[0] + final fun peekBackStack(): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.test/FakeNavigator.peekBackStack|peekBackStack(){}[0] + final fun pop(com.slack.circuit.runtime.screen/PopResult?): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.test/FakeNavigator.pop|pop(com.slack.circuit.runtime.screen.PopResult?){}[0] + final fun resetRoot(com.slack.circuit.runtime.screen/Screen, kotlin/Boolean, kotlin/Boolean): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.test/FakeNavigator.resetRoot|resetRoot(com.slack.circuit.runtime.screen.Screen;kotlin.Boolean;kotlin.Boolean){}[0] + final fun takeNextScreen(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.test/FakeNavigator.takeNextScreen|takeNextScreen(){}[0] + final suspend fun awaitNextGoTo(): com.slack.circuit.test/FakeNavigator.GoToEvent // com.slack.circuit.test/FakeNavigator.awaitNextGoTo|awaitNextGoTo(){}[0] + final suspend fun awaitNextScreen(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.test/FakeNavigator.awaitNextScreen|awaitNextScreen(){}[0] + final suspend fun awaitPop(): com.slack.circuit.test/FakeNavigator.PopEvent // com.slack.circuit.test/FakeNavigator.awaitPop|awaitPop(){}[0] + final suspend fun awaitResetRoot(): com.slack.circuit.test/FakeNavigator.ResetRootEvent // com.slack.circuit.test/FakeNavigator.awaitResetRoot|awaitResetRoot(){}[0] + + final class GoToEvent { // com.slack.circuit.test/FakeNavigator.GoToEvent|null[0] + constructor (com.slack.circuit.runtime.screen/Screen, kotlin/Boolean) // com.slack.circuit.test/FakeNavigator.GoToEvent.|(com.slack.circuit.runtime.screen.Screen;kotlin.Boolean){}[0] + + final val screen // com.slack.circuit.test/FakeNavigator.GoToEvent.screen|{}screen[0] + final fun (): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.test/FakeNavigator.GoToEvent.screen.|(){}[0] + final val success // com.slack.circuit.test/FakeNavigator.GoToEvent.success|{}success[0] + final fun (): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.GoToEvent.success.|(){}[0] + + final fun component1(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.test/FakeNavigator.GoToEvent.component1|component1(){}[0] + final fun component2(): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.GoToEvent.component2|component2(){}[0] + final fun copy(com.slack.circuit.runtime.screen/Screen = ..., kotlin/Boolean = ...): com.slack.circuit.test/FakeNavigator.GoToEvent // com.slack.circuit.test/FakeNavigator.GoToEvent.copy|copy(com.slack.circuit.runtime.screen.Screen;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.GoToEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.test/FakeNavigator.GoToEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.test/FakeNavigator.GoToEvent.toString|toString(){}[0] + } + + final class PopEvent { // com.slack.circuit.test/FakeNavigator.PopEvent|null[0] + constructor (com.slack.circuit.runtime.screen/Screen?, com.slack.circuit.runtime.screen/PopResult? = ...) // com.slack.circuit.test/FakeNavigator.PopEvent.|(com.slack.circuit.runtime.screen.Screen?;com.slack.circuit.runtime.screen.PopResult?){}[0] + + final val poppedScreen // com.slack.circuit.test/FakeNavigator.PopEvent.poppedScreen|{}poppedScreen[0] + final fun (): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.test/FakeNavigator.PopEvent.poppedScreen.|(){}[0] + final val result // com.slack.circuit.test/FakeNavigator.PopEvent.result|{}result[0] + final fun (): com.slack.circuit.runtime.screen/PopResult? // com.slack.circuit.test/FakeNavigator.PopEvent.result.|(){}[0] + + final fun component1(): com.slack.circuit.runtime.screen/Screen? // com.slack.circuit.test/FakeNavigator.PopEvent.component1|component1(){}[0] + final fun component2(): com.slack.circuit.runtime.screen/PopResult? // com.slack.circuit.test/FakeNavigator.PopEvent.component2|component2(){}[0] + final fun copy(com.slack.circuit.runtime.screen/Screen? = ..., com.slack.circuit.runtime.screen/PopResult? = ...): com.slack.circuit.test/FakeNavigator.PopEvent // com.slack.circuit.test/FakeNavigator.PopEvent.copy|copy(com.slack.circuit.runtime.screen.Screen?;com.slack.circuit.runtime.screen.PopResult?){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.PopEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.test/FakeNavigator.PopEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.test/FakeNavigator.PopEvent.toString|toString(){}[0] + } + + final class ResetRootEvent { // com.slack.circuit.test/FakeNavigator.ResetRootEvent|null[0] + constructor (com.slack.circuit.runtime.screen/Screen, kotlinx.collections.immutable/ImmutableList, kotlin/Boolean = ..., kotlin/Boolean = ...) // com.slack.circuit.test/FakeNavigator.ResetRootEvent.|(com.slack.circuit.runtime.screen.Screen;kotlinx.collections.immutable.ImmutableList;kotlin.Boolean;kotlin.Boolean){}[0] + + final val newRoot // com.slack.circuit.test/FakeNavigator.ResetRootEvent.newRoot|{}newRoot[0] + final fun (): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.test/FakeNavigator.ResetRootEvent.newRoot.|(){}[0] + final val oldScreens // com.slack.circuit.test/FakeNavigator.ResetRootEvent.oldScreens|{}oldScreens[0] + final fun (): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.test/FakeNavigator.ResetRootEvent.oldScreens.|(){}[0] + final val restoreState // com.slack.circuit.test/FakeNavigator.ResetRootEvent.restoreState|{}restoreState[0] + final fun (): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.ResetRootEvent.restoreState.|(){}[0] + final val saveState // com.slack.circuit.test/FakeNavigator.ResetRootEvent.saveState|{}saveState[0] + final fun (): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.ResetRootEvent.saveState.|(){}[0] + + final fun component1(): com.slack.circuit.runtime.screen/Screen // com.slack.circuit.test/FakeNavigator.ResetRootEvent.component1|component1(){}[0] + final fun component2(): kotlinx.collections.immutable/ImmutableList // com.slack.circuit.test/FakeNavigator.ResetRootEvent.component2|component2(){}[0] + final fun component3(): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.ResetRootEvent.component3|component3(){}[0] + final fun component4(): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.ResetRootEvent.component4|component4(){}[0] + final fun copy(com.slack.circuit.runtime.screen/Screen = ..., kotlinx.collections.immutable/ImmutableList = ..., kotlin/Boolean = ..., kotlin/Boolean = ...): com.slack.circuit.test/FakeNavigator.ResetRootEvent // com.slack.circuit.test/FakeNavigator.ResetRootEvent.copy|copy(com.slack.circuit.runtime.screen.Screen;kotlinx.collections.immutable.ImmutableList;kotlin.Boolean;kotlin.Boolean){}[0] + final fun equals(kotlin/Any?): kotlin/Boolean // com.slack.circuit.test/FakeNavigator.ResetRootEvent.equals|equals(kotlin.Any?){}[0] + final fun hashCode(): kotlin/Int // com.slack.circuit.test/FakeNavigator.ResetRootEvent.hashCode|hashCode(){}[0] + final fun toString(): kotlin/String // com.slack.circuit.test/FakeNavigator.ResetRootEvent.toString|toString(){}[0] + } +} + +final val com.slack.circuit.test/com_slack_circuit_test_FakeNavigator$stableprop // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator$stableprop|#static{}com_slack_circuit_test_FakeNavigator$stableprop[0] +final val com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_GoToEvent$stableprop // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_GoToEvent$stableprop|#static{}com_slack_circuit_test_FakeNavigator_GoToEvent$stableprop[0] +final val com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_PopEvent$stableprop // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_PopEvent$stableprop|#static{}com_slack_circuit_test_FakeNavigator_PopEvent$stableprop[0] +final val com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_ResetRootEvent$stableprop // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_ResetRootEvent$stableprop|#static{}com_slack_circuit_test_FakeNavigator_ResetRootEvent$stableprop[0] +final val com.slack.circuit.test/com_slack_circuit_test_TestEventSink$stableprop // com.slack.circuit.test/com_slack_circuit_test_TestEventSink$stableprop|#static{}com_slack_circuit_test_TestEventSink$stableprop[0] + +final fun com.slack.circuit.test/com_slack_circuit_test_FakeNavigator$stableprop_getter(): kotlin/Int // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator$stableprop_getter|com_slack_circuit_test_FakeNavigator$stableprop_getter(){}[0] +final fun com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_GoToEvent$stableprop_getter(): kotlin/Int // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_GoToEvent$stableprop_getter|com_slack_circuit_test_FakeNavigator_GoToEvent$stableprop_getter(){}[0] +final fun com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_PopEvent$stableprop_getter(): kotlin/Int // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_PopEvent$stableprop_getter|com_slack_circuit_test_FakeNavigator_PopEvent$stableprop_getter(){}[0] +final fun com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_ResetRootEvent$stableprop_getter(): kotlin/Int // com.slack.circuit.test/com_slack_circuit_test_FakeNavigator_ResetRootEvent$stableprop_getter|com_slack_circuit_test_FakeNavigator_ResetRootEvent$stableprop_getter(){}[0] +final fun com.slack.circuit.test/com_slack_circuit_test_TestEventSink$stableprop_getter(): kotlin/Int // com.slack.circuit.test/com_slack_circuit_test_TestEventSink$stableprop_getter|com_slack_circuit_test_TestEventSink$stableprop_getter(){}[0] +final suspend fun <#A: com.slack.circuit.runtime/CircuitUiState> (com.slack.circuit.runtime.presenter/Presenter<#A>).com.slack.circuit.test/test(kotlin.time/Duration? = ..., kotlin/String? = ..., androidx.compose.runtime/SnapshotMutationPolicy<#A> = ..., kotlin.coroutines/SuspendFunction1, kotlin/Unit>) // com.slack.circuit.test/test|test@com.slack.circuit.runtime.presenter.Presenter<0:0>(kotlin.time.Duration?;kotlin.String?;androidx.compose.runtime.SnapshotMutationPolicy<0:0>;kotlin.coroutines.SuspendFunction1,kotlin.Unit>){0§}[0] +final suspend fun <#A: com.slack.circuit.runtime/CircuitUiState> com.slack.circuit.test/presenterTestOf(kotlin/Function2, kotlin.time/Duration? = ..., kotlin/String? = ..., androidx.compose.runtime/SnapshotMutationPolicy<#A> = ..., kotlin.coroutines/SuspendFunction1, kotlin/Unit>) // com.slack.circuit.test/presenterTestOf|presenterTestOf(kotlin.Function2;kotlin.time.Duration?;kotlin.String?;androidx.compose.runtime.SnapshotMutationPolicy<0:0>;kotlin.coroutines.SuspendFunction1,kotlin.Unit>){0§}[0] + +// Targets: [apple] +sealed interface <#A: kotlin/Any?> com.slack.circuit.test/BaseTestEventSinkType : kotlin/Function1<#A, kotlin/Unit> { // com.slack.circuit.test/BaseTestEventSinkType|null[0] + abstract fun invoke(#A) // com.slack.circuit.test/BaseTestEventSinkType.invoke|invoke(1:0){}[0] +} + +// Targets: [js, wasmJs] +sealed interface <#A: kotlin/Any?> com.slack.circuit.test/BaseTestEventSinkType { // com.slack.circuit.test/BaseTestEventSinkType|null[0] + abstract fun invoke(#A) // com.slack.circuit.test/BaseTestEventSinkType.invoke|invoke(1:0){}[0] +} + +// Targets: [js, wasmJs] +final fun <#A: com.slack.circuit.runtime/CircuitUiEvent> (com.slack.circuit.test/TestEventSink<#A>).com.slack.circuit.test/asEventSinkFunction(): kotlin/Function1<#A, kotlin/Unit> // com.slack.circuit.test/asEventSinkFunction|asEventSinkFunction@com.slack.circuit.test.TestEventSink<0:0>(){0§}[0] diff --git a/circuit-test/api/jvm/circuit-test.api b/circuit-test/api/jvm/circuit-test.api new file mode 100644 index 000000000..1084efd1a --- /dev/null +++ b/circuit-test/api/jvm/circuit-test.api @@ -0,0 +1,111 @@ +public abstract interface class com/slack/circuit/test/BaseTestEventSinkType : kotlin/jvm/functions/Function1 { + public abstract fun invoke (Ljava/lang/Object;)V +} + +public abstract interface class com/slack/circuit/test/CircuitReceiveTurbine : app/cash/turbine/ReceiveTurbine { + public abstract fun awaitUnchanged (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public abstract interface annotation class com/slack/circuit/test/ExperimentalForInheritanceCircuitTestApi : java/lang/annotation/Annotation { +} + +public final class com/slack/circuit/test/FakeNavigator : com/slack/circuit/runtime/Navigator { + public static final field $stable I + public fun (Lcom/slack/circuit/backstack/BackStack;)V + public fun (Lcom/slack/circuit/runtime/screen/Screen;[Lcom/slack/circuit/runtime/screen/Screen;)V + public final fun assertGoToIsEmpty ()V + public final fun assertIsEmpty ()V + public final fun assertPopIsEmpty ()V + public final fun assertResetRootIsEmpty ()V + public final fun awaitNextGoTo (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun awaitNextScreen (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun awaitPop (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun awaitResetRoot (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun expectNoEvents ()V + public final fun expectNoGoToEvents ()V + public final fun expectNoPopEvents ()V + public final fun expectNoResetRootEvents ()V + public fun goTo (Lcom/slack/circuit/runtime/screen/Screen;)Z + public fun peek ()Lcom/slack/circuit/runtime/screen/Screen; + public fun peekBackStack ()Lkotlinx/collections/immutable/ImmutableList; + public fun pop (Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/runtime/screen/Screen; + public fun resetRoot (Lcom/slack/circuit/runtime/screen/Screen;ZZ)Lkotlinx/collections/immutable/ImmutableList; + public final fun takeNextScreen ()Lcom/slack/circuit/runtime/screen/Screen; +} + +public final class com/slack/circuit/test/FakeNavigator$GoToEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Z)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Z + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Z)Lcom/slack/circuit/test/FakeNavigator$GoToEvent; + public static synthetic fun copy$default (Lcom/slack/circuit/test/FakeNavigator$GoToEvent;Lcom/slack/circuit/runtime/screen/Screen;ZILjava/lang/Object;)Lcom/slack/circuit/test/FakeNavigator$GoToEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getSuccess ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/test/FakeNavigator$PopEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Lcom/slack/circuit/runtime/screen/PopResult; + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;)Lcom/slack/circuit/test/FakeNavigator$PopEvent; + public static synthetic fun copy$default (Lcom/slack/circuit/test/FakeNavigator$PopEvent;Lcom/slack/circuit/runtime/screen/Screen;Lcom/slack/circuit/runtime/screen/PopResult;ILjava/lang/Object;)Lcom/slack/circuit/test/FakeNavigator$PopEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getPoppedScreen ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getResult ()Lcom/slack/circuit/runtime/screen/PopResult; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/test/FakeNavigator$ResetRootEvent { + public static final field $stable I + public fun (Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZ)V + public synthetic fun (Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun component2 ()Lkotlinx/collections/immutable/ImmutableList; + public final fun component3 ()Z + public final fun component4 ()Z + public final fun copy (Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZ)Lcom/slack/circuit/test/FakeNavigator$ResetRootEvent; + public static synthetic fun copy$default (Lcom/slack/circuit/test/FakeNavigator$ResetRootEvent;Lcom/slack/circuit/runtime/screen/Screen;Lkotlinx/collections/immutable/ImmutableList;ZZILjava/lang/Object;)Lcom/slack/circuit/test/FakeNavigator$ResetRootEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getNewRoot ()Lcom/slack/circuit/runtime/screen/Screen; + public final fun getOldScreens ()Lkotlinx/collections/immutable/ImmutableList; + public final fun getRestoreState ()Z + public final fun getSaveState ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/slack/circuit/test/PresenterTestExtensionsKt { + public static final fun presenterTestOf-i8z2VEo (Lkotlin/jvm/functions/Function2;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun presenterTestOf-i8z2VEo$default (Lkotlin/jvm/functions/Function2;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun test-i8z2VEo (Lcom/slack/circuit/runtime/presenter/Presenter;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun test-i8z2VEo$default (Lcom/slack/circuit/runtime/presenter/Presenter;Lkotlin/time/Duration;Ljava/lang/String;Landroidx/compose/runtime/SnapshotMutationPolicy;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + +public final class com/slack/circuit/test/TestEventSink : com/slack/circuit/test/BaseTestEventSinkType { + public static final field $stable I + public static final field Companion Lcom/slack/circuit/test/TestEventSink$Companion; + public fun ()V + public final fun assertEvent (Lcom/slack/circuit/runtime/CircuitUiEvent;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEvent (Lkotlin/jvm/functions/Function1;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEventAt (ILcom/slack/circuit/runtime/CircuitUiEvent;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEventAt (ILkotlin/jvm/functions/Function1;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEventCount (I)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEvents (Lkotlin/jvm/functions/Function2;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertEvents ([Lcom/slack/circuit/runtime/CircuitUiEvent;)Lcom/slack/circuit/test/TestEventSink; + public final fun assertNoEvents ()Lcom/slack/circuit/test/TestEventSink; + public fun invoke (Lcom/slack/circuit/runtime/CircuitUiEvent;)V + public synthetic fun invoke (Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun invoke (Ljava/lang/Object;)V +} + +public final class com/slack/circuit/test/TestEventSink$Companion { + public final fun getDEFAULT_TIMEOUT-UwyO8pc ()J +} + diff --git a/circuitx/android/api/android.api b/circuitx/android/api/android.api new file mode 100644 index 000000000..61e039365 --- /dev/null +++ b/circuitx/android/api/android.api @@ -0,0 +1,39 @@ +public abstract interface class com/slack/circuitx/android/AndroidScreen : com/slack/circuit/runtime/screen/Screen { +} + +public final class com/slack/circuitx/android/AndroidScreenAwareNavigatorKt { + public static final fun rememberAndroidScreenAwareNavigator (Lcom/slack/circuit/runtime/Navigator;Landroid/content/Context;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/Navigator; + public static final fun rememberAndroidScreenAwareNavigator (Lcom/slack/circuit/runtime/Navigator;Lcom/slack/circuitx/android/AndroidScreenStarter;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/Navigator; +} + +public abstract interface class com/slack/circuitx/android/AndroidScreenStarter { + public abstract fun start (Lcom/slack/circuitx/android/AndroidScreen;)Z +} + +public final class com/slack/circuitx/android/IntentScreen : com/slack/circuitx/android/AndroidScreen { + public static final field $stable I + public static final field CREATOR Landroid/os/Parcelable$Creator; + public fun (Landroid/content/Intent;Landroid/os/Bundle;)V + public synthetic fun (Landroid/content/Intent;Landroid/os/Bundle;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Landroid/content/Intent; + public final fun component2 ()Landroid/os/Bundle; + public final fun copy (Landroid/content/Intent;Landroid/os/Bundle;)Lcom/slack/circuitx/android/IntentScreen; + public static synthetic fun copy$default (Lcom/slack/circuitx/android/IntentScreen;Landroid/content/Intent;Landroid/os/Bundle;ILjava/lang/Object;)Lcom/slack/circuitx/android/IntentScreen; + public final fun describeContents ()I + public fun equals (Ljava/lang/Object;)Z + public final fun getIntent ()Landroid/content/Intent; + public final fun getOptions ()Landroid/os/Bundle; + public fun hashCode ()I + public final fun startWith (Landroid/content/Context;)Z + public fun toString ()Ljava/lang/String; + public final fun writeToParcel (Landroid/os/Parcel;I)V +} + +public final class com/slack/circuitx/android/IntentScreen$Creator : android/os/Parcelable$Creator { + public fun ()V + public final fun createFromParcel (Landroid/os/Parcel;)Lcom/slack/circuitx/android/IntentScreen; + public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object; + public final fun newArray (I)[Lcom/slack/circuitx/android/IntentScreen; + public synthetic fun newArray (I)[Ljava/lang/Object; +} + diff --git a/circuitx/effects/api/android/effects.api b/circuitx/effects/api/android/effects.api new file mode 100644 index 000000000..aedb9a2b8 --- /dev/null +++ b/circuitx/effects/api/android/effects.api @@ -0,0 +1,10 @@ +public final class com/slack/circuitx/effects/ImpressionEffectKt { + public static final fun ImpressionEffect ([Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V + public static final fun LaunchedImpressionEffect ([Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public static final fun rememberImpressionNavigator ([Ljava/lang/Object;Lcom/slack/circuit/runtime/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/Navigator; +} + +public final class com/slack/circuitx/effects/ToastEffectKt { + public static final fun toastEffect (ILandroidx/compose/runtime/Composer;II)Lkotlin/jvm/functions/Function1; +} + diff --git a/circuitx/effects/api/effects.klib.api b/circuitx/effects/api/effects.klib.api new file mode 100644 index 000000000..a4a80e0f9 --- /dev/null +++ b/circuitx/effects/api/effects.klib.api @@ -0,0 +1,11 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, wasmJs] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +final fun com.slack.circuitx.effects/ImpressionEffect(kotlin/Array..., kotlin/Function0, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuitx.effects/ImpressionEffect|ImpressionEffect(kotlin.Array...;kotlin.Function0;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +final fun com.slack.circuitx.effects/LaunchedImpressionEffect(kotlin/Array..., kotlin.coroutines/SuspendFunction0, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuitx.effects/LaunchedImpressionEffect|LaunchedImpressionEffect(kotlin.Array...;kotlin.coroutines.SuspendFunction0;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +final fun com.slack.circuitx.effects/rememberImpressionNavigator(kotlin/Array..., com.slack.circuit.runtime/Navigator, kotlin.coroutines/SuspendFunction0, androidx.compose.runtime/Composer?, kotlin/Int): com.slack.circuit.runtime/Navigator // com.slack.circuitx.effects/rememberImpressionNavigator|rememberImpressionNavigator(kotlin.Array...;com.slack.circuit.runtime.Navigator;kotlin.coroutines.SuspendFunction0;androidx.compose.runtime.Composer?;kotlin.Int){}[0] diff --git a/circuitx/effects/api/jvm/effects.api b/circuitx/effects/api/jvm/effects.api new file mode 100644 index 000000000..7d2ee8c3c --- /dev/null +++ b/circuitx/effects/api/jvm/effects.api @@ -0,0 +1,6 @@ +public final class com/slack/circuitx/effects/ImpressionEffectKt { + public static final fun ImpressionEffect ([Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V + public static final fun LaunchedImpressionEffect ([Ljava/lang/Object;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V + public static final fun rememberImpressionNavigator ([Ljava/lang/Object;Lcom/slack/circuit/runtime/Navigator;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Lcom/slack/circuit/runtime/Navigator; +} + diff --git a/circuitx/gesture-navigation/api/android/gesture-navigation.api b/circuitx/gesture-navigation/api/android/gesture-navigation.api new file mode 100644 index 000000000..7d4f4d6e9 --- /dev/null +++ b/circuitx/gesture-navigation/api/android/gesture-navigation.api @@ -0,0 +1,18 @@ +public final class com/slack/circuitx/gesturenavigation/AndroidPredictiveBackNavigationDecoration : com/slack/circuit/backstack/NavDecoration { + public static final field $stable I + public fun (Lkotlin/jvm/functions/Function0;)V + public fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/gesturenavigation/AndroidPredictiveBackNavigationDecorationKt { + public static final fun GestureNavigationDecoration (Lcom/slack/circuit/backstack/NavDecoration;Lkotlin/jvm/functions/Function0;)Lcom/slack/circuit/backstack/NavDecoration; + public static synthetic fun GestureNavigationDecoration$default (Lcom/slack/circuit/backstack/NavDecoration;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/slack/circuit/backstack/NavDecoration; +} + +public final class com/slack/circuitx/gesturenavigation/CupertinoGestureNavigationDecoration : com/slack/circuit/backstack/NavDecoration { + public static final field $stable I + public fun (FLandroidx/compose/material/ThresholdConfig;ZLkotlin/jvm/functions/Function0;)V + public synthetic fun (FLandroidx/compose/material/ThresholdConfig;ZLkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + diff --git a/circuitx/gesture-navigation/api/gesture-navigation.klib.api b/circuitx/gesture-navigation/api/gesture-navigation.klib.api new file mode 100644 index 000000000..3b44e6874 --- /dev/null +++ b/circuitx/gesture-navigation/api/gesture-navigation.klib.api @@ -0,0 +1,20 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, wasmJs] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +final class com.slack.circuitx.gesturenavigation/CupertinoGestureNavigationDecoration : com.slack.circuit.backstack/NavDecoration { // com.slack.circuitx.gesturenavigation/CupertinoGestureNavigationDecoration|null[0] + constructor (kotlin/Float = ..., androidx.compose.material/ThresholdConfig = ..., kotlin/Boolean = ..., kotlin/Function0) // com.slack.circuitx.gesturenavigation/CupertinoGestureNavigationDecoration.|(kotlin.Float;androidx.compose.material.ThresholdConfig;kotlin.Boolean;kotlin.Function0){}[0] + + final fun <#A1: kotlin/Any?> DecoratedContent(kotlinx.collections.immutable/ImmutableList<#A1>, kotlin/Int, androidx.compose.ui/Modifier, kotlin/Function3<#A1, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuitx.gesturenavigation/CupertinoGestureNavigationDecoration.DecoratedContent|DecoratedContent(kotlinx.collections.immutable.ImmutableList<0:0>;kotlin.Int;androidx.compose.ui.Modifier;kotlin.Function3<0:0,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){0§}[0] +} + +final val com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_CupertinoGestureNavigationDecoration$stableprop // com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_CupertinoGestureNavigationDecoration$stableprop|#static{}com_slack_circuitx_gesturenavigation_CupertinoGestureNavigationDecoration$stableprop[0] +final val com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_GestureNavTransitionHolder$stableprop // com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_GestureNavTransitionHolder$stableprop|#static{}com_slack_circuitx_gesturenavigation_GestureNavTransitionHolder$stableprop[0] + +final fun com.slack.circuitx.gesturenavigation/GestureNavigationDecoration(com.slack.circuit.backstack/NavDecoration = ..., kotlin/Function0): com.slack.circuit.backstack/NavDecoration // com.slack.circuitx.gesturenavigation/GestureNavigationDecoration|GestureNavigationDecoration(com.slack.circuit.backstack.NavDecoration;kotlin.Function0){}[0] +final fun com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_CupertinoGestureNavigationDecoration$stableprop_getter(): kotlin/Int // com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_CupertinoGestureNavigationDecoration$stableprop_getter|com_slack_circuitx_gesturenavigation_CupertinoGestureNavigationDecoration$stableprop_getter(){}[0] +final fun com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_GestureNavTransitionHolder$stableprop_getter(): kotlin/Int // com.slack.circuitx.gesturenavigation/com_slack_circuitx_gesturenavigation_GestureNavTransitionHolder$stableprop_getter|com_slack_circuitx_gesturenavigation_GestureNavTransitionHolder$stableprop_getter(){}[0] diff --git a/circuitx/gesture-navigation/api/jvm/gesture-navigation.api b/circuitx/gesture-navigation/api/jvm/gesture-navigation.api new file mode 100644 index 000000000..56716c4fb --- /dev/null +++ b/circuitx/gesture-navigation/api/jvm/gesture-navigation.api @@ -0,0 +1,12 @@ +public final class com/slack/circuitx/gesturenavigation/CupertinoGestureNavigationDecoration : com/slack/circuit/backstack/NavDecoration { + public static final field $stable I + public fun (FLandroidx/compose/material/ThresholdConfig;ZLkotlin/jvm/functions/Function0;)V + public synthetic fun (FLandroidx/compose/material/ThresholdConfig;ZLkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun DecoratedContent (Lkotlinx/collections/immutable/ImmutableList;ILandroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/gesturenavigation/GestureNavigationDecorationKt { + public static final fun GestureNavigationDecoration (Lcom/slack/circuit/backstack/NavDecoration;Lkotlin/jvm/functions/Function0;)Lcom/slack/circuit/backstack/NavDecoration; + public static synthetic fun GestureNavigationDecoration$default (Lcom/slack/circuit/backstack/NavDecoration;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/slack/circuit/backstack/NavDecoration; +} + diff --git a/circuitx/overlays/api/android/overlays.api b/circuitx/overlays/api/android/overlays.api new file mode 100644 index 000000000..cbf488ffb --- /dev/null +++ b/circuitx/overlays/api/android/overlays.api @@ -0,0 +1,48 @@ +public final class com/slack/circuitx/overlays/AlertDialogOverlayKt { + public static final fun alertDialogOverlay (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/window/DialogProperties;)Lcom/slack/circuitx/overlays/BasicAlertDialogOverlay; + public static synthetic fun alertDialogOverlay$default (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/window/DialogProperties;ILjava/lang/Object;)Lcom/slack/circuitx/overlays/BasicAlertDialogOverlay; +} + +public final class com/slack/circuitx/overlays/BasicAlertDialogOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/overlays/BasicDialogOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/overlays/BottomSheetOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public synthetic fun (Ljava/lang/Object;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZZLkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZZLkotlin/jvm/functions/Function4;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/ModalBottomSheetProperties;Lkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/ModalBottomSheetProperties;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/overlays/ComposableSingletons$BottomSheetOverlayKt { + public static final field INSTANCE Lcom/slack/circuitx/overlays/ComposableSingletons$BottomSheetOverlayKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$overlays_release ()Lkotlin/jvm/functions/Function2; +} + +public final class com/slack/circuitx/overlays/DialogResult : java/lang/Enum { + public static final field Cancel Lcom/slack/circuitx/overlays/DialogResult; + public static final field Confirm Lcom/slack/circuitx/overlays/DialogResult; + public static final field Dismiss Lcom/slack/circuitx/overlays/DialogResult; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lcom/slack/circuitx/overlays/DialogResult; + public static fun values ()[Lcom/slack/circuitx/overlays/DialogResult; +} + +public final class com/slack/circuitx/overlays/FullScreenOverlay_androidKt { + public static final fun showFullScreenOverlay (Lcom/slack/circuit/overlay/OverlayHost;Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + diff --git a/circuitx/overlays/api/jvm/overlays.api b/circuitx/overlays/api/jvm/overlays.api new file mode 100644 index 000000000..cfdb774b7 --- /dev/null +++ b/circuitx/overlays/api/jvm/overlays.api @@ -0,0 +1,48 @@ +public final class com/slack/circuitx/overlays/AlertDialogOverlayKt { + public static final fun alertDialogOverlay (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/window/DialogProperties;)Lcom/slack/circuitx/overlays/BasicAlertDialogOverlay; + public static synthetic fun alertDialogOverlay$default (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/window/DialogProperties;ILjava/lang/Object;)Lcom/slack/circuitx/overlays/BasicAlertDialogOverlay; +} + +public final class com/slack/circuitx/overlays/BasicAlertDialogOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/overlays/BasicDialogOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/overlays/BottomSheetOverlay : com/slack/circuit/overlay/Overlay { + public static final field $stable I + public synthetic fun (Ljava/lang/Object;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZZLkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZZLkotlin/jvm/functions/Function4;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/ModalBottomSheetProperties;Lkotlin/jvm/functions/Function4;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/Color;Landroidx/compose/ui/unit/Dp;Landroidx/compose/ui/graphics/Shape;Lkotlin/jvm/functions/Function2;ZLandroidx/compose/material3/ModalBottomSheetProperties;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun Content (Lcom/slack/circuit/overlay/OverlayNavigator;Landroidx/compose/runtime/Composer;I)V +} + +public final class com/slack/circuitx/overlays/ComposableSingletons$BottomSheetOverlayKt { + public static final field INSTANCE Lcom/slack/circuitx/overlays/ComposableSingletons$BottomSheetOverlayKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$overlays ()Lkotlin/jvm/functions/Function2; +} + +public final class com/slack/circuitx/overlays/DialogResult : java/lang/Enum { + public static final field Cancel Lcom/slack/circuitx/overlays/DialogResult; + public static final field Confirm Lcom/slack/circuitx/overlays/DialogResult; + public static final field Dismiss Lcom/slack/circuitx/overlays/DialogResult; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lcom/slack/circuitx/overlays/DialogResult; + public static fun values ()[Lcom/slack/circuitx/overlays/DialogResult; +} + +public final class com/slack/circuitx/overlays/FullScreenOverlay_jvmKt { + public static final fun showFullScreenOverlay (Lcom/slack/circuit/overlay/OverlayHost;Lcom/slack/circuit/runtime/screen/Screen;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + diff --git a/circuitx/overlays/api/overlays.klib.api b/circuitx/overlays/api/overlays.klib.api new file mode 100644 index 000000000..2ee253809 --- /dev/null +++ b/circuitx/overlays/api/overlays.klib.api @@ -0,0 +1,54 @@ +// Klib ABI Dump +// Targets: [iosArm64, iosSimulatorArm64, iosX64, js, macosArm64, macosX64, wasmJs] +// Rendering settings: +// - Signature version: 2 +// - Show manifest properties: true +// - Show declarations: true + +// Library unique name: +final enum class com.slack.circuitx.overlays/DialogResult : kotlin/Enum { // com.slack.circuitx.overlays/DialogResult|null[0] + enum entry Cancel // com.slack.circuitx.overlays/DialogResult.Cancel|null[0] + enum entry Confirm // com.slack.circuitx.overlays/DialogResult.Confirm|null[0] + enum entry Dismiss // com.slack.circuitx.overlays/DialogResult.Dismiss|null[0] + + final val entries // com.slack.circuitx.overlays/DialogResult.entries|#static{}entries[0] + final fun (): kotlin.enums/EnumEntries // com.slack.circuitx.overlays/DialogResult.entries.|#static(){}[0] + + final fun valueOf(kotlin/String): com.slack.circuitx.overlays/DialogResult // com.slack.circuitx.overlays/DialogResult.valueOf|valueOf#static(kotlin.String){}[0] + final fun values(): kotlin/Array // com.slack.circuitx.overlays/DialogResult.values|values#static(){}[0] +} + +final class <#A: kotlin/Any, #B: kotlin/Any> com.slack.circuitx.overlays/BasicAlertDialogOverlay : com.slack.circuit.overlay/Overlay<#B> { // com.slack.circuitx.overlays/BasicAlertDialogOverlay|null[0] + constructor (#A, kotlin/Function0<#B>, androidx.compose.ui.window/DialogProperties = ..., kotlin/Function4<#A, com.slack.circuit.overlay/OverlayNavigator<#B>, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>) // com.slack.circuitx.overlays/BasicAlertDialogOverlay.|(1:0;kotlin.Function0<1:1>;androidx.compose.ui.window.DialogProperties;kotlin.Function4<1:0,com.slack.circuit.overlay.OverlayNavigator<1:1>,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}[0] + + final fun Content(com.slack.circuit.overlay/OverlayNavigator<#B>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuitx.overlays/BasicAlertDialogOverlay.Content|Content(com.slack.circuit.overlay.OverlayNavigator<1:1>;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +} + +final class <#A: kotlin/Any, #B: kotlin/Any> com.slack.circuitx.overlays/BasicDialogOverlay : com.slack.circuit.overlay/Overlay<#B> { // com.slack.circuitx.overlays/BasicDialogOverlay|null[0] + constructor (#A, kotlin/Function0<#B>, androidx.compose.ui.window/DialogProperties = ..., kotlin/Function4<#A, com.slack.circuit.overlay/OverlayNavigator<#B>, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>) // com.slack.circuitx.overlays/BasicDialogOverlay.|(1:0;kotlin.Function0<1:1>;androidx.compose.ui.window.DialogProperties;kotlin.Function4<1:0,com.slack.circuit.overlay.OverlayNavigator<1:1>,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}[0] + + final fun Content(com.slack.circuit.overlay/OverlayNavigator<#B>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuitx.overlays/BasicDialogOverlay.Content|Content(com.slack.circuit.overlay.OverlayNavigator<1:1>;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +} + +final class <#A: kotlin/Any, #B: kotlin/Any> com.slack.circuitx.overlays/BottomSheetOverlay : com.slack.circuit.overlay/Overlay<#B> { // com.slack.circuitx.overlays/BottomSheetOverlay|null[0] + constructor (#A, androidx.compose.ui.graphics/Color? = ..., androidx.compose.ui.unit/Dp? = ..., androidx.compose.ui.graphics/Shape? = ..., kotlin/Function2? = ..., kotlin/Boolean = ..., kotlin/Boolean = ..., kotlin/Function4<#A, com.slack.circuit.overlay/OverlayNavigator<#B>, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>) // com.slack.circuitx.overlays/BottomSheetOverlay.|(1:0;androidx.compose.ui.graphics.Color?;androidx.compose.ui.unit.Dp?;androidx.compose.ui.graphics.Shape?;kotlin.Function2?;kotlin.Boolean;kotlin.Boolean;kotlin.Function4<1:0,com.slack.circuit.overlay.OverlayNavigator<1:1>,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}[0] + constructor (#A, kotlin/Function0<#B>, androidx.compose.ui.graphics/Color? = ..., androidx.compose.ui.unit/Dp? = ..., androidx.compose.ui.graphics/Shape? = ..., kotlin/Function2? = ..., kotlin/Boolean = ..., androidx.compose.material3/ModalBottomSheetProperties = ..., kotlin/Function4<#A, com.slack.circuit.overlay/OverlayNavigator<#B>, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>) // com.slack.circuitx.overlays/BottomSheetOverlay.|(1:0;kotlin.Function0<1:1>;androidx.compose.ui.graphics.Color?;androidx.compose.ui.unit.Dp?;androidx.compose.ui.graphics.Shape?;kotlin.Function2?;kotlin.Boolean;androidx.compose.material3.ModalBottomSheetProperties;kotlin.Function4<1:0,com.slack.circuit.overlay.OverlayNavigator<1:1>,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}[0] + + final fun Content(com.slack.circuit.overlay/OverlayNavigator<#B>, androidx.compose.runtime/Composer?, kotlin/Int) // com.slack.circuitx.overlays/BottomSheetOverlay.Content|Content(com.slack.circuit.overlay.OverlayNavigator<1:1>;androidx.compose.runtime.Composer?;kotlin.Int){}[0] +} + +final val com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicAlertDialogOverlay$stableprop // com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicAlertDialogOverlay$stableprop|#static{}com_slack_circuitx_overlays_BasicAlertDialogOverlay$stableprop[0] +final val com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicDialogOverlay$stableprop // com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicDialogOverlay$stableprop|#static{}com_slack_circuitx_overlays_BasicDialogOverlay$stableprop[0] +final val com.slack.circuitx.overlays/com_slack_circuitx_overlays_BottomSheetOverlay$stableprop // com.slack.circuitx.overlays/com_slack_circuitx_overlays_BottomSheetOverlay$stableprop|#static{}com_slack_circuitx_overlays_BottomSheetOverlay$stableprop[0] +final val com.slack.circuitx.overlays/com_slack_circuitx_overlays_DispatchingOverlayNavigator$stableprop // com.slack.circuitx.overlays/com_slack_circuitx_overlays_DispatchingOverlayNavigator$stableprop|#static{}com_slack_circuitx_overlays_DispatchingOverlayNavigator$stableprop[0] +final val com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay$stableprop // com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay$stableprop|#static{}com_slack_circuitx_overlays_FullScreenOverlay$stableprop[0] +final val com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay_Callbacks_NoOp$stableprop // com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay_Callbacks_NoOp$stableprop|#static{}com_slack_circuitx_overlays_FullScreenOverlay_Callbacks_NoOp$stableprop[0] + +final fun com.slack.circuitx.overlays/alertDialogOverlay(kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>, kotlin/Function2? = ..., kotlin/Function2? = ..., kotlin/Function2? = ..., kotlin/Function3, androidx.compose.runtime/Composer, kotlin/Int, kotlin/Unit>?, androidx.compose.ui.window/DialogProperties = ...): com.slack.circuitx.overlays/BasicAlertDialogOverlay<*, com.slack.circuitx.overlays/DialogResult> // com.slack.circuitx.overlays/alertDialogOverlay|alertDialogOverlay(kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;kotlin.Function2?;kotlin.Function2?;kotlin.Function2?;kotlin.Function3,androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>?;androidx.compose.ui.window.DialogProperties){}[0] +final fun com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicAlertDialogOverlay$stableprop_getter(): kotlin/Int // com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicAlertDialogOverlay$stableprop_getter|com_slack_circuitx_overlays_BasicAlertDialogOverlay$stableprop_getter(){}[0] +final fun com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicDialogOverlay$stableprop_getter(): kotlin/Int // com.slack.circuitx.overlays/com_slack_circuitx_overlays_BasicDialogOverlay$stableprop_getter|com_slack_circuitx_overlays_BasicDialogOverlay$stableprop_getter(){}[0] +final fun com.slack.circuitx.overlays/com_slack_circuitx_overlays_BottomSheetOverlay$stableprop_getter(): kotlin/Int // com.slack.circuitx.overlays/com_slack_circuitx_overlays_BottomSheetOverlay$stableprop_getter|com_slack_circuitx_overlays_BottomSheetOverlay$stableprop_getter(){}[0] +final fun com.slack.circuitx.overlays/com_slack_circuitx_overlays_DispatchingOverlayNavigator$stableprop_getter(): kotlin/Int // com.slack.circuitx.overlays/com_slack_circuitx_overlays_DispatchingOverlayNavigator$stableprop_getter|com_slack_circuitx_overlays_DispatchingOverlayNavigator$stableprop_getter(){}[0] +final fun com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay$stableprop_getter(): kotlin/Int // com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay$stableprop_getter|com_slack_circuitx_overlays_FullScreenOverlay$stableprop_getter(){}[0] +final fun com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay_Callbacks_NoOp$stableprop_getter(): kotlin/Int // com.slack.circuitx.overlays/com_slack_circuitx_overlays_FullScreenOverlay_Callbacks_NoOp$stableprop_getter|com_slack_circuitx_overlays_FullScreenOverlay_Callbacks_NoOp$stableprop_getter(){}[0] +final suspend fun (com.slack.circuit.overlay/OverlayHost).com.slack.circuitx.overlays/showFullScreenOverlay(com.slack.circuit.runtime.screen/Screen): com.slack.circuit.runtime.screen/PopResult? // com.slack.circuitx.overlays/showFullScreenOverlay|showFullScreenOverlay@com.slack.circuit.overlay.OverlayHost(com.slack.circuit.runtime.screen.Screen){}[0] diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f79991548..2d6078a07 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,12 +63,12 @@ agp-library = { id = "com.android.library", version.ref = "agp" } agp-test = { id = "com.android.test", version.ref = "agp" } anvil = { id = "dev.zacsweers.anvil", version.ref = "anvil" } baselineprofile = { id = "androidx.baselineprofile", version.ref = "benchmark" } +binaryCompatibilityValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.16.3" } compose = { id = "org.jetbrains.compose", version.ref = "compose-jb" } dependencyGuard = { id = "com.dropbox.dependency-guard", version = "0.5.0" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } emulatorWtf = { id = "wtf.emulator.gradle", version = "0.18.0" } -## Here to trigger Renovate updates kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-atomicfu = { id = "org.jetbrains.kotlin.plugin.atomicfu", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } @@ -79,9 +79,7 @@ kotlin-plugin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", versio kotlin-plugin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" } -molecule = { id = "app.cash.molecule", version.ref = "molecule" } mosaic = { id = "com.jakewharton.mosaic", version.ref = "mosaic" } -paparazzi = { id = "app.cash.paparazzi", version.ref = "paparazzi" } roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" } skie = { id = "co.touchlab.skie", version.ref = "skie" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } diff --git a/samples/star/apk/build.gradle.kts b/samples/star/apk/build.gradle.kts index 3d201cddf..9fb93d409 100644 --- a/samples/star/apk/build.gradle.kts +++ b/samples/star/apk/build.gradle.kts @@ -31,6 +31,7 @@ android { baselineProfile { saveInSrc = true dexLayoutOptimization = true + @Suppress("DEPRECATION") // https://issuetracker.google.com/issues/379030055 from(projects.samples.star.benchmark.dependencyProject) }