@momo-kits/native-kits 0.157.1-beta.9-debug → 0.157.1-com.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 (369) hide show
  1. package/compose/build.gradle.kts +1 -1
  2. package/compose/compose.podspec +1 -1
  3. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  4. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
  5. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
  6. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  7. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +350 -0
  8. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  9. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +360 -0
  10. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
  11. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
  12. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
  13. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
  14. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +449 -0
  15. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +21 -7
  16. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
  17. package/gradle.properties +1 -1
  18. package/ios/Input/Input.swift +4 -0
  19. package/local.properties +2 -2
  20. package/package.json +1 -1
  21. package/src/doctor/README.md +73 -0
  22. package/src/doctor/package-lock.json +885 -0
  23. package/src/doctor/package.json +44 -0
  24. package/src/doctor/publish.sh +27 -0
  25. package/src/doctor/src/Users.json +112 -0
  26. package/src/doctor/src/Whitelist.json +6 -0
  27. package/src/doctor/src/commands/check.ts +81 -0
  28. package/src/doctor/src/commands/doctor.ts +193 -0
  29. package/src/doctor/src/index.ts +35 -0
  30. package/src/doctor/src/logger.ts +84 -0
  31. package/src/doctor/src/task/native.ts +21 -0
  32. package/src/doctor/src/task/utils.ts +20 -0
  33. package/src/doctor/src/utils/checkCoreDependencies.ts +138 -0
  34. package/src/doctor/src/utils/checkDeletedPackage.ts +53 -0
  35. package/src/doctor/src/utils/checkDeprecatedPackages.ts +168 -0
  36. package/src/doctor/src/utils/checkDeprecatedVersion.ts +60 -0
  37. package/src/doctor/src/utils/checkShareDependencies.ts +251 -0
  38. package/src/doctor/src/utils/checkWrongVersionCommunityPackage.ts +64 -0
  39. package/src/doctor/src/utils/getErrorMessage.ts +84 -0
  40. package/src/doctor/src/utils/scanComponentUsage.ts +206 -0
  41. package/src/doctor/src/utils/scanFoundationImports.ts +169 -0
  42. package/src/doctor/src/utils/scanMaxApiUsage.ts +86 -0
  43. package/src/doctor/src/utils/scanNativeModulesUsage.ts +78 -0
  44. package/src/doctor/src/utils/sendMessage.ts +28 -0
  45. package/src/doctor/tsconfig.json +14 -0
  46. package/src/doctor/yarn.lock +492 -0
  47. package/src/foundations/Application/BottomSheet.tsx +358 -0
  48. package/src/foundations/Application/BottomTab/BottomTabBar.tsx +320 -0
  49. package/src/foundations/Application/BottomTab/CustomBottomTabItem.tsx +155 -0
  50. package/src/foundations/Application/BottomTab/TabBarIcon.tsx +113 -0
  51. package/src/foundations/Application/BottomTab/index.tsx +449 -0
  52. package/src/foundations/Application/Components/BackgroundImageView.tsx +126 -0
  53. package/src/foundations/Application/Components/HeaderAnimated.tsx +69 -0
  54. package/src/foundations/Application/Components/HeaderBackground.tsx +83 -0
  55. package/src/foundations/Application/Components/HeaderExtendHeader.tsx +225 -0
  56. package/src/foundations/Application/Components/HeaderLeft.tsx +93 -0
  57. package/src/foundations/Application/Components/HeaderRight.tsx +444 -0
  58. package/src/foundations/Application/Components/HeaderTitle.tsx +596 -0
  59. package/src/foundations/Application/Components/NavigationButton.tsx +76 -0
  60. package/src/foundations/Application/Components/SearchHeader.tsx +127 -0
  61. package/src/foundations/Application/Localize.ts +44 -0
  62. package/src/foundations/Application/ModalScreen.tsx +148 -0
  63. package/src/foundations/Application/Navigation.ts +63 -0
  64. package/src/foundations/Application/NavigationContainer.tsx +245 -0
  65. package/src/foundations/Application/Navigator.ts +171 -0
  66. package/src/foundations/Application/ScaleSizeProvider.tsx +16 -0
  67. package/src/foundations/Application/StackScreen.tsx +420 -0
  68. package/src/foundations/Application/TooltipPortal.tsx +127 -0
  69. package/src/foundations/Application/WidgetContainer.tsx +162 -0
  70. package/src/foundations/Application/index.ts +34 -0
  71. package/src/foundations/Application/types.ts +350 -0
  72. package/src/foundations/Application/utils.tsx +239 -0
  73. package/src/foundations/Assets/DotAnimation.json +256 -0
  74. package/src/foundations/Assets/SpinnerAnimation.json +1027 -0
  75. package/src/foundations/Assets/icon.json +4052 -0
  76. package/src/foundations/Assets/icon_bank.json +506 -0
  77. package/src/foundations/Assets/language.json +208 -0
  78. package/src/foundations/Assets/lottie_circle_loader.json +1 -0
  79. package/src/foundations/Assets/pinAnimation.json +1 -0
  80. package/src/foundations/Assets/unpinAnimation.json +1 -0
  81. package/src/foundations/Badge/Badge.tsx +104 -0
  82. package/src/foundations/Badge/BadgeDot.tsx +35 -0
  83. package/src/foundations/Badge/BadgeDotAnimation.tsx +95 -0
  84. package/src/foundations/Badge/BadgeRibbon.tsx +112 -0
  85. package/src/foundations/Badge/Shape.tsx +29 -0
  86. package/src/foundations/Badge/index.tsx +8 -0
  87. package/src/foundations/Badge/styles.ts +125 -0
  88. package/src/foundations/Badge/types.ts +68 -0
  89. package/src/foundations/Button/index.tsx +371 -0
  90. package/src/foundations/Button/styles.ts +65 -0
  91. package/src/foundations/CheckBox/index.tsx +104 -0
  92. package/src/foundations/CheckBox/styles.ts +17 -0
  93. package/src/foundations/CheckBox/types.ts +37 -0
  94. package/src/foundations/Consts/colors+spacing+radius.ts +232 -0
  95. package/src/foundations/Consts/index.ts +4 -0
  96. package/src/foundations/Consts/styles.ts +52 -0
  97. package/src/foundations/Consts/theme.ts +121 -0
  98. package/src/foundations/Context/index.ts +27 -0
  99. package/src/foundations/Divider/DashDivider.tsx +46 -0
  100. package/src/foundations/Divider/index.tsx +45 -0
  101. package/src/foundations/FoundationList/index.tsx +12 -0
  102. package/src/foundations/FoundationList/types.ts +7 -0
  103. package/src/foundations/Icon/index.tsx +57 -0
  104. package/src/foundations/Icon/types.ts +32 -0
  105. package/src/foundations/IconButton/index.tsx +144 -0
  106. package/src/foundations/IconButton/styles.ts +20 -0
  107. package/src/foundations/Image/index.tsx +115 -0
  108. package/src/foundations/Image/styles.ts +7 -0
  109. package/src/foundations/Image/types.ts +7 -0
  110. package/src/foundations/Input/Input.tsx +280 -0
  111. package/src/foundations/Input/InputDropDown.tsx +161 -0
  112. package/src/foundations/Input/InputMoney.tsx +325 -0
  113. package/src/foundations/Input/InputOTP.tsx +299 -0
  114. package/src/foundations/Input/InputPhoneNumber.tsx +287 -0
  115. package/src/foundations/Input/InputSearch.tsx +351 -0
  116. package/src/foundations/Input/InputTextArea.tsx +218 -0
  117. package/src/foundations/Input/SystemTextInput.tsx +44 -0
  118. package/src/foundations/Input/TextTyping.tsx +115 -0
  119. package/src/foundations/Input/common.tsx +243 -0
  120. package/src/foundations/Input/index.tsx +373 -0
  121. package/src/foundations/Input/styles.ts +226 -0
  122. package/src/foundations/Input/utils.ts +97 -0
  123. package/src/foundations/Layout/Card.tsx +108 -0
  124. package/src/foundations/Layout/FloatingButton.tsx +179 -0
  125. package/src/foundations/Layout/GridSystem.tsx +137 -0
  126. package/src/foundations/Layout/Item.tsx +59 -0
  127. package/src/foundations/Layout/ItemList.tsx +66 -0
  128. package/src/foundations/Layout/ItemSectionList.tsx +40 -0
  129. package/src/foundations/Layout/Screen.tsx +644 -0
  130. package/src/foundations/Layout/Section.tsx +103 -0
  131. package/src/foundations/Layout/TrackingScope.tsx +18 -0
  132. package/src/foundations/Layout/index.ts +34 -0
  133. package/src/foundations/Layout/styles.ts +95 -0
  134. package/src/foundations/Layout/types.ts +40 -0
  135. package/src/foundations/Layout/utils.ts +47 -0
  136. package/src/foundations/Loader/DotLoader.tsx +37 -0
  137. package/src/foundations/Loader/Loader.tsx +13 -0
  138. package/src/foundations/Loader/ProgressBar.tsx +45 -0
  139. package/src/foundations/Loader/Spinner.tsx +29 -0
  140. package/src/foundations/Loader/index.tsx +6 -0
  141. package/src/foundations/Loader/styles.ts +10 -0
  142. package/src/foundations/Loader/types.ts +35 -0
  143. package/src/foundations/Loader/utils.ts +25 -0
  144. package/src/foundations/Pagination/Dot.tsx +19 -0
  145. package/src/foundations/Pagination/PaginationDot.tsx +44 -0
  146. package/src/foundations/Pagination/PaginationNumber.tsx +31 -0
  147. package/src/foundations/Pagination/PaginationScroll.tsx +99 -0
  148. package/src/foundations/Pagination/PaginationWhiteDot.tsx +43 -0
  149. package/src/foundations/Pagination/index.tsx +25 -0
  150. package/src/foundations/Pagination/styles.ts +51 -0
  151. package/src/foundations/Pagination/types.ts +40 -0
  152. package/src/foundations/Popup/PopupNotify.tsx +276 -0
  153. package/src/foundations/Popup/PopupPromotion.tsx +118 -0
  154. package/src/foundations/Popup/index.tsx +4 -0
  155. package/src/foundations/Popup/types.ts +96 -0
  156. package/src/foundations/Radio/index.tsx +108 -0
  157. package/src/foundations/Radio/styles.ts +15 -0
  158. package/src/foundations/Radio/types.ts +31 -0
  159. package/src/foundations/Skeleton/index.tsx +118 -0
  160. package/src/foundations/Skeleton/styles.ts +5 -0
  161. package/src/foundations/Skeleton/types.ts +6 -0
  162. package/src/foundations/Switch/index.tsx +68 -0
  163. package/src/foundations/Switch/styles.ts +25 -0
  164. package/src/foundations/Switch/types.ts +19 -0
  165. package/src/foundations/Tag/index.tsx +128 -0
  166. package/src/foundations/Tag/types.ts +41 -0
  167. package/src/foundations/Text/index.tsx +241 -0
  168. package/src/foundations/Text/styles.ts +78 -0
  169. package/src/foundations/Text/types.ts +53 -0
  170. package/src/foundations/Text/utils.ts +63 -0
  171. package/src/foundations/Title/index.tsx +285 -0
  172. package/src/foundations/Title/styles.ts +55 -0
  173. package/src/foundations/Title/types.ts +21 -0
  174. package/src/foundations/index.ts +50 -0
  175. package/src/foundations/package.json +35 -0
  176. package/src/foundations/publish.sh +17 -0
  177. package/src/libs/AutoComplete/index.tsx +88 -0
  178. package/src/libs/AutoComplete/package.json +16 -0
  179. package/src/libs/AutoComplete/publish.sh +16 -0
  180. package/src/libs/AutoComplete/styles.ts +15 -0
  181. package/src/libs/AutoComplete/types.ts +60 -0
  182. package/src/libs/Avatar/index.tsx +146 -0
  183. package/src/libs/Avatar/package.json +16 -0
  184. package/src/libs/Avatar/publish.sh +20 -0
  185. package/src/libs/Avatar/styles.ts +18 -0
  186. package/src/libs/Avatar/types.ts +57 -0
  187. package/src/libs/Badge/Badge.tsx +70 -0
  188. package/src/libs/Badge/BadgeDot.tsx +11 -0
  189. package/src/libs/Badge/BadgeRibbon.tsx +122 -0
  190. package/src/libs/Badge/Shape.tsx +29 -0
  191. package/src/libs/Badge/index.tsx +7 -0
  192. package/src/libs/Badge/package.json +16 -0
  193. package/src/libs/Badge/publish.sh +18 -0
  194. package/src/libs/Badge/styles.ts +55 -0
  195. package/src/libs/Badge/types.ts +63 -0
  196. package/src/libs/Calendar/CalendarPro.tsx +307 -0
  197. package/src/libs/Calendar/Day.tsx +150 -0
  198. package/src/libs/Calendar/HeaderControl.tsx +55 -0
  199. package/src/libs/Calendar/LunarDateConverter.ts +228 -0
  200. package/src/libs/Calendar/LunarService.ts +206 -0
  201. package/src/libs/Calendar/Month.tsx +118 -0
  202. package/src/libs/Calendar/MonthList.tsx +226 -0
  203. package/src/libs/Calendar/TabHeader.tsx +91 -0
  204. package/src/libs/Calendar/Util.ts +288 -0
  205. package/src/libs/Calendar/holidayData.ts +118 -0
  206. package/src/libs/Calendar/index.tsx +383 -0
  207. package/src/libs/Calendar/package.json +18 -0
  208. package/src/libs/Calendar/publish.sh +18 -0
  209. package/src/libs/Calendar/styles.ts +122 -0
  210. package/src/libs/Calendar/types.ts +212 -0
  211. package/src/libs/Carousel/animation.ts +62 -0
  212. package/src/libs/Carousel/index.tsx +517 -0
  213. package/src/libs/Carousel/package.json +18 -0
  214. package/src/libs/Carousel/publish.sh +16 -0
  215. package/src/libs/Carousel/types.ts +71 -0
  216. package/src/libs/Chip/index.tsx +164 -0
  217. package/src/libs/Chip/package.json +16 -0
  218. package/src/libs/Chip/publish.sh +16 -0
  219. package/src/libs/Chip/styles.ts +20 -0
  220. package/src/libs/Chip/types.ts +72 -0
  221. package/src/libs/Collapse/index.tsx +305 -0
  222. package/src/libs/Collapse/package.json +16 -0
  223. package/src/libs/Collapse/publish.sh +18 -0
  224. package/src/libs/Collapse/styles.ts +37 -0
  225. package/src/libs/Collapse/types.ts +84 -0
  226. package/src/libs/DateTimePicker/WheelPicker.tsx +163 -0
  227. package/src/libs/DateTimePicker/WheelPickerItem.tsx +58 -0
  228. package/src/libs/DateTimePicker/index.tsx +188 -0
  229. package/src/libs/DateTimePicker/package.json +16 -0
  230. package/src/libs/DateTimePicker/publish.sh +17 -0
  231. package/src/libs/DateTimePicker/styles.ts +31 -0
  232. package/src/libs/DateTimePicker/types.ts +102 -0
  233. package/src/libs/DateTimePicker/utils.ts +114 -0
  234. package/src/libs/Information/index.tsx +129 -0
  235. package/src/libs/Information/package.json +16 -0
  236. package/src/libs/Information/publish.sh +18 -0
  237. package/src/libs/Information/styles.ts +34 -0
  238. package/src/libs/Information/types.ts +79 -0
  239. package/src/libs/Logo/index.tsx +39 -0
  240. package/src/libs/Logo/package.json +17 -0
  241. package/src/libs/Logo/publish.sh +16 -0
  242. package/src/libs/Logo/styles.ts +25 -0
  243. package/src/libs/Logo/types.ts +13 -0
  244. package/src/libs/ProgressInfo/ProgressInfoHorizontal.tsx +128 -0
  245. package/src/libs/ProgressInfo/ProgressInfoIcon.tsx +88 -0
  246. package/src/libs/ProgressInfo/ProgressInfoVertical.tsx +85 -0
  247. package/src/libs/ProgressInfo/index.tsx +22 -0
  248. package/src/libs/ProgressInfo/package.json +16 -0
  249. package/src/libs/ProgressInfo/publish.sh +16 -0
  250. package/src/libs/ProgressInfo/styles.ts +46 -0
  251. package/src/libs/ProgressInfo/types.ts +60 -0
  252. package/src/libs/ProgressInfo/yarn.lock +8 -0
  253. package/src/libs/Rating/index.tsx +74 -0
  254. package/src/libs/Rating/package.json +16 -0
  255. package/src/libs/Rating/publish.sh +18 -0
  256. package/src/libs/Rating/type.ts +25 -0
  257. package/src/libs/Slider/Label.tsx +33 -0
  258. package/src/libs/Slider/helpers.ts +35 -0
  259. package/src/libs/Slider/hooks.tsx +218 -0
  260. package/src/libs/Slider/index.tsx +453 -0
  261. package/src/libs/Slider/package.json +16 -0
  262. package/src/libs/Slider/publish.sh +18 -0
  263. package/src/libs/Slider/styles.ts +36 -0
  264. package/src/libs/Stepper/NumberView.tsx +64 -0
  265. package/src/libs/Stepper/StepperButton.tsx +37 -0
  266. package/src/libs/Stepper/index.tsx +139 -0
  267. package/src/libs/Stepper/package.json +16 -0
  268. package/src/libs/Stepper/publish.sh +17 -0
  269. package/src/libs/Stepper/styles.ts +44 -0
  270. package/src/libs/Stepper/types.ts +154 -0
  271. package/src/libs/Steps/StepIcon.tsx +86 -0
  272. package/src/libs/Steps/StepsHorizontal.tsx +189 -0
  273. package/src/libs/Steps/StepsVertical.tsx +133 -0
  274. package/src/libs/Steps/index.tsx +20 -0
  275. package/src/libs/Steps/package.json +16 -0
  276. package/src/libs/Steps/publish.sh +16 -0
  277. package/src/libs/Steps/styles.ts +46 -0
  278. package/src/libs/Steps/types.ts +159 -0
  279. package/src/libs/Steps/utils.ts +175 -0
  280. package/src/libs/SuggestAction/SuggestActionView.tsx +124 -0
  281. package/src/libs/SuggestAction/index.tsx +3 -0
  282. package/src/libs/SuggestAction/package.json +16 -0
  283. package/src/libs/SuggestAction/publish.sh +16 -0
  284. package/src/libs/SuggestAction/styles.ts +30 -0
  285. package/src/libs/SuggestAction/types.ts +36 -0
  286. package/src/libs/Swipe/SwipeView.tsx +151 -0
  287. package/src/libs/Swipe/index.tsx +5 -0
  288. package/src/libs/Swipe/package.json +16 -0
  289. package/src/libs/Swipe/publish.sh +16 -0
  290. package/src/libs/Swipe/styles.ts +16 -0
  291. package/src/libs/Swipe/types.ts +109 -0
  292. package/src/libs/TabView/assets/Path.tsx +29 -0
  293. package/src/libs/TabView/index.tsx +184 -0
  294. package/src/libs/TabView/package.json +16 -0
  295. package/src/libs/TabView/publish.sh +16 -0
  296. package/src/libs/TabView/styles.ts +96 -0
  297. package/src/libs/TabView/tabBar/CardTabBar.tsx +137 -0
  298. package/src/libs/TabView/tabBar/SrollableTabBar.tsx +218 -0
  299. package/src/libs/TabView/tabBar/TabBar.tsx +67 -0
  300. package/src/libs/TabView/tabItem/CardTabItem.tsx +118 -0
  301. package/src/libs/TabView/tabItem/TabItem.tsx +180 -0
  302. package/src/libs/TabView/types.ts +166 -0
  303. package/src/libs/Template/HeaderSliderBanner/index.tsx +86 -0
  304. package/src/libs/Template/HeaderSliderBanner/types.ts +16 -0
  305. package/src/libs/Template/TrustBanner/CustomAvatar.tsx +39 -0
  306. package/src/libs/Template/TrustBanner/index.tsx +161 -0
  307. package/src/libs/Template/TrustBanner/styles.ts +48 -0
  308. package/src/libs/Template/TrustBanner/types.ts +50 -0
  309. package/src/libs/Template/index.tsx +4 -0
  310. package/src/libs/Template/package.json +18 -0
  311. package/src/libs/Template/publish.sh +17 -0
  312. package/src/libs/Title/index.tsx +284 -0
  313. package/src/libs/Title/package.json +17 -0
  314. package/src/libs/Title/publish.sh +16 -0
  315. package/src/libs/Title/styles.ts +54 -0
  316. package/src/libs/Title/types.ts +21 -0
  317. package/src/libs/Tooltip/TooltipButtons.tsx +54 -0
  318. package/src/libs/Tooltip/index.tsx +608 -0
  319. package/src/libs/Tooltip/package.json +16 -0
  320. package/src/libs/Tooltip/publish.sh +18 -0
  321. package/src/libs/Tooltip/styles.ts +70 -0
  322. package/src/libs/Tooltip/types.ts +61 -0
  323. package/src/libs/Uploader/index.tsx +87 -0
  324. package/src/libs/Uploader/package.json +17 -0
  325. package/src/libs/Uploader/publish.sh +18 -0
  326. package/src/libs/Uploader/styles.ts +30 -0
  327. package/src/libs/Uploader/types.ts +69 -0
  328. package/src/native/MoMoNative.podspec +18 -0
  329. package/src/native/calculator/android/build.gradle +61 -0
  330. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  331. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  332. package/src/native/calculator/android/gradlew +172 -0
  333. package/src/native/calculator/android/gradlew.bat +84 -0
  334. package/src/native/calculator/android/src/main/AndroidManifest.xml +5 -0
  335. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewModule.java +22 -0
  336. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewPackage.java +35 -0
  337. package/src/native/calculator/android/src/main/java/com/calculator/modules/CalculatorKeyboardModule.java +157 -0
  338. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/CalculatorEditText.java +36 -0
  339. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/FixedRelativeLayout.java +45 -0
  340. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/MomoTextInputCalculatorManager.java +173 -0
  341. package/src/native/calculator/android/src/main/java/com/calculator/views/customkeyboard/RNCustomKeyboardModule.java +417 -0
  342. package/src/native/calculator/ios/Helper/MomoHelper.swift +16 -0
  343. package/src/native/calculator/ios/KeyboardView-Bridging-Header.h +60 -0
  344. package/src/native/calculator/ios/KeyboardView.h +19 -0
  345. package/src/native/calculator/ios/KeyboardView.m +56 -0
  346. package/src/native/calculator/ios/MomoTextInputCalculator.swift +144 -0
  347. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.h +6 -0
  348. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.m +143 -0
  349. package/src/native/package.json +14 -0
  350. package/src/native/publish.sh +29 -0
  351. package/src/native/resource/android/build.gradle +57 -0
  352. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  353. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  354. package/src/native/resource/android/src/main/AndroidManifest.xml +6 -0
  355. package/src/native/resource/android/src/main/java/com/resource/RNResourceModule.java +90 -0
  356. package/src/native/resource/android/src/main/java/com/resource/RNResourcePackage.java +22 -0
  357. package/src/native/resource/ios/RNResouce.m +71 -0
  358. package/src/native/resource/ios/RNResource.h +5 -0
  359. package/example/ios/Example.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  360. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  361. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  362. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
  363. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
  364. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
  365. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
  366. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
  367. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
  368. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
  369. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
