@momo-kits/native-kits 0.168.1-beta.4-debug → 0.168.1-beta.4

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 (140) hide show
  1. package/package.json +1 -1
  2. package/build.gradle.kts +0 -13
  3. package/compose/build.gradle.kts +0 -197
  4. package/compose/build.gradle.kts.backup +0 -197
  5. package/compose/compose.podspec +0 -47
  6. package/compose/src/androidMain/kotlin/vn/momo/kits/const/HostFont.android.kt +0 -19
  7. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +0 -6
  8. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/BackGesture.android.kt +0 -12
  9. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/OsFontScale.android.kt +0 -7
  10. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -153
  11. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/ReservedRegions.android.kt +0 -6
  12. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +0 -124
  13. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -1071
  14. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Localize.kt +0 -269
  15. package/compose/src/commonMain/kotlin/vn/momo/kits/application/WidgetContainer.kt +0 -65
  16. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +0 -157
  17. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -81
  18. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -32
  19. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -338
  20. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -175
  21. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -357
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -115
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -89
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -128
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -209
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +0 -542
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +0 -49
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +0 -86
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -125
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -231
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -189
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -478
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -114
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -265
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -235
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -223
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -265
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -185
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -343
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +0 -108
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -56
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -41
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -84
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -40
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -361
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -108
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -308
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -59
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +0 -87
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +0 -21
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -90
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -330
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -220
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -473
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -122
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -207
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -92
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -560
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -86
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -125
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -207
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -501
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -176
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -182
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -193
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -236
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -180
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -325
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/const/HostFont.kt +0 -16
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitDesignSystem.kt +0 -18
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitFontScale.kt +0 -22
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -16
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -194
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -283
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -54
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -50
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/ScreenLayout.kt +0 -309
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -41
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -52
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -66
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +0 -104
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -48
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -338
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/HostBackGestureBridge.kt +0 -58
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -137
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -116
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -215
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -404
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -732
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackTransition.kt +0 -148
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/SwipeBackHaptic.kt +0 -40
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -233
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -217
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/DuoBarCompression.kt +0 -98
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/DuoTabBar.kt +0 -312
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -169
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -455
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -103
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderJourney.kt +0 -106
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderLocation.kt +0 -74
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -413
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -39
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -363
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HelpCenterRequest.kt +0 -37
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SideBar.kt +0 -192
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -133
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/ToolkitRequests.kt +0 -41
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -135
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/BackGesture.kt +0 -12
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -91
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/OsFontScale.kt +0 -9
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -74
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ReservedRegions.kt +0 -13
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -55
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +0 -15
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -118
  124. package/compose/src/commonTest/kotlin/vn/momo/kits/navigation/component/HelpCenterRequestTest.kt +0 -44
  125. package/compose/src/commonTest/kotlin/vn/momo/kits/navigation/component/ToolkitRequestsTest.kt +0 -62
  126. package/compose/src/iosMain/kotlin/vn/momo/kits/const/HostFont.ios.kt +0 -40
  127. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/HostBackGesture.ios.kt +0 -45
  128. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +0 -36
  129. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/BackGesture.ios.kt +0 -38
  130. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/OsFontScale.ios.kt +0 -66
  131. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -217
  132. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/ReservedRegions.ios.kt +0 -94
  133. package/gradle/libs.versions.toml +0 -76
  134. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  135. package/gradle/wrapper/gradle-wrapper.properties +0 -10
  136. package/gradle.properties +0 -26
  137. package/gradlew +0 -252
  138. package/gradlew.bat +0 -94
  139. package/ios-demo/README.md +0 -120
  140. package/settings.gradle.kts +0 -64
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/native-kits",
3
- "version": "0.168.1-beta.4-debug",
3
+ "version": "0.168.1-beta.4",
4
4
  "private": false,
5
5
  "dependeNavigationncies": {},
6
6
  "devDependencies": {},
