@momo-kits/native-kits 0.167.1-duo.18-debug → 0.167.1-duo.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CLAUDE.md +5 -3
  2. package/ios/Application/MaxApi.swift +12 -3
  3. package/ios/Colors+Radius+Spacing/Radius.swift +6 -0
  4. package/ios/Layout/GridContext.swift +67 -3
  5. package/ios/Navigation/BottomSheet.swift +30 -4
  6. package/ios/Navigation/BottomTab/BottomTab.swift +0 -2
  7. package/ios/Navigation/Component/SnackBar.swift +0 -1
  8. package/ios/Navigation/HostBackGestureBridge.swift +27 -6
  9. package/ios/Navigation/ModalScreen.swift +0 -1
  10. package/ios/Navigation/Navigation.swift +14 -0
  11. package/ios/Navigation/NavigationContainer.swift +26 -56
  12. package/ios/Navigation/Navigator.swift +102 -165
  13. package/ios/Navigation/StackScreen.swift +19 -2
  14. package/ios/Navigation/StackTransition.swift +400 -0
  15. package/ios/Navigation/SwipeBackHaptic.swift +33 -0
  16. package/package.json +1 -1
  17. package/build.gradle.kts +0 -11
  18. package/compose/build.gradle.kts +0 -204
  19. package/compose/build.gradle.kts.backup +0 -204
  20. package/compose/compose.podspec +0 -47
  21. package/compose/src/androidMain/kotlin/vn/momo/kits/const/HostFont.android.kt +0 -19
  22. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +0 -6
  23. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/BackGesture.android.kt +0 -12
  24. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/OsFontScale.android.kt +0 -7
  25. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -153
  26. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/ReservedRegions.android.kt +0 -6
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +0 -52
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +0 -124
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -183
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -207
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -39
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +0 -86
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +0 -76
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +0 -76
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +0 -293
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +0 -33
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -916
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Localize.kt +0 -269
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -110
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -378
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/application/WidgetContainer.kt +0 -56
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +0 -69
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +0 -157
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -81
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -32
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -338
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -175
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -357
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -115
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -89
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -128
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -209
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +0 -542
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +0 -49
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +0 -86
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -125
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -231
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -189
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -478
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -114
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -265
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -235
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -223
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -265
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -185
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -343
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +0 -108
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -56
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -41
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -84
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -40
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -361
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -108
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -308
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -59
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +0 -87
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +0 -21
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -90
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -330
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -220
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -473
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -122
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -207
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -92
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -560
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -86
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -125
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -207
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -501
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -176
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -182
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -193
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -236
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -180
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -325
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/const/HostFont.kt +0 -20
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitDesignSystem.kt +0 -18
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitFontScale.kt +0 -22
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -16
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -194
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -283
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -54
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -50
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/ScreenLayout.kt +0 -309
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -41
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -52
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -66
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +0 -104
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -48
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -338
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/HostBackGestureBridge.kt +0 -58
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -137
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -106
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -205
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -393
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -713
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackTransition.kt +0 -148
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/SwipeBackHaptic.kt +0 -35
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -218
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -231
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/DuoBarCompression.kt +0 -98
  128. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/DuoTabBar.kt +0 -312
  129. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -169
  130. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -447
  131. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -103
  132. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderJourney.kt +0 -106
  133. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderLocation.kt +0 -74
  134. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -379
  135. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -39
  136. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -363
  137. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SideBar.kt +0 -192
  138. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -133
  139. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -127
  140. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/BackGesture.kt +0 -12
  141. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -91
  142. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/OsFontScale.kt +0 -9
  143. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -74
  144. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ReservedRegions.kt +0 -13
  145. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  146. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -55
  147. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +0 -15
  148. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -118
  149. package/compose/src/iosMain/kotlin/vn/momo/kits/const/HostFont.ios.kt +0 -78
  150. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/HostBackGesture.ios.kt +0 -45
  151. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +0 -32
  152. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/BackGesture.ios.kt +0 -38
  153. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/OsFontScale.ios.kt +0 -66
  154. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -217
  155. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/ReservedRegions.ios.kt +0 -94
  156. package/gradle/libs.versions.toml +0 -69
  157. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  158. package/gradle/wrapper/gradle-wrapper.properties +0 -8
  159. package/gradle.properties +0 -26
  160. package/gradlew +0 -252
  161. package/gradlew.bat +0 -94
  162. package/ios-demo/README.md +0 -120
  163. package/settings.gradle.kts +0 -64
