@momo-kits/native-kits 0.0.1-beta.5 → 0.0.2-alpha.1-debug

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 (653) hide show
  1. package/CLAUDE.md +99 -0
  2. package/PUBLISH_GUIDE.md +675 -0
  3. package/README.md +184 -5
  4. package/build.gradle.kts +11 -0
  5. package/compose/build.gradle.kts +189 -0
  6. package/compose/build.gradle.kts.backup +189 -0
  7. package/compose/compose.podspec +47 -0
  8. package/compose/src/androidMain/kotlin/vn/momo/kits/const/HostFont.android.kt +19 -0
  9. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +6 -0
  10. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/BackGesture.android.kt +12 -0
  11. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/OsFontScale.android.kt +7 -0
  12. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +151 -0
  13. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +52 -0
  14. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +124 -0
  15. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +183 -0
  16. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +207 -0
  17. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +39 -0
  18. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
  19. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
  20. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
  21. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +293 -0
  22. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
  23. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +831 -0
  24. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Localize.kt +269 -0
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +110 -0
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +378 -0
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/WidgetContainer.kt +65 -0
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +82 -0
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +338 -0
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +175 -0
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +356 -0
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +113 -0
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +89 -0
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +128 -0
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +209 -0
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +542 -0
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +49 -0
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +86 -0
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +125 -0
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +231 -0
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +189 -0
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +475 -0
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +114 -0
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +266 -0
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +240 -0
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +223 -0
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +264 -0
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +185 -0
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +343 -0
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +84 -0
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +328 -0
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +97 -0
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +310 -0
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +59 -0
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +21 -0
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +90 -0
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +323 -0
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +220 -0
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +473 -0
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +122 -0
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +199 -0
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +91 -0
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +552 -0
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +88 -0
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +125 -0
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +207 -0
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +498 -0
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +176 -0
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +182 -0
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +193 -0
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +234 -0
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +188 -0
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +325 -0
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/const/HostFont.kt +16 -0
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitDesignSystem.kt +18 -0
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/const/KitFontScale.kt +22 -0
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +16 -0
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +194 -0
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +282 -0
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +54 -0
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +51 -0
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +41 -0
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +52 -0
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +66 -0
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +104 -0
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +48 -0
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +299 -0
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/HostBackGestureBridge.kt +58 -0
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +129 -0
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +106 -0
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +211 -0
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +398 -0
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +8 -0
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +595 -0
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackTransition.kt +148 -0
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/SwipeBackHaptic.kt +40 -0
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +184 -0
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +225 -0
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +169 -0
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +357 -0
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +83 -0
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderJourney.kt +106 -0
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderLocation.kt +75 -0
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +326 -0
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +39 -0
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +364 -0
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/ToolkitRequests.kt +33 -0
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +135 -0
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/BackGesture.kt +12 -0
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +91 -0
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/OsFontScale.kt +9 -0
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +71 -0
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
  128. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +55 -0
  129. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +15 -0
  130. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +105 -0
  131. package/compose/src/commonTest/kotlin/vn/momo/kits/navigation/component/ToolkitRequestsTest.kt +47 -0
  132. package/compose/src/iosMain/kotlin/vn/momo/kits/const/HostFont.ios.kt +40 -0
  133. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/HostBackGesture.ios.kt +45 -0
  134. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +36 -0
  135. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/BackGesture.ios.kt +38 -0
  136. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/OsFontScale.ios.kt +66 -0
  137. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +213 -0
  138. package/gradle/libs.versions.toml +71 -0
  139. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  140. package/gradle/wrapper/gradle-wrapper.properties +8 -0
  141. package/gradle.properties +26 -0
  142. package/gradlew +252 -0
  143. package/gradlew.bat +94 -0
  144. package/ios/Application/ApplicationEnvironment.swift +71 -0
  145. package/ios/Application/Components.swift +270 -0
  146. package/ios/Application/ComposeApi.swift +22 -0
  147. package/ios/Application/FloatingButton.swift +174 -0
  148. package/ios/Application/HeaderRight.swift +306 -0
  149. package/ios/Application/LanguageSource.swift +93 -0
  150. package/ios/Application/Localize.swift +378 -0
  151. package/ios/Application/LocalizeModifier.swift +30 -0
  152. package/ios/Application/MaxApi.swift +18 -0
  153. package/ios/Application/Navigation/BottomTab/BottomTab.swift +104 -0
  154. package/ios/Application/Navigation/BottomTab/BottomTabBar.swift +215 -0
  155. package/ios/Application/Navigation/BottomTab/CurvedContainer.swift +65 -0
  156. package/ios/Application/Navigation/HeaderBackProps.swift +66 -0
  157. package/ios/Application/Navigation/HeaderTitle.swift +57 -0
  158. package/ios/Application/Navigation/HeaderUser.swift +209 -0
  159. package/ios/Application/Navigation/NavigationContainer.swift +213 -0
  160. package/ios/Application/Navigation/NavigationOptions.swift +109 -0
  161. package/ios/Application/Navigation/Navigator.swift +453 -0
  162. package/ios/Application/Navigation/NavigatorManager.swift +22 -0
  163. package/ios/Application/Navigation/Overplay/BottomSheet.swift +256 -0
  164. package/ios/Application/Navigation/Overplay/ModalScreen.swift +74 -0
  165. package/ios/Application/Navigation/Overplay/SnackBar.swift +144 -0
  166. package/ios/Application/Navigation/Tracking/ScreenTracker.swift +117 -0
  167. package/ios/Application/Navigation/component/Header.swift +178 -0
  168. package/ios/Application/Navigation/component/HeaderBackground.swift +83 -0
  169. package/ios/Application/Navigation/component/HeaderColor.swift +65 -0
  170. package/ios/Application/Navigation/component/HeaderRightWidthKey.swift +11 -0
  171. package/ios/Application/Navigation/component/NavigationFooter.swift +90 -0
  172. package/ios/Application/Navigation/component/NavigationHeaderRight.swift +196 -0
  173. package/ios/Application/Screen.swift +250 -0
  174. package/ios/Application/StackScreen.swift +492 -0
  175. package/ios/Avatar/Avatar.swift +193 -0
  176. package/ios/Badge/Badge.swift +84 -0
  177. package/ios/Badge/BadgeDot.swift +31 -0
  178. package/ios/Badge/BadgeRibbon.swift +319 -0
  179. package/ios/BaselineView/BaselineView.swift +163 -0
  180. package/ios/Button/Button.swift +232 -84
  181. package/ios/CalculatorKeyboard/CalculatorKeyboard.swift +126 -0
  182. package/ios/Carousel/Carousel.swift +196 -0
  183. package/ios/Checkbox/Checkbox.swift +59 -20
  184. package/ios/Chip/Chip.swift +120 -0
  185. package/ios/Collapse/Collapse.swift +192 -0
  186. package/ios/Colors+Radius+Spacing/Colors.swift +42 -37
  187. package/ios/Colors+Radius+Spacing/Spacing.swift +3 -1
  188. package/ios/Colors+Radius+Spacing/Theme.swift +295 -0
  189. package/ios/DateTimePicker/DateTimePicker.swift +212 -0
  190. package/ios/DateTimePicker/DateTimePickerTypes.swift +55 -0
  191. package/ios/DateTimePicker/DateTimePickerUtils.swift +167 -0
  192. package/ios/DateTimePicker/WheelPicker.swift +165 -0
  193. package/ios/Divider/Divider.swift +16 -0
  194. package/ios/Extensions/ActiveOpacityButtonStyle.swift +14 -0
  195. package/ios/Extensions/Color++.swift +32 -0
  196. package/ios/Icon/Icon.swift +69 -0
  197. package/ios/IconButton/IconButton.swift +140 -0
  198. package/ios/Image/Image.swift +36 -9
  199. package/ios/Information/Information.swift +156 -0
  200. package/ios/Input/ErrorView.swift +58 -0
  201. package/ios/Input/Input.swift +455 -121
  202. package/ios/Input/InputPhoneNumber.swift +192 -0
  203. package/ios/Input/InputSearch.swift +301 -0
  204. package/ios/Input/InputTextArea.swift +318 -0
  205. package/ios/InputDropDown/InputDropDown.swift +201 -0
  206. package/ios/InputMoney/InputMoney.swift +405 -0
  207. package/ios/InputOTP/InputOTP.swift +211 -0
  208. package/ios/Layout/GridContext.swift +30 -0
  209. package/ios/Layout/Item.swift +42 -0
  210. package/ios/Layout/Section.swift +134 -0
  211. package/ios/Loader/Loader.swift +113 -0
  212. package/ios/Lottie/LottieView.swift +86 -0
  213. package/ios/MoMoUIKits.podspec +5 -0
  214. package/ios/OTPKeyboard/KeyboardButton.swift +13 -5
  215. package/ios/Pagination/PaginationDot.swift +61 -0
  216. package/ios/Pagination/PaginationNumber.swift +35 -0
  217. package/ios/Pagination/PaginationScroll.swift +101 -0
  218. package/ios/Pagination/PaginationWhiteDot.swift +37 -0
  219. package/ios/Popup/PopupDisplay.swift +195 -94
  220. package/ios/Popup/PopupInput.swift +92 -0
  221. package/ios/Popup/PopupNotify.swift +219 -0
  222. package/ios/Popup/PopupPromotion.swift +74 -0
  223. package/ios/ProgressInfo/ProgressInfo.swift +297 -0
  224. package/ios/Radio/Radio.swift +69 -0
  225. package/ios/Rating/Rating.swift +83 -0
  226. package/{example/ios/Example/Preview Content/Preview Assets.xcassets/Contents.json → ios/Resources/MoMoUIKitsColors.xcassets/AccentColor.colorset/Contents.json} +5 -0
  227. package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Text.colorset/Contents.json +3 -3
  228. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/Contents.json +9 -0
  229. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-default.colorset/Contents.json +38 -0
  230. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-disable.colorset/Contents.json +38 -0
  231. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-pressed.colorset/Contents.json +38 -0
  232. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-selected.colorset/Contents.json +38 -0
  233. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-surface.colorset/Contents.json +38 -0
  234. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/background-tonal.colorset/Contents.json +38 -0
  235. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/border-default.colorset/Contents.json +38 -0
  236. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/border-disable.colorset/Contents.json +38 -0
  237. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/gradient.colorset/Contents.json +38 -0
  238. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/primary.colorset/Contents.json +38 -0
  239. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/secondary.colorset/Contents.json +38 -0
  240. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-container.colorset/Contents.json +38 -0
  241. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-primary.colorset/Contents.json +38 -0
  242. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/success-secondary.colorset/Contents.json +38 -0
  243. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-default.colorset/Contents.json +38 -0
  244. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-disable.colorset/Contents.json +38 -0
  245. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-hint.colorset/Contents.json +38 -0
  246. package/ios/Resources/MoMoUIKitsColors.xcassets/ThemeColors/text-secondary.colorset/Contents.json +38 -0
  247. package/ios/ScrollIndicator/ScrollIndicator.swift +110 -0
  248. package/ios/Skeleton/Skeleton.swift +99 -0
  249. package/ios/Slider/Slider.swift +237 -0
  250. package/ios/StatusBarTap/StatusBarTap.h +13 -0
  251. package/ios/StatusBarTap/StatusBarTap.m +75 -0
  252. package/ios/Stepper/Stepper.swift +221 -0
  253. package/ios/Steps/Steps.swift +467 -0
  254. package/ios/SuggestAction/SuggestAction.swift +100 -0
  255. package/ios/Swipeable/SwipeCell.swift +226 -31
  256. package/ios/Swipeable/SwipeCellModel.swift +21 -0
  257. package/ios/Switch/Switch.swift +53 -28
  258. package/ios/TabView/TabView.swift +534 -0
  259. package/ios/Tag/Tag.swift +99 -0
  260. package/ios/Template/Logo/Logo.swift +75 -0
  261. package/ios/Template/TrustBanner/TrustBanner.swift +123 -0
  262. package/ios/Title/Title.swift +270 -0
  263. package/ios/Tooltip/Tooltip.swift +486 -0
  264. package/ios/Typography/FontScale.swift +103 -0
  265. package/ios/Typography/FontScaleStore.swift +58 -0
  266. package/ios/Typography/KitDesignSystem.swift +17 -0
  267. package/ios/Typography/Text.swift +262 -0
  268. package/ios/Typography/Typography.swift +80 -23
  269. package/ios/Uploader/Uploader.swift +174 -0
  270. package/ios/native-kits.podspec +73 -15
  271. package/ios-demo/MoMoUIKitsDemo.podspec +20 -0
  272. package/ios-demo/README.md +120 -0
  273. package/ios-demo/Resources/dot_loading.json +558 -0
  274. package/ios-demo/Resources/icon.json +4052 -0
  275. package/ios-demo/Resources/lottie_circle_loader.json +1 -0
  276. package/ios-demo/Sources/MoMoUIKitsDemo/DemoScaffold.swift +48 -0
  277. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsBadgeDemoView.swift +25 -0
  278. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsButtonDemoView.swift +26 -0
  279. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsCheckboxDemoView.swift +19 -0
  280. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsChipDemoView.swift +33 -0
  281. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsInputDemoView.swift +48 -0
  282. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsPopupDemoView.swift +21 -0
  283. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsRadioDemoView.swift +17 -0
  284. package/ios-demo/Sources/MoMoUIKitsDemo/Demos/UIKitsTypographyDemoView.swift +28 -0
  285. package/ios-demo/Sources/MoMoUIKitsDemo/MoMoUIKitsDemoContext.swift +31 -0
  286. package/ios-demo/Sources/MoMoUIKitsDemo/MoMoUIKitsDemoFactory.swift +24 -0
  287. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/AnimatedHeaderDemo.swift +110 -0
  288. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/AvatarDemo.swift +107 -0
  289. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BadgeDemo.swift +75 -0
  290. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BaselineView.swift +117 -0
  291. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/BottomTabDemo.swift +89 -0
  292. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ButtonDemo.swift +108 -0
  293. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CarouselDemo.swift +96 -0
  294. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CheckboxDemo.swift +60 -0
  295. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ChipDemo.swift +76 -0
  296. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/CollapseDemo.swift +102 -0
  297. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ContentView.swift +107 -0
  298. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/DateTimePickerDemo.swift +100 -0
  299. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/DemoScreen.swift +420 -0
  300. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/DividerDemo.swift +56 -0
  301. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/HeaderUserDemo.swift +49 -0
  302. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/Home.swift +276 -0
  303. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/IconButtonDemo.swift +93 -0
  304. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/IconDemo.swift +81 -0
  305. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ImageDemo.swift +65 -0
  306. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InformationDemo.swift +96 -0
  307. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputDemo.swift +117 -0
  308. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputDropDownDemo.swift +94 -0
  309. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputMoneyDemo.swift +94 -0
  310. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputOTPDemo.swift +88 -0
  311. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputPhoneNumberDemo.swift +120 -0
  312. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputSearchDemo.swift +85 -0
  313. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/InputTextAreaDemo.swift +87 -0
  314. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/LoaderDemo.swift +73 -0
  315. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/LocalizeDemo.swift +235 -0
  316. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/NavigationDemo.swift +241 -0
  317. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PaginationDemo.swift +68 -0
  318. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PlaygroundData.swift +76 -0
  319. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupDisplayDemo.swift +175 -0
  320. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupNotifyDemo.swift +95 -0
  321. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/PopupPromotionDemo.swift +67 -0
  322. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ProgressInfoDemo.swift +101 -0
  323. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/RadioDemo.swift +64 -0
  324. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/RatingDemo.swift +68 -0
  325. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SectionDemo.swift +83 -0
  326. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SkeletonDemo.swift +61 -0
  327. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SliderDemo.swift +90 -0
  328. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SnackBarDemo.swift +82 -0
  329. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/StepperDemo.swift +93 -0
  330. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/StepsDemo.swift +114 -0
  331. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SuggestActionDemo.swift +90 -0
  332. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SwipeDemo.swift +107 -0
  333. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/SwitchDemo.swift +58 -0
  334. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TabViewDemo.swift +114 -0
  335. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TagDemo.swift +86 -0
  336. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/ThemeDemo.swift +181 -0
  337. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TitleDemo.swift +104 -0
  338. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TooltipDemo.swift +118 -0
  339. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/TypographyDemo.swift +87 -0
  340. package/ios-demo/Sources/MoMoUIKitsDemo/SampleDemos/UploaderDemo.swift +85 -0
  341. package/ios-demo/Sources/MoMoUIKitsDemo/SwiftUIDemoBrowserView.swift +53 -0
  342. package/ios-demo/Sources/MoMoUIKitsDemo/UIKitsDemoModels.swift +15 -0
  343. package/ios-demo/Sources/MoMoUIKitsDemo/UIKitsDemoRegistry.swift +73 -0
  344. package/package.json +6 -6
  345. package/publish.sh +554 -20
  346. package/scripts/gen-ios-color.mjs +136 -0
  347. package/settings.gradle.kts +64 -0
  348. package/CODE_OF_CONDUCT.md +0 -133
  349. package/CONTRIBUTING.md +0 -114
  350. package/LICENSE +0 -20
  351. package/android/build.gradle +0 -82
  352. package/android/gradle.properties +0 -5
  353. package/android/src/main/AndroidManifest.xml +0 -4
  354. package/android/src/main/java/com/momoplatform/nativekits/NativeKitsPackage.kt +0 -17
  355. package/android/src/main/java/com/momoplatform/nativekits/NativeKitsViewManager.kt +0 -20
  356. package/example/ios/Example/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -63
  357. package/example/ios/Example/ComponentDetail.swift +0 -35
  358. package/example/ios/Example/ComponentItem.swift +0 -24
  359. package/example/ios/Example/ComponentModel.swift +0 -38
  360. package/example/ios/Example/ContentView.swift +0 -39
  361. package/example/ios/Example/Example.entitlements +0 -10
  362. package/example/ios/Example/Foundation/ButtonDemo.swift +0 -80
  363. package/example/ios/Example/Foundation/ImageDemo.swift +0 -43
  364. package/example/ios/Example/Foundation/Popup/ActionSheets.swift +0 -136
  365. package/example/ios/Example/Foundation/Popup/Floats.swift +0 -127
  366. package/example/ios/Example/Foundation/Popup/Popups.swift +0 -51
  367. package/example/ios/Example/Foundation/PopupDemo.swift +0 -389
  368. package/example/ios/Example/Foundation/TextInputDemo.swift +0 -36
  369. package/example/ios/Example/Foundation/TypographyDemo.swift +0 -53
  370. package/example/ios/Example/Foundation.swift +0 -26
  371. package/example/ios/Example/Info.plist +0 -18
  372. package/example/ios/Example/Library/CheckboxDemo.swift +0 -19
  373. package/example/ios/Example/Library/SwipeableDemo.swift +0 -105
  374. package/example/ios/Example/Library/SwitchDemo.swift +0 -19
  375. package/example/ios/Example/Library.swift +0 -26
  376. package/example/ios/Example/Main.swift +0 -27
  377. package/example/ios/Example/Overview.swift +0 -20
  378. package/example/ios/Example/Resource/SFProText-Black.ttf +0 -0
  379. package/example/ios/Example/Resource/SFProText-Bold.ttf +0 -0
  380. package/example/ios/Example/Resource/SFProText-Heavy.ttf +0 -0
  381. package/example/ios/Example/Resource/SFProText-Light.ttf +0 -0
  382. package/example/ios/Example/Resource/SFProText-Medium.ttf +0 -0
  383. package/example/ios/Example/Resource/SFProText-Regular.ttf +0 -0
  384. package/example/ios/Example/Resource/SFProText-Semibold.ttf +0 -0
  385. package/example/ios/Example/Resource/SFProText-Thin.ttf +0 -0
  386. package/example/ios/Example/Resource/SFProText-Ultralight.ttf +0 -0
  387. package/example/ios/Example/Resource/foundation.json +0 -33
  388. package/example/ios/Example/Resource/library.json +0 -18
  389. package/example/ios/Example/Utils.swift +0 -30
  390. package/example/ios/Example/ViewModifier/DarkViewModifier.swift +0 -22
  391. package/example/ios/Example.xcodeproj/project.pbxproj +0 -581
  392. package/example/ios/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  393. package/example/ios/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  394. package/example/ios/Example.xcodeproj/project.xcworkspace/xcuserdata/wem.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  395. package/example/ios/Example.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  396. package/example/ios/Example.xcworkspace/contents.xcworkspacedata +0 -10
  397. package/example/ios/Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  398. package/example/ios/Example.xcworkspace/xcuserdata/wem.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  399. package/example/ios/Example.xcworkspace/xcuserdata/wem.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  400. package/example/ios/Podfile +0 -7
  401. package/example/ios/Podfile.lock +0 -35
  402. package/example/ios/Pods/Local Podspecs/MoMoUIKits.podspec.json +0 -37
  403. package/example/ios/Pods/Manifest.lock +0 -35
  404. package/example/ios/Pods/Pods.xcodeproj/project.pbxproj +0 -2047
  405. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
  406. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
  407. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
  408. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
  409. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
  410. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/wem.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
  411. package/example/ios/Pods/SDWebImage/LICENSE +0 -20
  412. package/example/ios/Pods/SDWebImage/README.md +0 -352
  413. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSButton+WebCache.h +0 -340
  414. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSButton+WebCache.m +0 -172
  415. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.h +0 -63
  416. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.m +0 -165
  417. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.h +0 -67
  418. package/example/ios/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.m +0 -120
  419. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.h +0 -114
  420. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.m +0 -392
  421. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImagePlayer.h +0 -112
  422. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImagePlayer.m +0 -420
  423. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.h +0 -23
  424. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.m +0 -133
  425. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView+WebCache.h +0 -168
  426. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView+WebCache.m +0 -79
  427. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.h +0 -110
  428. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.m +0 -540
  429. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.h +0 -145
  430. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.m +0 -326
  431. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDGraphicsImageRenderer.h +0 -73
  432. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDGraphicsImageRenderer.m +0 -256
  433. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.h +0 -19
  434. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.m +0 -58
  435. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAWebPCoder.h +0 -23
  436. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageAWebPCoder.m +0 -98
  437. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCache.h +0 -450
  438. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCache.m +0 -1030
  439. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.h +0 -153
  440. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.m +0 -68
  441. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.h +0 -156
  442. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.m +0 -138
  443. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.h +0 -81
  444. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.m +0 -556
  445. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.h +0 -297
  446. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.m +0 -26
  447. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.h +0 -153
  448. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.m +0 -822
  449. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCodersManager.h +0 -58
  450. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageCodersManager.m +0 -130
  451. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageFrame.h +0 -36
  452. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageFrame.m +0 -28
  453. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGIFCoder.h +0 -22
  454. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGIFCoder.m +0 -58
  455. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.h +0 -28
  456. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.m +0 -127
  457. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.h +0 -25
  458. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.m +0 -101
  459. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.h +0 -58
  460. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.m +0 -807
  461. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOCoder.h +0 -30
  462. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageIOCoder.m +0 -420
  463. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoader.h +0 -146
  464. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoader.m +0 -170
  465. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoadersManager.h +0 -40
  466. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageLoadersManager.m +0 -123
  467. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageTransformer.h +0 -241
  468. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDImageTransformer.m +0 -331
  469. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDMemoryCache.h +0 -78
  470. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDMemoryCache.m +0 -158
  471. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheKeyFilter.h +0 -32
  472. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheKeyFilter.m +0 -39
  473. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheSerializer.h +0 -36
  474. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCacheSerializer.m +0 -39
  475. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCompat.h +0 -95
  476. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageCompat.m +0 -17
  477. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDefine.h +0 -352
  478. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDefine.m +0 -149
  479. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloader.h +0 -314
  480. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloader.m +0 -658
  481. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderConfig.h +0 -113
  482. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderConfig.m +0 -60
  483. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderDecryptor.h +0 -49
  484. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderDecryptor.m +0 -55
  485. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderOperation.h +0 -191
  486. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderOperation.m +0 -722
  487. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderRequestModifier.h +0 -69
  488. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderRequestModifier.m +0 -71
  489. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderResponseModifier.h +0 -69
  490. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageDownloaderResponseModifier.m +0 -73
  491. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageError.h +0 -32
  492. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageError.m +0 -16
  493. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageIndicator.h +0 -115
  494. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageIndicator.m +0 -275
  495. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageManager.h +0 -290
  496. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageManager.m +0 -775
  497. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOperation.h +0 -27
  498. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOperation.m +0 -14
  499. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOptionsProcessor.h +0 -72
  500. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageOptionsProcessor.m +0 -59
  501. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImagePrefetcher.h +0 -143
  502. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImagePrefetcher.m +0 -303
  503. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageTransition.h +0 -131
  504. package/example/ios/Pods/SDWebImage/SDWebImage/Core/SDWebImageTransition.m +0 -194
  505. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIButton+WebCache.h +0 -387
  506. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIButton+WebCache.m +0 -234
  507. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ExtendedCacheData.h +0 -24
  508. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ExtendedCacheData.m +0 -23
  509. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ForceDecode.h +0 -46
  510. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+ForceDecode.m +0 -60
  511. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+GIF.h +0 -26
  512. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+GIF.m +0 -22
  513. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MemoryCacheCost.h +0 -27
  514. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MemoryCacheCost.m +0 -47
  515. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Metadata.h +0 -89
  516. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Metadata.m +0 -221
  517. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MultiFormat.h +0 -80
  518. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+MultiFormat.m +0 -47
  519. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Transform.h +0 -146
  520. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImage+Transform.m +0 -824
  521. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+HighlightedWebCache.h +0 -129
  522. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+HighlightedWebCache.m +0 -76
  523. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+WebCache.h +0 -194
  524. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIImageView+WebCache.m +0 -67
  525. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCache.h +0 -110
  526. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCache.m +0 -446
  527. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCacheOperation.h +0 -48
  528. package/example/ios/Pods/SDWebImage/SDWebImage/Core/UIView+WebCacheOperation.m +0 -82
  529. package/example/ios/Pods/SDWebImage/SDWebImage/Private/NSBezierPath+SDRoundedCorners.h +0 -24
  530. package/example/ios/Pods/SDWebImage/SDWebImage/Private/NSBezierPath+SDRoundedCorners.m +0 -42
  531. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAssociatedObject.h +0 -14
  532. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAssociatedObject.m +0 -29
  533. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAsyncBlockOperation.h +0 -21
  534. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDAsyncBlockOperation.m +0 -92
  535. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDeviceHelper.h +0 -18
  536. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDeviceHelper.m +0 -32
  537. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDisplayLink.h +0 -29
  538. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDDisplayLink.m +0 -227
  539. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDFileAttributeHelper.h +0 -19
  540. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDFileAttributeHelper.m +0 -127
  541. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageAssetManager.h +0 -23
  542. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageAssetManager.m +0 -164
  543. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageCachesManagerOperation.h +0 -21
  544. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageCachesManagerOperation.m +0 -83
  545. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDImageIOAnimatedCoderInternal.h +0 -39
  546. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDInternalMacros.h +0 -122
  547. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDInternalMacros.m +0 -13
  548. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWeakProxy.h +0 -20
  549. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWeakProxy.m +0 -79
  550. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDWebImageTransitionInternal.h +0 -19
  551. package/example/ios/Pods/SDWebImage/SDWebImage/Private/SDmetamacros.h +0 -667
  552. package/example/ios/Pods/SDWebImage/SDWebImage/Private/UIColor+SDHexString.h +0 -18
  553. package/example/ios/Pods/SDWebImage/SDWebImage/Private/UIColor+SDHexString.m +0 -42
  554. package/example/ios/Pods/SDWebImage/WebImage/SDWebImage.h +0 -89
  555. package/example/ios/Pods/SDWebImageSwiftUI/LICENSE +0 -19
  556. package/example/ios/Pods/SDWebImageSwiftUI/README.md +0 -690
  557. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/AnimatedImage.swift +0 -870
  558. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/Backport.swift +0 -59
  559. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/OnChange.swift +0 -52
  560. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/Overlay.swift +0 -124
  561. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Backports/StateObject.swift +0 -151
  562. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Image.swift +0 -78
  563. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageManager.swift +0 -132
  564. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImagePlayer.swift +0 -122
  565. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageViewWrapper.swift +0 -133
  566. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/ActivityIndicator.swift +0 -82
  567. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/Indicator.swift +0 -97
  568. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Indicator/ProgressIndicator.swift +0 -114
  569. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/SDWebImageSwiftUI.swift +0 -64
  570. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/SwiftUICompatibility.swift +0 -92
  571. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/Transition/Transition.swift +0 -93
  572. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/WebImage.swift +0 -509
  573. package/example/ios/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Module/SDWebImageSwiftUI.h +0 -15
  574. package/example/ios/Pods/SkeletonUI/LICENSE +0 -21
  575. package/example/ios/Pods/SkeletonUI/README.md +0 -137
  576. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Angle/AngleInteractor.swift +0 -29
  577. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Angle/AnglePresenter.swift +0 -7
  578. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Animation/AnimationInteractor.swift +0 -56
  579. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Appearance/AppearanceInteractor.swift +0 -58
  580. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Appearance/AppearancePresenter.swift +0 -5
  581. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/ClosedRange+Normalize.swift +0 -16
  582. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Image+OptionalType.swift +0 -102
  583. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/ModifiedContent+SkeletonModifier.swift +0 -26
  584. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Optional+OptionalType.swift +0 -5
  585. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/SecureField+OptionalType.swift +0 -19
  586. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Text+OptionalType.swift +0 -27
  587. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/TextField+OptionalType.swift +0 -35
  588. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/Toggle+OptionalType.swift +0 -29
  589. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/UnitPoint+Angle.swift +0 -8
  590. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Extensions/View+SkeletonModifier.swift +0 -8
  591. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Modifiers/SkeletonModifier.swift +0 -52
  592. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Multiline/MultilineInteractor.swift +0 -41
  593. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Multiline/MultilinePresenter.swift +0 -9
  594. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Opacity/OpacityInteractor.swift +0 -29
  595. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Opacity/OpacityPresenter.swift +0 -7
  596. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Position/PositionInteractor.swift +0 -29
  597. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Position/PositionPresenter.swift +0 -7
  598. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Protocols/OptionalType.swift +0 -4
  599. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Radius/RadiusInteractor.swift +0 -29
  600. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Radius/RadiusPresenter.swift +0 -7
  601. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Shape/ShapeInteractor.swift +0 -33
  602. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Shape/ShapePresenter.swift +0 -5
  603. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonForEach.swift +0 -20
  604. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonInteractor.swift +0 -27
  605. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonList.swift +0 -20
  606. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonPresenter.swift +0 -15
  607. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonShape.swift +0 -64
  608. package/example/ios/Pods/SkeletonUI/Sources/SkeletonUI/Skeleton/SkeletonView.swift +0 -25
  609. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits-dummy.m +0 -5
  610. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits-prefix.pch +0 -12
  611. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits-umbrella.h +0 -16
  612. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.debug.xcconfig +0 -15
  613. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.modulemap +0 -6
  614. package/example/ios/Pods/Target Support Files/MoMoUIKits/MoMoUIKits.release.xcconfig +0 -15
  615. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown +0 -75
  616. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist +0 -119
  617. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m +0 -5
  618. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h +0 -16
  619. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig +0 -15
  620. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap +0 -6
  621. package/example/ios/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig +0 -15
  622. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m +0 -5
  623. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch +0 -12
  624. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage-umbrella.h +0 -75
  625. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.debug.xcconfig +0 -14
  626. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.modulemap +0 -6
  627. package/example/ios/Pods/Target Support Files/SDWebImage/SDWebImage.release.xcconfig +0 -14
  628. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-dummy.m +0 -5
  629. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-prefix.pch +0 -12
  630. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-umbrella.h +0 -17
  631. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.debug.xcconfig +0 -17
  632. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.modulemap +0 -6
  633. package/example/ios/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI.release.xcconfig +0 -17
  634. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-dummy.m +0 -5
  635. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-prefix.pch +0 -12
  636. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI-umbrella.h +0 -16
  637. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.debug.xcconfig +0 -12
  638. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.modulemap +0 -6
  639. package/example/ios/Pods/Target Support Files/SkeletonUI/SkeletonUI.release.xcconfig +0 -12
  640. package/ios/Extensions/View++.swift +0 -9
  641. package/ios/Theme.md +0 -18
  642. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Background.colorset/Contents.json +0 -0
  643. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Border.colorset/Contents.json +0 -0
  644. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Card.colorset/Contents.json +0 -0
  645. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Contents.json +0 -0
  646. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Error.colorset/Contents.json +0 -0
  647. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Primary.colorset/Contents.json +0 -0
  648. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/PrimaryDark.colorset/Contents.json +0 -0
  649. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/PrimaryLight.colorset/Contents.json +0 -0
  650. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Secondary.colorset/Contents.json +0 -0
  651. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Success.colorset/Contents.json +0 -0
  652. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/TextSecondary.colorset/Contents.json +0 -0
  653. /package/{example/ios/Example/Assets.xcassets → ios/Resources/MoMoUIKitsColors.xcassets}/Warning.colorset/Contents.json +0 -0
