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