@momo-kits/native-kits 0.162.1 → 0.162.2-beta.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 (154) hide show
  1. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Example.xcscheme +32 -0
  2. package/example/ios/Example.xcodeproj/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/xcschememanagement.plist +2 -2
  3. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  4. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/WorkspaceSettings.xcsettings +16 -0
  5. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +6 -0
  6. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +58 -0
  7. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios.xcscheme +58 -0
  8. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/xcschememanagement.plist +14 -0
  9. package/ios/Typography/MomoFontScale.swift +36 -0
  10. package/ios/Typography/Text.swift +19 -9
  11. package/ios/Typography/Typography.swift +6 -22
  12. package/package.json +1 -1
  13. package/publish.sh +2 -2
  14. package/build.gradle.kts +0 -11
  15. package/compose/build.gradle.kts +0 -186
  16. package/compose/compose.podspec +0 -47
  17. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +0 -6
  18. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -123
  19. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  20. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  21. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  22. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  23. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  24. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  25. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  26. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  27. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  28. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  29. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  30. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  31. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  32. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +0 -57
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +0 -109
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -201
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -222
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -48
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +0 -86
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +0 -76
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +0 -76
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +0 -305
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +0 -33
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -921
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -121
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -403
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +0 -69
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +0 -157
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -85
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -32
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -340
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -198
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -357
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -123
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -94
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -136
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -224
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +0 -543
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +0 -23
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +0 -76
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -148
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -188
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -116
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -452
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -172
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -255
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -235
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -233
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -259
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -241
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -364
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +0 -108
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -56
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -41
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -92
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -40
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -352
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -103
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -338
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -70
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +0 -87
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +0 -17
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -96
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -348
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -256
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -494
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -131
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -215
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -96
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -531
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -92
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -135
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -214
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -590
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -177
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -192
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -205
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -239
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -191
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -306
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -16
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -188
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -285
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -2
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -35
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -2
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -57
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -68
  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 -14
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -50
  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 -253
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -133
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -100
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -145
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -345
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -556
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -161
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -243
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -187
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -279
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -80
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -306
  128. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -32
  129. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -370
  130. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -131
  131. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -167
  132. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -72
  133. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -66
  134. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  135. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -70
  136. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +0 -15
  137. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -105
  138. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +0 -33
  139. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -186
  140. package/example/ios/Example.xcworkspace/xcuserdata/huynhdung.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  141. package/gradle/libs.versions.toml +0 -67
  142. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  143. package/gradle/wrapper/gradle-wrapper.properties +0 -8
  144. package/gradle.properties +0 -26
  145. package/gradlew +0 -252
  146. package/gradlew.bat +0 -94
  147. package/local.properties +0 -8
  148. package/settings.gradle.kts +0 -64
  149. /package/example/ios/Example.xcworkspace/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/xcschememanagement.plist +0 -0
  150. /package/example/ios/Pods/Pods.xcodeproj/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/MoMoUIKits.xcscheme +0 -0
  151. /package/example/ios/Pods/Pods.xcodeproj/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/Pods-Example.xcscheme +0 -0
  152. /package/example/ios/Pods/Pods.xcodeproj/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/SDWebImage.xcscheme +0 -0
  153. /package/example/ios/Pods/Pods.xcodeproj/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/SDWebImageSwiftUI.xcscheme +0 -0
  154. /package/example/ios/Pods/Pods.xcodeproj/xcuserdata/{huynhdung.xcuserdatad → sonnguyen.xcuserdatad}/xcschemes/SkeletonUI.xcscheme +0 -0
