@momo-kits/native-kits 0.152.4-scale.4 → 0.152.5-klib.1

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 (117) hide show
  1. package/README.md +175 -5
  2. package/ios/native-kits.podspec +18 -16
  3. package/package.json +2 -4
  4. package/CODE_OF_CONDUCT.md +0 -133
  5. package/CONTRIBUTING.md +0 -114
  6. package/LICENSE +0 -20
  7. package/build.gradle.kts +0 -32
  8. package/compose/MoMoComposeKits.podspec +0 -54
  9. package/compose/build.gradle.kts +0 -149
  10. package/compose/src/androidMain/AndroidManifest.xml +0 -2
  11. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -105
  12. package/compose/src/commonMain/composeResources/files/lottie_circle_loader.json +0 -1
  13. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  14. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  15. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  16. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  17. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  18. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  19. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  20. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  21. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  22. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  23. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  24. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  25. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  26. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +0 -57
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -201
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -222
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -48
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +0 -86
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +0 -76
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +0 -76
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +0 -308
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +0 -33
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -715
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -214
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -404
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +0 -69
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -78
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -27
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -334
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -345
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -90
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -133
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +0 -543
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +0 -23
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +0 -69
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -143
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -179
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -111
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -395
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -164
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -234
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -226
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -227
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -241
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -235
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -364
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -50
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -34
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -85
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -33
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -338
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -95
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -64
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -89
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -91
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -86
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -91
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -208
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -172
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -199
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -237
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -191
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -306
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -13
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -189
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -293
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -2
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -35
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -2
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -59
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -68
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -49
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -232
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -111
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -94
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -159
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -302
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScaleSizeScope.kt +0 -22
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -483
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -169
  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/component/FloatingButton.kt +0 -180
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -251
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -80
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -306
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -31
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -385
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -125
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -38
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -62
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -88
  111. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -144
  112. package/gradle.properties +0 -19
  113. package/gradlew +0 -240
  114. package/gradlew.bat +0 -91
  115. package/ios/Theme.md +0 -18
  116. package/local.properties +0 -8
  117. package/settings.gradle.kts +0 -25
