@momo-kits/native-kits 0.162.2-test.2-debug → 0.162.2-test.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 (136) 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 -105
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -201
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FontScaleStore.kt +0 -77
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -222
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -48
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +0 -86
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +0 -76
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +0 -76
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +0 -305
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +0 -33
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -921
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -121
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -403
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +0 -69
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +0 -157
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -85
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -32
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -340
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -198
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -357
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -123
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -94
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -136
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -224
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +0 -543
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +0 -23
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +0 -76
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -148
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -188
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -116
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -452
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -172
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -255
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -235
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -233
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -259
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -241
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -364
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +0 -108
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -56
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -41
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -92
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -40
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -352
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -103
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -338
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -70
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +0 -87
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -96
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -348
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -256
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -494
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -131
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -215
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -96
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -531
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -92
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -135
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -214
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -590
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -177
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -192
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -205
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -239
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -191
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -306
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -16
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -188
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -290
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -2
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -35
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -2
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -57
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -68
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +0 -14
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -50
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -253
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -133
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -104
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -148
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -345
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -556
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -161
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -243
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -187
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -315
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -80
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -306
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -34
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -370
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -131
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -167
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -72
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -66
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -70
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +0 -15
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -105
  127. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +0 -33
  128. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -186
  129. package/gradle/libs.versions.toml +0 -67
  130. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  131. package/gradle/wrapper/gradle-wrapper.properties +0 -8
  132. package/gradle.properties +0 -26
  133. package/gradlew +0 -252
  134. package/gradlew.bat +0 -94
  135. package/local.properties +0 -8
  136. package/settings.gradle.kts +0 -64
