@momo-kits/native-kits 0.162.1-beta.1-debug → 0.162.1-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 (135) hide show
  1. package/package.json +1 -1
  2. package/build.gradle.kts +0 -11
  3. package/compose/build.gradle.kts +0 -189
  4. package/compose/build.gradle.kts.backup +0 -189
  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 -52
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +0 -109
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -183
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -207
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -39
  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 -294
  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 -826
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -109
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -378
  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 -80
  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 -338
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -175
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -354
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -113
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -89
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -128
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -209
  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 -140
  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 -112
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -477
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -114
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -214
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -240
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -216
  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 -180
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -343
  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 -84
  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 -331
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -97
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -310
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -59
  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 -90
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -323
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -217
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -473
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -122
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -199
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -91
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -470
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -88
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -131
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -203
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -498
  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 -182
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -193
  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 -234
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -188
  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 -270
  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 -52
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -66
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -48
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -253
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -129
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -93
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -145
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -346
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -556
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -155
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -223
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -169
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -319
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -81
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -309
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -34
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -360
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -132
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -128
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -70
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -58
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Deprecated.kt +0 -107
  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 -65
  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 -32
  127. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -184
  128. package/gradle/libs.versions.toml +0 -67
  129. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  130. package/gradle/wrapper/gradle-wrapper.properties +0 -8
  131. package/gradle.properties +0 -26
  132. package/gradlew +0 -252
  133. package/gradlew.bat +0 -94
  134. package/local.properties +0 -8
  135. package/settings.gradle.kts +0 -64