@@ -0,0 +1,475 @@
1
+ package vn.momo.kits.components
2
+
3
+ import vn.momo.kits.modifier.InternalApi
4
+
5
+ import androidx.compose.foundation.background
6
+ import androidx.compose.foundation.border
7
+ import androidx.compose.foundation.clickable
8
+ import androidx.compose.foundation.interaction.MutableInteractionSource
9
+ import androidx.compose.foundation.layout.*
10
+ import androidx.compose.foundation.shape.RoundedCornerShape
11
+ import androidx.compose.foundation.text.BasicTextField
12
+ import androidx.compose.foundation.text.KeyboardOptions
13
+ import androidx.compose.material3.CircularProgressIndicator
14
+ import androidx.compose.runtime.*
15
+ import androidx.compose.ui.Alignment
16
+ import androidx.compose.ui.Modifier
17
+ import androidx.compose.ui.focus.onFocusChanged
18
+ import androidx.compose.ui.graphics.Color
19
+ import androidx.compose.ui.text.AnnotatedString
20
+ import androidx.compose.ui.text.SpanStyle
21
+ import androidx.compose.ui.text.TextStyle
22
+ import androidx.compose.ui.text.font.FontFamily
23
+ import androidx.compose.ui.text.font.FontWeight
24
+ import androidx.compose.ui.text.input.KeyboardType
25
+ import androidx.compose.ui.text.input.OffsetMapping
26
+ import androidx.compose.ui.text.input.TransformedText
27
+ import androidx.compose.ui.text.input.VisualTransformation
28
+ import androidx.compose.ui.text.style.TextAlign
29
+ import androidx.compose.ui.unit.Dp
30
+ import androidx.compose.ui.unit.TextUnit
31
+ import androidx.compose.ui.unit.dp
32
+ import androidx.compose.ui.unit.sp
33
+ import androidx.compose.ui.zIndex
34
+ import vn.momo.kits.application.IsShowBaseLineDebug
35
+ import vn.momo.kits.const.*
36
+ import vn.momo.kits.modifier.conditional
37
+ import vn.momo.kits.modifier.setAutomationId
38
+
39
+ data class InputSizeDetail(
40
+ val borderWidth: Dp,
41
+ val borderRadius: Dp,
42
+ val height: Dp,
43
+ )
44
+
45
+ enum class InputSize(val values: InputSizeDetail) {
46
+ SMALL(
47
+ InputSizeDetail(
48
+ borderWidth = 1.dp,
49
+ borderRadius = Radius.S,
50
+ height = 48.dp
51
+ )
52
+ ),
53
+ LARGE(
54
+ InputSizeDetail(
55
+ borderWidth = 1.dp,
56
+ borderRadius = Radius.S,
57
+ height = 56.dp
58
+ )
59
+ )
60
+ }
61
+
62
+ enum class InputFontWeight(val value: FontWeight) {
63
+ REGULAR(
64
+ FontWeight(400)
65
+ ),
66
+ BOLD(
67
+ FontWeight(700)
68
+ )
69
+ }
70
+
71
+ data class InputState(
72
+ val isFocused: Boolean = false,
73
+ val passHidden: Boolean = false,
74
+ val hasBeenBlurred: Boolean = false
75
+ )
76
+
77
+ private class PasswordVisualTransformation(
78
+ private val fontFamily: FontFamily,
79
+ private val fontSize: TextUnit
80
+ ) : VisualTransformation {
81
+ private val mask: Char = '\u2022'
82
+
83
+ override fun filter(text: AnnotatedString): TransformedText {
84
+
85
+ val maskedText = AnnotatedString(
86
+ text = mask.toString().repeat(text.length),
87
+ spanStyles = listOf(
88
+ AnnotatedString.Range(
89
+ SpanStyle(fontSize = fontSize, letterSpacing = 0.sp, fontFamily = fontFamily),
90
+ 0,
91
+ text.length
92
+ )
93
+ )
94
+ )
95
+ return TransformedText(maskedText, OffsetMapping.Identity)
96
+ }
97
+
98
+ override fun equals(other: Any?): Boolean {
99
+ if (this === other) return true
100
+ if (other !is PasswordVisualTransformation) return false
101
+ return mask == other.mask && fontSize == other.fontSize
102
+ }
103
+
104
+ override fun hashCode(): Int {
105
+ return 31 * mask.hashCode() + fontSize.hashCode()
106
+ }
107
+ }
108
+
109
+ @Composable
110
+ @InternalApi
111
+ fun getBorderColor(isFocused: Boolean, error: String, disabled: Boolean): Color {
112
+ val theme = AppTheme.current
113
+ return remember(isFocused, error, disabled, theme) {
114
+ when {
115
+ disabled -> theme.colors.border.disable
116
+ error.isNotEmpty() -> theme.colors.error.primary
117
+ isFocused -> theme.colors.primary
118
+ else -> theme.colors.border.default
119
+ }
120
+ }
121
+ }
122
+
123
+ @Composable
124
+ @InternalApi
125
+ fun RenderRightIcon(loading: Boolean, icon: String, color: Color, onClick: () -> Unit, modifier: Modifier = Modifier) {
126
+ if (loading) {
127
+ Box {
128
+ CircularProgressIndicator(
129
+ modifier = Modifier.size(16.dp),
130
+ color = color,
131
+ trackColor = Color.Transparent,
132
+ strokeWidth = 2.dp
133
+ )
134
+ }
135
+ }
136
+ if (icon.isNotEmpty()) {
137
+ Icon(
138
+ source = icon,
139
+ color = color,
140
+ size = 24.dp,
141
+ modifier = modifier.clickable(
142
+ onClick = onClick,
143
+ interactionSource = remember { MutableInteractionSource() },
144
+ indication = null
145
+ )
146
+ )
147
+ }
148
+ }
149
+
150
+ @Composable
151
+ @InternalApi
152
+ fun ErrorView(errorMessage: String, errorSpacing: Boolean, hintText: String) {
153
+ val theme = AppTheme.current
154
+ val errorColor = remember(theme) { theme.colors.error.primary }
155
+ val hintColor = remember(theme) { theme.colors.text.hint }
156
+ val hintTextDefault = remember(hintText) { hintText.ifEmpty { "Không thể chỉnh sửa" } }
157
+
158
+ if (errorMessage.isNotEmpty() || hintText.isNotEmpty()) {
159
+ val color = if (errorMessage.isNotEmpty()) errorColor else hintColor
160
+ Row(
161
+ Modifier.padding(top = Spacing.XS),
162
+ verticalAlignment = Alignment.Top
163
+ ) {
164
+ Icon(
165
+ size = 16.dp,
166
+ color = color,
167
+ source = "ic_error"
168
+ )
169
+ Text(
170
+ errorMessage.ifEmpty { hintTextDefault },
171
+ style = Typography.descriptionDefaultRegular,
172
+ modifier = Modifier.padding(start = Spacing.XS),
173
+ color = color,
174
+ )
175
+ }
176
+ } else if (errorSpacing) {
177
+ Spacer(Modifier.padding(top = Spacing.XS).height(18.dp))
178
+ }
179
+ }
180
+
181
+ @Composable
182
+ fun Input(
183
+ text: MutableState<String> = remember { mutableStateOf("") },
184
+ floatingValue: String = "",
185
+ floatingValueColor: Color = AppTheme.current.colors.text.hint,
186
+ floatingIcon: String = "",
187
+ floatingIconColor: Color = AppTheme.current.colors.text.default,
188
+ placeholder: String = "",
189
+ size: InputSize = InputSize.SMALL,
190
+ onChangeText: (String) -> Unit = {},
191
+ hintText: String = "",
192
+ error: String = "",
193
+ errorSpacing: Boolean = false,
194
+ disabled: Boolean = false,
195
+ readOnly: Boolean = false,
196
+ secureTextEntry: Boolean = false,
197
+ icon: String = "",
198
+ iconColor: Color = AppTheme.current.colors.text.default,
199
+ onRightIconPressed: () -> Unit = {},
200
+ leadingIcon: String = "",
201
+ leadingIconColor: Color = AppTheme.current.colors.text.hint,
202
+ onFocus: () -> Unit = {},
203
+ onBlur: () -> Unit = {},
204
+ loading: Boolean = false,
205
+ required: Boolean = false,
206
+ maxLength: Int? = null,
207
+ fontWeight: InputFontWeight = InputFontWeight.REGULAR,
208
+ keyboardType: KeyboardType = KeyboardType.Text,
209
+ modifier: Modifier = Modifier,
210
+ inputModifier: Modifier = Modifier,
211
+ ) {
212
+ // Consolidated state management
213
+ var inputState by remember { mutableStateOf(InputState()) }
214
+
215
+ // Memoized color calculations
216
+ val theme = AppTheme.current
217
+ val colors = remember(disabled, theme) {
218
+ if (disabled) {
219
+ val disabledColor = theme.colors.text.disable
220
+ Triple(disabledColor, disabledColor, disabledColor)
221
+ } else {
222
+ Triple(
223
+ theme.colors.text.default, // textColor
224
+ theme.colors.text.hint, // placeholderColor
225
+ iconColor // iconTintColor
226
+ )
227
+ }
228
+ }
229
+
230
+ val (textColor, placeholderColor, iconTintColor) = colors
231
+
232
+ val floatingTitleColor = remember(disabled, floatingValueColor, theme) {
233
+ if (disabled) theme.colors.text.disable else floatingValueColor
234
+ }
235
+
236
+ val floatingIconTintColor = remember(disabled, floatingIconColor, theme) {
237
+ if (disabled) theme.colors.text.disable else floatingIconColor
238
+ }
239
+
240
+ val fontSize = 14.sp
241
+ val lineHeight = 24.sp
242
+ val scaleFontSize = scaleSize(fontSize)
243
+ val scaleLineHeight = scaleSize(lineHeight)
244
+
245
+ val textStyle = remember(textColor, fontWeight) {
246
+ TextStyle(
247
+ color = textColor,
248
+ fontSize = scaleFontSize,
249
+ lineHeight = scaleLineHeight,
250
+ fontWeight = fontWeight.value
251
+ )
252
+ }
253
+
254
+ val placeholderStyle = remember(placeholderColor, fontWeight) {
255
+ TextStyle(
256
+ fontSize = fontSize,
257
+ lineHeight = lineHeight,
258
+ fontWeight = fontWeight.value,
259
+ textAlign = TextAlign.Center
260
+ )
261
+ }
262
+
263
+ val keyboardOptionsConfig = remember(secureTextEntry, keyboardType) {
264
+ KeyboardOptions.Default.copy(
265
+ keyboardType = keyboardType
266
+ )
267
+ }
268
+
269
+ val passwordFontFamily = getFontFamily(AppTheme.current.font, FontWeight.Normal)
270
+ val passwordFontSize = scaleSize(24.sp)
271
+ val visualTransformation = remember(secureTextEntry, inputState.passHidden, passwordFontFamily) {
272
+ if (secureTextEntry && !inputState.passHidden)
273
+ PasswordVisualTransformation(fontFamily = passwordFontFamily, fontSize = passwordFontSize)
274
+ else
275
+ VisualTransformation.None
276
+ }
277
+
278
+ Column(modifier = modifier
279
+ .conditional(IsShowBaseLineDebug) {
280
+ border(1.dp, Colors.blue_03)
281
+ }) {
282
+ BasicTextField(
283
+ enabled = !disabled,
284
+ readOnly = readOnly,
285
+ singleLine = true,
286
+ value = text.value,
287
+ textStyle = textStyle,
288
+ visualTransformation = visualTransformation,
289
+ keyboardOptions = keyboardOptionsConfig,
290
+ modifier = inputModifier
291
+ .height(scaleSize(size.values.height.value).dp)
292
+ .onFocusChanged { focusState ->
293
+ val wasFocused = inputState.isFocused
294
+ inputState = inputState.copy(
295
+ isFocused = focusState.isFocused,
296
+ hasBeenBlurred = inputState.hasBeenBlurred || wasFocused
297
+ )
298
+
299
+ if (focusState.isFocused) {
300
+ onFocus()
301
+ } else if (inputState.hasBeenBlurred) {
302
+ onBlur()
303
+ }
304
+ },
305
+ onValueChange = { newText ->
306
+ val limitedText = maxLength?.let { newText.take(it) } ?: newText
307
+ onChangeText(limitedText)
308
+ },
309
+ decorationBox = { innerTextField ->
310
+ // Floating label
311
+ FloatingLabel(
312
+ floatingValue = floatingValue,
313
+ floatingIcon = floatingIcon,
314
+ titleColor = floatingTitleColor,
315
+ iconColor = floatingIconTintColor,
316
+ offsetY = -size.values.height / 2,
317
+ required = required,
318
+ )
319
+
320
+ // Input container
321
+ Box(
322
+ modifier = Modifier
323
+ .fillMaxWidth()
324
+ .background(
325
+ color = AppTheme.current.colors.background.surface,
326
+ shape = RoundedCornerShape(size.values.borderRadius)
327
+ )
328
+ .border(
329
+ 1.dp,
330
+ getBorderColor(inputState.isFocused, error, disabled),
331
+ RoundedCornerShape(size.values.borderRadius)
332
+ ),
333
+ contentAlignment = Alignment.CenterStart
334
+ ) {
335
+ Row(
336
+ modifier = Modifier.padding(horizontal = Spacing.M),
337
+ verticalAlignment = Alignment.CenterVertically
338
+ ) {
339
+ // Leading icon
340
+ if (leadingIcon.isNotEmpty()) {
341
+ Icon(
342
+ source = leadingIcon,
343
+ modifier = Modifier.padding(end = Spacing.M),
344
+ size = if (size == InputSize.SMALL) 24.dp else 32.dp,
345
+ color = leadingIconColor
346
+ )
347
+ }
348
+
349
+ Box(Modifier.weight(1f), contentAlignment = Alignment.CenterStart) {
350
+ if (text.value.isEmpty()) {
351
+ Text(
352
+ text = placeholder,
353
+ style = placeholderStyle,
354
+ color = placeholderColor
355
+ )
356
+
357
+ }
358
+ innerTextField()
359
+ }
360
+
361
+ // Clear button
362
+ if (inputState.isFocused && text.value.isNotEmpty()) {
363
+ Row(Modifier.padding(horizontal = Spacing.XS)) {
364
+ Icon(
365
+ source = "24_navigation_close_circle_full",
366
+ size = 16.dp,
367
+ color = theme.colors.text.hint,
368
+ modifier = Modifier.clickable(
369
+ onClick = {
370
+ text.value = ""
371
+ onChangeText.invoke("")
372
+ },
373
+ interactionSource = remember { MutableInteractionSource() },
374
+ indication = null
375
+ ).setAutomationId("ic_clear")
376
+ )
377
+ }
378
+ }
379
+
380
+ // Right icon (password toggle or custom icon)
381
+ when {
382
+ secureTextEntry && text.value.isNotEmpty() -> {
383
+ val iconName = if (inputState.passHidden) "24_security_eye_open" else "24_security_eye_off"
384
+ val togglePassword = {
385
+ onRightIconPressed()
386
+ inputState = inputState.copy(passHidden = !inputState.passHidden)
387
+ }
388
+ RenderRightIcon(
389
+ loading = loading,
390
+ icon = iconName,
391
+ color = iconTintColor,
392
+ onClick = togglePassword,
393
+ modifier = Modifier.setAutomationId("ic_show_hide"))
394
+ }
395
+ else -> {
396
+ RenderRightIcon(loading, icon, iconTintColor, onRightIconPressed)
397
+ }
398
+ }
399
+ }
400
+ }
401
+ },
402
+ )
403
+
404
+ // Error/hint display
405
+ ErrorView(error, errorSpacing, hintText)
406
+ }
407
+ }
408
+
409
+ internal data class InputColors(
410
+ val text: Color,
411
+ val placeholder: Color,
412
+ val iconTint: Color,
413
+ val floatingTitle: Color,
414
+ val floatingIcon: Color,
415
+ )
416
+
417
+ @Composable
418
+ internal fun getInputColors(
419
+ disabled: Boolean,
420
+ iconColor: Color,
421
+ floatingValueColor: Color,
422
+ floatingIconColor: Color,
423
+ ): InputColors {
424
+ val theme = AppTheme.current
425
+ val disabledColor = theme.colors.text.disable
426
+ return InputColors(
427
+ text = if (disabled) disabledColor else theme.colors.text.default,
428
+ placeholder = if (disabled) disabledColor else theme.colors.text.hint,
429
+ iconTint = if (disabled) disabledColor else iconColor,
430
+ floatingTitle = if (disabled) disabledColor else floatingValueColor,
431
+ floatingIcon = if (disabled) disabledColor else floatingIconColor,
432
+ )
433
+ }
434
+
435
+ @Composable
436
+ internal fun FloatingLabel(
437
+ floatingValue: String,
438
+ floatingIcon: String,
439
+ titleColor: Color,
440
+ iconColor: Color,
441
+ offsetY: Dp,
442
+ offsetX: Dp = Spacing.S,
443
+ required: Boolean = false,
444
+ ) {
445
+ if (floatingValue.isEmpty() && floatingIcon.isEmpty()) return
446
+ Box(
447
+ modifier = Modifier
448
+ .wrapContentSize()
449
+ .offset(y = offsetY, x = offsetX)
450
+ .background(AppTheme.current.colors.background.surface)
451
+ .zIndex(10f),
452
+ ) {
453
+ Row(
454
+ modifier = Modifier.padding(horizontal = Spacing.S),
455
+ verticalAlignment = Alignment.CenterVertically,
456
+ ) {
457
+ Text(floatingValue, style = Typography.labelSMedium, color = titleColor)
458
+ if (required) {
459
+ Text(
460
+ "*",
461
+ style = Typography.labelSMedium,
462
+ color = AppTheme.current.colors.error.primary,
463
+ )
464
+ }
465
+ if (floatingIcon.isNotEmpty()) {
466
+ Icon(
467
+ source = floatingIcon,
468
+ modifier = Modifier.padding(start = Spacing.XS),
469
+ size = 16.dp,
470
+ color = iconColor,
471
+ )
472
+ }
473
+ }
474
+ }
475
+ }
@@ -0,0 +1,114 @@
1
+ package vn.momo.kits.components
2
+
3
+ import androidx.compose.foundation.background
4
+ import androidx.compose.foundation.border
5
+ import androidx.compose.foundation.clickable
6
+ import androidx.compose.foundation.layout.*
7
+ import androidx.compose.foundation.shape.RoundedCornerShape
8
+ import androidx.compose.runtime.*
9
+ import androidx.compose.ui.Alignment
10
+ import androidx.compose.ui.Modifier
11
+ import androidx.compose.ui.graphics.Color
12
+ import androidx.compose.ui.semantics.contentDescription
13
+ import androidx.compose.ui.semantics.semantics
14
+ import androidx.compose.ui.semantics.testTag
15
+ import androidx.compose.ui.text.TextStyle
16
+ import androidx.compose.ui.unit.dp
17
+ import androidx.compose.ui.unit.sp
18
+ import androidx.compose.ui.zIndex
19
+ import vn.momo.kits.application.IsShowBaseLineDebug
20
+ import vn.momo.kits.const.*
21
+ import vn.momo.kits.modifier.conditional
22
+
23
+ @Composable
24
+ fun InputDropDown(
25
+ value: MutableState<String> = remember { mutableStateOf("") },
26
+ floatingValue: String = "",
27
+ floatingValueColor: Color = AppTheme.current.colors.text.hint,
28
+ floatingIcon: String = "",
29
+ floatingIconColor: Color = AppTheme.current.colors.text.default,
30
+ placeholder: String = "",
31
+ size: InputSize = InputSize.SMALL,
32
+ onPress: () -> Unit = {},
33
+ hintText: String = "",
34
+ error: String = "",
35
+ errorSpacing: Boolean = false,
36
+ disabled: Boolean = false,
37
+ icon: String = "arrow_chevron_down_small",
38
+ iconColor: Color = AppTheme.current.colors.text.default,
39
+ onRightIconPressed: () -> Unit = {},
40
+ leadingIcon: String = "",
41
+ leadingIconColor: Color = AppTheme.current.colors.text.hint,
42
+ loading: Boolean = false,
43
+ required: Boolean = false,
44
+ ) {
45
+ val isFocused by remember { mutableStateOf(false) }
46
+
47
+ val (textColor, placeholderColor, iconTintColor, floatingTitleColor, floatingIconTintColor) =
48
+ getInputColors(disabled, iconColor, floatingValueColor, floatingIconColor)
49
+
50
+ val testId = if (disabled) "input_${floatingValue}_disabled" else "input_$floatingValue"
51
+
52
+ val fontSize = scaleSize(16.sp)
53
+ val lineHeight = scaleSize(24.sp)
54
+
55
+ Column(modifier = Modifier
56
+ .conditional(IsShowBaseLineDebug) {
57
+ border(1.dp, Colors.blue_03)
58
+ }
59
+ .clickable(enabled = !disabled, onClick = onPress)
60
+ .semantics {
61
+ contentDescription = floatingValue; testTag = testId
62
+ }) {
63
+ Box {
64
+ FloatingLabel(
65
+ floatingValue = floatingValue,
66
+ floatingIcon = floatingIcon,
67
+ titleColor = floatingTitleColor,
68
+ iconColor = floatingIconTintColor,
69
+ offsetY = -Spacing.S,
70
+ required = required,
71
+ )
72
+ Box(
73
+ modifier = Modifier.fillMaxWidth()
74
+ .height(if (size == InputSize.SMALL) 48.dp else 56.dp)
75
+ .border(
76
+ 1.dp,
77
+ getBorderColor(isFocused, error, disabled),
78
+ RoundedCornerShape(size.values.borderRadius)
79
+ ),
80
+ contentAlignment = Alignment.CenterStart
81
+ ) {
82
+ Row(
83
+ modifier = Modifier.padding(horizontal = Spacing.M),
84
+ verticalAlignment = Alignment.CenterVertically
85
+ ) {
86
+ //leading icon
87
+ if (leadingIcon.isNotEmpty()) {
88
+ Icon(
89
+ source = leadingIcon,
90
+ modifier = Modifier.padding(end = Spacing.M),
91
+ size = if (size.name == InputSize.SMALL.name) 24.dp else 32.dp,
92
+ color = leadingIconColor
93
+ )
94
+ }
95
+ Box(Modifier.weight(1f)) {
96
+ Text(
97
+ text = value.value.ifEmpty { placeholder },
98
+ style = TextStyle(
99
+ fontSize = fontSize,
100
+ lineHeight = lineHeight
101
+ ),
102
+ color = if (value.value.isEmpty()) placeholderColor else textColor
103
+ )
104
+ }
105
+ RenderRightIcon(
106
+ loading, icon, iconTintColor,
107
+ onRightIconPressed
108
+ )
109
+ }
110
+ }
111
+ }
112
+ ErrorView(error, errorSpacing, hintText)
113
+ }
114
+ }