@@ -1,290 +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.FontScaleStore
19
- import vn.momo.kits.platform.getScreenDimensions
20
- import vn.momo.uikits.resources.Res
21
- import vn.momo.uikits.resources.momosignature
22
- import vn.momo.uikits.resources.momotrustdisplay
23
- import vn.momo.uikits.resources.sfprotext_black
24
- import vn.momo.uikits.resources.sfprotext_bold
25
- import vn.momo.uikits.resources.sfprotext_heavy
26
- import vn.momo.uikits.resources.sfprotext_light
27
- import vn.momo.uikits.resources.sfprotext_medium
28
- import vn.momo.uikits.resources.sfprotext_regular
29
- import vn.momo.uikits.resources.sfprotext_semibold
30
- import vn.momo.uikits.resources.sfprotext_thin
31
- import vn.momo.uikits.resources.sfprotext_ultralight
32
- import kotlin.math.max
33
- import kotlin.math.min
34
-
35
- const val DEFAULT_SCREEN_SIZE = 375f
36
- const val MAX_FONT_SCALE = 1.5f
37
- const val MAX_DEVICE_SCALE = 5
38
-
39
- @Composable
40
- fun scaleSize(size: Float): Float {
41
- val useDeviceFontScale = FontScaleStore.useDeviceFontScale
42
- val appFontScale = FontScaleStore.appFontScale
43
- val deviceWidth = getScreenDimensions().width
44
- val deviceScale = deviceWidth / DEFAULT_SCREEN_SIZE
45
-
46
- val density = LocalDensity.current
47
- val fontScale = density.fontScale
48
-
49
- var fontSizeScaleDevice = size
50
- var fontSizeScaleOS = size
51
-
52
- if (deviceScale > 1) {
53
- fontSizeScaleDevice =
54
- min(deviceScale * fontSizeScaleDevice, fontSizeScaleDevice + MAX_DEVICE_SCALE)
55
- }
56
-
57
- if (useDeviceFontScale) {
58
- if (fontScale > 1) {
59
- fontSizeScaleOS = min(fontScale * fontSizeScaleOS, fontSizeScaleOS * MAX_FONT_SCALE)
60
- }
61
- } else {
62
- fontSizeScaleOS = size * appFontScale
63
- }
64
-
65
- return max(
66
- fontSizeScaleDevice,
67
- fontSizeScaleOS
68
- )
69
- }
70
-
71
- @Composable
72
- fun scaleSize(size: TextUnit): TextUnit {
73
- if (!size.isSp) return size
74
-
75
- val density = LocalDensity.current
76
-
77
- val scaled = scaleSize(size.value)
78
- val spValue = scaled / density.fontScale
79
-
80
- return TextUnit(value = spValue, type = TextUnitType.Sp)
81
- }
82
-
83
- @Composable
84
- fun scaleSize(size: Dp): Dp {
85
- return scaleSize(size.value).dp
86
- }
87
-
88
- @Composable
89
- fun scaleSize(textStyle: TextStyle): TextStyle {
90
- return textStyle.copy(
91
- fontSize = if (textStyle.fontSize != TextUnit.Unspecified)
92
- scaleSize(textStyle.fontSize)
93
- else
94
- TextUnit.Unspecified,
95
-
96
- lineHeight = if (textStyle.lineHeight != TextUnit.Unspecified)
97
- scaleSize(textStyle.lineHeight)
98
- else
99
- TextUnit.Unspecified,
100
- )
101
- }
102
-
103
-
104
- @OptIn(InternalResourceApi::class)
105
- @Composable
106
- fun getFont(font: FontResource): FontFamily {
107
- return FontFamily(Font(font))
108
- }
109
-
110
- @Composable
111
- fun getFontFamily(fontFamily: String, fontWeight: FontWeight? = FontWeight.Normal): FontFamily {
112
- val key = "$fontFamily-${fontWeight?.weight}"
113
- val fontMap = mapOf(
114
- "SFProText-100" to Res.font.sfprotext_thin,
115
- "SFProText-200" to Res.font.sfprotext_ultralight,
116
- "SFProText-300" to Res.font.sfprotext_light,
117
- "SFProText-400" to Res.font.sfprotext_regular,
118
- "SFProText-500" to Res.font.sfprotext_medium,
119
- "SFProText-600" to Res.font.sfprotext_semibold,
120
- "SFProText-700" to Res.font.sfprotext_bold,
121
- "SFProText-800" to Res.font.sfprotext_heavy,
122
- "SFProText-900" to Res.font.sfprotext_black,
123
-
124
- "MoMoSignature-100" to Res.font.momosignature,
125
- "MoMoSignature-200" to Res.font.momosignature,
126
- "MoMoSignature-300" to Res.font.momosignature,
127
- "MoMoSignature-400" to Res.font.momosignature,
128
- "MoMoSignature-500" to Res.font.momosignature,
129
- "MoMoSignature-600" to Res.font.momosignature,
130
- "MoMoSignature-700" to Res.font.momosignature,
131
- "MoMoSignature-800" to Res.font.momosignature,
132
- "MoMoSignature-900" to Res.font.momosignature,
133
-
134
- "MoMoTrustDisplay-100" to Res.font.momotrustdisplay,
135
- "MoMoTrustDisplay-200" to Res.font.momotrustdisplay,
136
- "MoMoTrustDisplay-300" to Res.font.momotrustdisplay,
137
- "MoMoTrustDisplay-400" to Res.font.momotrustdisplay,
138
- "MoMoTrustDisplay-500" to Res.font.momotrustdisplay,
139
- "MoMoTrustDisplay-600" to Res.font.momotrustdisplay,
140
- "MoMoTrustDisplay-700" to Res.font.momotrustdisplay,
141
- "MoMoTrustDisplay-800" to Res.font.momotrustdisplay,
142
- "MoMoTrustDisplay-900" to Res.font.momotrustdisplay,
143
- )
144
- val font = fontMap[key] ?: Res.font.sfprotext_regular
145
- return getFont(font)
146
- }
147
-
148
- @Immutable
149
- class AppTypography internal constructor(
150
- val headlineDefaultBold: TextStyle,
151
- val headerMBold: TextStyle,
152
- val headerDefaultBold: TextStyle,
153
- val headerSSemibold: TextStyle,
154
- val headerXsSemibold: TextStyle,
155
- val bodyDefaultRegular: TextStyle,
156
- val bodyDefaultRegularStrikethrough: TextStyle,
157
- val descriptionDefaultRegular: TextStyle,
158
- val descriptionDefaultRegularStrikethrough: TextStyle,
159
- val descriptionXsRegular: TextStyle,
160
- val descriptionXsRegularStrikethrough: TextStyle,
161
- val labelDefaultMedium: TextStyle,
162
- val labelSMedium: TextStyle,
163
- val labelXsMedium: TextStyle,
164
- val actionDefaultBold: TextStyle,
165
- val actionSBold: TextStyle,
166
- val actionXsBold: TextStyle,
167
- val actionXxsBold: TextStyle,
168
- ) {
169
- constructor(
170
- default: TextStyle = TextStyle(
171
- fontSize = 14.sp,
172
- lineHeight = 20.sp,
173
- fontWeight = FontWeight.Normal
174
- ),
175
- headlineDefaultBold: TextStyle = TextStyle(
176
- fontSize = 24.sp,
177
- lineHeight = 34.sp,
178
- fontWeight = FontWeight.Bold
179
- ),
180
- headerMBold: TextStyle = TextStyle(
181
- fontSize = 18.sp,
182
- lineHeight = 26.sp,
183
- fontWeight = FontWeight.Bold
184
- ),
185
- headerDefaultBold: TextStyle = TextStyle(
186
- fontSize = 16.sp,
187
- lineHeight = 22.sp,
188
- fontWeight = FontWeight.Bold
189
- ),
190
- headerSSemibold: TextStyle = TextStyle(
191
- fontSize = 14.sp,
192
- lineHeight = 20.sp,
193
- fontWeight = FontWeight.SemiBold
194
- ),
195
- headerXsSemibold: TextStyle = TextStyle(
196
- fontSize = 12.sp,
197
- lineHeight = 18.sp,
198
- fontWeight = FontWeight.SemiBold
199
- ),
200
- bodyDefaultRegular: TextStyle = TextStyle(
201
- fontSize = 14.sp,
202
- lineHeight = 20.sp,
203
- fontWeight = FontWeight.Normal
204
- ),
205
- bodyDefaultRegularStrikethrough: TextStyle = TextStyle(
206
- fontSize = 14.sp,
207
- lineHeight = 20.sp,
208
- fontWeight = FontWeight.Normal,
209
- textDecoration = TextDecoration.LineThrough
210
- ),
211
- descriptionDefaultRegular: TextStyle = TextStyle(
212
- fontSize = 12.sp,
213
- lineHeight = 18.sp,
214
- fontWeight = FontWeight.Normal
215
- ),
216
- descriptionDefaultRegularStrikethrough: TextStyle = TextStyle(
217
- fontSize = 12.sp,
218
- lineHeight = 18.sp,
219
- fontWeight = FontWeight.Normal,
220
- textDecoration = TextDecoration.LineThrough
221
- ),
222
- descriptionXsRegular: TextStyle = TextStyle(
223
- fontSize = 10.sp,
224
- lineHeight = 14.sp,
225
- fontWeight = FontWeight.Normal
226
- ),
227
- descriptionXsRegularStrikethrough: TextStyle = TextStyle(
228
- fontSize = 10.sp,
229
- lineHeight = 14.sp,
230
- fontWeight = FontWeight.Normal,
231
- textDecoration = TextDecoration.LineThrough
232
- ),
233
- labelDefaultMedium: TextStyle = TextStyle(
234
- fontSize = 14.sp,
235
- lineHeight = 20.sp,
236
- fontWeight = FontWeight.Medium
237
- ),
238
- labelSMedium: TextStyle = TextStyle(
239
- fontSize = 12.sp,
240
- lineHeight = 18.sp,
241
- fontWeight = FontWeight.Medium
242
- ),
243
- labelXsMedium: TextStyle = TextStyle(
244
- fontSize = 10.sp,
245
- lineHeight = 14.sp,
246
- fontWeight = FontWeight.Medium
247
- ),
248
- actionDefaultBold: TextStyle = TextStyle(
249
- fontSize = 16.sp,
250
- lineHeight = 22.sp,
251
- fontWeight = FontWeight.Bold
252
- ),
253
- actionSBold: TextStyle = TextStyle(
254
- fontSize = 14.sp,
255
- lineHeight = 20.sp,
256
- fontWeight = FontWeight.Bold
257
- ),
258
- actionXsBold: TextStyle = TextStyle(
259
- fontSize = 12.sp,
260
- lineHeight = 18.sp,
261
- fontWeight = FontWeight.Bold
262
- ),
263
- actionXxsBold: TextStyle = TextStyle(
264
- fontSize = 10.sp,
265
- lineHeight = 14.sp,
266
- fontWeight = FontWeight.Bold
267
- ),
268
- ) : this(
269
- headlineDefaultBold = headlineDefaultBold,
270
- headerMBold = headerMBold,
271
- headerDefaultBold = headerDefaultBold,
272
- headerSSemibold = headerSSemibold,
273
- headerXsSemibold = headerXsSemibold,
274
- bodyDefaultRegular = bodyDefaultRegular,
275
- bodyDefaultRegularStrikethrough = bodyDefaultRegularStrikethrough,
276
- descriptionDefaultRegular = descriptionDefaultRegular,
277
- descriptionDefaultRegularStrikethrough = descriptionDefaultRegularStrikethrough,
278
- descriptionXsRegular = descriptionXsRegular,
279
- descriptionXsRegularStrikethrough = descriptionXsRegularStrikethrough,
280
- labelDefaultMedium = labelDefaultMedium,
281
- labelSMedium = labelSMedium,
282
- labelXsMedium = labelXsMedium,
283
- actionDefaultBold = actionDefaultBold,
284
- actionSBold = actionSBold,
285
- actionXsBold = actionXsBold,
286
- actionXxsBold = actionXxsBold
287
- )
288
- }
289
-
290
- 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
- }