react-native-system-ui 0.0.5 → 0.0.7

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 (372) hide show
  1. package/README.md +12 -4
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +28 -22
  3. package/dist/cjs/components/area/Area.js +72 -6
  4. package/dist/cjs/components/area/tokens.js +11 -0
  5. package/dist/cjs/components/avatar/Avatar.js +42 -10
  6. package/dist/cjs/components/badge/Badge.js +10 -10
  7. package/dist/cjs/components/badge/tokens.js +4 -0
  8. package/dist/cjs/components/button/Button.js +16 -65
  9. package/dist/cjs/components/button/ButtonContext.js +7 -10
  10. package/dist/cjs/components/button/ButtonGroup.js +13 -15
  11. package/dist/cjs/components/button/tokens.js +1 -5
  12. package/dist/cjs/components/calendar/Calendar.js +23 -12
  13. package/dist/cjs/components/cascader/Cascader.js +18 -13
  14. package/dist/cjs/components/cell/Cell.js +3 -3
  15. package/dist/cjs/components/cell/CellGroup.js +26 -21
  16. package/dist/cjs/components/checkbox/Checkbox.js +5 -4
  17. package/dist/cjs/components/checkbox/CheckboxContext.js +7 -10
  18. package/dist/cjs/components/checkbox/CheckboxGroup.js +24 -21
  19. package/dist/cjs/components/circle/Circle.js +6 -6
  20. package/dist/cjs/components/collapse/Collapse.js +10 -10
  21. package/dist/cjs/components/config-provider/locale/en-US.js +66 -4
  22. package/dist/cjs/components/config-provider/locale/zh-CN.js +74 -2
  23. package/dist/cjs/components/config-provider/tokens.js +11 -0
  24. package/dist/cjs/components/count-down/CountDown.js +6 -6
  25. package/dist/cjs/components/datetime-picker/DatetimePicker.js +6 -6
  26. package/dist/cjs/components/datetime-picker/tokens.js +11 -0
  27. package/dist/cjs/components/dialog/Dialog.js +39 -34
  28. package/dist/cjs/components/dialog/tokens.js +1 -4
  29. package/dist/cjs/components/divider/Divider.js +36 -1
  30. package/dist/cjs/components/field/Field.js +303 -201
  31. package/dist/cjs/components/flex/Flex.js +7 -3
  32. package/dist/cjs/components/flex/FlexContext.js +7 -14
  33. package/dist/cjs/components/form/Form.js +112 -122
  34. package/dist/cjs/components/form/FormContext.js +7 -10
  35. package/dist/cjs/components/form/FormItem.js +30 -4
  36. package/dist/cjs/components/form/FormList.js +16 -3
  37. package/dist/cjs/components/form/tokens.js +11 -0
  38. package/dist/cjs/components/form/utils.js +2 -1
  39. package/dist/cjs/components/grid/Grid.js +45 -31
  40. package/dist/cjs/components/grid/GridContext.js +7 -10
  41. package/dist/cjs/components/grid/GridItem.js +22 -22
  42. package/dist/cjs/components/image/Image.js +17 -13
  43. package/dist/cjs/components/image-preview/ImagePreview.js +43 -41
  44. package/dist/cjs/components/index.js +43 -141
  45. package/dist/cjs/components/input/Input.js +19 -5
  46. package/dist/cjs/components/loading/Loading.js +10 -139
  47. package/dist/cjs/components/loading/tokens.js +0 -24
  48. package/dist/cjs/components/notice-bar/NoticeBar.js +45 -41
  49. package/dist/cjs/components/notify/Notify.js +63 -22
  50. package/dist/cjs/components/notify/imperative.js +2 -2
  51. package/dist/cjs/components/notify/tokens.js +11 -1
  52. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +6 -6
  53. package/dist/cjs/components/overlay/Overlay.js +70 -77
  54. package/dist/cjs/components/overlay/index.js +13 -27
  55. package/dist/cjs/components/overlay/tokens.js +4 -31
  56. package/dist/cjs/components/password-input/PasswordInput.js +2 -41
  57. package/dist/cjs/components/password-input/tokens.js +53 -0
  58. package/dist/cjs/components/picker/Picker.js +618 -38
  59. package/dist/cjs/components/popup/Popup.js +60 -47
  60. package/dist/cjs/components/portal/Portal.js +39 -31
  61. package/dist/cjs/components/portal/PortalHost.js +258 -213
  62. package/dist/cjs/components/portal/tokens.js +11 -0
  63. package/dist/cjs/components/progress/Progress.js +77 -36
  64. package/dist/cjs/components/progress/index.js +6 -0
  65. package/dist/cjs/components/radio/Radio.js +35 -12
  66. package/dist/cjs/components/radio/RadioContext.js +7 -10
  67. package/dist/cjs/components/radio/RadioGroup.js +23 -20
  68. package/dist/cjs/components/safe-area-view/tokens.js +11 -0
  69. package/dist/cjs/components/search/Search.js +16 -16
  70. package/dist/cjs/components/selector/Selector.js +6 -6
  71. package/dist/cjs/components/share-sheet/ShareSheet.js +50 -46
  72. package/dist/cjs/components/sidebar/Sidebar.js +27 -22
  73. package/dist/cjs/components/sidebar/SidebarItem.js +27 -22
  74. package/dist/cjs/components/skeleton/Skeleton.js +34 -21
  75. package/dist/cjs/components/slider/Slider.js +135 -78
  76. package/dist/cjs/components/stepper/Stepper.js +12 -10
  77. package/dist/cjs/components/swiper/Swiper.js +247 -710
  78. package/dist/cjs/components/swiper/SwiperItem.js +5 -33
  79. package/dist/cjs/components/swiper/tokens.js +11 -0
  80. package/dist/cjs/components/switch/Switch.js +46 -98
  81. package/dist/cjs/components/switch/tokens.js +1 -55
  82. package/dist/cjs/components/tabbar/Tabbar.js +26 -22
  83. package/dist/cjs/components/tabbar/TabbarItem.js +23 -22
  84. package/dist/cjs/components/tabbar/tokens.js +0 -2
  85. package/dist/cjs/components/tabs/Tabs.js +268 -94
  86. package/dist/cjs/components/tabs/index.js +4 -5
  87. package/dist/cjs/components/toast/Toast.js +72 -27
  88. package/dist/cjs/components/toast/imperative.js +2 -2
  89. package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -2
  90. package/dist/cjs/hooks/index.js +12 -12
  91. package/dist/cjs/hooks/overlay/index.js +27 -0
  92. package/dist/cjs/hooks/useHairline.js +0 -4
  93. package/dist/cjs/platform/scrollLock.js +1 -1
  94. package/dist/cjs/utils/compare.js +26 -0
  95. package/dist/cjs/utils/index.js +11 -0
  96. package/dist/es/components/action-sheet/ActionSheet.js +29 -23
  97. package/dist/es/components/area/Area.js +73 -7
  98. package/dist/es/components/area/tokens.js +5 -0
  99. package/dist/es/components/avatar/Avatar.js +42 -10
  100. package/dist/es/components/badge/Badge.js +11 -11
  101. package/dist/es/components/badge/tokens.js +4 -0
  102. package/dist/es/components/button/Button.js +17 -65
  103. package/dist/es/components/button/ButtonContext.js +1 -2
  104. package/dist/es/components/button/ButtonGroup.js +10 -12
  105. package/dist/es/components/button/tokens.js +1 -5
  106. package/dist/es/components/calendar/Calendar.js +24 -13
  107. package/dist/es/components/cascader/Cascader.js +16 -11
  108. package/dist/es/components/cell/Cell.js +4 -4
  109. package/dist/es/components/cell/CellGroup.js +25 -20
  110. package/dist/es/components/checkbox/Checkbox.js +5 -4
  111. package/dist/es/components/checkbox/CheckboxContext.js +1 -2
  112. package/dist/es/components/checkbox/CheckboxGroup.js +24 -21
  113. package/dist/es/components/circle/Circle.js +7 -7
  114. package/dist/es/components/collapse/Collapse.js +11 -11
  115. package/dist/es/components/config-provider/locale/en-US.js +66 -4
  116. package/dist/es/components/config-provider/locale/zh-CN.js +74 -2
  117. package/dist/es/components/config-provider/tokens.js +5 -0
  118. package/dist/es/components/count-down/CountDown.js +7 -7
  119. package/dist/es/components/datetime-picker/DatetimePicker.js +7 -7
  120. package/dist/es/components/datetime-picker/tokens.js +5 -0
  121. package/dist/es/components/dialog/Dialog.js +40 -35
  122. package/dist/es/components/dialog/tokens.js +1 -4
  123. package/dist/es/components/divider/Divider.js +36 -1
  124. package/dist/es/components/field/Field.js +304 -202
  125. package/dist/es/components/flex/Flex.js +5 -1
  126. package/dist/es/components/flex/FlexContext.js +1 -6
  127. package/dist/es/components/form/Form.js +89 -99
  128. package/dist/es/components/form/FormContext.js +1 -2
  129. package/dist/es/components/form/FormItem.js +32 -6
  130. package/dist/es/components/form/FormList.js +18 -5
  131. package/dist/es/components/form/tokens.js +5 -0
  132. package/dist/es/components/form/utils.js +1 -0
  133. package/dist/es/components/grid/Grid.js +43 -29
  134. package/dist/es/components/grid/GridContext.js +1 -2
  135. package/dist/es/components/grid/GridItem.js +24 -24
  136. package/dist/es/components/image/Image.js +18 -14
  137. package/dist/es/components/image-preview/ImagePreview.js +44 -42
  138. package/dist/es/components/index.js +2 -17
  139. package/dist/es/components/input/Input.js +20 -6
  140. package/dist/es/components/loading/Loading.js +10 -139
  141. package/dist/es/components/loading/tokens.js +0 -24
  142. package/dist/es/components/notice-bar/NoticeBar.js +46 -42
  143. package/dist/es/components/notify/Notify.js +63 -22
  144. package/dist/es/components/notify/imperative.js +2 -2
  145. package/dist/es/components/notify/tokens.js +5 -1
  146. package/dist/es/components/number-keyboard/NumberKeyboard.js +7 -7
  147. package/dist/es/components/overlay/Overlay.js +58 -75
  148. package/dist/es/components/overlay/index.js +3 -4
  149. package/dist/es/components/overlay/tokens.js +3 -29
  150. package/dist/es/components/password-input/PasswordInput.js +1 -40
  151. package/dist/es/components/password-input/tokens.js +41 -0
  152. package/dist/es/components/picker/Picker.js +610 -34
  153. package/dist/es/components/popup/Popup.js +62 -49
  154. package/dist/es/components/portal/Portal.js +37 -31
  155. package/dist/es/components/portal/PortalHost.js +257 -211
  156. package/dist/es/components/portal/tokens.js +5 -0
  157. package/dist/es/components/progress/Progress.js +76 -36
  158. package/dist/es/components/progress/index.js +2 -1
  159. package/dist/es/components/radio/Radio.js +37 -14
  160. package/dist/es/components/radio/RadioContext.js +1 -2
  161. package/dist/es/components/radio/RadioGroup.js +23 -20
  162. package/dist/es/components/safe-area-view/tokens.js +5 -0
  163. package/dist/es/components/search/Search.js +17 -17
  164. package/dist/es/components/selector/Selector.js +7 -7
  165. package/dist/es/components/share-sheet/ShareSheet.js +51 -47
  166. package/dist/es/components/sidebar/Sidebar.js +26 -21
  167. package/dist/es/components/sidebar/SidebarItem.js +26 -22
  168. package/dist/es/components/skeleton/Skeleton.js +35 -22
  169. package/dist/es/components/slider/Slider.js +132 -75
  170. package/dist/es/components/stepper/Stepper.js +13 -11
  171. package/dist/es/components/swiper/Swiper.js +248 -711
  172. package/dist/es/components/swiper/SwiperItem.js +1 -21
  173. package/dist/es/components/swiper/tokens.js +5 -0
  174. package/dist/es/components/switch/Switch.js +49 -101
  175. package/dist/es/components/switch/tokens.js +1 -49
  176. package/dist/es/components/tabbar/Tabbar.js +27 -23
  177. package/dist/es/components/tabbar/TabbarItem.js +22 -22
  178. package/dist/es/components/tabbar/tokens.js +0 -2
  179. package/dist/es/components/tabs/Tabs.js +264 -90
  180. package/dist/es/components/tabs/index.js +1 -2
  181. package/dist/es/components/toast/Toast.js +72 -28
  182. package/dist/es/components/toast/imperative.js +2 -2
  183. package/dist/es/hooks/gesture/useGestureScroll.js +1 -2
  184. package/dist/es/hooks/index.js +1 -1
  185. package/dist/es/hooks/overlay/index.js +3 -0
  186. package/dist/es/hooks/useHairline.js +0 -4
  187. package/dist/es/platform/scrollLock.js +1 -1
  188. package/dist/es/utils/compare.js +18 -0
  189. package/dist/es/utils/index.js +1 -1
  190. package/dist/types/components/area/tokens.d.ts +3 -0
  191. package/dist/types/components/avatar/Avatar.d.ts +4 -2
  192. package/dist/types/components/button/ButtonContext.d.ts +2 -16
  193. package/dist/types/components/button/ButtonGroup.d.ts +14 -1
  194. package/dist/types/components/button/index.d.ts +1 -1
  195. package/dist/types/components/checkbox/CheckboxContext.d.ts +2 -16
  196. package/dist/types/components/checkbox/CheckboxGroup.d.ts +15 -1
  197. package/dist/types/components/collapse/Collapse.d.ts +0 -1
  198. package/dist/types/components/config-provider/LocaleContext.d.ts +2 -74
  199. package/dist/types/components/config-provider/tokens.d.ts +3 -0
  200. package/dist/types/components/config-provider/useLocale.d.ts +1 -74
  201. package/dist/types/components/datetime-picker/tokens.d.ts +3 -0
  202. package/dist/types/components/flex/Flex.d.ts +6 -0
  203. package/dist/types/components/flex/FlexContext.d.ts +2 -8
  204. package/dist/types/components/form/Form.d.ts +15 -1
  205. package/dist/types/components/form/FormContext.d.ts +2 -17
  206. package/dist/types/components/form/tokens.d.ts +3 -0
  207. package/dist/types/components/form/utils.d.ts +1 -0
  208. package/dist/types/components/grid/Grid.d.ts +16 -1
  209. package/dist/types/components/grid/GridContext.d.ts +2 -17
  210. package/dist/types/components/index.d.ts +3 -33
  211. package/dist/types/components/loading/index.d.ts +1 -1
  212. package/dist/types/components/notify/Notify.d.ts +1 -0
  213. package/dist/types/components/overlay/Overlay.d.ts +6 -1
  214. package/dist/types/components/overlay/index.d.ts +2 -3
  215. package/dist/types/components/overlay/tokens.d.ts +2 -3
  216. package/dist/types/components/password-input/PasswordInput.d.ts +0 -39
  217. package/dist/types/components/password-input/tokens.d.ts +40 -0
  218. package/dist/types/components/picker/Picker.d.ts +18 -2
  219. package/dist/types/components/picker/index.d.ts +1 -1
  220. package/dist/types/components/portal/Portal.d.ts +4 -6
  221. package/dist/types/components/portal/PortalHost.d.ts +1 -15
  222. package/dist/types/components/portal/tokens.d.ts +3 -0
  223. package/dist/types/components/progress/Progress.d.ts +4 -0
  224. package/dist/types/components/progress/index.d.ts +2 -1
  225. package/dist/types/components/radio/RadioContext.d.ts +2 -13
  226. package/dist/types/components/radio/RadioGroup.d.ts +12 -1
  227. package/dist/types/components/safe-area-view/tokens.d.ts +3 -0
  228. package/dist/types/components/swiper/Swiper.d.ts +4 -2
  229. package/dist/types/components/swiper/SwiperItem.d.ts +1 -5
  230. package/dist/types/components/swiper/tokens.d.ts +3 -0
  231. package/dist/types/components/tabs/Tabs.d.ts +8 -4
  232. package/dist/types/components/tabs/index.d.ts +3 -1
  233. package/dist/types/components/toast/Toast.d.ts +1 -4
  234. package/dist/types/hooks/aria/useAriaListBox.d.ts +0 -6
  235. package/dist/types/hooks/aria/useAriaOverlay.d.ts +0 -10
  236. package/dist/types/hooks/aria/useAriaPress.d.ts +0 -20
  237. package/dist/types/hooks/aria/useAriaToggle.d.ts +0 -3
  238. package/dist/types/hooks/index.d.ts +1 -1
  239. package/dist/types/hooks/overlay/index.d.ts +2 -0
  240. package/dist/types/hooks/useHairline.d.ts +0 -21
  241. package/dist/types/utils/compare.d.ts +2 -0
  242. package/dist/types/utils/index.d.ts +1 -0
  243. package/package.json +10 -48
  244. package/dist/cjs/components/area/utils.js +0 -74
  245. package/dist/cjs/components/cascader/utils.js +0 -20
  246. package/dist/cjs/components/config-provider/locale/base.js +0 -80
  247. package/dist/cjs/components/dropdown-menu/DropdownItem.js +0 -288
  248. package/dist/cjs/components/dropdown-menu/DropdownMenu.js +0 -340
  249. package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +0 -21
  250. package/dist/cjs/components/dropdown-menu/index.js +0 -25
  251. package/dist/cjs/components/dropdown-menu/tokens.js +0 -67
  252. package/dist/cjs/components/field/utils.js +0 -24
  253. package/dist/cjs/components/index-bar/IndexAnchor.js +0 -74
  254. package/dist/cjs/components/index-bar/IndexBar.js +0 -436
  255. package/dist/cjs/components/index-bar/index.js +0 -25
  256. package/dist/cjs/components/index-bar/tokens.js +0 -45
  257. package/dist/cjs/components/list/List.js +0 -165
  258. package/dist/cjs/components/list/index.js +0 -9
  259. package/dist/cjs/components/list/tokens.js +0 -39
  260. package/dist/cjs/components/notify/defaults.js +0 -15
  261. package/dist/cjs/components/pagination/Pagination.js +0 -160
  262. package/dist/cjs/components/pagination/index.js +0 -22
  263. package/dist/cjs/components/pagination/tokens.js +0 -103
  264. package/dist/cjs/components/picker/WheelPicker.js +0 -492
  265. package/dist/cjs/components/picker/utils.js +0 -138
  266. package/dist/cjs/components/pull-refresh/PullRefresh.js +0 -378
  267. package/dist/cjs/components/pull-refresh/index.js +0 -16
  268. package/dist/cjs/components/pull-refresh/tokens.js +0 -22
  269. package/dist/cjs/components/rate/Rate.js +0 -269
  270. package/dist/cjs/components/rate/index.js +0 -15
  271. package/dist/cjs/components/rate/tokens.js +0 -60
  272. package/dist/cjs/components/slider/utils.js +0 -60
  273. package/dist/cjs/components/swiper/useSwiperWeb.js +0 -209
  274. package/dist/cjs/components/swiper/utils.js +0 -49
  275. package/dist/cjs/components/tabs/TabPane.js +0 -9
  276. package/dist/cjs/components/tabs/useTabsAnimation.js +0 -74
  277. package/dist/cjs/components/tabs/useTabsScroll.js +0 -133
  278. package/dist/cjs/components/tabs/utils.js +0 -34
  279. package/dist/cjs/components/types.js +0 -1
  280. package/dist/cjs/components/uploader/Uploader.js +0 -557
  281. package/dist/cjs/components/uploader/index.js +0 -22
  282. package/dist/cjs/components/uploader/tokens.js +0 -58
  283. package/dist/cjs/components/uploader/utils.js +0 -72
  284. package/dist/cjs/hooks/usePresenceAnimation.js +0 -70
  285. package/dist/es/components/area/utils.js +0 -67
  286. package/dist/es/components/cascader/utils.js +0 -13
  287. package/dist/es/components/config-provider/locale/base.js +0 -74
  288. package/dist/es/components/dropdown-menu/DropdownItem.js +0 -269
  289. package/dist/es/components/dropdown-menu/DropdownMenu.js +0 -320
  290. package/dist/es/components/dropdown-menu/DropdownMenuContext.js +0 -7
  291. package/dist/es/components/dropdown-menu/index.js +0 -7
  292. package/dist/es/components/dropdown-menu/tokens.js +0 -61
  293. package/dist/es/components/field/utils.js +0 -17
  294. package/dist/es/components/index-bar/IndexAnchor.js +0 -55
  295. package/dist/es/components/index-bar/IndexBar.js +0 -417
  296. package/dist/es/components/index-bar/index.js +0 -7
  297. package/dist/es/components/index-bar/tokens.js +0 -39
  298. package/dist/es/components/list/List.js +0 -145
  299. package/dist/es/components/list/index.js +0 -2
  300. package/dist/es/components/list/tokens.js +0 -32
  301. package/dist/es/components/notify/defaults.js +0 -9
  302. package/dist/es/components/pagination/Pagination.js +0 -141
  303. package/dist/es/components/pagination/index.js +0 -4
  304. package/dist/es/components/pagination/tokens.js +0 -91
  305. package/dist/es/components/picker/WheelPicker.js +0 -473
  306. package/dist/es/components/picker/utils.js +0 -127
  307. package/dist/es/components/pull-refresh/PullRefresh.js +0 -359
  308. package/dist/es/components/pull-refresh/index.js +0 -3
  309. package/dist/es/components/pull-refresh/tokens.js +0 -16
  310. package/dist/es/components/rate/Rate.js +0 -250
  311. package/dist/es/components/rate/index.js +0 -3
  312. package/dist/es/components/rate/tokens.js +0 -53
  313. package/dist/es/components/slider/utils.js +0 -49
  314. package/dist/es/components/swiper/useSwiperWeb.js +0 -190
  315. package/dist/es/components/swiper/utils.js +0 -37
  316. package/dist/es/components/tabs/TabPane.js +0 -3
  317. package/dist/es/components/tabs/useTabsAnimation.js +0 -55
  318. package/dist/es/components/tabs/useTabsScroll.js +0 -114
  319. package/dist/es/components/tabs/utils.js +0 -19
  320. package/dist/es/components/types.js +0 -1
  321. package/dist/es/components/uploader/Uploader.js +0 -537
  322. package/dist/es/components/uploader/index.js +0 -4
  323. package/dist/es/components/uploader/tokens.js +0 -52
  324. package/dist/es/components/uploader/utils.js +0 -60
  325. package/dist/es/hooks/usePresenceAnimation.js +0 -51
  326. package/dist/types/components/area/utils.d.ts +0 -2
  327. package/dist/types/components/cascader/utils.d.ts +0 -6
  328. package/dist/types/components/config-provider/locale/base.d.ts +0 -74
  329. package/dist/types/components/dropdown-menu/DropdownItem.d.ts +0 -4
  330. package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +0 -4
  331. package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +0 -17
  332. package/dist/types/components/dropdown-menu/index.d.ts +0 -8
  333. package/dist/types/components/dropdown-menu/tokens.d.ts +0 -52
  334. package/dist/types/components/field/utils.d.ts +0 -4
  335. package/dist/types/components/index-bar/IndexAnchor.d.ts +0 -4
  336. package/dist/types/components/index-bar/IndexBar.d.ts +0 -4
  337. package/dist/types/components/index-bar/index.d.ts +0 -9
  338. package/dist/types/components/index-bar/tokens.d.ts +0 -31
  339. package/dist/types/components/list/List.d.ts +0 -4
  340. package/dist/types/components/list/index.d.ts +0 -3
  341. package/dist/types/components/list/tokens.d.ts +0 -4
  342. package/dist/types/components/notify/defaults.d.ts +0 -10
  343. package/dist/types/components/pagination/Pagination.d.ts +0 -5
  344. package/dist/types/components/pagination/index.d.ts +0 -5
  345. package/dist/types/components/pagination/tokens.d.ts +0 -2
  346. package/dist/types/components/picker/WheelPicker.d.ts +0 -21
  347. package/dist/types/components/picker/utils.d.ts +0 -17
  348. package/dist/types/components/pull-refresh/PullRefresh.d.ts +0 -5
  349. package/dist/types/components/pull-refresh/index.d.ts +0 -4
  350. package/dist/types/components/pull-refresh/tokens.d.ts +0 -10
  351. package/dist/types/components/rate/Rate.d.ts +0 -4
  352. package/dist/types/components/rate/index.d.ts +0 -4
  353. package/dist/types/components/rate/tokens.d.ts +0 -4
  354. package/dist/types/components/slider/utils.d.ts +0 -42
  355. package/dist/types/components/swiper/useSwiperWeb.d.ts +0 -41
  356. package/dist/types/components/swiper/utils.d.ts +0 -17
  357. package/dist/types/components/tabs/TabPane.d.ts +0 -4
  358. package/dist/types/components/tabs/useTabsAnimation.d.ts +0 -30
  359. package/dist/types/components/tabs/useTabsScroll.d.ts +0 -23
  360. package/dist/types/components/tabs/utils.d.ts +0 -5
  361. package/dist/types/components/types.d.ts +0 -59
  362. package/dist/types/components/uploader/Uploader.d.ts +0 -4
  363. package/dist/types/components/uploader/index.d.ts +0 -5
  364. package/dist/types/components/uploader/tokens.d.ts +0 -42
  365. package/dist/types/components/uploader/utils.d.ts +0 -11
  366. package/dist/types/hooks/usePresenceAnimation.d.ts +0 -20
  367. /package/dist/cjs/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  368. /package/dist/cjs/{components → hooks}/overlay/useOverlayStack.js +0 -0
  369. /package/dist/es/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  370. /package/dist/es/{components → hooks}/overlay/useOverlayStack.js +0 -0
  371. /package/dist/types/{components → hooks}/overlay/OverlayStackStore.d.ts +0 -0
  372. /package/dist/types/{components → hooks}/overlay/useOverlayStack.d.ts +0 -0
