@momo-kits/native-kits 0.162.2-test.1-debug → 0.162.2

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 (149) hide show
  1. package/package.json +1 -1
  2. package/build.gradle.kts +0 -11
  3. package/compose/build.gradle.kts +0 -186
  4. package/compose/build.gradle.kts.backup +0 -186
  5. package/compose/compose.podspec +0 -47
  6. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +0 -6
  7. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -123
  8. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  9. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  10. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  11. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  12. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  13. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  14. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  15. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  16. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  17. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  18. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  19. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  20. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  21. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +0 -57
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +0 -113
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -201
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -222
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -48
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +0 -86
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +0 -76
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +0 -76
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +0 -305
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +0 -33
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -921
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -121
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -403
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +0 -69
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +0 -157
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -85
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -32
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -340
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -198
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -357
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -123
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -94
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -136
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -224
  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 -76
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -148
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -188
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -116
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -452
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -172
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -255
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -235
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -233
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -259
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -241
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -364
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +0 -108
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -56
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -41
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -92
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -40
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -352
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -103
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -338
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -70
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +0 -87
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -96
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -348
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -256
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -494
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -131
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -215
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -96
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -531
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -92
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -135
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -214
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -590
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -177
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -192
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -205
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -239
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -191
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -306
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -16
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -188
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -291
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -2
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -35
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -2
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -57
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -68
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +0 -14
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -50
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -253
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -133
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -104
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -146
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -345
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -556
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -161
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -243
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -187
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -315
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -80
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -306
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -34
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -370
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -131
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -167
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -72
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -66
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -70
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +0 -15
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -105
  126. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +0 -33
  127. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -186
  128. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Example.xcscheme +0 -32
  129. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  130. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  131. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/WorkspaceSettings.xcsettings +0 -16
  132. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  133. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +0 -5
  134. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
  135. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
  136. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
  137. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
  138. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
  139. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
  140. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
  141. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +0 -60
  142. package/gradle/libs.versions.toml +0 -67
  143. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  144. package/gradle/wrapper/gradle-wrapper.properties +0 -8
  145. package/gradle.properties +0 -26
  146. package/gradlew +0 -252
  147. package/gradlew.bat +0 -94
  148. package/local.properties +0 -8
  149. package/settings.gradle.kts +0 -64