@@ -1,270 +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.*
11
- import org.jetbrains.compose.resources.Font
12
- import org.jetbrains.compose.resources.FontResource
13
- import org.jetbrains.compose.resources.InternalResourceApi
14
- import vn.momo.kits.application.ScaleSizeMaxRate
15
- import vn.momo.kits.platform.getScreenDimensions
16
- import vn.momo.uikits.resources.*
17
- import kotlin.math.max
18
- import kotlin.math.min
19
-
20
- const val DEFAULT_SCREEN_SIZE = 375f
21
- const val MAX_FONT_SCALE = 1.5f
22
- const val MAX_DEVICE_SCALE = 5
23
-
24
- @Composable
25
- fun scaleSize(size: Float): Float {
26
- val scaleSizeMaxRate: Float = ScaleSizeMaxRate.current ?: MAX_FONT_SCALE
27
- val deviceWidth = getScreenDimensions().width
28
- val deviceScale = deviceWidth / DEFAULT_SCREEN_SIZE
29
-
30
- val density = LocalDensity.current
31
- val fontScale = density.fontScale
32
-
33
- var fontSizeScaleDevice = size
34
- var fontSizeScaleOS = size
35
-
36
- if (deviceScale > 1) {
37
- fontSizeScaleDevice =
38
- min(deviceScale * fontSizeScaleDevice, fontSizeScaleDevice + MAX_DEVICE_SCALE)
39
- }
40
-
41
- if (fontScale > 1) {
42
- fontSizeScaleOS = min(fontScale * fontSizeScaleOS, fontSizeScaleOS * scaleSizeMaxRate)
43
- }
44
-
45
- return max(
46
- fontSizeScaleDevice,
47
- fontSizeScaleOS
48
- )
49
- }
50
-
51
- @Composable
52
- fun scaleSize(size: TextUnit): TextUnit {
53
- if (!size.isSp) return size
54
-
55
- val density = LocalDensity.current
56
-
57
- val scaled = scaleSize(size.value)
58
- val spValue = scaled / density.fontScale
59
-
60
- return TextUnit(value = spValue, type = TextUnitType.Sp)
61
- }
62
-
63
- @Composable
64
- fun scaleSize(size: Dp): Dp {
65
- return scaleSize(size.value).dp
66
- }
67
-
68
- @Composable
69
- fun scaleSize(textStyle: TextStyle): TextStyle {
70
- return textStyle.copy(
71
- fontSize = if (textStyle.fontSize != TextUnit.Unspecified)
72
- scaleSize(textStyle.fontSize)
73
- else
74
- TextUnit.Unspecified,
75
-
76
- lineHeight = if (textStyle.lineHeight != TextUnit.Unspecified)
77
- scaleSize(textStyle.lineHeight)
78
- else
79
- TextUnit.Unspecified,
80
- )
81
- }
82
-
83
-
84
- @OptIn(InternalResourceApi::class)
85
- @Composable
86
- internal fun getFont(font: FontResource): FontFamily {
87
- return FontFamily(Font(font))
88
- }
89
-
90
- @Composable
91
- fun getFontFamily(fontFamily: String, fontWeight: FontWeight? = FontWeight.Normal): FontFamily {
92
- val key = "$fontFamily-${fontWeight?.weight}"
93
- val fontMap = mapOf(
94
- "SFProText-100" to Res.font.sfprotext_thin,
95
- "SFProText-200" to Res.font.sfprotext_ultralight,
96
- "SFProText-300" to Res.font.sfprotext_light,
97
- "SFProText-400" to Res.font.sfprotext_regular,
98
- "SFProText-500" to Res.font.sfprotext_medium,
99
- "SFProText-600" to Res.font.sfprotext_semibold,
100
- "SFProText-700" to Res.font.sfprotext_bold,
101
- "SFProText-800" to Res.font.sfprotext_heavy,
102
- "SFProText-900" to Res.font.sfprotext_black,
103
-
104
- "MoMoSignature-100" to Res.font.momosignature,
105
- "MoMoSignature-200" to Res.font.momosignature,
106
- "MoMoSignature-300" to Res.font.momosignature,
107
- "MoMoSignature-400" to Res.font.momosignature,
108
- "MoMoSignature-500" to Res.font.momosignature,
109
- "MoMoSignature-600" to Res.font.momosignature,
110
- "MoMoSignature-700" to Res.font.momosignature,
111
- "MoMoSignature-800" to Res.font.momosignature,
112
- "MoMoSignature-900" to Res.font.momosignature,
113
-
114
- "MoMoTrustDisplay-100" to Res.font.momotrustdisplay,
115
- "MoMoTrustDisplay-200" to Res.font.momotrustdisplay,
116
- "MoMoTrustDisplay-300" to Res.font.momotrustdisplay,
117
- "MoMoTrustDisplay-400" to Res.font.momotrustdisplay,
118
- "MoMoTrustDisplay-500" to Res.font.momotrustdisplay,
119
- "MoMoTrustDisplay-600" to Res.font.momotrustdisplay,
120
- "MoMoTrustDisplay-700" to Res.font.momotrustdisplay,
121
- "MoMoTrustDisplay-800" to Res.font.momotrustdisplay,
122
- "MoMoTrustDisplay-900" to Res.font.momotrustdisplay,
123
- )
124
- val font = fontMap[key] ?: Res.font.sfprotext_regular
125
- return getFont(font)
126
- }
127
-
128
- @Immutable
129
- class AppTypography internal constructor(
130
- val headlineDefaultBold: TextStyle,
131
- val headerMBold: TextStyle,
132
- val headerDefaultBold: TextStyle,
133
- val headerSSemibold: TextStyle,
134
- val headerXsSemibold: TextStyle,
135
- val bodyDefaultRegular: TextStyle,
136
- val bodyDefaultRegularStrikethrough: TextStyle,
137
- val descriptionDefaultRegular: TextStyle,
138
- val descriptionDefaultRegularStrikethrough: TextStyle,
139
- val descriptionXsRegular: TextStyle,
140
- val descriptionXsRegularStrikethrough: TextStyle,
141
- val labelDefaultMedium: TextStyle,
142
- val labelSMedium: TextStyle,
143
- val labelXsMedium: TextStyle,
144
- val actionDefaultBold: TextStyle,
145
- val actionSBold: TextStyle,
146
- val actionXsBold: TextStyle,
147
- val actionXxsBold: TextStyle,
148
- ) {
149
- constructor(
150
- default: TextStyle = TextStyle(
151
- fontSize = 14.sp,
152
- lineHeight = 20.sp,
153
- fontWeight = FontWeight.Normal
154
- ),
155
- headlineDefaultBold: TextStyle = TextStyle(
156
- fontSize = 24.sp,
157
- lineHeight = 34.sp,
158
- fontWeight = FontWeight.Bold
159
- ),
160
- headerMBold: TextStyle = TextStyle(
161
- fontSize = 18.sp,
162
- lineHeight = 26.sp,
163
- fontWeight = FontWeight.Bold
164
- ),
165
- headerDefaultBold: TextStyle = TextStyle(
166
- fontSize = 16.sp,
167
- lineHeight = 22.sp,
168
- fontWeight = FontWeight.Bold
169
- ),
170
- headerSSemibold: TextStyle = TextStyle(
171
- fontSize = 14.sp,
172
- lineHeight = 20.sp,
173
- fontWeight = FontWeight.SemiBold
174
- ),
175
- headerXsSemibold: TextStyle = TextStyle(
176
- fontSize = 12.sp,
177
- lineHeight = 18.sp,
178
- fontWeight = FontWeight.SemiBold
179
- ),
180
- bodyDefaultRegular: TextStyle = TextStyle(
181
- fontSize = 14.sp,
182
- lineHeight = 20.sp,
183
- fontWeight = FontWeight.Normal
184
- ),
185
- bodyDefaultRegularStrikethrough: TextStyle = TextStyle(
186
- fontSize = 14.sp,
187
- lineHeight = 20.sp,
188
- fontWeight = FontWeight.Normal,
189
- textDecoration = TextDecoration.LineThrough
190
- ),
191
- descriptionDefaultRegular: TextStyle = TextStyle(
192
- fontSize = 12.sp,
193
- lineHeight = 18.sp,
194
- fontWeight = FontWeight.Normal
195
- ),
196
- descriptionDefaultRegularStrikethrough: TextStyle = TextStyle(
197
- fontSize = 12.sp,
198
- lineHeight = 18.sp,
199
- fontWeight = FontWeight.Normal,
200
- textDecoration = TextDecoration.LineThrough
201
- ),
202
- descriptionXsRegular: TextStyle = TextStyle(
203
- fontSize = 10.sp,
204
- lineHeight = 14.sp,
205
- fontWeight = FontWeight.Normal
206
- ),
207
- descriptionXsRegularStrikethrough: TextStyle = TextStyle(
208
- fontSize = 10.sp,
209
- lineHeight = 14.sp,
210
- fontWeight = FontWeight.Normal,
211
- textDecoration = TextDecoration.LineThrough
212
- ),
213
- labelDefaultMedium: TextStyle = TextStyle(
214
- fontSize = 14.sp,
215
- lineHeight = 20.sp,
216
- fontWeight = FontWeight.Medium
217
- ),
218
- labelSMedium: TextStyle = TextStyle(
219
- fontSize = 12.sp,
220
- lineHeight = 18.sp,
221
- fontWeight = FontWeight.Medium
222
- ),
223
- labelXsMedium: TextStyle = TextStyle(
224
- fontSize = 10.sp,
225
- lineHeight = 14.sp,
226
- fontWeight = FontWeight.Medium
227
- ),
228
- actionDefaultBold: TextStyle = TextStyle(
229
- fontSize = 16.sp,
230
- lineHeight = 22.sp,
231
- fontWeight = FontWeight.Bold
232
- ),
233
- actionSBold: TextStyle = TextStyle(
234
- fontSize = 14.sp,
235
- lineHeight = 20.sp,
236
- fontWeight = FontWeight.Bold
237
- ),
238
- actionXsBold: TextStyle = TextStyle(
239
- fontSize = 12.sp,
240
- lineHeight = 18.sp,
241
- fontWeight = FontWeight.Bold
242
- ),
243
- actionXxsBold: TextStyle = TextStyle(
244
- fontSize = 10.sp,
245
- lineHeight = 14.sp,
246
- fontWeight = FontWeight.Bold
247
- ),
248
- ) : this(
249
- headlineDefaultBold = headlineDefaultBold,
250
- headerMBold = headerMBold,
251
- headerDefaultBold = headerDefaultBold,
252
- headerSSemibold = headerSSemibold,
253
- headerXsSemibold = headerXsSemibold,
254
- bodyDefaultRegular = bodyDefaultRegular,
255
- bodyDefaultRegularStrikethrough = bodyDefaultRegularStrikethrough,
256
- descriptionDefaultRegular = descriptionDefaultRegular,
257
- descriptionDefaultRegularStrikethrough = descriptionDefaultRegularStrikethrough,
258
- descriptionXsRegular = descriptionXsRegular,
259
- descriptionXsRegularStrikethrough = descriptionXsRegularStrikethrough,
260
- labelDefaultMedium = labelDefaultMedium,
261
- labelSMedium = labelSMedium,
262
- labelXsMedium = labelXsMedium,
263
- actionDefaultBold = actionDefaultBold,
264
- actionSBold = actionSBold,
265
- actionXsBold = actionXsBold,
266
- actionXxsBold = actionXxsBold
267
- )
268
- }
269
-
270
- 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,52 +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
- fun Modifier.kitsAutomationId(accessibilityId: String, label: String? = null) =
24
- this then KitsAutomationIdElement(accessibilityId, label)
25
-
26
- private data class KitsAutomationIdElement(
27
- private val accessibilityId: String,
28
- private val label: String? = null,
29
- ) : ModifierNodeElement<KitsAutomationIdNode>() {
30
- override fun create(): KitsAutomationIdNode {
31
- return KitsAutomationIdNode(accessibilityId, label)
32
- }
33
-
34
- override fun update(node: KitsAutomationIdNode) {
35
- node.accessibilityId = accessibilityId
36
- node.label = label
37
- }
38
- }
39
-
40
- private class KitsAutomationIdNode(
41
- var accessibilityId: String,
42
- var label: String?,
43
- ) : Modifier.Node(), SemanticsModifierNode {
44
- override fun SemanticsPropertyReceiver.applySemantics() {
45
- if (getPlatformName() == "Android") {
46
- contentDescription = accessibilityId
47
- } else {
48
- testTag = accessibilityId
49
- contentDescription = label ?: accessibilityId
50
- }
51
- }
52
- }
@@ -1,66 +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
- fun Modifier.hideKeyboardOnTap() = composed {
57
- val focusManager = LocalFocusManager.current
58
- val keyboardManager = LocalSoftwareKeyboardController.current
59
-
60
- pointerInput(Unit) {
61
- detectTapGestures {
62
- keyboardManager?.hide()
63
- focusManager.clearFocus()
64
- }
65
- }
66
- }
@@ -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,48 +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
- fun Modifier.shadow(
13
- color: Color = Color.Black,
14
- borderRadius: Dp = 0.dp,
15
- blurRadius: Float = 0f,
16
- offsetY: Dp = 0.dp,
17
- offsetX: Dp = 0.dp,
18
- spread: Dp = 0f.dp,
19
- modifier: Modifier = Modifier
20
- ) = this.then(
21
- modifier.drawBehind {
22
- this.drawIntoCanvas {
23
- val paint = Paint()
24
- val frameworkPaint = paint.asFrameworkPaint()
25
- val spreadPixel = spread.toPx()
26
- val leftPixel = (0f - spreadPixel) + offsetX.toPx()
27
- val topPixel = (0f - spreadPixel) + offsetY.toPx()
28
- val rightPixel = (this.size.width + spreadPixel)
29
- val bottomPixel = (0f + spreadPixel) - offsetY.toPx()
30
-
31
- if (blurRadius != 0f) {
32
- frameworkPaint.setMaskFilter(blurRadius)
33
- }
34
-
35
- frameworkPaint.setColor(color)
36
-
37
- it.drawRoundRect(
38
- left = leftPixel,
39
- top = topPixel,
40
- right = rightPixel,
41
- bottom = bottomPixel,
42
- radiusX = borderRadius.toPx(),
43
- radiusY = borderRadius.toPx(),
44
- paint
45
- )
46
- }
47
- }
48
- )
@@ -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
- }