@momo-kits/native-kits 0.157.1-com.1-debug → 0.157.1-com.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) 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 -54
  6. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -110
  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 -107
  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 -405
  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 -198
  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 -350
  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/ScaleSizeScope.kt +0 -17
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -96
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -360
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -256
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -494
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -131
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -215
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -96
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -449
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -92
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -130
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -214
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -590
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -177
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -192
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -205
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -239
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -191
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -306
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -13
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -185
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -285
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -2
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -35
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -2
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -59
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -68
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +0 -14
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -50
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -239
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -119
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -98
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -161
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -331
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -497
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -162
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -243
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -187
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -279
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -80
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -306
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -32
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -370
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -132
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -42
  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 -88
  123. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -149
  124. package/gradle/libs.versions.toml +0 -57
  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
  132. package/src/doctor/README.md +0 -73
  133. package/src/doctor/package-lock.json +0 -885
  134. package/src/doctor/package.json +0 -44
  135. package/src/doctor/publish.sh +0 -27
  136. package/src/doctor/src/Users.json +0 -112
  137. package/src/doctor/src/Whitelist.json +0 -6
  138. package/src/doctor/src/commands/check.ts +0 -81
  139. package/src/doctor/src/commands/doctor.ts +0 -193
  140. package/src/doctor/src/index.ts +0 -35
  141. package/src/doctor/src/logger.ts +0 -84
  142. package/src/doctor/src/task/native.ts +0 -21
  143. package/src/doctor/src/task/utils.ts +0 -20
  144. package/src/doctor/src/utils/checkCoreDependencies.ts +0 -138
  145. package/src/doctor/src/utils/checkDeletedPackage.ts +0 -53
  146. package/src/doctor/src/utils/checkDeprecatedPackages.ts +0 -168
  147. package/src/doctor/src/utils/checkDeprecatedVersion.ts +0 -60
  148. package/src/doctor/src/utils/checkShareDependencies.ts +0 -251
  149. package/src/doctor/src/utils/checkWrongVersionCommunityPackage.ts +0 -64
  150. package/src/doctor/src/utils/getErrorMessage.ts +0 -84
  151. package/src/doctor/src/utils/scanComponentUsage.ts +0 -206
  152. package/src/doctor/src/utils/scanFoundationImports.ts +0 -169
  153. package/src/doctor/src/utils/scanMaxApiUsage.ts +0 -86
  154. package/src/doctor/src/utils/scanNativeModulesUsage.ts +0 -78
  155. package/src/doctor/src/utils/sendMessage.ts +0 -28
  156. package/src/doctor/tsconfig.json +0 -14
  157. package/src/doctor/yarn.lock +0 -492
  158. package/src/foundations/Application/BottomSheet.tsx +0 -358
  159. package/src/foundations/Application/BottomTab/BottomTabBar.tsx +0 -320
  160. package/src/foundations/Application/BottomTab/CustomBottomTabItem.tsx +0 -155
  161. package/src/foundations/Application/BottomTab/TabBarIcon.tsx +0 -113
  162. package/src/foundations/Application/BottomTab/index.tsx +0 -449
  163. package/src/foundations/Application/Components/BackgroundImageView.tsx +0 -126
  164. package/src/foundations/Application/Components/HeaderAnimated.tsx +0 -69
  165. package/src/foundations/Application/Components/HeaderBackground.tsx +0 -83
  166. package/src/foundations/Application/Components/HeaderExtendHeader.tsx +0 -225
  167. package/src/foundations/Application/Components/HeaderLeft.tsx +0 -93
  168. package/src/foundations/Application/Components/HeaderRight.tsx +0 -444
  169. package/src/foundations/Application/Components/HeaderTitle.tsx +0 -596
  170. package/src/foundations/Application/Components/NavigationButton.tsx +0 -76
  171. package/src/foundations/Application/Components/SearchHeader.tsx +0 -127
  172. package/src/foundations/Application/Localize.ts +0 -44
  173. package/src/foundations/Application/ModalScreen.tsx +0 -148
  174. package/src/foundations/Application/Navigation.ts +0 -63
  175. package/src/foundations/Application/NavigationContainer.tsx +0 -245
  176. package/src/foundations/Application/Navigator.ts +0 -171
  177. package/src/foundations/Application/ScaleSizeProvider.tsx +0 -16
  178. package/src/foundations/Application/StackScreen.tsx +0 -420
  179. package/src/foundations/Application/TooltipPortal.tsx +0 -127
  180. package/src/foundations/Application/WidgetContainer.tsx +0 -162
  181. package/src/foundations/Application/index.ts +0 -34
  182. package/src/foundations/Application/types.ts +0 -350
  183. package/src/foundations/Application/utils.tsx +0 -239
  184. package/src/foundations/Assets/DotAnimation.json +0 -256
  185. package/src/foundations/Assets/SpinnerAnimation.json +0 -1027
  186. package/src/foundations/Assets/icon.json +0 -4052
  187. package/src/foundations/Assets/icon_bank.json +0 -506
  188. package/src/foundations/Assets/language.json +0 -208
  189. package/src/foundations/Assets/lottie_circle_loader.json +0 -1
  190. package/src/foundations/Assets/pinAnimation.json +0 -1
  191. package/src/foundations/Assets/unpinAnimation.json +0 -1
  192. package/src/foundations/Badge/Badge.tsx +0 -104
  193. package/src/foundations/Badge/BadgeDot.tsx +0 -35
  194. package/src/foundations/Badge/BadgeDotAnimation.tsx +0 -95
  195. package/src/foundations/Badge/BadgeRibbon.tsx +0 -112
  196. package/src/foundations/Badge/Shape.tsx +0 -29
  197. package/src/foundations/Badge/index.tsx +0 -8
  198. package/src/foundations/Badge/styles.ts +0 -125
  199. package/src/foundations/Badge/types.ts +0 -68
  200. package/src/foundations/Button/index.tsx +0 -371
  201. package/src/foundations/Button/styles.ts +0 -65
  202. package/src/foundations/CheckBox/index.tsx +0 -104
  203. package/src/foundations/CheckBox/styles.ts +0 -17
  204. package/src/foundations/CheckBox/types.ts +0 -37
  205. package/src/foundations/Consts/colors+spacing+radius.ts +0 -232
  206. package/src/foundations/Consts/index.ts +0 -4
  207. package/src/foundations/Consts/styles.ts +0 -52
  208. package/src/foundations/Consts/theme.ts +0 -121
  209. package/src/foundations/Context/index.ts +0 -27
  210. package/src/foundations/Divider/DashDivider.tsx +0 -46
  211. package/src/foundations/Divider/index.tsx +0 -45
  212. package/src/foundations/FoundationList/index.tsx +0 -12
  213. package/src/foundations/FoundationList/types.ts +0 -7
  214. package/src/foundations/Icon/index.tsx +0 -57
  215. package/src/foundations/Icon/types.ts +0 -32
  216. package/src/foundations/IconButton/index.tsx +0 -144
  217. package/src/foundations/IconButton/styles.ts +0 -20
  218. package/src/foundations/Image/index.tsx +0 -115
  219. package/src/foundations/Image/styles.ts +0 -7
  220. package/src/foundations/Image/types.ts +0 -7
  221. package/src/foundations/Input/Input.tsx +0 -280
  222. package/src/foundations/Input/InputDropDown.tsx +0 -161
  223. package/src/foundations/Input/InputMoney.tsx +0 -325
  224. package/src/foundations/Input/InputOTP.tsx +0 -299
  225. package/src/foundations/Input/InputPhoneNumber.tsx +0 -287
  226. package/src/foundations/Input/InputSearch.tsx +0 -351
  227. package/src/foundations/Input/InputTextArea.tsx +0 -218
  228. package/src/foundations/Input/SystemTextInput.tsx +0 -44
  229. package/src/foundations/Input/TextTyping.tsx +0 -115
  230. package/src/foundations/Input/common.tsx +0 -243
  231. package/src/foundations/Input/index.tsx +0 -373
  232. package/src/foundations/Input/styles.ts +0 -226
  233. package/src/foundations/Input/utils.ts +0 -97
  234. package/src/foundations/Layout/Card.tsx +0 -108
  235. package/src/foundations/Layout/FloatingButton.tsx +0 -179
  236. package/src/foundations/Layout/GridSystem.tsx +0 -137
  237. package/src/foundations/Layout/Item.tsx +0 -59
  238. package/src/foundations/Layout/ItemList.tsx +0 -66
  239. package/src/foundations/Layout/ItemSectionList.tsx +0 -40
  240. package/src/foundations/Layout/Screen.tsx +0 -644
  241. package/src/foundations/Layout/Section.tsx +0 -103
  242. package/src/foundations/Layout/TrackingScope.tsx +0 -18
  243. package/src/foundations/Layout/index.ts +0 -34
  244. package/src/foundations/Layout/styles.ts +0 -95
  245. package/src/foundations/Layout/types.ts +0 -40
  246. package/src/foundations/Layout/utils.ts +0 -47
  247. package/src/foundations/Loader/DotLoader.tsx +0 -37
  248. package/src/foundations/Loader/Loader.tsx +0 -13
  249. package/src/foundations/Loader/ProgressBar.tsx +0 -45
  250. package/src/foundations/Loader/Spinner.tsx +0 -29
  251. package/src/foundations/Loader/index.tsx +0 -6
  252. package/src/foundations/Loader/styles.ts +0 -10
  253. package/src/foundations/Loader/types.ts +0 -35
  254. package/src/foundations/Loader/utils.ts +0 -25
  255. package/src/foundations/Pagination/Dot.tsx +0 -19
  256. package/src/foundations/Pagination/PaginationDot.tsx +0 -44
  257. package/src/foundations/Pagination/PaginationNumber.tsx +0 -31
  258. package/src/foundations/Pagination/PaginationScroll.tsx +0 -99
  259. package/src/foundations/Pagination/PaginationWhiteDot.tsx +0 -43
  260. package/src/foundations/Pagination/index.tsx +0 -25
  261. package/src/foundations/Pagination/styles.ts +0 -51
  262. package/src/foundations/Pagination/types.ts +0 -40
  263. package/src/foundations/Popup/PopupNotify.tsx +0 -276
  264. package/src/foundations/Popup/PopupPromotion.tsx +0 -118
  265. package/src/foundations/Popup/index.tsx +0 -4
  266. package/src/foundations/Popup/types.ts +0 -96
  267. package/src/foundations/Radio/index.tsx +0 -108
  268. package/src/foundations/Radio/styles.ts +0 -15
  269. package/src/foundations/Radio/types.ts +0 -31
  270. package/src/foundations/Skeleton/index.tsx +0 -118
  271. package/src/foundations/Skeleton/styles.ts +0 -5
  272. package/src/foundations/Skeleton/types.ts +0 -6
  273. package/src/foundations/Switch/index.tsx +0 -68
  274. package/src/foundations/Switch/styles.ts +0 -25
  275. package/src/foundations/Switch/types.ts +0 -19
  276. package/src/foundations/Tag/index.tsx +0 -128
  277. package/src/foundations/Tag/types.ts +0 -41
  278. package/src/foundations/Text/index.tsx +0 -241
  279. package/src/foundations/Text/styles.ts +0 -78
  280. package/src/foundations/Text/types.ts +0 -53
  281. package/src/foundations/Text/utils.ts +0 -63
  282. package/src/foundations/Title/index.tsx +0 -285
  283. package/src/foundations/Title/styles.ts +0 -55
  284. package/src/foundations/Title/types.ts +0 -21
  285. package/src/foundations/index.ts +0 -50
  286. package/src/foundations/package.json +0 -35
  287. package/src/foundations/publish.sh +0 -17
  288. package/src/libs/AutoComplete/index.tsx +0 -88
  289. package/src/libs/AutoComplete/package.json +0 -16
  290. package/src/libs/AutoComplete/publish.sh +0 -16
  291. package/src/libs/AutoComplete/styles.ts +0 -15
  292. package/src/libs/AutoComplete/types.ts +0 -60
  293. package/src/libs/Avatar/index.tsx +0 -146
  294. package/src/libs/Avatar/package.json +0 -16
  295. package/src/libs/Avatar/publish.sh +0 -20
  296. package/src/libs/Avatar/styles.ts +0 -18
  297. package/src/libs/Avatar/types.ts +0 -57
  298. package/src/libs/Badge/Badge.tsx +0 -70
  299. package/src/libs/Badge/BadgeDot.tsx +0 -11
  300. package/src/libs/Badge/BadgeRibbon.tsx +0 -122
  301. package/src/libs/Badge/Shape.tsx +0 -29
  302. package/src/libs/Badge/index.tsx +0 -7
  303. package/src/libs/Badge/package.json +0 -16
  304. package/src/libs/Badge/publish.sh +0 -18
  305. package/src/libs/Badge/styles.ts +0 -55
  306. package/src/libs/Badge/types.ts +0 -63
  307. package/src/libs/Calendar/CalendarPro.tsx +0 -307
  308. package/src/libs/Calendar/Day.tsx +0 -150
  309. package/src/libs/Calendar/HeaderControl.tsx +0 -55
  310. package/src/libs/Calendar/LunarDateConverter.ts +0 -228
  311. package/src/libs/Calendar/LunarService.ts +0 -206
  312. package/src/libs/Calendar/Month.tsx +0 -118
  313. package/src/libs/Calendar/MonthList.tsx +0 -226
  314. package/src/libs/Calendar/TabHeader.tsx +0 -91
  315. package/src/libs/Calendar/Util.ts +0 -288
  316. package/src/libs/Calendar/holidayData.ts +0 -118
  317. package/src/libs/Calendar/index.tsx +0 -383
  318. package/src/libs/Calendar/package.json +0 -18
  319. package/src/libs/Calendar/publish.sh +0 -18
  320. package/src/libs/Calendar/styles.ts +0 -122
  321. package/src/libs/Calendar/types.ts +0 -212
  322. package/src/libs/Carousel/animation.ts +0 -62
  323. package/src/libs/Carousel/index.tsx +0 -517
  324. package/src/libs/Carousel/package.json +0 -18
  325. package/src/libs/Carousel/publish.sh +0 -16
  326. package/src/libs/Carousel/types.ts +0 -71
  327. package/src/libs/Chip/index.tsx +0 -164
  328. package/src/libs/Chip/package.json +0 -16
  329. package/src/libs/Chip/publish.sh +0 -16
  330. package/src/libs/Chip/styles.ts +0 -20
  331. package/src/libs/Chip/types.ts +0 -72
  332. package/src/libs/Collapse/index.tsx +0 -305
  333. package/src/libs/Collapse/package.json +0 -16
  334. package/src/libs/Collapse/publish.sh +0 -18
  335. package/src/libs/Collapse/styles.ts +0 -37
  336. package/src/libs/Collapse/types.ts +0 -84
  337. package/src/libs/DateTimePicker/WheelPicker.tsx +0 -163
  338. package/src/libs/DateTimePicker/WheelPickerItem.tsx +0 -58
  339. package/src/libs/DateTimePicker/index.tsx +0 -188
  340. package/src/libs/DateTimePicker/package.json +0 -16
  341. package/src/libs/DateTimePicker/publish.sh +0 -17
  342. package/src/libs/DateTimePicker/styles.ts +0 -31
  343. package/src/libs/DateTimePicker/types.ts +0 -102
  344. package/src/libs/DateTimePicker/utils.ts +0 -114
  345. package/src/libs/Information/index.tsx +0 -129
  346. package/src/libs/Information/package.json +0 -16
  347. package/src/libs/Information/publish.sh +0 -18
  348. package/src/libs/Information/styles.ts +0 -34
  349. package/src/libs/Information/types.ts +0 -79
  350. package/src/libs/Logo/index.tsx +0 -39
  351. package/src/libs/Logo/package.json +0 -17
  352. package/src/libs/Logo/publish.sh +0 -16
  353. package/src/libs/Logo/styles.ts +0 -25
  354. package/src/libs/Logo/types.ts +0 -13
  355. package/src/libs/ProgressInfo/ProgressInfoHorizontal.tsx +0 -128
  356. package/src/libs/ProgressInfo/ProgressInfoIcon.tsx +0 -88
  357. package/src/libs/ProgressInfo/ProgressInfoVertical.tsx +0 -85
  358. package/src/libs/ProgressInfo/index.tsx +0 -22
  359. package/src/libs/ProgressInfo/package.json +0 -16
  360. package/src/libs/ProgressInfo/publish.sh +0 -16
  361. package/src/libs/ProgressInfo/styles.ts +0 -46
  362. package/src/libs/ProgressInfo/types.ts +0 -60
  363. package/src/libs/ProgressInfo/yarn.lock +0 -8
  364. package/src/libs/Rating/index.tsx +0 -74
  365. package/src/libs/Rating/package.json +0 -16
  366. package/src/libs/Rating/publish.sh +0 -18
  367. package/src/libs/Rating/type.ts +0 -25
  368. package/src/libs/Slider/Label.tsx +0 -33
  369. package/src/libs/Slider/helpers.ts +0 -35
  370. package/src/libs/Slider/hooks.tsx +0 -218
  371. package/src/libs/Slider/index.tsx +0 -453
  372. package/src/libs/Slider/package.json +0 -16
  373. package/src/libs/Slider/publish.sh +0 -18
  374. package/src/libs/Slider/styles.ts +0 -36
  375. package/src/libs/Stepper/NumberView.tsx +0 -64
  376. package/src/libs/Stepper/StepperButton.tsx +0 -37
  377. package/src/libs/Stepper/index.tsx +0 -139
  378. package/src/libs/Stepper/package.json +0 -16
  379. package/src/libs/Stepper/publish.sh +0 -17
  380. package/src/libs/Stepper/styles.ts +0 -44
  381. package/src/libs/Stepper/types.ts +0 -154
  382. package/src/libs/Steps/StepIcon.tsx +0 -86
  383. package/src/libs/Steps/StepsHorizontal.tsx +0 -189
  384. package/src/libs/Steps/StepsVertical.tsx +0 -133
  385. package/src/libs/Steps/index.tsx +0 -20
  386. package/src/libs/Steps/package.json +0 -16
  387. package/src/libs/Steps/publish.sh +0 -16
  388. package/src/libs/Steps/styles.ts +0 -46
  389. package/src/libs/Steps/types.ts +0 -159
  390. package/src/libs/Steps/utils.ts +0 -175
  391. package/src/libs/SuggestAction/SuggestActionView.tsx +0 -124
  392. package/src/libs/SuggestAction/index.tsx +0 -3
  393. package/src/libs/SuggestAction/package.json +0 -16
  394. package/src/libs/SuggestAction/publish.sh +0 -16
  395. package/src/libs/SuggestAction/styles.ts +0 -30
  396. package/src/libs/SuggestAction/types.ts +0 -36
  397. package/src/libs/Swipe/SwipeView.tsx +0 -151
  398. package/src/libs/Swipe/index.tsx +0 -5
  399. package/src/libs/Swipe/package.json +0 -16
  400. package/src/libs/Swipe/publish.sh +0 -16
  401. package/src/libs/Swipe/styles.ts +0 -16
  402. package/src/libs/Swipe/types.ts +0 -109
  403. package/src/libs/TabView/assets/Path.tsx +0 -29
  404. package/src/libs/TabView/index.tsx +0 -184
  405. package/src/libs/TabView/package.json +0 -16
  406. package/src/libs/TabView/publish.sh +0 -16
  407. package/src/libs/TabView/styles.ts +0 -96
  408. package/src/libs/TabView/tabBar/CardTabBar.tsx +0 -137
  409. package/src/libs/TabView/tabBar/SrollableTabBar.tsx +0 -218
  410. package/src/libs/TabView/tabBar/TabBar.tsx +0 -67
  411. package/src/libs/TabView/tabItem/CardTabItem.tsx +0 -118
  412. package/src/libs/TabView/tabItem/TabItem.tsx +0 -180
  413. package/src/libs/TabView/types.ts +0 -166
  414. package/src/libs/Template/HeaderSliderBanner/index.tsx +0 -86
  415. package/src/libs/Template/HeaderSliderBanner/types.ts +0 -16
  416. package/src/libs/Template/TrustBanner/CustomAvatar.tsx +0 -39
  417. package/src/libs/Template/TrustBanner/index.tsx +0 -161
  418. package/src/libs/Template/TrustBanner/styles.ts +0 -48
  419. package/src/libs/Template/TrustBanner/types.ts +0 -50
  420. package/src/libs/Template/index.tsx +0 -4
  421. package/src/libs/Template/package.json +0 -18
  422. package/src/libs/Template/publish.sh +0 -17
  423. package/src/libs/Title/index.tsx +0 -284
  424. package/src/libs/Title/package.json +0 -17
  425. package/src/libs/Title/publish.sh +0 -16
  426. package/src/libs/Title/styles.ts +0 -54
  427. package/src/libs/Title/types.ts +0 -21
  428. package/src/libs/Tooltip/TooltipButtons.tsx +0 -54
  429. package/src/libs/Tooltip/index.tsx +0 -608
  430. package/src/libs/Tooltip/package.json +0 -16
  431. package/src/libs/Tooltip/publish.sh +0 -18
  432. package/src/libs/Tooltip/styles.ts +0 -70
  433. package/src/libs/Tooltip/types.ts +0 -61
  434. package/src/libs/Uploader/index.tsx +0 -87
  435. package/src/libs/Uploader/package.json +0 -17
  436. package/src/libs/Uploader/publish.sh +0 -18
  437. package/src/libs/Uploader/styles.ts +0 -30
  438. package/src/libs/Uploader/types.ts +0 -69
  439. package/src/native/MoMoNative.podspec +0 -18
  440. package/src/native/calculator/android/build.gradle +0 -61
  441. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  442. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  443. package/src/native/calculator/android/gradlew +0 -172
  444. package/src/native/calculator/android/gradlew.bat +0 -84
  445. package/src/native/calculator/android/src/main/AndroidManifest.xml +0 -5
  446. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewModule.java +0 -22
  447. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewPackage.java +0 -35
  448. package/src/native/calculator/android/src/main/java/com/calculator/modules/CalculatorKeyboardModule.java +0 -157
  449. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/CalculatorEditText.java +0 -36
  450. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/FixedRelativeLayout.java +0 -45
  451. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/MomoTextInputCalculatorManager.java +0 -173
  452. package/src/native/calculator/android/src/main/java/com/calculator/views/customkeyboard/RNCustomKeyboardModule.java +0 -417
  453. package/src/native/calculator/ios/Helper/MomoHelper.swift +0 -16
  454. package/src/native/calculator/ios/KeyboardView-Bridging-Header.h +0 -60
  455. package/src/native/calculator/ios/KeyboardView.h +0 -19
  456. package/src/native/calculator/ios/KeyboardView.m +0 -56
  457. package/src/native/calculator/ios/MomoTextInputCalculator.swift +0 -144
  458. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.h +0 -6
  459. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.m +0 -143
  460. package/src/native/package.json +0 -14
  461. package/src/native/publish.sh +0 -29
  462. package/src/native/resource/android/build.gradle +0 -57
  463. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  464. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  465. package/src/native/resource/android/src/main/AndroidManifest.xml +0 -6
  466. package/src/native/resource/android/src/main/java/com/resource/RNResourceModule.java +0 -90
  467. package/src/native/resource/android/src/main/java/com/resource/RNResourcePackage.java +0 -22
  468. package/src/native/resource/ios/RNResouce.m +0 -71
  469. package/src/native/resource/ios/RNResource.h +0 -5