@@ -1,127 +0,0 @@
1
- package vn.momo.kits.navigation.tracking
2
-
3
- import vn.momo.kits.application.MiniAppContext
4
- import vn.momo.maxapi.IMaxApi
5
- import kotlin.time.Clock
6
- import kotlin.time.ExperimentalTime
7
-
8
- class ScreenTrackingState {
9
- @OptIn(ExperimentalTime::class)
10
- var time: Long = Clock.System.now().toEpochMilliseconds()
11
- var releaseNavigated: Boolean = false
12
- var releaseLoad: Boolean = false
13
- var releaseInteraction: Boolean = false
14
- var previousScreenName: String? = null
15
- var action: String = "push"
16
- }
17
-
18
- object ScreenTracker {
19
-
20
- private var lastScreenName: String? = null
21
-
22
- fun trackScreenNavigated(
23
- maxApi: IMaxApi?,
24
- context: MiniAppContext?,
25
- screenName: String,
26
- action: String,
27
- state: ScreenTrackingState
28
- ) {
29
- if (state.releaseNavigated) return
30
-
31
- val previousScreen = lastScreenName
32
- lastScreenName = screenName
33
-
34
- maxApi?.track(
35
- eventName = "auto_screen_navigated",
36
- params = buildBaseParams(context, screenName).apply {
37
- put("pre_screen_name", previousScreen)
38
- put("state", "navigated")
39
- put("action", action)
40
- }
41
- )
42
-
43
- state.releaseNavigated = true
44
- state.previousScreenName = previousScreen
45
- }
46
-
47
- fun trackScreenDisplayed(
48
- maxApi: IMaxApi?,
49
- context: MiniAppContext?,
50
- screenName: String,
51
- duration: Long,
52
- state: ScreenTrackingState
53
- ) {
54
- if (state.releaseLoad) return
55
-
56
- maxApi?.track(
57
- eventName = "auto_screen_displayed",
58
- params = buildBaseParams(context, screenName).apply {
59
- put("state", "load")
60
- put("duration", duration)
61
- }
62
- )
63
-
64
- state.releaseLoad = true
65
- }
66
-
67
- fun trackScreenInteracted(
68
- maxApi: IMaxApi?,
69
- context: MiniAppContext?,
70
- screenName: String,
71
- duration: Long,
72
- totalDuration: Long,
73
- state: ScreenTrackingState
74
- ) {
75
- if (state.releaseInteraction) return
76
-
77
- maxApi?.track(
78
- eventName = "auto_screen_interacted",
79
- params = buildBaseParams(context, screenName).apply {
80
- put("state", "interaction")
81
- put("duration", duration)
82
- put("total_duration", totalDuration)
83
- }
84
- )
85
-
86
- state.releaseInteraction = true
87
- }
88
-
89
- private fun buildBaseParams(
90
- context: MiniAppContext?,
91
- screenName: String,
92
- componentName: String = "Screen"
93
- ): MutableMap<String, Any?> {
94
- return mutableMapOf(
95
- "app_id" to context?.appId,
96
- "feature_code" to context?.appCode,
97
- "screen_name" to screenName,
98
- "component_name" to componentName,
99
- "tracking_source" to 1
100
- )
101
- }
102
-
103
- fun trackPopupDisplayed(
104
- maxApi: IMaxApi?,
105
- context: MiniAppContext?,
106
- parentScreenName: String?
107
- ) {
108
- maxApi?.track(
109
- eventName = "auto_popup_displayed",
110
- params = mutableMapOf<String, Any?>(
111
- "screen_name" to parentScreenName,
112
- "tracking_source" to 1,
113
- "app_id" to context?.appId,
114
- "feature_code" to context?.appCode,
115
- "kits_version" to null,
116
- "component_name" to "Modal"
117
- )
118
- )
119
- }
120
-
121
- fun getLastScreenName(): String? = lastScreenName
122
-
123
- @Suppress("UNUSED")
124
- fun reset() {
125
- lastScreenName = null
126
- }
127
- }
@@ -1,12 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.State
5
-
6
- /** Fraction of container width, `null` when idle. Observe only — consuming would steal the
7
- * gesture from NavHost. Always `null` on Android. */
8
- @Composable
9
- expect fun rememberBackGestureProgress(): State<Float?>
10
-
11
- /** Android is a no-op: no host-owned recogniser to hand the gesture to. */
12
- expect fun reportFloatingArrowBack(shouldUse: Boolean)
@@ -1,91 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.foundation.Image
4
- import androidx.compose.foundation.background
5
- import androidx.compose.foundation.layout.Box
6
- import androidx.compose.foundation.layout.fillMaxSize
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.runtime.LaunchedEffect
9
- import androidx.compose.runtime.getValue
10
- import androidx.compose.runtime.rememberUpdatedState
11
- import androidx.compose.runtime.snapshotFlow
12
- import androidx.compose.ui.Modifier
13
- import androidx.compose.ui.graphics.Color
14
- import io.github.alexzhirkevich.compottie.ExperimentalCompottieApi
15
- import io.github.alexzhirkevich.compottie.LottieCompositionSpec
16
- import io.github.alexzhirkevich.compottie.animateLottieCompositionAsState
17
- import io.github.alexzhirkevich.compottie.dynamic.rememberLottieDynamicProperties
18
- import io.github.alexzhirkevich.compottie.rememberLottieComposition
19
- import io.github.alexzhirkevich.compottie.rememberLottiePainter
20
- import vn.momo.kits.utils.readJson
21
-
22
- @OptIn(ExperimentalCompottieApi::class)
23
- @Composable
24
- internal fun ComposeLottieAnimation(
25
- path: String,
26
- tintColor: Color?,
27
- bgColor: Color?,
28
- iterations: Int,
29
- isPlaying: Boolean,
30
- onEvent: ((String) -> Unit)?,
31
- modifier: Modifier,
32
- ) {
33
- val json = readJson(path)
34
-
35
- if (json.isEmpty()) {
36
- Box(modifier.background(bgColor ?: Color.Transparent))
37
- return
38
- }
39
-
40
- val composition by rememberLottieComposition(json) {
41
- LottieCompositionSpec.JsonString(json)
42
- }
43
-
44
- val dynamicProperties = if (tintColor != null) {
45
- rememberLottieDynamicProperties(tintColor) {
46
- shapeLayer("**") {
47
- fill("**") { color { tintColor } }
48
- stroke("**") { color { tintColor } }
49
- }
50
- }
51
- } else {
52
- null
53
- }
54
-
55
- val lottieState = animateLottieCompositionAsState(
56
- composition = composition,
57
- iterations = iterations,
58
- isPlaying = isPlaying,
59
- restartOnPlay = false,
60
- )
61
-
62
- val currentOnEvent by rememberUpdatedState(onEvent)
63
-
64
- LaunchedEffect(isPlaying) {
65
- currentOnEvent?.invoke(if (isPlaying) LottieEvent.Start else LottieEvent.Pause)
66
- }
67
-
68
- LaunchedEffect(lottieState) {
69
- var armed = false
70
- snapshotFlow { lottieState.isAtEnd }.collect { atEnd ->
71
- if (!atEnd) armed = true
72
- else if (armed) { armed = false; currentOnEvent?.invoke(LottieEvent.Finish) }
73
- }
74
- }
75
-
76
- Box(modifier.background(bgColor ?: Color.Transparent)) {
77
- Image(
78
- painter = rememberLottiePainter(
79
- composition = composition,
80
- progress = lottieState::value,
81
- dynamicProperties = dynamicProperties,
82
- enableExpressions = false,
83
- expressionEngineFactory = { _, _ ->
84
- error("Lottie JS expressions are disabled in MoMo kits")
85
- },
86
- ),
87
- contentDescription = null,
88
- modifier = Modifier.fillMaxSize(),
89
- )
90
- }
91
- }
@@ -1,9 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.runtime.Composable
4
-
5
- // Overrides LocalDensity.fontScale with the live OS Dynamic Type scale so text re-scales while a
6
- // screen is visible. Wrapped inside the containers so every screen is covered, not just callers of
7
- // the app-level wrappers.
8
- @Composable
9
- expect fun ProvideOsFontScale(content: @Composable () -> Unit)
@@ -1,74 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.ui.Modifier
5
- import androidx.compose.ui.graphics.Color
6
- import androidx.compose.ui.graphics.NativePaint
7
- import androidx.compose.ui.unit.Dp
8
- import vn.momo.kits.navigation.Navigator
9
-
10
- data class ScreenDimension(
11
- val width: Int,
12
- val height: Int,
13
- )
14
-
15
- expect fun getPlatformName(): String
16
-
17
- // iPhone idiom only; iPad windows and Android never get the iPhone / iPhone Duo layout.
18
- expect fun isPhoneIdiom(): Boolean
19
-
20
- @Composable
21
- expect fun getScreenDimensions(): ScreenDimension
22
-
23
- expect fun NativePaint.setMaskFilter(blurRadius: Float)
24
-
25
- @Composable
26
- expect fun getStatusBarHeight(): Dp
27
-
28
- @Composable
29
- expect fun BackHandler(enabled: Boolean, onBack: () -> Unit)
30
-
31
- @Suppress("ParamsComparedByRef")
32
- @Composable
33
- expect fun ProvideNavigationEventDispatcherOwner(navigator: Navigator, content: @Composable () -> Unit)
34
-
35
- @Composable
36
- expect fun getScreenHeight(): Dp
37
-
38
- sealed interface OSVersion {
39
- val value: Int
40
- data class Android(val sdk: Int) : OSVersion { override val value: Int get() = sdk }
41
- data class IOS(val major: Int) : OSVersion { override val value: Int get() = major }
42
-
43
- operator fun compareTo(other: Int): Int = value.compareTo(other)
44
- }
45
- expect fun getOSVersion(): OSVersion
46
-
47
- fun supportsImePadding(): Boolean = when (val v = getOSVersion()) {
48
- is OSVersion.Android -> v.sdk > 29
49
- is OSVersion.IOS -> true
50
- }
51
- const val LottieIterateForever: Int = Int.MAX_VALUE
52
-
53
- object LottieEvent {
54
- const val Start = "start"
55
- const val Pause = "pause"
56
- const val Finish = "finish"
57
- }
58
-
59
- @Composable
60
- expect fun LottieAnimation(
61
- path: String,
62
- tintColor: Color? = null,
63
- bgColor: Color? = null,
64
- placedAsOverlay: Boolean = false,
65
- iterations: Int = LottieIterateForever,
66
- isPlaying: Boolean = true,
67
- onEvent: ((String) -> Unit)? = null,
68
- modifier: Modifier = Modifier,
69
- useCompose: Boolean = false
70
- )
71
-
72
- expect fun NativePaint.setColor(
73
- color: Color = Color.Black
74
- )
@@ -1,13 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.Immutable
5
- import androidx.compose.ui.unit.Dp
6
-
7
- @Immutable
8
- internal data class ReservedRegion(val x: Dp, val y: Dp, val width: Dp, val height: Dp)
9
-
10
- // Regions the system occludes (iOS 27.1+), in the coordinates of the Compose root view: the
11
- // iPhone Duo camera, and the status bar cluster as it grows for a call or a Live Activity.
12
- @Composable
13
- internal expect fun rememberReservedRegions(): List<ReservedRegion>