@@ -1,291 +0,0 @@
1
- package vn.momo.kits.const
2
-
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.Immutable
5
- import androidx.compose.ui.platform.LocalDensity
6
- import androidx.compose.ui.text.TextStyle
7
- import androidx.compose.ui.text.font.FontFamily
8
- import androidx.compose.ui.text.font.FontWeight
9
- import androidx.compose.ui.text.style.TextDecoration
10
- import androidx.compose.ui.unit.Dp
11
- import androidx.compose.ui.unit.TextUnit
12
- import androidx.compose.ui.unit.TextUnitType
13
- import androidx.compose.ui.unit.dp
14
- import androidx.compose.ui.unit.sp
15
- import org.jetbrains.compose.resources.Font
16
- import org.jetbrains.compose.resources.FontResource
17
- import org.jetbrains.compose.resources.InternalResourceApi
18
- import vn.momo.kits.application.LocalAppFontScale
19
- import vn.momo.kits.application.LocalUseDeviceFontScale
20
- import vn.momo.kits.platform.getScreenDimensions
21
- import vn.momo.uikits.resources.Res
22
- import vn.momo.uikits.resources.momosignature
23
- import vn.momo.uikits.resources.momotrustdisplay
24
- import vn.momo.uikits.resources.sfprotext_black
25
- import vn.momo.uikits.resources.sfprotext_bold
26
- import vn.momo.uikits.resources.sfprotext_heavy
27
- import vn.momo.uikits.resources.sfprotext_light
28
- import vn.momo.uikits.resources.sfprotext_medium
29
- import vn.momo.uikits.resources.sfprotext_regular
30
- import vn.momo.uikits.resources.sfprotext_semibold
31
- import vn.momo.uikits.resources.sfprotext_thin
32
- import vn.momo.uikits.resources.sfprotext_ultralight
33
- import kotlin.math.max
34
- import kotlin.math.min
35
-
36
- const val DEFAULT_SCREEN_SIZE = 375f
37
- const val MAX_FONT_SCALE = 1.5f
38
- const val MAX_DEVICE_SCALE = 5
39
-
40
- @Composable
41
- fun scaleSize(size: Float): Float {
42
- val useDeviceFontScale = LocalUseDeviceFontScale.current
43
- val appFontScale = LocalAppFontScale.current
44
- val deviceWidth = getScreenDimensions().width
45
- val deviceScale = deviceWidth / DEFAULT_SCREEN_SIZE
46
-
47
- val density = LocalDensity.current
48
- val fontScale = density.fontScale
49
-
50
- var fontSizeScaleDevice = size
51
- var fontSizeScaleOS = size
52
-
53
- if (deviceScale > 1) {
54
- fontSizeScaleDevice =
55
- min(deviceScale * fontSizeScaleDevice, fontSizeScaleDevice + MAX_DEVICE_SCALE)
56
- }
57
-
58
- if (useDeviceFontScale) {
59
- if (fontScale > 1) {
60
- fontSizeScaleOS = min(fontScale * fontSizeScaleOS, fontSizeScaleOS * MAX_FONT_SCALE)
61
- }
62
- } else {
63
- fontSizeScaleOS = size * appFontScale
64
- }
65
-
66
- return max(
67
- fontSizeScaleDevice,
68
- fontSizeScaleOS
69
- )
70
- }
71
-
72
- @Composable
73
- fun scaleSize(size: TextUnit): TextUnit {
74
- if (!size.isSp) return size
75
-
76
- val density = LocalDensity.current
77
-
78
- val scaled = scaleSize(size.value)
79
- val spValue = scaled / density.fontScale
80
-
81
- return TextUnit(value = spValue, type = TextUnitType.Sp)
82
- }
83
-
84
- @Composable
85
- fun scaleSize(size: Dp): Dp {
86
- return scaleSize(size.value).dp
87
- }
88
-
89
- @Composable
90
- fun scaleSize(textStyle: TextStyle): TextStyle {
91
- return textStyle.copy(
92
- fontSize = if (textStyle.fontSize != TextUnit.Unspecified)
93
- scaleSize(textStyle.fontSize)
94
- else
95
- TextUnit.Unspecified,
96
-
97
- lineHeight = if (textStyle.lineHeight != TextUnit.Unspecified)
98
- scaleSize(textStyle.lineHeight)
99
- else
100
- TextUnit.Unspecified,
101
- )
102
- }
103
-
104
-
105
- @OptIn(InternalResourceApi::class)
106
- @Composable
107
- fun getFont(font: FontResource): FontFamily {
108
- return FontFamily(Font(font))
109
- }
110
-
111
- @Composable
112
- fun getFontFamily(fontFamily: String, fontWeight: FontWeight? = FontWeight.Normal): FontFamily {
113
- val key = "$fontFamily-${fontWeight?.weight}"
114
- val fontMap = mapOf(
115
- "SFProText-100" to Res.font.sfprotext_thin,
116
- "SFProText-200" to Res.font.sfprotext_ultralight,
117
- "SFProText-300" to Res.font.sfprotext_light,
118
- "SFProText-400" to Res.font.sfprotext_regular,
119
- "SFProText-500" to Res.font.sfprotext_medium,
120
- "SFProText-600" to Res.font.sfprotext_semibold,
121
- "SFProText-700" to Res.font.sfprotext_bold,
122
- "SFProText-800" to Res.font.sfprotext_heavy,
123
- "SFProText-900" to Res.font.sfprotext_black,
124
-
125
- "MoMoSignature-100" to Res.font.momosignature,
126
- "MoMoSignature-200" to Res.font.momosignature,
127
- "MoMoSignature-300" to Res.font.momosignature,
128
- "MoMoSignature-400" to Res.font.momosignature,
129
- "MoMoSignature-500" to Res.font.momosignature,
130
- "MoMoSignature-600" to Res.font.momosignature,
131
- "MoMoSignature-700" to Res.font.momosignature,
132
- "MoMoSignature-800" to Res.font.momosignature,
133
- "MoMoSignature-900" to Res.font.momosignature,
134
-
135
- "MoMoTrustDisplay-100" to Res.font.momotrustdisplay,
136
- "MoMoTrustDisplay-200" to Res.font.momotrustdisplay,
137
- "MoMoTrustDisplay-300" to Res.font.momotrustdisplay,
138
- "MoMoTrustDisplay-400" to Res.font.momotrustdisplay,
139
- "MoMoTrustDisplay-500" to Res.font.momotrustdisplay,
140
- "MoMoTrustDisplay-600" to Res.font.momotrustdisplay,
141
- "MoMoTrustDisplay-700" to Res.font.momotrustdisplay,
142
- "MoMoTrustDisplay-800" to Res.font.momotrustdisplay,
143
- "MoMoTrustDisplay-900" to Res.font.momotrustdisplay,
144
- )
145
- val font = fontMap[key] ?: Res.font.sfprotext_regular
146
- return getFont(font)
147
- }
148
-
149
- @Immutable
150
- class AppTypography internal constructor(
151
- val headlineDefaultBold: TextStyle,
152
- val headerMBold: TextStyle,
153
- val headerDefaultBold: TextStyle,
154
- val headerSSemibold: TextStyle,
155
- val headerXsSemibold: TextStyle,
156
- val bodyDefaultRegular: TextStyle,
157
- val bodyDefaultRegularStrikethrough: TextStyle,
158
- val descriptionDefaultRegular: TextStyle,
159
- val descriptionDefaultRegularStrikethrough: TextStyle,
160
- val descriptionXsRegular: TextStyle,
161
- val descriptionXsRegularStrikethrough: TextStyle,
162
- val labelDefaultMedium: TextStyle,
163
- val labelSMedium: TextStyle,
164
- val labelXsMedium: TextStyle,
165
- val actionDefaultBold: TextStyle,
166
- val actionSBold: TextStyle,
167
- val actionXsBold: TextStyle,
168
- val actionXxsBold: TextStyle,
169
- ) {
170
- constructor(
171
- default: TextStyle = TextStyle(
172
- fontSize = 14.sp,
173
- lineHeight = 20.sp,
174
- fontWeight = FontWeight.Normal
175
- ),
176
- headlineDefaultBold: TextStyle = TextStyle(
177
- fontSize = 24.sp,
178
- lineHeight = 34.sp,
179
- fontWeight = FontWeight.Bold
180
- ),
181
- headerMBold: TextStyle = TextStyle(
182
- fontSize = 18.sp,
183
- lineHeight = 26.sp,
184
- fontWeight = FontWeight.Bold
185
- ),
186
- headerDefaultBold: TextStyle = TextStyle(
187
- fontSize = 16.sp,
188
- lineHeight = 22.sp,
189
- fontWeight = FontWeight.Bold
190
- ),
191
- headerSSemibold: TextStyle = TextStyle(
192
- fontSize = 14.sp,
193
- lineHeight = 20.sp,
194
- fontWeight = FontWeight.SemiBold
195
- ),
196
- headerXsSemibold: TextStyle = TextStyle(
197
- fontSize = 12.sp,
198
- lineHeight = 18.sp,
199
- fontWeight = FontWeight.SemiBold
200
- ),
201
- bodyDefaultRegular: TextStyle = TextStyle(
202
- fontSize = 14.sp,
203
- lineHeight = 20.sp,
204
- fontWeight = FontWeight.Normal
205
- ),
206
- bodyDefaultRegularStrikethrough: TextStyle = TextStyle(
207
- fontSize = 14.sp,
208
- lineHeight = 20.sp,
209
- fontWeight = FontWeight.Normal,
210
- textDecoration = TextDecoration.LineThrough
211
- ),
212
- descriptionDefaultRegular: TextStyle = TextStyle(
213
- fontSize = 12.sp,
214
- lineHeight = 18.sp,
215
- fontWeight = FontWeight.Normal
216
- ),
217
- descriptionDefaultRegularStrikethrough: TextStyle = TextStyle(
218
- fontSize = 12.sp,
219
- lineHeight = 18.sp,
220
- fontWeight = FontWeight.Normal,
221
- textDecoration = TextDecoration.LineThrough
222
- ),
223
- descriptionXsRegular: TextStyle = TextStyle(
224
- fontSize = 10.sp,
225
- lineHeight = 14.sp,
226
- fontWeight = FontWeight.Normal
227
- ),
228
- descriptionXsRegularStrikethrough: TextStyle = TextStyle(
229
- fontSize = 10.sp,
230
- lineHeight = 14.sp,
231
- fontWeight = FontWeight.Normal,
232
- textDecoration = TextDecoration.LineThrough
233
- ),
234
- labelDefaultMedium: TextStyle = TextStyle(
235
- fontSize = 14.sp,
236
- lineHeight = 20.sp,
237
- fontWeight = FontWeight.Medium
238
- ),
239
- labelSMedium: TextStyle = TextStyle(
240
- fontSize = 12.sp,
241
- lineHeight = 18.sp,
242
- fontWeight = FontWeight.Medium
243
- ),
244
- labelXsMedium: TextStyle = TextStyle(
245
- fontSize = 10.sp,
246
- lineHeight = 14.sp,
247
- fontWeight = FontWeight.Medium
248
- ),
249
- actionDefaultBold: TextStyle = TextStyle(
250
- fontSize = 16.sp,
251
- lineHeight = 22.sp,
252
- fontWeight = FontWeight.Bold
253
- ),
254
- actionSBold: TextStyle = TextStyle(
255
- fontSize = 14.sp,
256
- lineHeight = 20.sp,
257
- fontWeight = FontWeight.Bold
258
- ),
259
- actionXsBold: TextStyle = TextStyle(
260
- fontSize = 12.sp,
261
- lineHeight = 18.sp,
262
- fontWeight = FontWeight.Bold
263
- ),
264
- actionXxsBold: TextStyle = TextStyle(
265
- fontSize = 10.sp,
266
- lineHeight = 14.sp,
267
- fontWeight = FontWeight.Bold
268
- ),
269
- ) : this(
270
- headlineDefaultBold = headlineDefaultBold,
271
- headerMBold = headerMBold,
272
- headerDefaultBold = headerDefaultBold,
273
- headerSSemibold = headerSSemibold,
274
- headerXsSemibold = headerXsSemibold,
275
- bodyDefaultRegular = bodyDefaultRegular,
276
- bodyDefaultRegularStrikethrough = bodyDefaultRegularStrikethrough,
277
- descriptionDefaultRegular = descriptionDefaultRegular,
278
- descriptionDefaultRegularStrikethrough = descriptionDefaultRegularStrikethrough,
279
- descriptionXsRegular = descriptionXsRegular,
280
- descriptionXsRegularStrikethrough = descriptionXsRegularStrikethrough,
281
- labelDefaultMedium = labelDefaultMedium,
282
- labelSMedium = labelSMedium,
283
- labelXsMedium = labelXsMedium,
284
- actionDefaultBold = actionDefaultBold,
285
- actionSBold = actionSBold,
286
- actionXsBold = actionXsBold,
287
- actionXxsBold = actionXxsBold
288
- )
289
- }
290
-
291
- val Typography = AppTypography()
@@ -1,2 +0,0 @@
1
- package vn.momo.kits.layout
2
-
@@ -1,35 +0,0 @@
1
- package vn.momo.kits.layout
2
-
3
- import androidx.compose.foundation.layout.Box
4
- import androidx.compose.foundation.layout.height
5
- import androidx.compose.foundation.layout.width
6
- import androidx.compose.runtime.Composable
7
- import androidx.compose.ui.Modifier
8
- import androidx.compose.ui.unit.Dp
9
-
10
- data class GridContext(
11
- val numberOfColumns: Number,
12
- val gutterSize: Number,
13
- val sizePerSpan: Number,
14
- val getSizeSpan: (Number) -> Number
15
- )
16
-
17
- @Composable
18
- fun Item(
19
- heightSpan: Number = 1,
20
- widthSpan: Number = 1,
21
- content: @Composable() () -> Unit,
22
- modifier: Modifier = Modifier,
23
- grid: GridContext
24
- ) {
25
-
26
- val widthItem = grid.getSizeSpan(widthSpan)
27
- val heightItem = grid.getSizeSpan(heightSpan)
28
-
29
- Box(
30
- modifier = modifier.width(width = Dp(widthItem.toFloat()))
31
- .height(height = Dp(heightItem.toFloat()))
32
- ) {
33
- content()
34
- }
35
- }
@@ -1,2 +0,0 @@
1
- package vn.momo.kits.layout
2
-
@@ -1,57 +0,0 @@
1
- package vn.momo.kits.modifier
2
-
3
- import androidx.compose.ui.Modifier
4
- import androidx.compose.ui.node.ModifierNodeElement
5
- import androidx.compose.ui.node.SemanticsModifierNode
6
- import androidx.compose.ui.semantics.SemanticsPropertyReceiver
7
- import androidx.compose.ui.semantics.contentDescription
8
- import androidx.compose.ui.semantics.semantics
9
- import androidx.compose.ui.semantics.testTag
10
- import vn.momo.kits.platform.getPlatformName
11
-
12
- fun Modifier.setAutomationId(accessibilityId: String, mergeDescendants: Boolean = false): Modifier {
13
- return if (getPlatformName() == "Android") {
14
- semantics {
15
- contentDescription = accessibilityId
16
- }
17
- } else {
18
- semantics(mergeDescendants = mergeDescendants) {
19
- testTag = accessibilityId
20
- }
21
- }}
22
-
23
- /**
24
- * Alternative for [setAutomationId]
25
- *
26
- * reason: [link](https://developer.android.com/develop/ui/compose/custom-modifiers#composable_function_modifiers_are_never_skipped)
27
- * */
28
- fun Modifier.kitsAutomationId(accessibilityId: String, label: String? = null) =
29
- this then KitsAutomationIdElement(accessibilityId, label)
30
-
31
- private data class KitsAutomationIdElement(
32
- private val accessibilityId: String,
33
- private val label: String? = null,
34
- ) : ModifierNodeElement<KitsAutomationIdNode>() {
35
- override fun create(): KitsAutomationIdNode {
36
- return KitsAutomationIdNode(accessibilityId, label)
37
- }
38
-
39
- override fun update(node: KitsAutomationIdNode) {
40
- node.accessibilityId = accessibilityId
41
- node.label = label
42
- }
43
- }
44
-
45
- private class KitsAutomationIdNode(
46
- var accessibilityId: String,
47
- var label: String?,
48
- ) : Modifier.Node(), SemanticsModifierNode {
49
- override fun SemanticsPropertyReceiver.applySemantics() {
50
- if (getPlatformName() == "Android") {
51
- contentDescription = accessibilityId
52
- } else {
53
- testTag = accessibilityId
54
- contentDescription = label ?: accessibilityId
55
- }
56
- }
57
- }
@@ -1,68 +0,0 @@
1
- package vn.momo.kits.modifier
2
-
3
- import androidx.compose.animation.core.animateFloatAsState
4
- import androidx.compose.foundation.clickable
5
- import androidx.compose.foundation.gestures.detectTapGestures
6
- import androidx.compose.foundation.interaction.MutableInteractionSource
7
- import androidx.compose.foundation.interaction.collectIsPressedAsState
8
- import androidx.compose.runtime.getValue
9
- import androidx.compose.runtime.remember
10
- import androidx.compose.ui.Modifier
11
- import androidx.compose.ui.composed
12
- import androidx.compose.ui.graphics.graphicsLayer
13
- import androidx.compose.ui.input.pointer.pointerInput
14
- import androidx.compose.ui.platform.LocalFocusManager
15
- import androidx.compose.ui.platform.LocalSoftwareKeyboardController
16
- import androidx.compose.ui.semantics.Role
17
-
18
- fun Modifier.noFeedbackClickable(
19
- enabled: Boolean = true, onClickLabel: String? = null, role: Role? = null, onClick: () -> Unit
20
- ): Modifier = composed {
21
- clickable(
22
- interactionSource = remember { MutableInteractionSource() },
23
- indication = null,
24
- enabled,
25
- onClickLabel,
26
- role,
27
- onClick
28
- )
29
- }
30
-
31
- fun Modifier.activeOpacityClickable(
32
- activeOpacity: Float = 0.2f,
33
- enabled: Boolean = true,
34
- onClickLabel: String? = null,
35
- role: Role? = null,
36
- onClick: () -> Unit
37
- ): Modifier = composed {
38
- val interactionSource = remember { MutableInteractionSource() }
39
- val isPressed by interactionSource.collectIsPressedAsState()
40
- val animatedAlpha by animateFloatAsState(
41
- targetValue = if (isPressed) activeOpacity else 1f,
42
- label = "ActiveOpacity"
43
- )
44
-
45
- this
46
- .graphicsLayer { alpha = animatedAlpha }
47
- .clickable(
48
- interactionSource = interactionSource,
49
- indication = null,
50
- enabled,
51
- onClickLabel,
52
- role,
53
- onClick
54
- )
55
- }
56
-
57
-
58
- fun Modifier.hideKeyboardOnTap() = composed {
59
- val focusManager = LocalFocusManager.current
60
- val keyboardManager = LocalSoftwareKeyboardController.current
61
-
62
- pointerInput(Unit) {
63
- detectTapGestures {
64
- keyboardManager?.hide()
65
- focusManager.clearFocus()
66
- }
67
- }
68
- }
@@ -1,11 +0,0 @@
1
- package vn.momo.kits.modifier
2
-
3
- import androidx.compose.ui.Modifier
4
-
5
- fun Modifier.conditional(condition: Boolean, modifier: Modifier.() -> Modifier): Modifier {
6
- return if (condition) {
7
- then(modifier(Modifier))
8
- } else {
9
- this
10
- }
11
- }
@@ -1,14 +0,0 @@
1
- package vn.momo.kits.modifier
2
-
3
- import androidx.compose.foundation.background
4
- import androidx.compose.runtime.Composable
5
- import androidx.compose.ui.Modifier
6
- import vn.momo.kits.application.IsShowBaseLineDebug
7
- import vn.momo.kits.const.Colors
8
-
9
- @Composable
10
- fun DeprecatedModifier(): Modifier {
11
- return Modifier.conditional(IsShowBaseLineDebug) {
12
- background(Colors.red_01.copy(alpha = 0.5f))
13
- }
14
- }
@@ -1,50 +0,0 @@
1
- package vn.momo.kits.modifier
2
-
3
- import androidx.compose.ui.Modifier
4
- import androidx.compose.ui.draw.drawBehind
5
- import androidx.compose.ui.graphics.Color
6
- import androidx.compose.ui.graphics.Paint
7
- import androidx.compose.ui.graphics.drawscope.drawIntoCanvas
8
- import androidx.compose.ui.unit.Dp
9
- import androidx.compose.ui.unit.dp
10
- import vn.momo.kits.platform.setColor
11
- import vn.momo.kits.platform.setMaskFilter
12
-
13
-
14
- fun Modifier.shadow(
15
- color: Color = Color.Black,
16
- borderRadius: Dp = 0.dp,
17
- blurRadius: Float = 0f,
18
- offsetY: Dp = 0.dp,
19
- offsetX: Dp = 0.dp,
20
- spread: Dp = 0f.dp,
21
- modifier: Modifier = Modifier
22
- ) = this.then(
23
- modifier.drawBehind {
24
- this.drawIntoCanvas {
25
- val paint = Paint()
26
- val frameworkPaint = paint.asFrameworkPaint()
27
- val spreadPixel = spread.toPx()
28
- val leftPixel = (0f - spreadPixel) + offsetX.toPx()
29
- val topPixel = (0f - spreadPixel) + offsetY.toPx()
30
- val rightPixel = (this.size.width + spreadPixel)
31
- val bottomPixel = (0f + spreadPixel) - offsetY.toPx()
32
-
33
- if (blurRadius != 0f) {
34
- frameworkPaint.setMaskFilter(blurRadius)
35
- }
36
-
37
- frameworkPaint.setColor(color)
38
-
39
- it.drawRoundRect(
40
- left = leftPixel,
41
- top = topPixel,
42
- right = rightPixel,
43
- bottom = bottomPixel,
44
- radiusX = borderRadius.toPx(),
45
- radiusY = borderRadius.toPx(),
46
- paint
47
- )
48
- }
49
- }
50
- )
@@ -1,51 +0,0 @@
1
- package vn.momo.kits.modifier
2
-
3
- import androidx.compose.runtime.Composable
4
- import androidx.compose.runtime.State
5
- import androidx.compose.ui.Modifier
6
- import androidx.compose.ui.layout.Measurable
7
- import androidx.compose.ui.layout.MeasureResult
8
- import androidx.compose.ui.layout.MeasureScope
9
- import androidx.compose.ui.node.LayoutModifierNode
10
- import androidx.compose.ui.node.ModifierNodeElement
11
- import androidx.compose.ui.unit.Constraints
12
- import androidx.compose.ui.unit.IntOffset
13
-
14
- @Composable
15
- fun Modifier.dynamicSize(
16
- widthState: State<Int>? = null,
17
- heightState: State<Int>? = null,
18
- ) = this then DynamicSizeElement(widthState, heightState)
19
-
20
- private data class DynamicSizeElement(
21
- val widthState: State<Int>?,
22
- val heightState: State<Int>?,
23
- ) : ModifierNodeElement<DynamicSizeNode>() {
24
- override fun create(): DynamicSizeNode {
25
- return DynamicSizeNode(widthState, heightState)
26
- }
27
-
28
- override fun update(node: DynamicSizeNode) {
29
- node.widthState = widthState
30
- node.heightState = heightState
31
- }
32
-
33
- }
34
-
35
- private class DynamicSizeNode(
36
- var widthState: State<Int>?,
37
- var heightState: State<Int>?,
38
- ) : Modifier.Node(), LayoutModifierNode {
39
- override fun MeasureScope.measure(
40
- measurable: Measurable,
41
- constraints: Constraints
42
- ): MeasureResult {
43
- val p = measurable.measure(constraints)
44
- return layout(
45
- width = widthState?.value ?: p.width,
46
- height = heightState?.value ?: p.height,
47
- ) {
48
- p.place(IntOffset.Zero)
49
- }
50
- }
51
- }