@@ -1,608 +0,0 @@
1
- import React, {
2
- forwardRef, useCallback,
3
- useContext,
4
- useEffect,
5
- useImperativeHandle,
6
- useMemo,
7
- useReducer,
8
- useRef,
9
- useState,
10
- } from 'react';
11
- import {
12
- Animated,
13
- Easing,
14
- TouchableOpacity,
15
- TouchableWithoutFeedback,
16
- useWindowDimensions,
17
- View,
18
- } from 'react-native';
19
- import {
20
- Colors,
21
- Icon,
22
- MiniAppContext,
23
- ScreenContext,
24
- Spacing,
25
- Text,
26
- useTooltipPortal,
27
- } from '@momo-kits/foundation';
28
- import styles from './styles';
29
- import { TooltipPlacement, TooltipProps, TooltipRef } from './types';
30
- import { IconButton, PrimaryButton, SecondaryButton } from './TooltipButtons';
31
-
32
- const Tooltip = forwardRef<TooltipRef, TooltipProps>(function Tooltip(
33
- {
34
- children,
35
- title,
36
- description,
37
- buttons = [],
38
- placement = 'top',
39
- align = 'center',
40
- accessibilityLabel,
41
- onVisibleChange,
42
- onPressClose,
43
- containerStyle,
44
- },
45
- ref,
46
- ) {
47
- const ANIMATION_DURATION = 180;
48
- const TOOLTIP_OFFSET = Spacing.S;
49
- const app = useContext<any>(MiniAppContext);
50
- const screen = useContext<any>(ScreenContext);
51
- const SCREEN_WIDTH = useWindowDimensions().width;
52
- const arrowSize = 6;
53
- const [tooltipSize, setTooltipSize] = useState({ width: 0, height: 0 });
54
-
55
- // Portal integration
56
- const portal = useTooltipPortal();
57
- const portalId = useRef(
58
- `tooltip-${Math.random().toString(36).substr(2, 9)}`,
59
- ).current;
60
-
61
- // Internal ref for anchor - no ref required from consumer
62
- const anchorRef = useRef<View>(null);
63
-
64
- // Anchor position from measureInWindow
65
- const [anchorPosition, setAnchorPosition] = useState({
66
- x: 0,
67
- y: 0,
68
- width: 0,
69
- height: 0,
70
- });
71
-
72
- // Portal host position for relative calculation
73
- const [hostPosition, setHostPosition] = useState({
74
- x: 0,
75
- y: 0,
76
- });
77
-
78
- const componentName = 'Tooltip';
79
- const componentId = useMemo(() => {
80
- if (accessibilityLabel) {
81
- return accessibilityLabel;
82
- }
83
-
84
- return `${app.appId}/${app.code}/${screen.screenName}/${componentName}`;
85
- }, [accessibilityLabel, app, screen, componentName]);
86
-
87
- // Ref-based visibility for imperative control (no state re-renders)
88
- const visibleRef = useRef(false);
89
- const [, forceUpdate] = useReducer((x: number) => x + 1, 0);
90
- const animatedValue = useRef(new Animated.Value(0)).current;
91
- const showTimer = useRef<ReturnType<typeof setTimeout> | null>(null);
92
- const hideTimer = useRef<ReturnType<typeof setTimeout> | null>(null);
93
-
94
- const clearTimers = () => {
95
- if (showTimer.current) {
96
- clearTimeout(showTimer.current);
97
- }
98
- if (hideTimer.current) {
99
- clearTimeout(hideTimer.current);
100
- }
101
- };
102
-
103
- const setVisibility = useCallback((nextVisible: boolean) => {
104
- if (visibleRef.current !== nextVisible) {
105
- visibleRef.current = nextVisible;
106
- forceUpdate(); // Trigger re-render to update portal
107
- onVisibleChange?.(nextVisible);
108
- }
109
- },[onVisibleChange]);
110
-
111
- const animate = useCallback((nextVisible: boolean) => {
112
- Animated.timing(animatedValue, {
113
- toValue: nextVisible ? 1 : 0,
114
- duration: ANIMATION_DURATION,
115
- useNativeDriver: true,
116
- easing: nextVisible ? Easing.out(Easing.quad) : Easing.in(Easing.quad),
117
- }).start();
118
- }, [animatedValue]);
119
-
120
- useEffect(() => {
121
- // Only animate if we have tooltip size (to avoid position jump on first show)
122
- const hasSize = tooltipSize.width > 0 || tooltipSize.height > 0;
123
- if (visibleRef.current && !hasSize) {
124
- // Don't animate yet, wait for onLayout
125
- return;
126
- }
127
- animate(visibleRef.current);
128
- }, [tooltipSize, animate]);
129
-
130
- // Preload anchor measurement on mount for faster initial display
131
- useEffect(() => {
132
- // Measure immediately on mount to have position ready
133
- const timer = setTimeout(() => {
134
- // Measure host position first
135
- if (portal.hostRef?.current) {
136
- portal.hostRef.current.measureInWindow((hostX, hostY) => {
137
- setHostPosition({ x: hostX, y: hostY });
138
- });
139
- }
140
-
141
- anchorRef.current?.measureInWindow((x, y, width, height) => {
142
- if (x !== 0 || y !== 0 || width !== 0 || height !== 0) {
143
- setAnchorPosition({ x, y, width, height });
144
- }
145
- });
146
- }, 0);
147
-
148
- return () => clearTimeout(timer);
149
- }, [portal.hostRef]);
150
-
151
- useEffect(() => {
152
- if (!visibleRef.current) {
153
- setAnchorPosition({ x: 0, y: 0, width: 0, height: 0 });
154
- setHostPosition({ x: 0, y: 0 });
155
- return;
156
- }
157
-
158
- let rafId: number | null = null;
159
- let lastPosition = { x: 0, y: 0, width: 0, height: 0 };
160
- let lastHostPosition = { x: 0, y: 0 };
161
- let isMounted = true; // Track mounted state
162
- let isActive = true; // Track active state for early cancellation
163
-
164
- const measureAnchor = () => {
165
- // Check flags before any work
166
- if (!isMounted || !isActive || !anchorRef.current) {
167
- return;
168
- }
169
-
170
- // Measure portal host position first
171
- if (portal.hostRef?.current) {
172
- portal.hostRef.current.measureInWindow((hostX, hostY) => {
173
- if (!isMounted || !isActive) return;
174
-
175
- if (hostX !== lastHostPosition.x || hostY !== lastHostPosition.y) {
176
- lastHostPosition = { x: hostX, y: hostY };
177
- setHostPosition({ x: hostX, y: hostY });
178
- }
179
- });
180
- }
181
-
182
- anchorRef.current.measureInWindow((x, y, width, height) => {
183
- // Double-check flags in callback
184
- if (!isMounted || !isActive) return;
185
-
186
- // Only update if position changed (to avoid unnecessary re-renders)
187
- if (
188
- x !== lastPosition.x ||
189
- y !== lastPosition.y ||
190
- width !== lastPosition.width ||
191
- height !== lastPosition.height
192
- ) {
193
- lastPosition = { x, y, width, height };
194
- setAnchorPosition({ x, y, width, height });
195
- }
196
- });
197
- };
198
-
199
- // Defer measurement to next frame (single measurement, not polling)
200
- rafId = requestAnimationFrame(measureAnchor);
201
-
202
- return () => {
203
- // Set flags immediately to stop all pending work
204
- isMounted = false;
205
- isActive = false;
206
-
207
- // Cancel any pending animation frame
208
- if (rafId !== null) {
209
- cancelAnimationFrame(rafId);
210
- rafId = null;
211
- }
212
- };
213
- }, [portal.hostRef]);
214
-
215
- useEffect(() => {
216
- return () => {
217
- clearTimers();
218
- animatedValue.stopAnimation();
219
- };
220
- }, [animatedValue]);
221
-
222
- const handleShow = useCallback(() => {
223
- clearTimers();
224
- showTimer.current = setTimeout(() => {
225
- // Measure host position first
226
- if (portal.hostRef?.current) {
227
- portal.hostRef.current.measureInWindow((hostX, hostY) => {
228
- setHostPosition({ x: hostX, y: hostY });
229
- });
230
- }
231
-
232
- // Measure anchor position before showing tooltip
233
- anchorRef.current?.measureInWindow((x, y, width, height) => {
234
- setAnchorPosition({ x, y, width, height });
235
- setVisibility(true);
236
- });
237
- }, ANIMATION_DURATION);
238
- }, [portal.hostRef, setVisibility]);
239
-
240
- const handleHide = useCallback(() => {
241
- clearTimers();
242
- hideTimer.current = setTimeout(
243
- () => setVisibility(false),
244
- ANIMATION_DURATION,
245
- );
246
- }, [setVisibility]);
247
-
248
-
249
- useImperativeHandle(
250
- ref,
251
- () => ({
252
- show: handleShow,
253
- hide: handleHide,
254
- }),
255
- [handleHide, handleShow],
256
- );
257
-
258
- const translate =
259
- placement === 'top'
260
- ? {
261
- translateY: animatedValue.interpolate({
262
- inputRange: [0, 1],
263
- outputRange: [4, 0],
264
- }),
265
- }
266
- : placement === 'bottom'
267
- ? {
268
- translateY: animatedValue.interpolate({
269
- inputRange: [0, 1],
270
- outputRange: [-4, 0],
271
- }),
272
- }
273
- : placement === 'left'
274
- ? {
275
- translateX: animatedValue.interpolate({
276
- inputRange: [0, 1],
277
- outputRange: [4, 0],
278
- }),
279
- }
280
- : {
281
- translateX: animatedValue.interpolate({
282
- inputRange: [0, 1],
283
- outputRange: [-4, 0],
284
- }),
285
- };
286
-
287
- const placementStyle = useMemo((): {
288
- top?: number;
289
- left?: number;
290
- right?: number;
291
- bottom?: number;
292
- } => {
293
- const { x, y, width, height } = anchorPosition;
294
- const { width: tooltipWidth, height: tooltipHeight } = tooltipSize;
295
-
296
- let position: { top?: number; left?: number; right?: number } = {};
297
-
298
- // Vertical positioning (relative to portal host)
299
- if (placement === 'top') {
300
- position.top = y - tooltipHeight - TOOLTIP_OFFSET - hostPosition.y;
301
- } else if (placement === 'bottom') {
302
- position.top = y + height + TOOLTIP_OFFSET - hostPosition.y;
303
- } else {
304
- // For left/right placement, calculate vertical center alignment
305
- if (align === 'start') {
306
- position.top = y - hostPosition.y;
307
- } else if (align === 'end') {
308
- position.top = y + height - tooltipHeight - hostPosition.y;
309
- } else {
310
- // center
311
- position.top = y + height / 2 - tooltipHeight / 2 - hostPosition.y;
312
- }
313
- }
314
-
315
- // Horizontal positioning (relative to portal host)
316
- if (placement === 'left') {
317
- position.left = x - tooltipWidth - TOOLTIP_OFFSET - hostPosition.x;
318
- } else if (placement === 'right') {
319
- position.left = x + width + TOOLTIP_OFFSET - hostPosition.x;
320
- } else {
321
- // For top/bottom placement, calculate horizontal alignment
322
- if (align === 'start') {
323
- position.left = x - hostPosition.x;
324
- } else if (align === 'end') {
325
- position.left = x + width - tooltipWidth - hostPosition.x;
326
- } else {
327
- // center
328
- position.left = x + width / 2 - tooltipWidth / 2 - hostPosition.x;
329
- }
330
- }
331
-
332
- return position;
333
- }, [anchorPosition, tooltipSize, placement, TOOLTIP_OFFSET, hostPosition.y, hostPosition.x, align]);
334
-
335
- const renderButtons = () => {
336
- if (!buttons.length) {
337
- return null;
338
- }
339
-
340
- if (buttons.length === 1) {
341
- const btn = buttons[0];
342
- const onPress = btn.onPress ?? (() => { });
343
- return (
344
- <View style={styles.buttonsRow}>
345
- <View
346
- style={[
347
- styles.button,
348
- btn.icon ? styles.iconButton : styles.textButton,
349
- ]}
350
- >
351
- {btn.icon ? (
352
- <IconButton icon={btn.icon} onPress={onPress} />
353
- ) : (
354
- <PrimaryButton title={btn.title || ''} onPress={onPress} />
355
- )}
356
- </View>
357
- </View>
358
- );
359
- }
360
-
361
- if (buttons.length === 2) {
362
- const [first, second] = buttons;
363
- const firstPress = first.onPress ?? (() => { });
364
- const secondPress = second.onPress ?? (() => { });
365
- const bothIcon = !!first.icon && !!second.icon;
366
-
367
- return (
368
- <View style={styles.buttonsRow}>
369
- {bothIcon ? (
370
- <View style={styles.buttonRowContainer}>
371
- <IconButton
372
- icon={second.icon as string}
373
- onPress={secondPress}
374
- style={styles.buttonSpacing}
375
- />
376
- <IconButton icon={first.icon as string} onPress={firstPress} />
377
- </View>
378
- ) : (
379
- <View style={styles.buttonRowContainer}>
380
- <SecondaryButton
381
- title={second.title || ''}
382
- onPress={secondPress}
383
- style={styles.buttonSpacing}
384
- />
385
- <PrimaryButton title={first.title || ''} onPress={firstPress} />
386
- </View>
387
- )}
388
- </View>
389
- );
390
- }
391
-
392
- return (
393
- <View style={styles.buttonsRow}>
394
- {buttons.map((btn, idx) => {
395
- const isIcon = !!btn.icon;
396
- const key = btn.title || btn.icon || `${idx}`;
397
- const onPress = btn.onPress ?? (() => { });
398
-
399
- return (
400
- <View
401
- key={key}
402
- style={[
403
- styles.button,
404
- isIcon ? styles.iconButton : styles.textButton,
405
- ]}
406
- >
407
- {isIcon ? (
408
- <IconButton icon={btn.icon as string} onPress={onPress} />
409
- ) : (
410
- <PrimaryButton title={btn.title || ''} onPress={onPress} />
411
- )}
412
- </View>
413
- );
414
- })}
415
- </View>
416
- );
417
- };
418
-
419
- const renderContent = () => {
420
- return (
421
- <View style={styles.content}>
422
- <View style={styles.contentHeader}>
423
- <View
424
- style={{
425
- minWidth: 100,
426
- maxWidth: SCREEN_WIDTH - Spacing.M * 2 - 48,
427
- }}
428
- >
429
- {title ? (
430
- <Text
431
- typography={'header_s_semibold'}
432
- color={Colors.black_01}
433
- style={styles.title}
434
- >
435
- {title}
436
- </Text>
437
- ) : null}
438
- {description ? (
439
- <Text
440
- typography={'description_default_regular'}
441
- color={Colors.black_01}
442
- style={styles.description}
443
- >
444
- {description}
445
- </Text>
446
- ) : null}
447
- </View>
448
- <TouchableOpacity
449
- onPress={onPressClose}
450
- hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
451
- style={styles.closeIconSpacing}
452
- >
453
- <Icon
454
- source={'navigation_close'}
455
- size={20}
456
- color={Colors.black_01}
457
- />
458
- </TouchableOpacity>
459
- </View>
460
- {renderButtons()}
461
- </View>
462
- );
463
- };
464
-
465
- const getArrowStyle: () => object[] = () => {
466
- const size = arrowSize;
467
- const common = [
468
- styles.arrow,
469
- {
470
- width: size * 2,
471
- height: size * 2,
472
- backgroundColor: Colors.black_17,
473
- transform: [{ rotate: '45deg' }],
474
- borderRadius: size / 2,
475
- },
476
- ];
477
-
478
- switch (placement) {
479
- case 'top':
480
- return [
481
- ...common,
482
- {
483
- bottom: -(size - 1),
484
- ...(align === 'start'
485
- ? { left: size + Spacing.M }
486
- : align === 'end'
487
- ? { right: size + Spacing.M }
488
- : { alignSelf: 'center' }),
489
- },
490
- ];
491
- case 'bottom':
492
- return [
493
- ...common,
494
- {
495
- top: -(size - 1),
496
- ...(align === 'start'
497
- ? { left: size + Spacing.M }
498
- : align === 'end'
499
- ? { right: size + Spacing.M }
500
- : { alignSelf: 'center' }),
501
- },
502
- ];
503
- case 'left':
504
- return [
505
- ...common,
506
- {
507
- right: -(size - 1),
508
- ...(align === 'start'
509
- ? { top: size + Spacing.M }
510
- : align === 'end'
511
- ? { bottom: size + Spacing.M }
512
- : { top: (tooltipSize.height || 0) / 2 - size }),
513
- },
514
- ];
515
- case 'right':
516
- default:
517
- return [
518
- ...common,
519
- {
520
- left: -(size - 1),
521
- ...(align === 'start'
522
- ? { top: size + Spacing.M }
523
- : align === 'end'
524
- ? { bottom: size + Spacing.M }
525
- : { top: (tooltipSize.height || 0) / 2 - size }),
526
- },
527
- ];
528
- }
529
- };
530
-
531
- useEffect(() => {
532
- let isActive = true; // Track if effect is still active
533
-
534
- if (!visibleRef.current) {
535
- portal.unregister(portalId, true); // Immediate cleanup when hiding
536
- return;
537
- }
538
-
539
- const hasMeasurement =
540
- anchorPosition.x !== 0 ||
541
- anchorPosition.y !== 0 ||
542
- anchorPosition.width !== 0 ||
543
- anchorPosition.height !== 0;
544
-
545
- if (!hasMeasurement) {
546
- return;
547
- }
548
-
549
- const content = (
550
- <>
551
- <TouchableWithoutFeedback onPress={handleHide}>
552
- <View
553
- style={{
554
- position: 'absolute',
555
- top: -9999,
556
- left: -9999,
557
- right: -9999,
558
- bottom: -9999,
559
- }}
560
- />
561
- </TouchableWithoutFeedback>
562
-
563
- <Animated.View
564
- pointerEvents="auto"
565
- style={[
566
- {
567
- maxWidth: SCREEN_WIDTH - Spacing.M * 2,
568
- },
569
- containerStyle,
570
- styles.tooltip,
571
- placementStyle,
572
- {
573
- opacity: animatedValue,
574
- transform: [translate],
575
- },
576
- ]}
577
- onLayout={event => {
578
- if (isActive) {
579
- setTooltipSize(event.nativeEvent.layout);
580
- }
581
- }}
582
- >
583
- {renderContent()}
584
- <View style={getArrowStyle()} />
585
- </Animated.View>
586
- </>
587
- );
588
-
589
- portal.register(portalId, content);
590
-
591
- return () => {
592
- isActive = false;
593
- portal.unregister(portalId, true);
594
- };
595
- // eslint-disable-next-line react-hooks/exhaustive-deps
596
- }, [visibleRef.current, anchorPosition, placement, align, tooltipSize]);
597
-
598
- return (
599
- <View style={styles.container} accessibilityLabel={componentId}>
600
- <View ref={anchorRef} style={styles.anchorView}>
601
- {children}
602
- </View>
603
- </View>
604
- );
605
- });
606
-
607
- export { Tooltip };
608
- export type { TooltipProps, TooltipPlacement, TooltipRef };
@@ -1,16 +0,0 @@
1
- {
2
- "name": "@momo-kits/animated-tooltip",
3
- "version": "0.157.1-beta.4",
4
- "private": false,
5
- "main": "index.tsx",
6
- "dependencies": {},
7
- "peerDependencies": {
8
- "@momo-kits/foundation": "latest",
9
- "react": "*",
10
- "react-native": "*"
11
- },
12
- "license": "MoMo",
13
- "publishConfig": {
14
- "registry": "https://registry.npmjs.org/"
15
- }
16
- }
@@ -1,18 +0,0 @@
1
- #!/bin/bash
2
-
3
- if [ "$1" == "stable" ]; then
4
- npm version $(npm view @momo-kits/foundation@stable version)
5
- npm version patch
6
- npm publish --tag stable --access=public
7
- elif [ "$1" == "latest" ]; then
8
- npm publish --tag latest --access=public
9
- elif [ "$1" == "beta" ]; then
10
- npm publish --tag beta --access=public
11
- else
12
- npm publish --tag alpha --access=public
13
- fi
14
-
15
- PACKAGE_NAME=$(npm pkg get name)
16
- NEW_PACKAGE_VERSION=$(npm pkg get version)
17
-
18
-
@@ -1,70 +0,0 @@
1
- import { StyleSheet } from 'react-native';
2
- import { Colors, Radius, Spacing } from '@momo-kits/foundation';
3
-
4
- export default StyleSheet.create({
5
- container: {
6
- position: 'relative',
7
- },
8
- tooltip: {
9
- position: 'absolute',
10
- padding: Spacing.M,
11
- backgroundColor: Colors.black_17,
12
- borderRadius: Radius.S,
13
- },
14
- text: {
15
- color: Colors.black_01,
16
- },
17
- arrow: {
18
- position: 'absolute',
19
- width: 0,
20
- height: 0,
21
- },
22
- content: {
23
- flexDirection: 'column',
24
- },
25
- title: {
26
- marginBottom: Spacing.XS,
27
- },
28
- description: {
29
- marginBottom: Spacing.M,
30
- },
31
- buttonsRow: {
32
- flexDirection: 'row',
33
- flexWrap: 'wrap',
34
- justifyContent: 'flex-end',
35
- },
36
- button: {
37
- marginRight: Spacing.XXS,
38
- marginBottom: Spacing.XXS,
39
- },
40
- textButton: {},
41
- iconButton: {},
42
- // New styles from inline
43
- buttonRowContainer: {
44
- flexDirection: 'row',
45
- alignItems: 'center',
46
- },
47
- buttonSpacing: {
48
- marginRight: Spacing.S,
49
- },
50
- contentHeader: {
51
- flexDirection: 'row',
52
- },
53
- closeIconSpacing: {
54
- marginLeft: Spacing.S,
55
- },
56
- // TooltipButtons styles
57
- secondaryButtonContainer: {
58
- paddingHorizontal: Spacing.M,
59
- paddingVertical: Spacing.S,
60
- },
61
- iconButtonContainer: {
62
- borderRadius: Radius.XL,
63
- backgroundColor: Colors.black_01,
64
- alignItems: 'center',
65
- justifyContent: 'center',
66
- },
67
- anchorView: {
68
- alignSelf: 'flex-start',
69
- },
70
- });