package/build.gradle.kts DELETED
@@ -1,13 +0,0 @@
1
- plugins {
2
- // this is necessary to avoid the plugins to be loaded multiple times
3
- // in each subproject's classloader
4
- alias(libs.plugins.android.application) apply false
5
- // AI-GENERATED START: use the AGP 9 Kotlin Multiplatform Android library target
6
- alias(libs.plugins.android.kotlin.multiplatform.library) apply false
7
- // AI-GENERATED END: use the AGP 9 Kotlin Multiplatform Android library target
8
- alias(libs.plugins.compose) apply false
9
- alias(libs.plugins.kotlin.compose.compiler) apply false
10
- alias(libs.plugins.jetbrains.kotlin.multiplatform) apply false
11
- alias(libs.plugins.jetbrains.kotlin.serialization) apply false
12
- alias(libs.plugins.vanniktech.mavenPublish) apply false
13
- }
@@ -1,197 +0,0 @@
1
- // import com.vanniktech.maven.publish.JavadocJar
2
- // import com.vanniktech.maven.publish.KotlinMultiplatform
3
- import org.jetbrains.kotlin.gradle.dsl.JvmTarget
4
-
5
- plugins {
6
- alias(libs.plugins.jetbrains.kotlin.multiplatform)
7
- // AI-GENERATED START: use the AGP 9 Kotlin Multiplatform Android library target
8
- alias(libs.plugins.android.kotlin.multiplatform.library)
9
- // AI-GENERATED END: use the AGP 9 Kotlin Multiplatform Android library target
10
- alias(libs.plugins.compose)
11
- alias(libs.plugins.kotlin.compose.compiler)
12
- // alias(libs.plugins.vanniktech.mavenPublish)
13
- id(libs.plugins.jetbrains.kotlin.cocoapods.get().pluginId)
14
- kotlin("plugin.serialization")
15
- }
16
-
17
- val gitlabName: String = findProperty("name") as String? ?: ""
18
- val gitlabRepo: String = findProperty("repo") as String? ?: ""
19
- val gitlabUrl: String = findProperty("url") as String? ?: ""
20
- val gitlabGroup: String = findProperty("group") as String? ?: ""
21
- val gitlabArtifactId: String = findProperty("artifact.id") as String? ?: ""
22
- val gitlabVersion: String = findProperty("version") as String? ?: ""
23
- val gitlabUser: String = findProperty("gitlab.user") as String? ?: ""
24
- val gitlabKey: String = findProperty("gitlab.password") as String? ?: ""
25
-
26
- kotlin {
27
- // AI-GENERATED START: configure the AGP 9 Android target and host tests
28
- android {
29
- namespace = "vn.momo.kits.kits"
30
- compileSdk = 36
31
- minSdk = 24
32
- androidResources.enable = true
33
- withHostTest {}
34
- compilerOptions {
35
- jvmTarget.set(JvmTarget.JVM_17)
36
- }
37
- }
38
- // AI-GENERATED END: configure the AGP 9 Android target and host tests
39
-
40
- val fwName = gitlabArtifactId
41
- val iosTargets = listOf(iosArm64(), iosSimulatorArm64())
42
- iosTargets.forEach {
43
- it.binaries.framework {
44
- baseName = fwName
45
- binaryOption("bundleId", "$gitlabGroup.$fwName")
46
- isStatic = true
47
- }
48
- }
49
-
50
- cocoapods {
51
- version = "0.168.1-beta.4-debug"
52
- summary = "IOS Shared module"
53
- homepage = "https://momo.vn"
54
- ios.deploymentTarget = "15.0"
55
-
56
- framework {
57
- baseName = fwName
58
- isStatic = true
59
- }
60
-
61
- pod("lottie-ios") {
62
- moduleName = "Lottie"
63
- version = "4.4.3"
64
- extraOpts += listOf("-compiler-option", "-fmodules")
65
- }
66
- }
67
-
68
- sourceSets {
69
- all {
70
- languageSettings.optIn("vn.momo.kits.modifier.InternalApi")
71
- }
72
- commonMain.dependencies {
73
- implementation(compose.runtime)
74
- implementation(compose.material)
75
- implementation(compose.material3)
76
- implementation(compose.components.resources)
77
- implementation(libs.compose.ui.backhandler)
78
- implementation(libs.ktor.client.core)
79
- implementation(libs.jetbrains.coroutines.core)
80
- implementation(libs.navigation.multiplatform)
81
- implementation(libs.coil.multiplatform.compose)
82
- implementation(libs.coil.multiplatform.core)
83
- implementation(libs.coil.multiplatform.network.ktor)
84
- implementation(libs.jetbrains.serialization.json)
85
- implementation(libs.kotlinx.datetime)
86
- api(libs.native.max.api)
87
- implementation(libs.compottie)
88
- implementation(libs.gif.image)
89
- }
90
- androidMain.dependencies {
91
- implementation(libs.ktor.client.okhttp)
92
- implementation(libs.airbnb.lottie)
93
- }
94
- iosMain.dependencies {
95
- implementation(libs.ktor.client.darwin)
96
- }
97
- // AI-GENERATED START: verify toolkit request ownership
98
- commonTest.dependencies {
99
- implementation(kotlin("test"))
100
- }
101
- // AI-GENERATED END: verify toolkit request ownership
102
- }
103
- }
104
-
105
- repositories {
106
- google {
107
- mavenContent {
108
- includeGroupAndSubgroups("androidx")
109
- includeGroupAndSubgroups("com.android")
110
- includeGroupAndSubgroups("com.google")
111
- }
112
- }
113
- mavenCentral()
114
- maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
115
- maven {
116
- url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
117
- credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
118
- }
119
- maven {
120
- url = uri("https://artifacts.mservice.com.vn/repository/maven-momo-app/")
121
- credentials {
122
- username = "viewer"
123
- password = "viewer"
124
- }
125
- isAllowInsecureProtocol = true
126
- }
127
- }
128
-
129
- compose {
130
- resources {
131
- publicResClass = true
132
- packageOfResClass = "vn.momo.uikits.resources"
133
- generateResClass = always
134
- }
135
- }
136
-
137
- // publishing {
138
- // repositories {
139
- // maven {
140
- // name = "${gitlabRepo}Packages"
141
- // credentials {
142
- // username = gitlabUser
143
- // password = gitlabKey
144
- // }
145
- // url = uri("$gitlabUrl")
146
- // }
147
- // }
148
- // }
149
-
150
- // mavenPublishing {
151
- // configure(
152
- // KotlinMultiplatform(
153
- // javadocJar = JavadocJar.Empty(),
154
- // // AI-GENERATED START: the AGP KMP target publishes a single Android variant
155
- // sourcesJar = true,
156
- // // AI-GENERATED END: the AGP KMP target publishes a single Android variant
157
- // )
158
- // )
159
- //
160
- // repositories {
161
- // maven {
162
- // name = "${gitlabRepo}Packages"
163
- // credentials { username = gitlabUser; password = gitlabKey }
164
- // url = uri("$gitlabUrl")
165
- // }
166
- // }
167
- //
168
- // coordinates(gitlabGroup.toString(), gitlabArtifactId, gitlabVersion.toString())
169
- //
170
- // pom {
171
- // name = "$gitlabName Klib"
172
- // description = "$gitlabName"
173
- // url = "https://gitlab.mservice.com.vn"
174
- // licenses {
175
- // license {
176
- // name = "The Apache License, Version 2.0"
177
- // url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
178
- // distribution = "https://www.apache.org/licenses/LICENSE-2.0.txt"
179
- // }
180
- // }
181
- // developers {
182
- // developer {
183
- // id = "kotlin-hands-on"
184
- // name = "Kotlin Developer Advocate"
185
- // url = "https://github.com/kotlin-hands-on/"
186
- // }
187
- // }
188
- // }
189
- // }
190
-
191
- // Xcode 27 rejects iOS < 15; KGP's synthetic Podfile only raises pods to 12 (KT-57741), leaving lottie-ios at 13.
192
- tasks.named("podGenIos") {
193
- doLast {
194
- val podfile = layout.buildDirectory.file("cocoapods/synthetic/ios/Podfile").get().asFile
195
- podfile.writeText(podfile.readText().replace("major < 12 ||", "major < 15 ||").replace("#{12}", "#{15}"))
196
- }
197
- }
@@ -1,197 +0,0 @@
1
- import com.vanniktech.maven.publish.JavadocJar
2
- import com.vanniktech.maven.publish.KotlinMultiplatform
3
- import org.jetbrains.kotlin.gradle.dsl.JvmTarget
4
-
5
- plugins {
6
- alias(libs.plugins.jetbrains.kotlin.multiplatform)
7
- // AI-GENERATED START: use the AGP 9 Kotlin Multiplatform Android library target
8
- alias(libs.plugins.android.kotlin.multiplatform.library)
9
- // AI-GENERATED END: use the AGP 9 Kotlin Multiplatform Android library target
10
- alias(libs.plugins.compose)
11
- alias(libs.plugins.kotlin.compose.compiler)
12
- alias(libs.plugins.vanniktech.mavenPublish)
13
- id(libs.plugins.jetbrains.kotlin.cocoapods.get().pluginId)
14
- kotlin("plugin.serialization")
15
- }
16
-
17
- val gitlabName: String = findProperty("name") as String? ?: ""
18
- val gitlabRepo: String = findProperty("repo") as String? ?: ""
19
- val gitlabUrl: String = findProperty("url") as String? ?: ""
20
- val gitlabGroup: String = findProperty("group") as String? ?: ""
21
- val gitlabArtifactId: String = findProperty("artifact.id") as String? ?: ""
22
- val gitlabVersion: String = findProperty("version") as String? ?: ""
23
- val gitlabUser: String = findProperty("gitlab.user") as String? ?: ""
24
- val gitlabKey: String = findProperty("gitlab.password") as String? ?: ""
25
-
26
- kotlin {
27
- // AI-GENERATED START: configure the AGP 9 Android target and host tests
28
- android {
29
- namespace = "$gitlabGroup.$gitlabArtifactId"
30
- compileSdk = libs.versions.android.compileSdk.get().toInt()
31
- minSdk = libs.versions.android.minSdk.get().toInt()
32
- androidResources.enable = true
33
- withHostTest {}
34
- compilerOptions {
35
- jvmTarget.set(JvmTarget.JVM_17)
36
- }
37
- }
38
- // AI-GENERATED END: configure the AGP 9 Android target and host tests
39
-
40
- val fwName = gitlabArtifactId
41
- val iosTargets = listOf(iosArm64(), iosSimulatorArm64())
42
- iosTargets.forEach {
43
- it.binaries.framework {
44
- baseName = fwName
45
- binaryOption("bundleId", "$gitlabGroup.$fwName")
46
- isStatic = true
47
- }
48
- }
49
-
50
- cocoapods {
51
- version = gitlabVersion
52
- summary = "IOS Shared module"
53
- homepage = "https://momo.vn"
54
- ios.deploymentTarget = "15.0"
55
-
56
- framework {
57
- baseName = fwName
58
- isStatic = true
59
- }
60
-
61
- pod("lottie-ios") {
62
- moduleName = "Lottie"
63
- version = "4.4.3"
64
- extraOpts += listOf("-compiler-option", "-fmodules")
65
- }
66
- }
67
-
68
- sourceSets {
69
- all {
70
- languageSettings.optIn("vn.momo.kits.modifier.InternalApi")
71
- }
72
- commonMain.dependencies {
73
- implementation(compose.runtime)
74
- implementation(compose.material)
75
- implementation(compose.material3)
76
- implementation(compose.components.resources)
77
- implementation(libs.compose.ui.backhandler)
78
- implementation(libs.ktor.client.core)
79
- implementation(libs.jetbrains.coroutines.core)
80
- implementation(libs.navigation.multiplatform)
81
- implementation(libs.coil.multiplatform.compose)
82
- implementation(libs.coil.multiplatform.core)
83
- implementation(libs.coil.multiplatform.network.ktor)
84
- implementation(libs.jetbrains.serialization.json)
85
- implementation(libs.kotlinx.datetime)
86
- api(libs.native.max.api)
87
- implementation(libs.compottie)
88
- implementation(libs.gif.image)
89
- }
90
- androidMain.dependencies {
91
- implementation(libs.ktor.client.okhttp)
92
- implementation(libs.airbnb.lottie)
93
- }
94
- iosMain.dependencies {
95
- implementation(libs.ktor.client.darwin)
96
- }
97
- // AI-GENERATED START: verify toolkit request ownership
98
- commonTest.dependencies {
99
- implementation(kotlin("test"))
100
- }
101
- // AI-GENERATED END: verify toolkit request ownership
102
- }
103
- }
104
-
105
- repositories {
106
- google {
107
- mavenContent {
108
- includeGroupAndSubgroups("androidx")
109
- includeGroupAndSubgroups("com.android")
110
- includeGroupAndSubgroups("com.google")
111
- }
112
- }
113
- mavenCentral()
114
- maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
115
- maven {
116
- url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
117
- credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
118
- }
119
- maven {
120
- url = uri("https://artifacts.mservice.com.vn/repository/maven-momo-app/")
121
- credentials {
122
- username = "viewer"
123
- password = "viewer"
124
- }
125
- isAllowInsecureProtocol = true
126
- }
127
- }
128
-
129
- compose {
130
- resources {
131
- publicResClass = true
132
- packageOfResClass = "vn.momo.uikits.resources"
133
- generateResClass = always
134
- }
135
- }
136
-
137
- publishing {
138
- repositories {
139
- maven {
140
- name = "${gitlabRepo}Packages"
141
- credentials {
142
- username = gitlabUser
143
- password = gitlabKey
144
- }
145
- url = uri("$gitlabUrl")
146
- }
147
- }
148
- }
149
-
150
- mavenPublishing {
151
- configure(
152
- KotlinMultiplatform(
153
- javadocJar = JavadocJar.Empty(),
154
- // AI-GENERATED START: the AGP KMP target publishes a single Android variant
155
- sourcesJar = true,
156
- // AI-GENERATED END: the AGP KMP target publishes a single Android variant
157
- )
158
- )
159
-
160
- repositories {
161
- maven {
162
- name = "${gitlabRepo}Packages"
163
- credentials { username = gitlabUser; password = gitlabKey }
164
- url = uri("$gitlabUrl")
165
- }
166
- }
167
-
168
- coordinates(gitlabGroup.toString(), gitlabArtifactId, gitlabVersion.toString())
169
-
170
- pom {
171
- name = "$gitlabName Klib"
172
- description = "$gitlabName"
173
- url = "https://gitlab.mservice.com.vn"
174
- licenses {
175
- license {
176
- name = "The Apache License, Version 2.0"
177
- url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
178
- distribution = "https://www.apache.org/licenses/LICENSE-2.0.txt"
179
- }
180
- }
181
- developers {
182
- developer {
183
- id = "kotlin-hands-on"
184
- name = "Kotlin Developer Advocate"
185
- url = "https://github.com/kotlin-hands-on/"
186
- }
187
- }
188
- }
189
- }
190
-
191
- // Xcode 27 rejects iOS < 15; KGP's synthetic Podfile only raises pods to 12 (KT-57741), leaving lottie-ios at 13.
192
- tasks.named("podGenIos") {
193
- doLast {
194
- val podfile = layout.buildDirectory.file("cocoapods/synthetic/ios/Podfile").get().asFile
195
- podfile.writeText(podfile.readText().replace("major < 12 ||", "major < 15 ||").replace("#{12}", "#{15}"))
196
- }
197
- }
@@ -1,47 +0,0 @@
1
- Pod::Spec.new do |spec|
2
- spec.name = 'compose'
3
- spec.version = '0.167.1-duo.15-debug'
4
- spec.homepage = 'https://momo.vn'
5
- spec.source = { :http=> ''}
6
- spec.authors = ''
7
- spec.license = ''
8
- spec.summary = 'IOS Shared module'
9
- spec.vendored_frameworks = 'build/cocoapods/framework/kits.framework'
10
- spec.libraries = 'c++'
11
- spec.ios.deployment_target = '15.0'
12
- spec.dependency 'lottie-ios', '4.4.3'
13
- if !Dir.exist?('build/cocoapods/framework/kits.framework') || Dir.empty?('build/cocoapods/framework/kits.framework')
14
- raise "
15
- Kotlin framework 'kits' doesn't exist yet, so a proper Xcode project can't be generated.
16
- 'pod install' should be executed after running ':generateDummyFramework' Gradle task:
17
- ./gradlew :compose:generateDummyFramework
18
- Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)"
19
- end
20
- spec.xcconfig = {
21
- 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO',
22
- }
23
- spec.pod_target_xcconfig = {
24
- 'KOTLIN_PROJECT_PATH' => ':compose',
25
- 'PRODUCT_MODULE_NAME' => 'kits',
26
- }
27
- spec.script_phases = [
28
- {
29
- :name => 'Build compose',
30
- :execution_position => :before_compile,
31
- :shell_path => '/bin/sh',
32
- :script => <<-SCRIPT
33
- if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
34
- echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
35
- exit 0
36
- fi
37
- set -ev
38
- REPO_ROOT="$PODS_TARGET_SRCROOT"
39
- "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
40
- -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
41
- -Pkotlin.native.cocoapods.archs="$ARCHS" \
42
- -Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
43
- SCRIPT
44
- }
45
- ]
46
- spec.resources = ['build/compose/cocoapods/compose-resources']
47
- end
@@ -1,19 +0,0 @@
1
- package vn.momo.kits.const
2
-
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.remember
5
- import androidx.compose.ui.platform.LocalContext
6
- import androidx.compose.ui.text.font.Font
7
- import androidx.compose.ui.text.font.FontFamily
8
-
9
- @Composable
10
- internal actual fun hostFontFamily(fileName: String): FontFamily? {
11
- val assets = LocalContext.current.applicationContext.assets
12
- return remember(fileName) {
13
- val path = "fonts/$fileName"
14
- // AssetManager.open ném IOException nếu thiếu file; Font(path, assetManager) thì lỗi
15
- // muộn lúc render nên phải kiểm tra tồn tại trước.
16
- val exists = runCatching { assets.open(path).close() }.isSuccess
17
- if (exists) FontFamily(Font(path = path, assetManager = assets)) else null
18
- }
19
- }
@@ -1,6 +0,0 @@
1
- package vn.momo.kits.navigation
2
-
3
- import androidx.compose.runtime.Composable
4
-
5
- @Composable
6
- internal actual fun RegisterScrollToTop(callback: (() -> Unit)?) = Unit
@@ -1,12 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.State
5
- import androidx.compose.runtime.mutableStateOf
6
- import androidx.compose.runtime.remember
7
-
8
- // No passive observer at androidx.activity 1.10.x; a second callback would steal the gesture.
9
- @Composable
10
- actual fun rememberBackGestureProgress(): State<Float?> = remember { mutableStateOf(null) }
11
-
12
- actual fun reportFloatingArrowBack(shouldUse: Boolean) = Unit
@@ -1,7 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.runtime.Composable
4
-
5
- // Android's LocalDensity.fontScale already tracks Configuration.fontScale live.
6
- @Composable
7
- actual fun ProvideOsFontScale(content: @Composable () -> Unit) = content()
@@ -1,153 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import android.annotation.SuppressLint
4
- import android.content.res.Resources
5
- import android.graphics.BlurMaskFilter
6
- import android.graphics.PorterDuff
7
- import android.graphics.PorterDuffColorFilter
8
- import android.os.Build
9
- import androidx.compose.foundation.layout.Box
10
- import androidx.compose.runtime.Composable
11
- import androidx.compose.runtime.LaunchedEffect
12
- import androidx.compose.runtime.getValue
13
- import androidx.compose.runtime.rememberUpdatedState
14
- import androidx.compose.runtime.snapshotFlow
15
- import androidx.compose.ui.Modifier
16
- import androidx.compose.ui.graphics.Color
17
- import androidx.compose.ui.graphics.NativePaint
18
- import androidx.compose.ui.graphics.toArgb
19
- import androidx.compose.ui.platform.LocalConfiguration
20
- import androidx.compose.ui.semantics.contentDescription
21
- import androidx.compose.ui.semantics.semantics
22
- import androidx.compose.ui.unit.Dp
23
- import androidx.compose.ui.unit.dp
24
- import com.airbnb.lottie.LottieProperty
25
- import com.airbnb.lottie.compose.LottieAnimation
26
- import com.airbnb.lottie.compose.LottieCompositionSpec
27
- import com.airbnb.lottie.compose.animateLottieCompositionAsState
28
- import com.airbnb.lottie.compose.rememberLottieComposition
29
- import com.airbnb.lottie.compose.rememberLottieDynamicProperties
30
- import com.airbnb.lottie.compose.rememberLottieDynamicProperty
31
- import vn.momo.kits.const.AppNavigationBar
32
- import vn.momo.kits.const.AppStatusBar
33
- import vn.momo.kits.navigation.Navigator
34
- import vn.momo.kits.utils.readJson
35
- import androidx.activity.compose.BackHandler as AndroidBackHandler
36
-
37
- actual fun getPlatformName(): String = "Android"
38
-
39
- actual fun isPhoneIdiom(): Boolean = false
40
-
41
- @Composable
42
- actual fun getScreenDimensions(): ScreenDimension {
43
- val config = LocalConfiguration.current
44
- return ScreenDimension(
45
- config.screenWidthDp, config.screenHeightDp
46
- )
47
- }
48
-
49
- actual fun NativePaint.setMaskFilter(blurRadius: Float) {
50
- this.maskFilter = BlurMaskFilter(blurRadius, BlurMaskFilter.Blur.NORMAL)
51
- }
52
-
53
- @SuppressLint("InternalInsetResource")
54
- @Composable
55
- actual fun getStatusBarHeight(): Dp {
56
- val resourceId = Resources.getSystem().getIdentifier(
57
- "status_bar_height",
58
- "dimen",
59
- "android"
60
- )
61
- return if(resourceId > 0) Resources.getSystem().getDimensionPixelSize(resourceId).dp else 0.dp
62
- }
63
-
64
- @Composable
65
- actual fun BackHandler(enabled: Boolean, onBack: () -> Unit) {
66
- AndroidBackHandler(enabled = enabled, onBack = onBack)
67
- }
68
-
69
- @Composable
70
- actual fun ProvideNavigationEventDispatcherOwner(navigator: Navigator, content: @Composable () -> Unit) {
71
- content()
72
- }
73
-
74
- @Composable
75
- actual fun getScreenHeight(): Dp {
76
- return getScreenDimensions().height.dp + if (getOSVersion() >= 35) 0.dp else AppStatusBar.current + AppNavigationBar.current
77
- }
78
-
79
- actual fun getOSVersion(): OSVersion = OSVersion.Android(sdk = Build.VERSION.SDK_INT)
80
-
81
- @Composable
82
- actual fun LottieAnimation(
83
- path: String,
84
- tintColor: Color?,
85
- bgColor: Color?,
86
- placedAsOverlay: Boolean,
87
- iterations: Int,
88
- isPlaying: Boolean,
89
- onEvent: ((String) -> Unit)?,
90
- modifier: Modifier,
91
- useCompose: Boolean
92
- ) {
93
- if (useCompose) {
94
- ComposeLottieAnimation(path, tintColor, bgColor, iterations, isPlaying, onEvent, modifier)
95
- return
96
- }
97
-
98
- val json = readJson(path)
99
-
100
- if (json.isEmpty()) {
101
- Box(modifier)
102
- return
103
- }
104
-
105
- val composition by rememberLottieComposition(
106
- LottieCompositionSpec.JsonString(json)
107
- )
108
-
109
- val colorFilter = PorterDuffColorFilter(
110
- tintColor?.toArgb() ?: Color.White.toArgb(),
111
- PorterDuff.Mode.SRC_ATOP
112
- )
113
-
114
- val dynamicProperties = rememberLottieDynamicProperties(
115
- rememberLottieDynamicProperty(
116
- property = LottieProperty.COLOR_FILTER,
117
- value = colorFilter,
118
- keyPath = arrayOf("**")
119
- )
120
- )
121
-
122
- val lottieState = animateLottieCompositionAsState(
123
- composition = composition,
124
- iterations = iterations,
125
- isPlaying = isPlaying,
126
- restartOnPlay = false,
127
- )
128
-
129
- val currentOnEvent by rememberUpdatedState(onEvent)
130
-
131
- LaunchedEffect(isPlaying) {
132
- currentOnEvent?.invoke(if (isPlaying) LottieEvent.Start else LottieEvent.Pause)
133
- }
134
-
135
- LaunchedEffect(lottieState) {
136
- var armed = false
137
- snapshotFlow { lottieState.isAtEnd }.collect { atEnd ->
138
- if (!atEnd) armed = true
139
- else if (armed) { armed = false; currentOnEvent?.invoke(LottieEvent.Finish) }
140
- }
141
- }
142
-
143
- LottieAnimation(
144
- composition = composition,
145
- progress = { lottieState.progress },
146
- dynamicProperties = if (tintColor != null) dynamicProperties else null,
147
- modifier = modifier
148
- )
149
- }
150
-
151
- actual fun NativePaint.setColor(color: Color){
152
- this.color = color.toArgb()
153
- }
@@ -1,6 +0,0 @@
1
- package vn.momo.kits.platform
2
-
3
- import androidx.compose.runtime.Composable
4
-
5
- @Composable
6
- internal actual fun rememberReservedRegions(): List<ReservedRegion> = emptyList()