@@ -0,0 +1,84 @@
1
+ import {TagProps} from '@momo-kits/foundation';
2
+ import React, {Dispatch, SetStateAction} from 'react';
3
+
4
+ export type CollapseImageSize = 24 | 32 | 40;
5
+
6
+ export type CollapseProps = {
7
+ /**
8
+ * The title represents what is being collapsed or expanded. It is usually a summary or
9
+ * a brief heading corresponding to the detailed content that gets revealed.
10
+ */
11
+ title: string;
12
+
13
+ /**
14
+ * Optional. A more detailed explanation or continuation of the title. This text provides
15
+ * additional context or information, which is particularly useful when the collapsed content
16
+ * is not immediately visible or requires extra explanation.
17
+ */
18
+ description?: string;
19
+
20
+ /**
21
+ * Optional. The URL or local file path of an image to be displayed. This feature is often
22
+ * used to provide a visual context or decoration, enhancing user engagement or understanding
23
+ * of the information being toggled.
24
+ */
25
+ image?: string;
26
+
27
+ /**
28
+ * Optional. A callback function that is triggered when the collapse component is pressed or
29
+ * selected. This function is typically used to toggle the view state of the collapsible content.
30
+ * Add isExpanded as a parameter to know the current state of the collapse, for tracking.
31
+ */
32
+ onPress?: (isExpanded: boolean) => void;
33
+
34
+ /**
35
+ * Optional. If `true`, a border is displayed around the collapse component, visually separating
36
+ * it from other UI elements. This is particularly useful in densely packed interfaces to delineate
37
+ * between different sections.
38
+ * Defaults to `false` if not provided.
39
+ */
40
+ showBorder?: boolean;
41
+
42
+ imageSize?: CollapseImageSize;
43
+
44
+ subTitle?: string;
45
+ tagProps?: TagProps;
46
+ scrollEnabled?: boolean;
47
+ scrollContentMaxHeight?: number;
48
+ titleSize?: 'small' | 'medium' | 'large';
49
+ useBackgroundCollapseButton?: boolean;
50
+
51
+ headerAlign: 'flex-start' | 'flex-end' | 'center';
52
+
53
+ expandDefault?: boolean;
54
+
55
+ children?: React.ReactNode;
56
+
57
+ /**
58
+ * Optional. If `true`, the collapse component will not use Animated.View for the transition
59
+ * effect when expanding or collapsing. This is useful when the component is nested within
60
+ * another collapsible component that already has an animated transition effect.
61
+ * Can be use to fix the iseue: If WebView is the children of Collapse, the WebView will be blank when collapse is expanded.
62
+ * Defaults to `false` if not provided.
63
+ */
64
+ disabledAnimated?: boolean;
65
+
66
+ accessibilityLabel?: string;
67
+
68
+ nestedScrollEnabled?: boolean;
69
+
70
+ /**
71
+ * Optional. Background color of the collapse.
72
+ */
73
+ backgroundColor?: string;
74
+
75
+ /**
76
+ * Optional. Color of the title text.
77
+ */
78
+ titleColor?: string;
79
+ };
80
+
81
+ export type CollapseHandle = {
82
+ setExpanded: Dispatch<SetStateAction<boolean>>;
83
+ expanded: boolean;
84
+ };
@@ -0,0 +1,163 @@
1
+ import React, {
2
+ FC,
3
+ memo,
4
+ useCallback,
5
+ useContext,
6
+ useEffect,
7
+ useRef,
8
+ } from 'react';
9
+ import {
10
+ Animated,
11
+ FlatList,
12
+ ListRenderItemInfo,
13
+ NativeScrollEvent,
14
+ NativeSyntheticEvent,
15
+ View,
16
+ } from 'react-native';
17
+ import styles from './styles';
18
+ import { ApplicationContext } from '@momo-kits/foundation';
19
+ import { WheelPickerProps } from './types';
20
+ import { debounce, itemSize } from './utils';
21
+ import WheelPickerItem from './WheelPickerItem';
22
+
23
+ const AnimatedFlatList = Animated.createAnimatedComponent(FlatList);
24
+ const WheelPicker: FC<WheelPickerProps> = ({
25
+ name,
26
+ data,
27
+ style,
28
+ onChange,
29
+ selectedData,
30
+ }) => {
31
+ const { theme } = useContext(ApplicationContext);
32
+ const flatListRef = useRef<any>(null);
33
+ const scrollAnimatedValue = useRef(new Animated.Value(0)).current;
34
+ const canMomentum = useRef(false);
35
+ const initItemNum = 15;
36
+
37
+ useEffect(() => {
38
+ debouncedScrollEnd();
39
+ return () => {
40
+ debouncedScrollEnd.cancel();
41
+ };
42
+ }, [data.length]);
43
+
44
+ const findClosestIndex = (array: string[], value: string) => {
45
+ let closest = array.reduce((a, b) => {
46
+ let aDiff = Math.abs(Number(a) - Number(value));
47
+ let bDiff = Math.abs(Number(b) - Number(value));
48
+
49
+ if (aDiff === bDiff) {
50
+ return a < b ? a : b;
51
+ } else {
52
+ return bDiff < aDiff ? b : a;
53
+ }
54
+ });
55
+
56
+ return array.indexOf(closest);
57
+ };
58
+
59
+ const debouncedScrollEnd = debounce(() => {
60
+ let selectedIndex = data.indexOf(selectedData);
61
+
62
+ if (selectedIndex === -1) {
63
+ selectedIndex = findClosestIndex(data, selectedData);
64
+ }
65
+
66
+ if (selectedIndex < 2) {
67
+ selectedIndex = 2;
68
+ }
69
+ if (selectedIndex > data.length - 3) {
70
+ selectedIndex = data.length - 3;
71
+ }
72
+
73
+ flatListRef.current?.scrollToIndex({
74
+ index: selectedIndex - 2,
75
+ animated: true,
76
+ });
77
+ }, 100);
78
+
79
+ const renderItem = useCallback(({ item, index }: ListRenderItemInfo<any>) => {
80
+ return (
81
+ <WheelPickerItem
82
+ item={item}
83
+ index={index}
84
+ scrollAnimatedValue={scrollAnimatedValue}
85
+ itemSize={itemSize}
86
+ />
87
+ );
88
+ }, []);
89
+
90
+ const renderOverlay = () => {
91
+ return (
92
+ <View style={styles.overlay}>
93
+ <View style={[styles.selectedItem, { height: itemSize }]} />
94
+ </View>
95
+ );
96
+ };
97
+
98
+ const getItemLayout = (
99
+ _data: ArrayLike<unknown> | null | undefined,
100
+ index: number,
101
+ ) => ({
102
+ length: itemSize,
103
+ offset: itemSize * index,
104
+ index,
105
+ });
106
+
107
+ const onMomentumScrollBegin = () => {
108
+ canMomentum.current = true;
109
+ };
110
+
111
+ const onMomentumScrollEnd = (e: NativeSyntheticEvent<NativeScrollEvent>) => {
112
+ if (canMomentum.current) {
113
+ let index = Math.round(e.nativeEvent.contentOffset.y / itemSize);
114
+ onChange?.(name, data[index + 2]);
115
+ }
116
+ canMomentum.current = false;
117
+ };
118
+
119
+ const onScrollToIndexFailed = (error: any) => {
120
+ console.warn('FlatList scrollToIndex failed', error);
121
+ };
122
+
123
+ return (
124
+ <View
125
+ style={[
126
+ style,
127
+ styles.wheelPicker,
128
+ {
129
+ borderColor: theme.colors.border.default,
130
+ backgroundColor: theme.colors.background.surface,
131
+ maxHeight: itemSize * 5,
132
+ },
133
+ ]}
134
+ >
135
+ {renderOverlay()}
136
+ <AnimatedFlatList
137
+ windowSize={7}
138
+ initialNumToRender={initItemNum}
139
+ maxToRenderPerBatch={initItemNum}
140
+ snapToInterval={itemSize}
141
+ snapToOffsets={data.map((_, index) => index * itemSize)}
142
+ keyExtractor={(item, index) => `Wheel picker item ${item}-${index}`}
143
+ decelerationRate={'fast'}
144
+ getItemLayout={getItemLayout}
145
+ onScrollToIndexFailed={onScrollToIndexFailed}
146
+ onMomentumScrollBegin={onMomentumScrollBegin}
147
+ onScroll={Animated.event(
148
+ [{ nativeEvent: { contentOffset: { y: scrollAnimatedValue } } }],
149
+ {
150
+ useNativeDriver: true,
151
+ },
152
+ )}
153
+ onMomentumScrollEnd={onMomentumScrollEnd}
154
+ ref={flatListRef}
155
+ showsVerticalScrollIndicator={false}
156
+ data={data}
157
+ renderItem={renderItem}
158
+ />
159
+ </View>
160
+ );
161
+ };
162
+
163
+ export default memo(WheelPicker);
@@ -0,0 +1,58 @@
1
+ import React, { FC, memo, useContext } from 'react';
2
+ import { Animated } from 'react-native';
3
+ import styles from './styles';
4
+ import { ApplicationContext } from '@momo-kits/foundation';
5
+ import { WheelPickerItemProps } from './types';
6
+
7
+ const WheelPickerItem: FC<WheelPickerItemProps> = ({
8
+ item,
9
+ index,
10
+ scrollAnimatedValue,
11
+ itemSize,
12
+ }) => {
13
+ const { theme } = useContext(ApplicationContext);
14
+ const position = Animated.divide(scrollAnimatedValue, itemSize);
15
+ const distance = Animated.subtract(index, position);
16
+ const opacity =
17
+ distance.interpolate({
18
+ inputRange: [0, 1, 2, 3, 4],
19
+ outputRange: [0.4, 0.8, 1, 0.8, 0.4],
20
+ extrapolate: 'clamp',
21
+ }) || 1;
22
+ const scale =
23
+ distance.interpolate({
24
+ inputRange: [0, 1, 2, 3, 4],
25
+ outputRange: [0.87, 0.87, 1, 0.87, 0.87],
26
+ extrapolate: 'clamp',
27
+ }) || 1;
28
+
29
+ return (
30
+ <Animated.View
31
+ style={[
32
+ styles.wheelItem,
33
+ {
34
+ opacity,
35
+ height: itemSize,
36
+ },
37
+ ]}
38
+ >
39
+ <Animated.Text
40
+ allowFontScaling={false}
41
+ style={{
42
+ fontFamily: `${theme.font}-Semibold`,
43
+ transform: [
44
+ {
45
+ scale,
46
+ },
47
+ ],
48
+ fontSize: 16,
49
+ lineHeight: 22,
50
+ }}
51
+ >
52
+ {item}
53
+ </Animated.Text>
54
+ </Animated.View>
55
+ );
56
+ };
57
+
58
+ export default memo(WheelPickerItem);
@@ -0,0 +1,188 @@
1
+ import React, { FC, useEffect, useMemo, useState } from 'react';
2
+ import { Dimensions, LayoutChangeEvent, View } from 'react-native';
3
+ import { Spacing, Text } from '@momo-kits/foundation';
4
+ import WheelPicker from './WheelPicker';
5
+ import {
6
+ getDaysInMonth,
7
+ getHours,
8
+ getMinutes,
9
+ getMonths,
10
+ getYears,
11
+ timeMode,
12
+ } from './utils';
13
+ import { DateObject, DateTimePickerProps, PickerDataObject } from './types';
14
+ import styles from './styles';
15
+
16
+ const date = new Date();
17
+ const minDateDefault = new Date(date);
18
+ const maxDateDefault = new Date(date);
19
+ minDateDefault.setFullYear(minDateDefault.getFullYear() - 10);
20
+ maxDateDefault.setFullYear(maxDateDefault.getFullYear() + 10);
21
+ date.setHours(0, 0);
22
+ const screenWidth = Dimensions.get('window').width;
23
+
24
+ const DateTimePicker: FC<DateTimePickerProps> = ({
25
+ format = 'DD-MM-YYYY',
26
+ minuteInterval = 1,
27
+ onChange,
28
+ selectedValue = date,
29
+ minDate = minDateDefault,
30
+ maxDate = maxDateDefault,
31
+ arrayLabelTime = [],
32
+ style,
33
+ }) => {
34
+ const [data, setData] = useState<DateObject[]>([]);
35
+ let [currentDate, setCurrentDate] = useState<PickerDataObject>({
36
+ day: selectedValue.getDate(),
37
+ month: selectedValue.getMonth() + 1,
38
+ year: selectedValue.getFullYear(),
39
+ hour: selectedValue.getHours(),
40
+ min: selectedValue.getMinutes(),
41
+ });
42
+ const [containerWidth, setContainerWidth] = useState(screenWidth);
43
+
44
+ useEffect(() => {
45
+ setupData();
46
+ }, [currentDate]);
47
+
48
+ useEffect(() => {
49
+ let initData = selectedValue;
50
+
51
+ if (selectedValue < minDate) {
52
+ initData = minDate;
53
+ } else if (selectedValue > maxDate) {
54
+ initData = maxDate;
55
+ }
56
+
57
+ onChange?.(initData);
58
+ }, []);
59
+
60
+ const formatParts = format.split(/[^A-Za-z]+/);
61
+ const isOnlyHour = formatParts.length === 1 && formatParts[0] === 'HH';
62
+ const dayData = useMemo(
63
+ () =>
64
+ getDaysInMonth(+currentDate.year, +currentDate.month, minDate, maxDate),
65
+ [currentDate.year, currentDate.month, minDate, maxDate],
66
+ );
67
+ const monthData = useMemo(
68
+ () => getMonths(minDate, maxDate, +currentDate.year),
69
+ [currentDate.year, minDate, maxDate],
70
+ );
71
+ const yearData = useMemo(
72
+ () => getYears(minDate, maxDate),
73
+ [minDate, maxDate],
74
+ );
75
+ const hourData = useMemo(() => getHours(isOnlyHour ? 12 : 24), []);
76
+ const minData = useMemo(() => getMinutes(minuteInterval), []);
77
+
78
+ const setupData = () => {
79
+ const componentData: { [key: string]: DateObject } = {
80
+ DD: {
81
+ name: 'day',
82
+ data: dayData,
83
+ },
84
+ MM: {
85
+ name: 'month',
86
+ data: monthData,
87
+ },
88
+ YYYY: {
89
+ name: 'year',
90
+ data: yearData,
91
+ },
92
+ HH: { name: 'hour', data: hourData },
93
+ mm: { name: 'min', data: minData },
94
+ };
95
+
96
+ const initialData = formatParts.map(part => {
97
+ const component = componentData[part];
98
+ if (!component) {
99
+ throw new Error(`Invalid format component: ${part}`);
100
+ }
101
+ return {
102
+ ...component,
103
+ };
104
+ });
105
+
106
+ if (isOnlyHour) {
107
+ initialData.push({ name: 'timeMode', data: timeMode });
108
+ }
109
+
110
+ setData(initialData);
111
+ };
112
+
113
+ const numOfColumns = data.length;
114
+
115
+ const onPickerChange = (name: string, dataItem: string) => {
116
+ const newDate = {
117
+ ...currentDate,
118
+ [name]: dataItem,
119
+ };
120
+
121
+ if (name === 'month') {
122
+ const finalDay = new Date(newDate.year, newDate.month, 0).getDate();
123
+ if (newDate.day > finalDay) {
124
+ newDate.day = finalDay;
125
+ }
126
+ }
127
+
128
+ const changedDate = new Date(
129
+ newDate.year,
130
+ newDate.month - 1,
131
+ newDate.day,
132
+ newDate.hour,
133
+ newDate.min,
134
+ );
135
+
136
+ if (
137
+ JSON.stringify(newDate.valueOf()) !==
138
+ JSON.stringify(currentDate.valueOf())
139
+ ) {
140
+ if (changedDate < minDate) {
141
+ onChange?.(minDate);
142
+ } else if (changedDate > maxDate) {
143
+ onChange?.(maxDate);
144
+ } else onChange?.(changedDate);
145
+ }
146
+ setCurrentDate(newDate);
147
+ };
148
+
149
+ const paddingArray = ['', ''];
150
+
151
+ const onLayout = (e: LayoutChangeEvent) => {
152
+ if (containerWidth !== e.nativeEvent.layout.width) {
153
+ setContainerWidth(e.nativeEvent.layout.width);
154
+ }
155
+ };
156
+
157
+ return (
158
+ <View onLayout={onLayout} style={[style, styles.datePicker]}>
159
+ {data.map((dataItem, index) => {
160
+ return (
161
+ <View key={`${dataItem.name}_${index}`}>
162
+ {arrayLabelTime[index] && (
163
+ <View style={styles.dateTimeContainer}>
164
+ <Text typography="action_s_bold">{arrayLabelTime[index]}</Text>
165
+ </View>
166
+ )}
167
+ <WheelPicker
168
+ selectedData={String(currentDate[dataItem.name])}
169
+ onChange={onPickerChange}
170
+ data={[...paddingArray, ...dataItem.data, ...paddingArray]}
171
+ name={dataItem.name}
172
+ style={{
173
+ width:
174
+ (containerWidth -
175
+ Spacing.M * 2 -
176
+ (numOfColumns - 1) * Spacing.M) /
177
+ numOfColumns,
178
+ }}
179
+ />
180
+ </View>
181
+ );
182
+ })}
183
+ </View>
184
+ );
185
+ };
186
+
187
+ export type { DateTimePickerProps };
188
+ export { DateTimePicker };
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@momo-kits/date-picker",
3
+ "version": "0.157.1-beta.4",
4
+ "private": false,
5
+ "main": "index.tsx",
6
+ "peerDependencies": {
7
+ "@momo-kits/foundation": "latest",
8
+ "react": "*",
9
+ "react-native": "*"
10
+ },
11
+ "license": "MoMo",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "dependencies": {}
16
+ }
@@ -0,0 +1,17 @@
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
+
@@ -0,0 +1,31 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { Colors, Radius, Spacing } from '@momo-kits/foundation';
3
+
4
+ export default StyleSheet.create({
5
+ wheelItem: {
6
+ width: '100%',
7
+ alignItems: 'center',
8
+ justifyContent: 'center',
9
+ },
10
+ wheelPicker: {
11
+ borderWidth: 1,
12
+ borderRadius: Radius.S,
13
+ },
14
+ overlay: {
15
+ position: 'absolute',
16
+ top: 0,
17
+ bottom: 0,
18
+ right: 0,
19
+ left: 0,
20
+ justifyContent: 'center',
21
+ },
22
+ selectedItem: {
23
+ backgroundColor: Colors.blue_10,
24
+ },
25
+ datePicker: {
26
+ overflow: 'hidden',
27
+ flexDirection: 'row',
28
+ justifyContent: 'space-evenly',
29
+ },
30
+ dateTimeContainer: { alignItems: 'center', marginBottom: Spacing.S },
31
+ });
@@ -0,0 +1,102 @@
1
+ import {Animated, ViewStyle} from 'react-native';
2
+ import AnimatedValue = Animated.AnimatedValue;
3
+
4
+ export type DateTimePickerProps = {
5
+ /**
6
+ * Optional. Specifies the format for displaying the date and time.
7
+ */
8
+ format?: string;
9
+
10
+ /**
11
+ * Optional. The interval between minutes in the picker. For example, '15' would show minute options 0, 15, 30, 45, etc.
12
+ */
13
+ minuteInterval?: number;
14
+
15
+ /**
16
+ * Optional. A callback function that is triggered when the date or time value changes.
17
+ */
18
+ onChange?: (data: Date) => void;
19
+
20
+ /**
21
+ * Optional. The initially selected date and time value.
22
+ */
23
+ selectedValue?: Date;
24
+
25
+ /**
26
+ * Optional. The minimum date that can be selected.
27
+ */
28
+ minDate?: Date;
29
+
30
+ /**
31
+ * Optional. The maximum date that can be selected.
32
+ */
33
+ maxDate?: Date;
34
+ /**
35
+ * Optional. Label for Time
36
+ */
37
+ arrayLabelTime?: string[];
38
+
39
+ style?: ViewStyle;
40
+ };
41
+
42
+ /**
43
+ * Represents the data structure for individual date and time components.
44
+ */
45
+ export type PickerDataObject = {
46
+ day: number;
47
+ month: number;
48
+ year: number;
49
+ hour: number;
50
+ min: number;
51
+
52
+ /**
53
+ * Optional. Specifies the mode of time presentation, e.g., 'AM' or 'PM'.
54
+ */
55
+ timeMode?: string;
56
+ };
57
+
58
+ /**
59
+ * Type representing a date object with a name identifying the component ('day', 'month', etc.) and the associated data.
60
+ */
61
+ export type DateObject = {
62
+ name: 'day' | 'month' | 'year' | 'hour' | 'min' | 'timeMode';
63
+ data: string[];
64
+ };
65
+
66
+ /**
67
+ * Properties for the WheelPicker component.
68
+ * This component provides a spinning-wheel style picker for selecting from provided data.
69
+ */
70
+ export type WheelPickerProps = {
71
+ /**
72
+ * The name of the picker, used to identify it.
73
+ */
74
+ name: string;
75
+
76
+ /**
77
+ * The data to be displayed and selected in the picker.
78
+ */
79
+ data: string[];
80
+
81
+ /**
82
+ * Custom styles to apply to the WheelPicker component.
83
+ */
84
+ style: ViewStyle;
85
+
86
+ /**
87
+ * A callback function that is triggered when the selected data changes.
88
+ */
89
+ onChange: (name: string, data: string) => void;
90
+
91
+ /**
92
+ * The currently selected data in the picker.
93
+ */
94
+ selectedData: string;
95
+ };
96
+
97
+ export type WheelPickerItemProps = {
98
+ item: number;
99
+ index: number;
100
+ scrollAnimatedValue: AnimatedValue;
101
+ itemSize: number;
102
+ };