@@ -1,222 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.animation.core.animateFloatAsState
4
- import androidx.compose.foundation.background
5
- import androidx.compose.foundation.border
6
- import androidx.compose.foundation.clickable
7
- import androidx.compose.foundation.layout.Arrangement
8
- import androidx.compose.foundation.layout.Box
9
- import androidx.compose.foundation.layout.BoxWithConstraints
10
- import androidx.compose.foundation.layout.Row
11
- import androidx.compose.foundation.layout.Spacer
12
- import androidx.compose.foundation.layout.fillMaxWidth
13
- import androidx.compose.foundation.layout.height
14
- import androidx.compose.foundation.layout.padding
15
- import androidx.compose.foundation.layout.size
16
- import androidx.compose.foundation.layout.width
17
- import androidx.compose.foundation.shape.RoundedCornerShape
18
- import androidx.compose.runtime.Composable
19
- import androidx.compose.runtime.LaunchedEffect
20
- import androidx.compose.runtime.getValue
21
- import androidx.compose.runtime.mutableStateOf
22
- import androidx.compose.runtime.remember
23
- import androidx.compose.runtime.setValue
24
- import androidx.compose.runtime.snapshotFlow
25
- import androidx.compose.ui.Alignment
26
- import androidx.compose.ui.Modifier
27
- import androidx.compose.ui.graphics.Color
28
- import androidx.compose.ui.graphics.graphicsLayer
29
- import androidx.compose.ui.text.style.TextAlign
30
- import androidx.compose.ui.unit.Dp
31
- import androidx.compose.ui.unit.dp
32
- import androidx.compose.ui.zIndex
33
- import kotlinx.coroutines.flow.distinctUntilChanged
34
- import kotlinx.coroutines.flow.map
35
- import vn.momo.kits.components.Icon
36
- import vn.momo.kits.components.InputSearch
37
- import vn.momo.kits.components.InputSearchProps
38
- import vn.momo.kits.const.AppTheme
39
- import vn.momo.kits.const.Colors
40
- import vn.momo.kits.const.Spacing
41
- import vn.momo.kits.modifier.conditional
42
- import vn.momo.kits.modifier.setAutomationId
43
- import vn.momo.kits.utils.getAppStatusBarHeight
44
-
45
- data class HeaderColor(val tintIconColor: Color, val backgroundButton: Color, val borderColor: Color)
46
- fun getHeaderColor(animatedHeader: AnimatedHeader?, opacity: Float, tintColor: Color?, defaultColor: Color): HeaderColor{
47
- return if(animatedHeader !== null)
48
- if (opacity == 1f || !animatedHeader.isSurface)
49
- HeaderColor(
50
- tintIconColor = Colors.black_17,
51
- backgroundButton = Colors.black_01.copy(alpha = 0.6f),
52
- borderColor = Colors.black_20.copy(alpha = 0.2f)
53
- )
54
- else
55
- HeaderColor(
56
- tintIconColor = Colors.black_01,
57
- backgroundButton = Colors.black_20.copy(alpha = 0.6f),
58
- borderColor = Color.Transparent
59
- )
60
- else
61
- if (tintColor == Colors.black_01)
62
- HeaderColor(
63
- tintIconColor = tintColor,
64
- backgroundButton = Colors.black_20.copy(alpha = 0.6f),
65
- borderColor = Colors.black_01.copy(alpha = 0.2f)
66
- )
67
- else
68
- HeaderColor(
69
- tintIconColor = tintColor ?: defaultColor,
70
- backgroundButton = Colors.black_01.copy(alpha = 0.6f),
71
- borderColor = Colors.black_20.copy(alpha = 0.2f)
72
- )
73
- }
74
-
75
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
76
- @Composable
77
- fun Header(
78
- headerType: HeaderType = HeaderType.DEFAULT,
79
- titlePosition: TitlePosition,
80
- title: String,
81
- headerRight: @Composable (() -> Unit)? = null,
82
- goBack: (() -> Unit)? = null,
83
- opacity: Float = 1f,
84
- animatedHeader: AnimatedHeader? = null,
85
- scrollState: Int = 0,
86
- inputSearchProps: InputSearchProps? = null,
87
- headerRightWidth: Dp = 0.dp,
88
- useAnimationSearch: Boolean = false,
89
- tintColor: Color? = null
90
- ) {
91
- val statusBarHeight = getAppStatusBarHeight()
92
- val color = getHeaderColor(animatedHeader, opacity, tintColor, AppTheme.current.colors.text.default)
93
- val tintIconColor = color.tintIconColor
94
- val backgroundButton = color.backgroundButton
95
- val borderColor = color.borderColor
96
-
97
- var colorFraction by remember { mutableStateOf(0f) }
98
-
99
- LaunchedEffect(scrollState) {
100
- snapshotFlow { scrollState }
101
- .map { (it / 50f).coerceIn(0f, 1f) }
102
- .distinctUntilChanged()
103
- .collect { fraction -> colorFraction = fraction }
104
- }
105
- val animations = useHeaderSearchAnimation(
106
- opacityAni = opacity,
107
- scrollState = scrollState,
108
- headerRightWidth = headerRightWidth,
109
- isBack = goBack != null
110
- )
111
-
112
- val backgroundSearch = animateColor(
113
- Colors.black_01,
114
- AppTheme.current.colors.background.default,
115
- colorFraction
116
- )
117
-
118
- val searchAnimationEnable =
119
- inputSearchProps != null && useAnimationSearch && headerType == HeaderType.EXTENDED
120
- val animatedAlpha by animateFloatAsState(targetValue = opacity, label = "BackgroundAlpha")
121
-
122
- if (headerType != HeaderType.NONE) {
123
- BoxWithConstraints(
124
- Modifier.height(statusBarHeight + HEADER_HEIGHT.dp)
125
- .fillMaxWidth()
126
- .conditional(animatedHeader !== null) { background(Color.White.copy(alpha = animatedAlpha)) }
127
- .zIndex(10f),
128
- contentAlignment = Alignment.BottomCenter
129
- ) {
130
- Row(
131
- modifier = Modifier.height(HEADER_HEIGHT.dp)
132
- .fillMaxWidth()
133
- .padding(horizontal = Spacing.M),
134
- verticalAlignment = Alignment.CenterVertically,
135
- horizontalArrangement = Arrangement.SpaceBetween
136
- ) {
137
- Box {
138
- if (goBack != null) {
139
- Box(
140
- modifier = Modifier
141
- .size(28.dp)
142
- .then(
143
- Modifier.border(
144
- 0.2.dp,
145
- borderColor,
146
- RoundedCornerShape(100)
147
- )
148
- )
149
- .background(
150
- backgroundButton,
151
- RoundedCornerShape(100)
152
- )
153
- .clickable(
154
- onClick = goBack
155
- )
156
- .padding(Spacing.XS)
157
- .setAutomationId("btn_navigation_back"),
158
- contentAlignment = Alignment.Center
159
- ) {
160
- Icon(
161
- source = "arrow-back",
162
- color = tintIconColor,
163
- size = 20.dp,
164
- )
165
- }
166
- }
167
- }
168
-
169
- if (useAnimationSearch || inputSearchProps == null) {
170
- if(headerRight == null){
171
- HeaderRight(opacity = opacity, animatedHeader = animatedHeader, tintColor = tintColor)
172
- } else {
173
- headerRight.invoke()
174
- }
175
- }
176
- }
177
-
178
- // Title
179
- Row(
180
- modifier = Modifier.height(HEADER_HEIGHT.dp)
181
- .fillMaxWidth()
182
- .padding(horizontal = Spacing.M),
183
- verticalAlignment = Alignment.CenterVertically,
184
- ) {
185
- if (goBack != null && titlePosition == TitlePosition.LEFT) {
186
- Spacer(Modifier.width(40.dp))
187
- }
188
- if (inputSearchProps != null && !useAnimationSearch) {
189
- InputSearch(inputSearchProps = inputSearchProps.copy(backgroundColor = backgroundSearch))
190
- } else {
191
- Box(
192
- Modifier.weight(1f).graphicsLayer {
193
- alpha = if (useAnimationSearch) {
194
- 1f - (opacity)
195
- } else {
196
- 1f
197
- }
198
- },
199
- contentAlignment = if (titlePosition == TitlePosition.LEFT) Alignment.TopStart else Alignment.Center
200
- ) {
201
- HeaderTitle(
202
- title = title,
203
- color = tintIconColor,
204
- modifier = Modifier
205
- .setAutomationId("title_navigation_header")
206
- .fillMaxWidth(fraction = if(titlePosition == TitlePosition.LEFT) 0.7f else 0.5f)
207
- ,
208
- textAlign = if(titlePosition == TitlePosition.LEFT) TextAlign.Start else TextAlign.Center
209
- )
210
- }
211
- }
212
- }
213
-
214
- if (searchAnimationEnable) {
215
- AnimationSearchInput(
216
- animations = animations,
217
- inputSearchProps = inputSearchProps!!
218
- )
219
- }
220
- }
221
- }
222
- }
@@ -1,48 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.animation.core.animateFloatAsState
4
- import androidx.compose.foundation.layout.Box
5
- import androidx.compose.foundation.layout.fillMaxWidth
6
- import androidx.compose.foundation.layout.height
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.runtime.getValue
9
- import androidx.compose.ui.Modifier
10
- import androidx.compose.ui.graphics.graphicsLayer
11
- import androidx.compose.ui.unit.dp
12
- import vn.momo.kits.components.Image
13
-
14
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
15
- @Composable
16
- fun HeaderAnimated(image: String, scrollState: Int = 0) {
17
- // Scale animation
18
- val scale by animateFloatAsState(
19
- targetValue = when {
20
- scrollState < 0 -> (-(scrollState / 300f)).coerceIn(1f, 4f)
21
- scrollState.toFloat() in 0f..300f -> 1f
22
- else -> 1f
23
- }
24
- )
25
-
26
- // Opacity animation
27
- val opacity by animateFloatAsState(
28
- targetValue = when {
29
- scrollState.toFloat() in 0f..150f -> 1f - (scrollState / 300f)
30
- scrollState.toFloat() in 150f..300f -> 0.5f - ((scrollState - 150f) / 300f)
31
- else -> 1f
32
- }
33
- )
34
-
35
- // Translation Y animation
36
-
37
- Box(modifier = Modifier.fillMaxWidth().height(200.dp)
38
- .graphicsLayer {
39
- scaleX = scale
40
- scaleY = scale
41
- }) {
42
- if (image.isEmpty()) return
43
- Image(
44
- source = image,
45
- modifier = Modifier.fillMaxWidth().height(200.dp)
46
- )
47
- }
48
- }
@@ -1,86 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.animation.animateColorAsState
4
- import androidx.compose.animation.core.animateFloatAsState
5
- import androidx.compose.foundation.layout.Box
6
- import androidx.compose.foundation.layout.fillMaxWidth
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.runtime.getValue
9
- import androidx.compose.ui.Modifier
10
- import androidx.compose.ui.graphics.Color
11
- import vn.momo.kits.const.AppTheme
12
- import vn.momo.kits.utils.getAppStatusBarHeight
13
-
14
- enum class TitlePosition {
15
- LEFT, CENTER,
16
- }
17
-
18
- enum class AnimatedHeaderRatio(val value: Float){
19
- RATIO_16_9(16f / 9f),
20
- RATIO_1_1(1f),
21
- RATIO_3_2(3f / 2f)
22
- }
23
-
24
- data class AnimatedHeader(
25
- val aspectRatio: AnimatedHeaderRatio = AnimatedHeaderRatio.RATIO_16_9,
26
- val isSurface: Boolean = true,
27
- val composable: @Composable (scrollState: Int) -> Unit = {}
28
- )
29
-
30
- fun animateColor(start: Color, stop: Color, fraction: Float): Color {
31
- return Color(
32
- red = start.red + fraction * (stop.red - start.red),
33
- green = start.green + fraction * (stop.green - start.green),
34
- blue = start.blue + fraction * (stop.blue - start.blue),
35
- alpha = start.alpha + fraction * (stop.alpha - start.alpha)
36
- )
37
- }
38
-
39
- @Deprecated("Use vn.momo.kits.navigation.component.HeaderBackground instead", ReplaceWith("vn.momo.kits.navigation.component.HeaderBackground"))
40
- @Composable
41
- fun HeaderBackground(
42
- headerType: HeaderType = HeaderType.DEFAULT,
43
- scrollState: Int,
44
- headerTransparent: Boolean = false,
45
- ) {
46
- val statusBarHeight = getAppStatusBarHeight()
47
-
48
- val opacityAni by animateFloatAsState(
49
- targetValue = (1 - (scrollState / HEADER_HEIGHT * 1f)).coerceIn(0f, 1f),
50
- )
51
-
52
- val backgroundColor by animateColorAsState(
53
- targetValue = if (headerTransparent) {
54
- Color.Transparent
55
- } else {
56
- animateColor(
57
- Color.Transparent,
58
- AppTheme.current.colors.background.surface,
59
- opacityAni
60
- )
61
- }
62
- )
63
-
64
- when (headerType) {
65
- HeaderType.DEFAULT -> {
66
- HeaderDefault(
67
- opacityAni = opacityAni,
68
- statusBarHeight = statusBarHeight,
69
- backgroundColor = backgroundColor,
70
- headerTransparent = headerTransparent
71
- )
72
- }
73
-
74
- HeaderType.EXTENDED -> {
75
- HeaderExtended(
76
- opacityAni = opacityAni,
77
- statusBarHeight = statusBarHeight,
78
- backgroundColor = backgroundColor,
79
- )
80
- }
81
-
82
- else -> {
83
- Box(modifier = Modifier.fillMaxWidth())
84
- }
85
- }
86
- }
@@ -1,76 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.foundation.layout.Box
5
- import androidx.compose.foundation.layout.fillMaxWidth
6
- import androidx.compose.foundation.layout.height
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.ui.Modifier
9
- import androidx.compose.ui.draw.alpha
10
- import androidx.compose.ui.geometry.Offset
11
- import androidx.compose.ui.graphics.Brush
12
- import androidx.compose.ui.graphics.Color
13
- import androidx.compose.ui.layout.ContentScale
14
- import androidx.compose.ui.platform.LocalDensity
15
- import androidx.compose.ui.unit.Dp
16
- import androidx.compose.ui.unit.dp
17
- import vn.momo.kits.components.Image
18
- import vn.momo.kits.components.Options
19
- import vn.momo.kits.const.AppTheme
20
- import vn.momo.kits.utils.bottomBorder
21
-
22
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
23
- @Composable
24
- fun HeaderDefault(
25
- opacityAni: Float,
26
- statusBarHeight: Dp,
27
- backgroundColor: Color?,
28
- headerTransparent: Boolean = false
29
- ) {
30
- val height = statusBarHeight + HEADER_HEIGHT.dp
31
- Box(
32
- modifier = Modifier.fillMaxWidth().height(height)
33
- .background(if(headerTransparent && backgroundColor != null) backgroundColor else AppTheme.current.colors.background.surface)
34
- .bottomBorder(
35
- strokeWidth = 1.dp,
36
- color = if(headerTransparent && backgroundColor != null) backgroundColor else AppTheme.current.colors.border.default
37
- )
38
- ) {
39
- Box(
40
- modifier = Modifier
41
- .height(height)
42
- .fillMaxWidth()
43
- .alpha(opacityAni)
44
- .background(
45
- if (headerTransparent)
46
- Brush.linearGradient(
47
- colors = listOf(
48
- Color.Transparent,
49
- Color.Transparent,
50
- ),
51
- start = Offset(0f, 0f),
52
- end = Offset(0f, with(LocalDensity.current) { 154.dp.toPx() })
53
- )
54
- else
55
- Brush.linearGradient(
56
- colors = listOf(
57
- Color(0xFFFDCADE),
58
- Color(0x00FDCADE)
59
- ),
60
- start = Offset(0f, 0f),
61
- end = Offset(0f, with(LocalDensity.current) { 154.dp.toPx() })
62
- )
63
- )
64
- )
65
- if (AppTheme.current.assets.headerBackground != null) {
66
- Image(
67
- loading = false,
68
- source = AppTheme.current.assets.headerBackground!!,
69
- modifier = Modifier.fillMaxWidth().height(height),
70
- options = Options(
71
- contentScale = ContentScale.FillWidth
72
- )
73
- )
74
- }
75
- }
76
- }
@@ -1,76 +0,0 @@
1
- package vn.momo.kits.application
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.foundation.layout.Box
5
- import androidx.compose.foundation.layout.fillMaxWidth
6
- import androidx.compose.foundation.layout.height
7
- import androidx.compose.runtime.Composable
8
- import androidx.compose.ui.Modifier
9
- import androidx.compose.ui.draw.alpha
10
- import androidx.compose.ui.geometry.Offset
11
- import androidx.compose.ui.graphics.Brush
12
- import androidx.compose.ui.graphics.Color
13
- import androidx.compose.ui.layout.ContentScale
14
- import androidx.compose.ui.platform.LocalDensity
15
- import androidx.compose.ui.unit.Dp
16
- import androidx.compose.ui.unit.dp
17
- import vn.momo.kits.components.Image
18
- import vn.momo.kits.components.Options
19
- import vn.momo.kits.const.AppTheme
20
- import vn.momo.kits.utils.bottomBorder
21
-
22
- @Deprecated("Use vn.momo.kits.navigation.component.Header instead", ReplaceWith("vn.momo.kits.navigation.component.Header"))
23
- @Composable
24
- fun HeaderExtended(
25
- opacityAni: Float,
26
- statusBarHeight: Dp,
27
- backgroundColor: Color
28
- ) {
29
- Box(
30
- modifier = Modifier
31
- .fillMaxWidth()
32
- .height(154.dp)
33
- .alpha(opacityAni)
34
- .background(
35
- Brush.linearGradient(
36
- colors = listOf(
37
- Color(0xFFFDCADE),
38
- Color(0x00FDCADE)
39
- ),
40
- start = Offset(0f, 0f),
41
- end = Offset(0f, with(LocalDensity.current) { 154.dp.toPx() })
42
- )
43
- )
44
- ) {
45
- if (AppTheme.current.assets.headerBackground != null) {
46
- Box(
47
- modifier = Modifier
48
- .fillMaxWidth()
49
- .background(backgroundColor)
50
- ) {
51
- Image(
52
- loading = false,
53
- source = AppTheme.current.assets.headerBackground!!,
54
- modifier = Modifier.fillMaxWidth().height(154.dp),
55
- options = Options(
56
- contentScale = ContentScale.FillWidth
57
- )
58
- )
59
- }
60
- }
61
- }
62
-
63
- Box(
64
- modifier = Modifier
65
- .fillMaxWidth()
66
- .alpha(1f - opacityAni)
67
- .height(statusBarHeight + HEADER_HEIGHT.dp)
68
- .background(
69
- AppTheme.current.colors.background.surface
70
- )
71
- .bottomBorder(
72
- strokeWidth = 1.dp,
73
- color = AppTheme.current.colors.border.default
74
- )
75
- )
76
- }