@@ -1,308 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.foundation.border
5
- import androidx.compose.foundation.clickable
6
- import androidx.compose.foundation.layout.Arrangement
7
- import androidx.compose.foundation.layout.Box
8
- import androidx.compose.foundation.layout.Row
9
- import androidx.compose.foundation.layout.height
10
- import androidx.compose.foundation.layout.offset
11
- import androidx.compose.foundation.layout.padding
12
- import androidx.compose.foundation.layout.size
13
- import androidx.compose.foundation.layout.width
14
- import androidx.compose.foundation.shape.CircleShape
15
- import androidx.compose.foundation.shape.RoundedCornerShape
16
- import androidx.compose.runtime.Composable
17
- import androidx.compose.runtime.Stable
18
- import androidx.compose.runtime.getValue
19
- import androidx.compose.runtime.mutableStateOf
20
- import androidx.compose.runtime.remember
21
- import androidx.compose.runtime.setValue
22
- import androidx.compose.ui.Alignment
23
- import androidx.compose.ui.Modifier
24
- import androidx.compose.ui.draw.clip
25
- import androidx.compose.ui.graphics.Color
26
- import androidx.compose.ui.unit.dp
27
- import kotlinx.serialization.json.Json
28
- import kotlinx.serialization.json.jsonObject
29
- import kotlinx.serialization.json.jsonPrimitive
30
- import vn.momo.kits.components.BadgeDot
31
- import vn.momo.kits.components.DotSize
32
- import vn.momo.kits.components.Icon
33
- import vn.momo.kits.const.AppTheme
34
- import vn.momo.kits.const.Colors
35
-
36
- @Stable
37
- data class HeaderRightData(
38
- val useShortcut: Boolean = false,
39
- val useMore: Boolean = false,
40
- val useSystemTools: Boolean = true,
41
- val tools: List<ToolGroup> = emptyList(),
42
- val toolCallback: ((String) -> Unit)? = { _ -> }
43
- )
44
-
45
- data class Tool(
46
- val key: String,
47
- val icon: String,
48
- val showBadge: Boolean = false,
49
- val name: Map<String, String> = emptyMap(),
50
- val showRightIcon: Boolean = true,
51
- ) {
52
- fun toMap(): Map<String, Any> {
53
- return mapOf(
54
- "key" to key,
55
- "icon" to icon,
56
- "showBadge" to showBadge,
57
- "name" to name,
58
- "showRightIcon" to showRightIcon
59
- )
60
- }
61
- }
62
-
63
- data class ToolGroup(
64
- val title: Map<String, String> = emptyMap(),
65
- val items: List<Tool>
66
- ) {
67
- fun toMap(): Map<String, Any> {
68
- return mapOf(
69
- "title" to title,
70
- "items" to items.map { it.toMap() }
71
- )
72
- }
73
- }
74
-
75
- data class NavigationButtonConfig(
76
- val icon: String,
77
- val onPress: () -> Unit
78
- )
79
-
80
- object Spacing {
81
- val M = 16.dp
82
- val S = 8.dp
83
- val XXS = 2.dp
84
- }
85
-
86
- @Deprecated("Use vn.momo.kits.navigation.component.HeaderRight instead", ReplaceWith("vn.momo.kits.navigation.component.HeaderRight"))
87
- @Composable
88
- fun HeaderRight(
89
- headerRight: HeaderRightData? = null,
90
- opacity: Float = 1f,
91
- animatedHeader: AnimatedHeader? = null,
92
- tintColor: Color? = null,
93
- ) {
94
- Row(
95
- verticalAlignment = Alignment.CenterVertically,
96
- ) {
97
- ToolkitHeaderRight(headerRight = headerRight, opacity = opacity, animatedHeader = animatedHeader, tintColor = tintColor)
98
- }
99
- }
100
-
101
- private fun getNavigationButtonConfig(
102
- headerRight: HeaderRightData? = null,
103
- isFavorite: Boolean = false,
104
- onPressShortcut: () -> Unit,
105
- onPressMore: () -> Unit
106
- ): NavigationButtonConfig {
107
- val totalTools = headerRight?.tools?.sumOf { it.items.size } ?: 0
108
- var icon = if (isFavorite) "pin_star_checked" else "pin_star"
109
- var onClickHandler = onPressShortcut
110
- if (totalTools > 1 || headerRight?.useMore == true) {
111
- icon = "navigation_more_icon"
112
- onClickHandler = onPressMore
113
- } else if (totalTools == 1 && !headerRight?.tools.isNullOrEmpty()) {
114
- val singleTool = headerRight?.tools?.first()?.items?.firstOrNull()
115
- if (singleTool != null) {
116
- icon = singleTool.icon
117
- onClickHandler = {
118
- headerRight.toolCallback?.invoke(singleTool.key)
119
- }
120
- }
121
- }
122
- return NavigationButtonConfig(icon, onClickHandler)
123
- }
124
-
125
- @Composable
126
- private fun ToolkitHeaderRight(
127
- headerRight: HeaderRightData? = null,
128
- opacity: Float = 1f,
129
- animatedHeader: AnimatedHeader? = null,
130
- tintColor: Color? = null
131
- ) {
132
- var isFavorite by remember { mutableStateOf(false) }
133
- val isLoading by remember { mutableStateOf(false) }
134
- val api = PlatformApi.current as? ComposeApi
135
- val context = ApplicationContext.current
136
-
137
- fun onPressShortcut() {
138
- api?.request("onToolAction", mapOf("item" to mapOf("key" to "onFavorite"))) {
139
- isFavorite = !isFavorite
140
- }
141
- }
142
-
143
- fun onPressHelpCenter() {
144
- val paramMap = mapOf(
145
- "appId" to context?.appId,
146
- "code" to context?.appCode,
147
- "name" to context?.appName,
148
- "icon" to context?.appIcon,
149
- "description" to context?.description
150
- )
151
- api?.request("showHelpCenter", paramMap) {
152
-
153
- }
154
- }
155
-
156
- fun onPressClose() {
157
- api?.request("dismissAll", "", { _ -> })
158
- }
159
-
160
- fun onPressMore() {
161
- api?.request(
162
- "showTools",
163
- mapOf(
164
- "useSystemTools" to headerRight?.useSystemTools,
165
- "tools" to headerRight?.tools?.map { it.toMap() },
166
- "context" to mapOf(
167
- "appId" to context?.appId,
168
- "code" to context?.appCode,
169
- "name" to context?.appName,
170
- "icon" to context?.appIcon,
171
- "description" to context?.description,
172
- "support" to context?.support,
173
- "toolkitConfig" to context?.toolkitConfig,
174
- "providerId" to context?.providerId,
175
- "permissions" to context?.permissions
176
- )
177
- )
178
- ) { response ->
179
- try {
180
- val json = Json.parseToJsonElement(response).jsonObject
181
- val toolResponse = json["response"]?.jsonPrimitive?.content
182
- if (toolResponse != null) {
183
- headerRight?.toolCallback?.invoke(toolResponse)
184
- }
185
- } catch (e: Exception) {
186
- println("Error parsing response: $e")
187
- }
188
- }
189
- }
190
-
191
- val navButtonConfig = getNavigationButtonConfig(
192
- headerRight,
193
- isFavorite,
194
- ::onPressShortcut,
195
- ::onPressMore
196
- )
197
-
198
- val showBadge = headerRight?.tools?.any { group ->
199
- group.items.any { it.showBadge }
200
- }
201
-
202
- val toolkitWidth = if (context !== null) 65.dp else 28.dp
203
-
204
- var isShowShortcut = headerRight?.useShortcut == true
205
-
206
- if (headerRight?.useMore == true && context == null) {
207
- isShowShortcut = false
208
- }
209
-
210
- val color = getHeaderColor(animatedHeader, opacity, tintColor, AppTheme.current.colors.text.default)
211
- val tintIconColor = color.tintIconColor
212
- val backgroundButton = color.backgroundButton
213
- val borderColor = color.borderColor
214
-
215
- Row(
216
- verticalAlignment = Alignment.CenterVertically
217
- ) {
218
- if (isShowShortcut) {
219
- NavigationButton(
220
- disabled = isLoading,
221
- icon = navButtonConfig.icon,
222
- showBadge = showBadge,
223
- onClick = navButtonConfig.onPress,
224
- tintColor = tintIconColor
225
- )
226
- }
227
- Row(
228
- verticalAlignment = Alignment.CenterVertically,
229
- horizontalArrangement = Arrangement.Center,
230
- modifier = Modifier
231
- .padding(start = Spacing.S)
232
- .border(0.2.dp, borderColor, shape = RoundedCornerShape(14.dp))
233
- .width(toolkitWidth)
234
- .height(28.dp)
235
- .clip(shape = RoundedCornerShape(14.dp))
236
- .background(backgroundButton)
237
- ) {
238
- if (context != null) {
239
- Icon(
240
- source = "help_center",
241
- size = 20.dp,
242
- color = tintIconColor,
243
- modifier = Modifier.padding(4.dp).clickable {
244
- onPressHelpCenter()
245
- })
246
- Box(
247
- modifier = Modifier
248
- .width(0.5.dp)
249
- .height(12.dp)
250
- .background(tintColor ?: Colors.black_20)
251
- )
252
- }
253
-
254
- Icon(
255
- source = "16_basic_home",
256
- size = 20.dp,
257
- color = tintIconColor,
258
- modifier = Modifier.padding(4.dp).clickable { onPressClose() }
259
- )
260
- }
261
- }
262
- }
263
-
264
- @Deprecated("Use vn.momo.kits.navigation.component instead", ReplaceWith("vn.momo.kits.navigation.component"))
265
- @Composable
266
- fun NavigationButton(
267
- disabled: Boolean,
268
- icon: String,
269
- showBadge: Boolean? = false,
270
- onClick: () -> Unit,
271
- tintColor: Color?
272
- ) {
273
- val backgroundButton = if (tintColor == Colors.black_01) Colors.black_20.copy(alpha = 0.6f) else Colors.black_01.copy(alpha = 0.6f)
274
- val borderColor = if (tintColor == Colors.black_01) Colors.black_01.copy(alpha = 0.2f) else Colors.black_20.copy(alpha = 0.2f)
275
-
276
- Box(
277
- modifier = Modifier
278
- .size(28.dp)
279
- .clickable(enabled = !disabled, onClick = onClick)
280
- ) {
281
- Box(
282
- modifier = Modifier
283
- .matchParentSize()
284
- .clip(CircleShape)
285
- .background(backgroundButton)
286
- .border(0.2.dp, borderColor, CircleShape)
287
- )
288
- Box(
289
- modifier = Modifier.matchParentSize(),
290
- contentAlignment = Alignment.Center
291
- ) {
292
- Icon(
293
- source = icon,
294
- size = 20.dp,
295
- color = tintColor
296
- )
297
- }
298
-
299
- if (showBadge == true) {
300
- BadgeDot(
301
- size = DotSize.Small,
302
- modifier = Modifier
303
- .align(Alignment.TopEnd)
304
- .offset(x = -Spacing.XXS, y = -Spacing.XXS)
305
- )
306
- }
307
- }
308
- }
@@ -1,33 +0,0 @@
1
- package vn.momo.kits.application
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.text.style.TextAlign
7
- import androidx.compose.ui.text.style.TextOverflow
8
- import androidx.compose.ui.unit.sp
9
- import androidx.compose.ui.zIndex
10
- import vn.momo.kits.components.Text
11
- import vn.momo.kits.const.Typography
12
-
13
- @Deprecated("Use vn.momo.kits.navigation.component instead", ReplaceWith("vn.momo.kits.navigation.component"))
14
- @Composable
15
- fun HeaderTitle(
16
- title: String = "",
17
- modifier: Modifier = Modifier,
18
- textAlign: TextAlign = TextAlign.Start,
19
- color: Color? = null,
20
- ) {
21
- Text(
22
- modifier = Modifier.then(modifier).zIndex(1f),
23
- text = title,
24
- textAlign = textAlign,
25
- style = Typography.actionSBold.copy(
26
- fontSize = 15.sp,
27
- lineHeight = 22.sp,
28
- ),
29
- color = color,
30
- maxLines = 1,
31
- overflow = TextOverflow.Ellipsis
32
- )
33
- }