@@ -1,417 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
3
- import { Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';
4
- import { useControllableValue } from '../../hooks';
5
- import { isFiniteNumber, isUndefined } from '../../utils/validate';
6
- import { SafeAreaView } from '../safe-area-view';
7
- import { useIndexBarTokens } from './tokens';
8
- const IndexBarBase = /*#__PURE__*/React.forwardRef((props, ref) => {
9
- const {
10
- children,
11
- value,
12
- defaultValue,
13
- highlightColor,
14
- zIndex = 1,
15
- sticky = true,
16
- stickyOffsetTop = 0,
17
- indexList,
18
- itemRender,
19
- showIndicator = true,
20
- indicatorStyle,
21
- indexTextStyle,
22
- safeAreaInsetTop = false,
23
- tokensOverride,
24
- onChange,
25
- onSelect,
26
- style,
27
- ...rest
28
- } = props;
29
- const {
30
- colors,
31
- layout,
32
- typography
33
- } = useIndexBarTokens(tokensOverride);
34
- const scrollRef = useRef(null);
35
- const scrollYRef = useRef(0);
36
- const anchorLayouts = useRef(new Map());
37
- const anchorOffsetsRef = useRef([]);
38
- const indexListHeightRef = useRef(0);
39
- const navItemLayoutsRef = useRef(new Map());
40
- const navItemOffsetsRef = useRef([]);
41
- const draggingIndexRef = useRef(null);
42
- const pendingScrollToValueRef = useRef(null);
43
- const [interactionIndex, setInteractionIndex] = useState(null);
44
- const [stickyVisible, setStickyVisible] = useState(false);
45
- const [indicator, setIndicator] = useState({
46
- visible: false
47
- });
48
- const anchors = React.Children.toArray(children).filter(React.isValidElement);
49
- const navItems = indexList?.length ? indexList : anchors.map(anchor => anchor.props.index);
50
- const firstIndex = navItems[0];
51
- const [activeIndex, setActiveIndex] = useControllableValue(props, {
52
- defaultValue: isUndefined(firstIndex) ? anchors[0]?.props.index : firstIndex,
53
- valuePropName: 'value',
54
- defaultValuePropName: 'defaultValue',
55
- trigger: 'onChange'
56
- });
57
- const currentIndex = activeIndex === undefined || activeIndex === null || !navItems.includes(activeIndex) ? firstIndex : activeIndex;
58
- const displayIndex = interactionIndex ?? currentIndex;
59
- const showIndicatorNow = useCallback(label => {
60
- if (!showIndicator) return;
61
- setIndicator({
62
- visible: true,
63
- label
64
- });
65
- }, [showIndicator]);
66
- const hideIndicatorNow = useCallback(() => {
67
- if (!showIndicator) return;
68
- setIndicator(prev => prev.visible ? {
69
- visible: false
70
- } : prev);
71
- }, [showIndicator]);
72
- const scrollToAnchor = useCallback((index, animated) => {
73
- const y = anchorLayouts.current.get(index);
74
- if (y === undefined) {
75
- pendingScrollToValueRef.current = index;
76
- return;
77
- }
78
- scrollRef.current?.scrollTo({
79
- y: Math.max(0, y - stickyOffsetTop),
80
- animated
81
- });
82
- }, [stickyOffsetTop]);
83
- const handleAnchorLayout = useCallback((index, layoutY) => {
84
- anchorLayouts.current.set(index, layoutY);
85
- anchorOffsetsRef.current = Array.from(anchorLayouts.current.entries()).map(([key, y]) => ({
86
- index: key,
87
- y
88
- })).sort((a, b) => a.y - b.y);
89
- const pending = pendingScrollToValueRef.current;
90
- if (pending === null) return;
91
- const y = anchorLayouts.current.get(pending);
92
- if (y === undefined) return;
93
- pendingScrollToValueRef.current = null;
94
- scrollRef.current?.scrollTo({
95
- y: Math.max(0, y - stickyOffsetTop),
96
- animated: false
97
- });
98
- }, [stickyOffsetTop]);
99
- const scrollToIndex = useCallback((index, animated = true) => {
100
- scrollToAnchor(index, animated);
101
- setActiveIndex(index);
102
- }, [scrollToAnchor, setActiveIndex]);
103
- useImperativeHandle(ref, () => ({
104
- scrollTo: index => scrollToIndex(index, true)
105
- }), [scrollToIndex]);
106
- const handleScroll = useCallback(event => {
107
- const offsetY = event?.nativeEvent?.contentOffset?.y ?? 0;
108
- scrollYRef.current = offsetY;
109
- const threshold = sticky ? stickyOffsetTop : 0;
110
- let nextIndex = currentIndex;
111
- const entries = anchorOffsetsRef.current;
112
- const targetY = offsetY + threshold + 1;
113
- let low = 0;
114
- let high = entries.length - 1;
115
- let found = null;
116
- while (low <= high) {
117
- const mid = Math.floor((low + high) / 2);
118
- const entry = entries[mid];
119
- if (entry && entry.y <= targetY) {
120
- found = entry.index;
121
- low = mid + 1;
122
- } else {
123
- high = mid - 1;
124
- }
125
- }
126
- if (found !== null) {
127
- nextIndex = found;
128
- }
129
- if (nextIndex !== undefined && nextIndex !== null && nextIndex !== currentIndex) {
130
- setActiveIndex(nextIndex);
131
- }
132
- if (sticky && nextIndex !== undefined && nextIndex !== null) {
133
- const y = anchorLayouts.current.get(nextIndex);
134
- const nextStickyVisible = y !== undefined && offsetY > Math.max(0, y - stickyOffsetTop);
135
- setStickyVisible(prev => prev === nextStickyVisible ? prev : nextStickyVisible);
136
- } else {
137
- setStickyVisible(prev => prev ? false : prev);
138
- }
139
- }, [currentIndex, setActiveIndex, sticky, stickyOffsetTop]);
140
- useEffect(() => {
141
- const valid = new Set(anchors.map(anchor => anchor.props.index));
142
- Array.from(anchorLayouts.current.keys()).forEach(key => {
143
- if (!valid.has(key)) {
144
- anchorLayouts.current.delete(key);
145
- }
146
- });
147
- anchorOffsetsRef.current = Array.from(anchorLayouts.current.entries()).map(([key, y]) => ({
148
- index: key,
149
- y
150
- })).sort((a, b) => a.y - b.y);
151
- }, [anchors]);
152
- useEffect(() => {
153
- const valid = new Set(navItems);
154
- Array.from(navItemLayoutsRef.current.keys()).forEach(key => {
155
- if (!valid.has(key)) {
156
- navItemLayoutsRef.current.delete(key);
157
- }
158
- });
159
- navItemOffsetsRef.current = Array.from(navItemLayoutsRef.current.entries()).map(([key, layoutItem]) => ({
160
- index: key,
161
- y: layoutItem.y,
162
- height: layoutItem.height
163
- })).sort((a, b) => a.y - b.y);
164
- }, [navItems]);
165
- useEffect(() => {
166
- if (interactionIndex == null) return;
167
- if (!navItems.includes(interactionIndex)) {
168
- setInteractionIndex(null);
169
- }
170
- }, [interactionIndex, navItems]);
171
- useEffect(() => {
172
- if (value === undefined || value === null) return;
173
- const y = anchorLayouts.current.get(value);
174
- if (y === undefined) {
175
- pendingScrollToValueRef.current = value;
176
- return;
177
- }
178
- const targetY = Math.max(0, y - stickyOffsetTop);
179
- if (Math.abs(targetY - scrollYRef.current) < 1) return;
180
- scrollRef.current?.scrollTo({
181
- y: targetY,
182
- animated: true
183
- });
184
- }, [stickyOffsetTop, value]);
185
- const selectIndex = useCallback((index, animated) => {
186
- showIndicatorNow(String(index));
187
- onSelect?.(index);
188
- scrollToIndex(index, animated);
189
- }, [onSelect, scrollToIndex, showIndicatorNow]);
190
- const handlePressIn = useCallback(index => {
191
- setInteractionIndex(index);
192
- selectIndex(index, true);
193
- }, [selectIndex]);
194
- const handlePressOut = useCallback(() => {
195
- hideIndicatorNow();
196
- setInteractionIndex(null);
197
- }, [hideIndicatorNow]);
198
- const handleIndexItemLayout = useCallback((index, event) => {
199
- const {
200
- y,
201
- height
202
- } = event.nativeEvent.layout;
203
- navItemLayoutsRef.current.set(index, {
204
- y,
205
- height
206
- });
207
- navItemOffsetsRef.current = Array.from(navItemLayoutsRef.current.entries()).map(([key, layoutItem]) => ({
208
- index: key,
209
- y: layoutItem.y,
210
- height: layoutItem.height
211
- })).sort((a, b) => a.y - b.y);
212
- }, []);
213
- if (anchors.length === 0) {
214
- return null;
215
- }
216
- const highlight = highlightColor ?? colors.activeText;
217
- const activeAnchor = anchors.find(anchor => anchor.props.index === displayIndex);
218
- const stickyNode = sticky && stickyVisible && activeAnchor ? /*#__PURE__*/React.createElement(View, {
219
- style: [styles.sticky, {
220
- backgroundColor: colors.stickyBackground,
221
- height: layout.stickyHeight,
222
- paddingHorizontal: layout.stickyPaddingHorizontal
223
- }]
224
- }, /*#__PURE__*/React.createElement(Text, {
225
- style: [styles.stickyText, {
226
- color: highlight,
227
- fontSize: typography.stickyTextSize
228
- }]
229
- }, activeAnchor.props.title ?? activeAnchor.props.index)) : null;
230
- const indicatorSize = layout.indicatorSize;
231
- const indicatorNode = !showIndicator || !indicator.visible ? null : /*#__PURE__*/React.createElement(View, {
232
- style: [styles.indicator, {
233
- width: indicatorSize,
234
- height: indicatorSize,
235
- borderRadius: indicatorSize / 2,
236
- backgroundColor: colors.indicatorBackground,
237
- zIndex,
238
- transform: [{
239
- translateX: -indicatorSize / 2
240
- }, {
241
- translateY: -indicatorSize / 2
242
- }]
243
- }, indicatorStyle]
244
- }, /*#__PURE__*/React.createElement(Text, {
245
- style: [styles.indicatorText, {
246
- color: colors.indicatorText,
247
- fontSize: typography.indicatorTextSize
248
- }]
249
- }, indicator.label));
250
- const pickIndexFromEvent = useCallback(evt => {
251
- if (!navItems.length) return null;
252
- const locationY = evt?.nativeEvent?.locationY;
253
- if (!isFiniteNumber(locationY)) return null;
254
- const entries = navItemOffsetsRef.current;
255
- if (entries.length) {
256
- let picked = null;
257
- let minDistance = Number.POSITIVE_INFINITY;
258
- entries.forEach(entry => {
259
- if (entry.height <= 0) return;
260
- const center = entry.y + entry.height / 2;
261
- const distance = Math.abs(locationY - center);
262
- if (distance < minDistance) {
263
- minDistance = distance;
264
- picked = entry.index;
265
- }
266
- });
267
- return picked;
268
- }
269
- const height = indexListHeightRef.current;
270
- if (!height) return null;
271
- const paddingY = layout.paddingVertical;
272
- const contentHeight = Math.max(0, height - paddingY * 2);
273
- const itemHeight = contentHeight / navItems.length;
274
- if (itemHeight <= 0) return null;
275
- const y = locationY - paddingY;
276
- const idx = Math.max(0, Math.min(navItems.length - 1, Math.floor(y / itemHeight)));
277
- return navItems[idx] || null;
278
- }, [layout.paddingVertical, navItems]);
279
- const shouldHandleResponder = useCallback(evt => {
280
- if (!navItems.length) return false;
281
- const locationY = evt?.nativeEvent?.locationY;
282
- if (!isFiniteNumber(locationY)) return false;
283
- if (navItemOffsetsRef.current.length) return true;
284
- return indexListHeightRef.current > 0;
285
- }, [navItems.length]);
286
- const handleResponderGrant = useCallback(evt => {
287
- const picked = pickIndexFromEvent(evt);
288
- draggingIndexRef.current = picked;
289
- if (picked !== null) {
290
- setInteractionIndex(picked);
291
- selectIndex(picked, true);
292
- }
293
- }, [pickIndexFromEvent, selectIndex]);
294
- const handleResponderMove = useCallback(evt => {
295
- const picked = pickIndexFromEvent(evt);
296
- if (picked === null) return;
297
- if (picked === draggingIndexRef.current) return;
298
- draggingIndexRef.current = picked;
299
- setInteractionIndex(picked);
300
- selectIndex(picked, false);
301
- }, [pickIndexFromEvent, selectIndex]);
302
- const handleResponderRelease = useCallback(() => {
303
- draggingIndexRef.current = null;
304
- hideIndicatorNow();
305
- setInteractionIndex(null);
306
- }, [hideIndicatorNow]);
307
- const StickyWrapper = safeAreaInsetTop ? SafeAreaView : View;
308
- const stickyWrapperStyle = [styles.stickyWrapper, {
309
- top: stickyOffsetTop,
310
- zIndex
311
- }];
312
- const handleIndexListLayout = useCallback(e => {
313
- const {
314
- height
315
- } = e.nativeEvent.layout;
316
- indexListHeightRef.current = height;
317
- }, []);
318
- const anchorNodes = anchors.map(anchor => /*#__PURE__*/React.cloneElement(anchor, {
319
- key: anchor.key ?? anchor.props.index,
320
- active: anchor.props.index === displayIndex,
321
- highlightColor: highlight,
322
- onLayoutCapture: handleAnchorLayout
323
- }));
324
- return /*#__PURE__*/React.createElement(View, _extends({}, rest, {
325
- style: [styles.container, style]
326
- }), /*#__PURE__*/React.createElement(ScrollView, {
327
- ref: scrollRef,
328
- onScroll: handleScroll,
329
- scrollEventThrottle: 16,
330
- showsVerticalScrollIndicator: false
331
- }, anchorNodes), sticky && stickyVisible && stickyNode && /*#__PURE__*/React.createElement(StickyWrapper, {
332
- style: stickyWrapperStyle
333
- }, stickyNode), /*#__PURE__*/React.createElement(View, {
334
- testID: "rv-indexbar-nav-list",
335
- style: [styles.indexList, {
336
- width: layout.indexWidth,
337
- paddingVertical: layout.paddingVertical,
338
- paddingHorizontal: layout.indexListPaddingHorizontal,
339
- zIndex
340
- }],
341
- onLayout: handleIndexListLayout,
342
- onStartShouldSetResponder: () => false,
343
- onMoveShouldSetResponder: evt => shouldHandleResponder(evt),
344
- onStartShouldSetResponderCapture: () => false,
345
- onMoveShouldSetResponderCapture: evt => shouldHandleResponder(evt),
346
- onResponderGrant: handleResponderGrant,
347
- onResponderStart: handleResponderGrant,
348
- onResponderMove: handleResponderMove,
349
- onResponderRelease: handleResponderRelease,
350
- onResponderTerminate: handleResponderRelease
351
- }, navItems.map(item => {
352
- const isActive = item === displayIndex;
353
- const node = itemRender?.(item, isActive);
354
- return /*#__PURE__*/React.createElement(Pressable, {
355
- key: String(item),
356
- testID: `rv-indexbar-nav-${String(item)}`,
357
- style: [styles.indexItem, {
358
- paddingVertical: layout.indexItemPaddingVertical,
359
- paddingHorizontal: layout.indexItemPaddingHorizontal
360
- }],
361
- hitSlop: layout.spacing,
362
- onLayout: event => handleIndexItemLayout(item, event),
363
- onPress: () => handlePressIn(item),
364
- onPressIn: () => handlePressIn(item),
365
- onPressOut: handlePressOut
366
- }, node ?? /*#__PURE__*/React.createElement(Text, {
367
- style: [styles.indexText, {
368
- color: isActive ? highlight : colors.text,
369
- fontSize: typography.indexTextSize
370
- }, indexTextStyle]
371
- }, String(item)));
372
- })), indicatorNode);
373
- });
374
- const styles = StyleSheet.create({
375
- container: {
376
- flex: 1
377
- },
378
- indexList: {
379
- position: 'absolute',
380
- right: 0,
381
- top: 0,
382
- bottom: 0,
383
- justifyContent: 'center',
384
- alignItems: 'center'
385
- },
386
- indexItem: {
387
- width: '100%',
388
- alignItems: 'center',
389
- justifyContent: 'center'
390
- },
391
- indexText: {},
392
- indicator: {
393
- position: 'absolute',
394
- left: '50%',
395
- top: '50%',
396
- alignItems: 'center',
397
- justifyContent: 'center',
398
- pointerEvents: 'none'
399
- },
400
- indicatorText: {
401
- fontWeight: '600'
402
- },
403
- stickyWrapper: {
404
- position: 'absolute',
405
- top: 0,
406
- left: 0,
407
- right: 0
408
- },
409
- sticky: {
410
- justifyContent: 'center'
411
- },
412
- stickyText: {
413
- fontWeight: '600'
414
- }
415
- });
416
- IndexBarBase.displayName = 'IndexBar';
417
- export default IndexBarBase;
@@ -1,7 +0,0 @@
1
- import IndexBarBase from './IndexBar';
2
- import IndexAnchor from './IndexAnchor';
3
- export { useIndexBarTokens } from './tokens';
4
- const IndexBar = IndexBarBase;
5
- IndexBar.Anchor = IndexAnchor;
6
- export { IndexAnchor };
7
- export default IndexBar;
@@ -1,39 +0,0 @@
1
- import { createComponentTokensHook } from '../../design-system';
2
- const createTokens = foundations => {
3
- const {
4
- palette,
5
- fontSize,
6
- spacing
7
- } = foundations;
8
- return {
9
- colors: {
10
- text: palette.default[600],
11
- activeText: palette.primary[600],
12
- indicatorBackground: palette.primary[500],
13
- indicatorText: palette.primary.foreground ?? '#ffffff',
14
- stickyBackground: palette.default[50],
15
- anchorBackground: palette.default[50],
16
- anchorText: palette.default[800]
17
- },
18
- layout: {
19
- indexWidth: 28,
20
- paddingVertical: spacing.sm,
21
- indexListPaddingHorizontal: spacing.xxs,
22
- indexItemPaddingVertical: spacing.xxs,
23
- indexItemPaddingHorizontal: spacing.xxs,
24
- spacing: spacing.xs,
25
- indicatorSize: 48,
26
- stickyHeight: 32,
27
- stickyPaddingHorizontal: spacing.md,
28
- anchorHeight: 32,
29
- anchorPaddingHorizontal: spacing.md
30
- },
31
- typography: {
32
- indexTextSize: fontSize.xs,
33
- indicatorTextSize: fontSize.lg,
34
- stickyTextSize: fontSize.md,
35
- anchorTitleSize: fontSize.sm
36
- }
37
- };
38
- };
39
- export const useIndexBarTokens = createComponentTokensHook('indexBar', createTokens);
@@ -1,145 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
3
- import { Pressable, ScrollView, Text, View } from 'react-native';
4
- import { isFunction, isRenderable, isText, isUndefined } from '../../utils/validate';
5
- import { useLocale } from '../config-provider/useLocale';
6
- import Loading from '../loading';
7
- import { useListTokens } from './tokens';
8
- const List = /*#__PURE__*/React.forwardRef((props, ref) => {
9
- const locale = useLocale();
10
- const {
11
- onLoad,
12
- loading,
13
- error,
14
- finished: finishedProp,
15
- offset: offsetProp,
16
- immediateCheck: immediateCheckProp,
17
- loadingText: loadingTextProp,
18
- finishedText,
19
- errorText,
20
- children,
21
- contentContainerStyle,
22
- tokensOverride,
23
- onScroll,
24
- onContentSizeChange,
25
- onLayout,
26
- scrollEventThrottle: scrollEventThrottleProp,
27
- ScrollComponent = ScrollView,
28
- ...scrollProps
29
- } = props;
30
- const tokens = useListTokens(tokensOverride);
31
- const finished = finishedProp ?? tokens.defaults.finished;
32
- const offset = offsetProp ?? tokens.defaults.offset;
33
- const immediateCheck = immediateCheckProp ?? tokens.defaults.immediateCheck;
34
- const horizontal = !!scrollProps.horizontal;
35
- const loadingText = isUndefined(loadingTextProp) ? locale.loading : loadingTextProp;
36
- const loadingControlled = !isUndefined(loading);
37
- const errorControlled = !isUndefined(error);
38
- const [innerLoading, setInnerLoading] = useState(false);
39
- const [innerError, setInnerError] = useState(false);
40
- const mergedLoading = loadingControlled ? !!loading : innerLoading;
41
- const mergedError = errorControlled ? !!error : innerError;
42
- const loadingRef = useRef(false);
43
- const mergedLoadingRef = useRef(mergedLoading);
44
- const mergedErrorRef = useRef(mergedError);
45
- const containerMainSizeRef = useRef(0);
46
- const contentMainSizeRef = useRef(0);
47
- useEffect(() => {
48
- mergedLoadingRef.current = mergedLoading;
49
- mergedErrorRef.current = mergedError;
50
- }, [mergedLoading, mergedError]);
51
- const triggerLoad = useCallback(async isRetry => {
52
- if (!onLoad || finished) return;
53
- if (loadingRef.current || mergedLoadingRef.current) return;
54
- if (mergedErrorRef.current && !isRetry) return;
55
- loadingRef.current = true;
56
- if (!loadingControlled) setInnerLoading(true);
57
- if (!errorControlled) setInnerError(false);
58
- try {
59
- await Promise.resolve(onLoad(isRetry));
60
- } catch {
61
- if (!errorControlled) setInnerError(true);
62
- } finally {
63
- loadingRef.current = false;
64
- if (!loadingControlled) setInnerLoading(false);
65
- }
66
- }, [errorControlled, finished, loadingControlled, onLoad]);
67
- const check = useCallback(() => {
68
- if (mergedLoadingRef.current || mergedErrorRef.current) return;
69
- if (!containerMainSizeRef.current) return;
70
- if (contentMainSizeRef.current <= containerMainSizeRef.current && !finished) {
71
- triggerLoad(false);
72
- }
73
- }, [finished, triggerLoad]);
74
- useImperativeHandle(ref, () => ({
75
- check
76
- }), [check]);
77
- const handleScroll = useCallback(event => {
78
- onScroll?.(event);
79
- const {
80
- layoutMeasurement,
81
- contentOffset,
82
- contentSize
83
- } = event.nativeEvent;
84
- const distance = horizontal ? contentSize.width - (layoutMeasurement.width + contentOffset.x) : contentSize.height - (layoutMeasurement.height + contentOffset.y);
85
- if (distance <= offset) triggerLoad(false);
86
- }, [horizontal, offset, onScroll, triggerLoad]);
87
- const handleContentSizeChange = useCallback((width, height) => {
88
- onContentSizeChange?.(width, height);
89
- contentMainSizeRef.current = horizontal ? width : height;
90
- if (immediateCheck) check();
91
- }, [check, horizontal, immediateCheck, onContentSizeChange]);
92
- const handleLayout = useCallback(event => {
93
- onLayout?.(event);
94
- const {
95
- layout
96
- } = event.nativeEvent;
97
- containerMainSizeRef.current = horizontal ? layout.width : layout.height;
98
- if (immediateCheck) check();
99
- }, [check, horizontal, immediateCheck, onLayout]);
100
- const retry = () => triggerLoad(true);
101
- return /*#__PURE__*/React.createElement(ScrollComponent, _extends({}, scrollProps, {
102
- onScroll: handleScroll,
103
- scrollEventThrottle: scrollEventThrottleProp ?? tokens.defaults.scrollEventThrottle,
104
- contentContainerStyle: contentContainerStyle,
105
- onContentSizeChange: handleContentSizeChange,
106
- onLayout: handleLayout
107
- }), children, /*#__PURE__*/React.createElement(View, {
108
- style: [tokens.layout.footer, {
109
- paddingVertical: tokens.spacing.footerPaddingVertical
110
- }],
111
- testID: "rv-list-footer"
112
- }, mergedLoading ? isText(loadingText) ? /*#__PURE__*/React.createElement(Loading, {
113
- size: tokens.sizing.loadingIndicator,
114
- testID: "rv-list-loading"
115
- }, loadingText) : /*#__PURE__*/React.createElement(View, {
116
- style: tokens.layout.loadingInline,
117
- testID: "rv-list-loading"
118
- }, /*#__PURE__*/React.createElement(Loading, {
119
- size: tokens.sizing.loadingIndicator
120
- }), loadingText && /*#__PURE__*/React.createElement(View, {
121
- style: {
122
- marginLeft: tokens.spacing.inlineGap
123
- }
124
- }, loadingText)) : null, mergedError ? isFunction(errorText) ? errorText(retry) : isRenderable(errorText) ? isText(errorText) ? /*#__PURE__*/React.createElement(Text, {
125
- testID: "rv-list-error",
126
- onPress: retry,
127
- accessibilityRole: "button",
128
- style: {
129
- color: tokens.colors.errorText
130
- }
131
- }, errorText) : /*#__PURE__*/React.createElement(Pressable, {
132
- testID: "rv-list-error",
133
- onPress: retry,
134
- accessibilityRole: "button"
135
- }, errorText) : null : null, finished && !mergedLoading && !mergedError && isRenderable(finishedText) ? isText(finishedText) ? /*#__PURE__*/React.createElement(Text, {
136
- testID: "rv-list-finished",
137
- style: {
138
- color: tokens.colors.finishedText
139
- }
140
- }, finishedText) : /*#__PURE__*/React.createElement(View, {
141
- testID: "rv-list-finished"
142
- }, finishedText) : null));
143
- });
144
- List.displayName = 'List';
145
- export default List;
@@ -1,2 +0,0 @@
1
- import List from './List';
2
- export default List;
@@ -1,32 +0,0 @@
1
- import { createComponentTokensHook } from '../../design-system';
2
- export const createListTokens = foundations => {
3
- return {
4
- defaults: {
5
- finished: false,
6
- offset: 300,
7
- immediateCheck: true,
8
- scrollEventThrottle: 16
9
- },
10
- layout: {
11
- footer: {
12
- alignItems: 'center'
13
- },
14
- loadingInline: {
15
- flexDirection: 'row',
16
- alignItems: 'center'
17
- }
18
- },
19
- colors: {
20
- errorText: '#ff5b05',
21
- finishedText: '#999999'
22
- },
23
- sizing: {
24
- loadingIndicator: 16
25
- },
26
- spacing: {
27
- footerPaddingVertical: foundations.spacing.lg,
28
- inlineGap: foundations.spacing.sm
29
- }
30
- };
31
- };
32
- export const useListTokens = createComponentTokensHook('list', createListTokens);
@@ -1,9 +0,0 @@
1
- export const notifyDefaults = {
2
- type: 'primary',
3
- position: 'top',
4
- duration: 3000,
5
- closeOnClick: false,
6
- animationDuration: 220,
7
- safeAreaInsetTop: true,
8
- safeAreaInsetBottom: true
9
- };