Skip to content

Commit c1d2cfd

Browse files
authored
Removed ExperimentalDecomposeApi annotation from all API in extensions-compose-experimental (#1003)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Several stack and panel Compose APIs are now available without requiring experimental opt-in. * Animation helpers and providers can be used more directly in app code. * **Bug Fixes** * Reduced friction when integrating stack and panel transitions by removing unnecessary experimental markings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2 parents 7dae639 + aa712bc commit c1d2cfd

16 files changed

Lines changed: 0 additions & 52 deletions

File tree

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanels.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import androidx.compose.runtime.Composable
66
import androidx.compose.runtime.remember
77
import androidx.compose.ui.Modifier
88
import com.arkivanov.decompose.Child
9-
import com.arkivanov.decompose.ExperimentalDecomposeApi
109
import com.arkivanov.decompose.extensions.compose.experimental.BroadcastBackHandler
1110
import com.arkivanov.decompose.extensions.compose.experimental.rememberLazy
1211
import com.arkivanov.decompose.extensions.compose.experimental.stack.ChildStack
@@ -45,7 +44,6 @@ import com.arkivanov.decompose.value.Value
4544
* is not `null`, and disabled if the returned value is `null`.
4645
* Only works if [ChildPanels.mode] is [ChildPanelsMode.SINGLE].
4746
*/
48-
@ExperimentalDecomposeApi
4947
@Composable
5048
fun <MC : Any, MT : Any, DC : Any, DT : Any> ChildPanels(
5149
panels: Value<ChildPanels<MC, MT, DC, DT, Nothing, Nothing>>,
@@ -91,7 +89,6 @@ fun <MC : Any, MT : Any, DC : Any, DT : Any> ChildPanels(
9189
* is not `null`, and disabled if the returned value is `null`.
9290
* Only works if [ChildPanels.mode] is [ChildPanelsMode.SINGLE].
9391
*/
94-
@ExperimentalDecomposeApi
9592
@Composable
9693
fun <MC : Any, MT : Any, DC : Any, DT : Any> ChildPanels(
9794
panels: ChildPanels<MC, MT, DC, DT, Nothing, Nothing>,
@@ -140,7 +137,6 @@ fun <MC : Any, MT : Any, DC : Any, DT : Any> ChildPanels(
140137
* is not `null`, and disabled if the returned value is `null`.
141138
* Only works if [ChildPanels.mode] is [ChildPanelsMode.SINGLE].
142139
*/
143-
@ExperimentalDecomposeApi
144140
@Composable
145141
fun <MC : Any, MT : Any, DC : Any, DT : Any, EC : Any, ET : Any> ChildPanels(
146142
panels: Value<ChildPanels<MC, MT, DC, DT, EC, ET>>,
@@ -194,7 +190,6 @@ fun <MC : Any, MT : Any, DC : Any, DT : Any, EC : Any, ET : Any> ChildPanels(
194190
* is not `null`, and disabled if the returned value is `null`.
195191
* Only works if [ChildPanels.mode] is [ChildPanelsMode.SINGLE].
196192
*/
197-
@ExperimentalDecomposeApi
198193
@Composable
199194
fun <MC : Any, MT : Any, DC : Any, DT : Any, EC : Any, ET : Any> ChildPanels(
200195
panels: ChildPanels<MC, MT, DC, DT, EC, ET>,
@@ -253,7 +248,6 @@ fun <MC : Any, MT : Any, DC : Any, DT : Any, EC : Any, ET : Any> ChildPanels(
253248
}
254249
}
255250

256-
@ExperimentalDecomposeApi
257251
@Composable
258252
private fun <MC : Any, MT : Any> MainPanel(
259253
main: Child.Created<MC, PanelChild<MC, MT>>,
@@ -287,7 +281,6 @@ private fun <MC : Any, MT : Any> MainPanel(
287281
}
288282
}
289283

290-
@ExperimentalDecomposeApi
291284
@Composable
292285
private fun <DC : Any, DT : Any> DetailsPanel(
293286
details: Child.Created<DC, PanelChild<DC, DT>>?,
@@ -329,7 +322,6 @@ private fun <DC : Any, DT : Any> DetailsPanel(
329322
}
330323
}
331324

332-
@ExperimentalDecomposeApi
333325
@Composable
334326
private fun <EC : Any, ET : Any> ExtraPanel(
335327
extra: Child.Created<EC, PanelChild<EC, ET>>?,

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsAnimators.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.arkivanov.decompose.extensions.compose.experimental.panels
22

33
import com.arkivanov.decompose.Child
4-
import com.arkivanov.decompose.ExperimentalDecomposeApi
54
import com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimator
65
import com.arkivanov.decompose.extensions.compose.stack.animation.Direction
76
import com.arkivanov.decompose.router.panels.ChildPanelsMode
@@ -15,7 +14,6 @@ import com.arkivanov.decompose.router.panels.ChildPanelsMode
1514
* @param details provides an optional [StackAnimator] for the Details [Child].
1615
* @param extra provides an optional [StackAnimator] for the Extra [Child].
1716
*/
18-
@ExperimentalDecomposeApi
1917
class ChildPanelsAnimators<in MC : Any, in MT : Any, in DC : Any, in DT : Any, in EC : Any, in ET : Any>(
2018
val main: (Child.Created<MC, MT>, ChildPanelsMode, Direction, isPredictiveBack: Boolean) -> StackAnimator? = { _, _, _, _ -> null },
2119
val details: (Child.Created<DC, DT>, ChildPanelsMode, Direction, isPredictiveBack: Boolean) -> StackAnimator? = { _, _, _, _ -> null },

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/ChildPanelsLayout.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package com.arkivanov.decompose.extensions.compose.experimental.panels
22

33
import androidx.compose.runtime.Composable
4-
import com.arkivanov.decompose.ExperimentalDecomposeApi
54
import com.arkivanov.decompose.router.panels.ChildPanelsMode
65

76
/**
87
* A Child Panels layout used for laying out panels in single, dual and triple modes.
98
*/
10-
@ExperimentalDecomposeApi
119
interface ChildPanelsLayout {
1210

1311
/**

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/panels/HorizontalChildPanelsLayout.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import androidx.compose.ui.layout.MeasurePolicy
99
import androidx.compose.ui.layout.MeasureResult
1010
import androidx.compose.ui.layout.MeasureScope
1111
import androidx.compose.ui.unit.Constraints
12-
import com.arkivanov.decompose.ExperimentalDecomposeApi
1312
import com.arkivanov.decompose.router.panels.ChildPanelsMode
1413

1514
/**
@@ -51,7 +50,6 @@ import com.arkivanov.decompose.router.panels.ChildPanelsMode
5150
* [TRIPLE][com.arkivanov.decompose.router.panels.ChildPanelsMode.TRIPLE] mode.
5251
* Default values are `1F`, meaning that all panel slots have equal width.
5352
*/
54-
@ExperimentalDecomposeApi
5553
class HorizontalChildPanelsLayout(
5654
private val dualWeights: Pair<Float, Float> = Pair(1F, 1F),
5755
private val tripleWeights: Triple<Float, Float, Float> = Triple(1F, 1F, 1F),

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStack.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import androidx.compose.runtime.saveable.SaveableStateHolder
77
import androidx.compose.runtime.saveable.rememberSaveableStateHolder
88
import androidx.compose.ui.Modifier
99
import com.arkivanov.decompose.Child
10-
import com.arkivanov.decompose.ExperimentalDecomposeApi
1110
import com.arkivanov.decompose.extensions.compose.experimental.stack.animation.LocalStackAnimationProvider
1211
import com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimation
1312
import com.arkivanov.decompose.extensions.compose.experimental.stack.animation.StackAnimationScope
@@ -28,7 +27,6 @@ import com.arkivanov.decompose.value.Value
2827
* The receiver [StackAnimationScope] can be used for additional animations, such as
2928
* [Shared Element Transitions](https://developer.android.com/develop/ui/compose/animation/shared-elements).
3029
*/
31-
@ExperimentalDecomposeApi
3230
@Composable
3331
fun <C : Any, T : Any> ChildStack(
3432
stack: ChildStack<C, T>,
@@ -62,7 +60,6 @@ fun <C : Any, T : Any> ChildStack(
6260
* The receiver [StackAnimationScope] can be used for additional animations, such as
6361
* [Shared Element Transitions](https://developer.android.com/develop/ui/compose/animation/shared-elements).
6462
*/
65-
@ExperimentalDecomposeApi
6663
@Composable
6764
fun <C : Any, T : Any> ChildStack(
6865
stack: Value<ChildStack<C, T>>,

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimation.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import androidx.compose.runtime.setValue
1818
import androidx.compose.ui.Modifier
1919
import androidx.compose.ui.input.pointer.pointerInput
2020
import com.arkivanov.decompose.Child
21-
import com.arkivanov.decompose.ExperimentalDecomposeApi
2221
import com.arkivanov.decompose.extensions.compose.experimental.stack.WithStackAnimationScope
2322
import com.arkivanov.decompose.extensions.compose.experimental.stack.awaitAll
2423
import com.arkivanov.decompose.extensions.compose.experimental.stack.dropLast
@@ -33,7 +32,6 @@ import kotlinx.coroutines.CoroutineScope
3332
import kotlinx.coroutines.cancel
3433
import kotlinx.coroutines.launch
3534

36-
@ExperimentalDecomposeApi
3735
internal class DefaultStackAnimation<C : Any, T : Any>(
3836
private val disableInputDuringAnimation: Boolean,
3937
private val predictiveBackParams: (ChildStack<C, T>) -> PredictiveBackParams?,
@@ -194,7 +192,6 @@ internal class DefaultStackAnimation<C : Any, T : Any>(
194192
)
195193
}
196194

197-
@ExperimentalDecomposeApi
198195
@Composable
199196
private fun PredictiveBackController(
200197
stack: ChildStack<C, T>,
@@ -385,15 +382,13 @@ private fun Overlay(modifier: Modifier) {
385382
)
386383
}
387384

388-
@ExperimentalDecomposeApi
389385
private data class AnimationItem<out C : Any, out T : Any>(
390386
val child: Child.Created<C, T>,
391387
val direction: Direction,
392388
val transitionState: TransitionState<EnterExitState>,
393389
val animator: StackAnimator? = null,
394390
)
395391

396-
@ExperimentalDecomposeApi
397392
private fun <C : Any, T : Any> keyedItemsOf(vararg items: AnimationItem<C, T>): Map<String, AnimationItem<C, T>> =
398393
items.associateBy { it.child.key }
399394

@@ -402,7 +397,6 @@ private fun <C : Any, T : Any> keyedItemsOf(vararg items: AnimationItem<C, T>):
402397
* https://github.com/JetBrains/compose-jb/issues/2688
403398
* https://github.com/JetBrains/compose-jb/issues/2612
404399
*/
405-
@ExperimentalDecomposeApi
406400
private class SimpleStackAnimator(
407401
private val modifier: () -> Modifier,
408402
) : StackAnimator {

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/DefaultStackAnimator.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ import androidx.compose.animation.core.tween
77
import androidx.compose.runtime.Composable
88
import androidx.compose.runtime.getValue
99
import androidx.compose.ui.Modifier
10-
import com.arkivanov.decompose.ExperimentalDecomposeApi
1110
import com.arkivanov.decompose.extensions.compose.stack.animation.Direction
1211
import com.arkivanov.decompose.extensions.compose.stack.animation.isFront
1312

14-
@ExperimentalDecomposeApi
1513
internal class DefaultStackAnimator(
1614
private val animationSpec: FiniteAnimationSpec<Float> = tween(),
1715
private val frame: @Composable (factor: Float, direction: Direction) -> Modifier

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/EmptyStackAnimation.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ import androidx.compose.runtime.Composable
88
import androidx.compose.runtime.remember
99
import androidx.compose.ui.Modifier
1010
import com.arkivanov.decompose.Child
11-
import com.arkivanov.decompose.ExperimentalDecomposeApi
1211
import com.arkivanov.decompose.extensions.compose.experimental.stack.WithStackAnimationScope
1312
import com.arkivanov.decompose.router.stack.ChildStack
1413

15-
@ExperimentalDecomposeApi
1614
internal fun <C : Any, T : Any> emptyStackAnimation(): StackAnimation<C, T> =
1715
EmptyStackAnimation()
1816

@@ -21,7 +19,6 @@ internal fun <C : Any, T : Any> emptyStackAnimation(): StackAnimation<C, T> =
2119
* https://github.com/JetBrains/compose-jb/issues/2688
2220
* https://github.com/JetBrains/compose-jb/issues/2612
2321
*/
24-
@ExperimentalDecomposeApi
2522
private class EmptyStackAnimation<C : Any, T : Any> : StackAnimation<C, T> {
2623

2724
@Composable

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/Fade.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,13 @@ package com.arkivanov.decompose.extensions.compose.experimental.stack.animation
33
import androidx.compose.animation.core.FiniteAnimationSpec
44
import androidx.compose.animation.core.tween
55
import androidx.compose.ui.Modifier
6-
import androidx.compose.ui.composed
76
import androidx.compose.ui.draw.alpha
8-
import com.arkivanov.decompose.ExperimentalDecomposeApi
97
import kotlin.math.abs
108

119
/**
1210
* A simple fading animation. Appearing children's `alpha` is animated from [minAlpha] to 1.0.
1311
* Disappearing children's `alpha` is animated from 1.0 to [minAlpha].
1412
*/
15-
@ExperimentalDecomposeApi
1613
fun fade(
1714
animationSpec: FiniteAnimationSpec<Float> = tween(),
1815
minAlpha: Float = 0F,

extensions-compose-experimental/src/commonMain/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/animation/PredictiveBackParams.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.arkivanov.decompose.extensions.compose.experimental.stack.animation
22

3-
import com.arkivanov.decompose.ExperimentalDecomposeApi
43
import com.arkivanov.decompose.extensions.compose.stack.animation.predictiveback.PredictiveBackAnimatable
54
import com.arkivanov.essenty.backhandler.BackEvent
65
import com.arkivanov.essenty.backhandler.BackHandler
@@ -20,7 +19,6 @@ import com.arkivanov.essenty.backhandler.BackHandler
2019
* @see com.arkivanov.decompose.extensions.compose.stack.animation.predictiveback.androidPredictiveBackAnimatableV1
2120
* @see com.arkivanov.decompose.extensions.compose.stack.animation.predictiveback.androidPredictiveBackAnimatableV2
2221
*/
23-
@ExperimentalDecomposeApi
2422
class PredictiveBackParams(
2523
val backHandler: BackHandler,
2624
val onBack: () -> Unit,

0 commit comments

Comments
 (0)