react-native-system-ui 0.0.5 → 0.0.6

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 (371) hide show
  1. package/dist/cjs/components/action-sheet/ActionSheet.js +28 -22
  2. package/dist/cjs/components/area/Area.js +72 -6
  3. package/dist/cjs/components/area/tokens.js +11 -0
  4. package/dist/cjs/components/avatar/Avatar.js +42 -10
  5. package/dist/cjs/components/badge/Badge.js +10 -10
  6. package/dist/cjs/components/badge/tokens.js +4 -0
  7. package/dist/cjs/components/button/Button.js +16 -65
  8. package/dist/cjs/components/button/ButtonContext.js +7 -10
  9. package/dist/cjs/components/button/ButtonGroup.js +13 -15
  10. package/dist/cjs/components/button/tokens.js +1 -5
  11. package/dist/cjs/components/calendar/Calendar.js +23 -12
  12. package/dist/cjs/components/cascader/Cascader.js +18 -13
  13. package/dist/cjs/components/cell/Cell.js +3 -3
  14. package/dist/cjs/components/cell/CellGroup.js +26 -21
  15. package/dist/cjs/components/checkbox/Checkbox.js +5 -4
  16. package/dist/cjs/components/checkbox/CheckboxContext.js +7 -10
  17. package/dist/cjs/components/checkbox/CheckboxGroup.js +24 -21
  18. package/dist/cjs/components/circle/Circle.js +6 -6
  19. package/dist/cjs/components/collapse/Collapse.js +10 -10
  20. package/dist/cjs/components/config-provider/locale/en-US.js +66 -4
  21. package/dist/cjs/components/config-provider/locale/zh-CN.js +74 -2
  22. package/dist/cjs/components/config-provider/tokens.js +11 -0
  23. package/dist/cjs/components/count-down/CountDown.js +6 -6
  24. package/dist/cjs/components/datetime-picker/DatetimePicker.js +6 -6
  25. package/dist/cjs/components/datetime-picker/tokens.js +11 -0
  26. package/dist/cjs/components/dialog/Dialog.js +39 -34
  27. package/dist/cjs/components/dialog/tokens.js +1 -4
  28. package/dist/cjs/components/divider/Divider.js +36 -1
  29. package/dist/cjs/components/field/Field.js +303 -201
  30. package/dist/cjs/components/flex/Flex.js +7 -3
  31. package/dist/cjs/components/flex/FlexContext.js +7 -14
  32. package/dist/cjs/components/form/Form.js +112 -122
  33. package/dist/cjs/components/form/FormContext.js +7 -10
  34. package/dist/cjs/components/form/FormItem.js +30 -4
  35. package/dist/cjs/components/form/FormList.js +16 -3
  36. package/dist/cjs/components/form/tokens.js +11 -0
  37. package/dist/cjs/components/form/utils.js +2 -1
  38. package/dist/cjs/components/grid/Grid.js +45 -31
  39. package/dist/cjs/components/grid/GridContext.js +7 -10
  40. package/dist/cjs/components/grid/GridItem.js +22 -22
  41. package/dist/cjs/components/image/Image.js +17 -13
  42. package/dist/cjs/components/image-preview/ImagePreview.js +43 -41
  43. package/dist/cjs/components/index.js +43 -141
  44. package/dist/cjs/components/input/Input.js +19 -5
  45. package/dist/cjs/components/loading/Loading.js +10 -139
  46. package/dist/cjs/components/loading/tokens.js +0 -24
  47. package/dist/cjs/components/notice-bar/NoticeBar.js +45 -41
  48. package/dist/cjs/components/notify/Notify.js +63 -22
  49. package/dist/cjs/components/notify/imperative.js +2 -2
  50. package/dist/cjs/components/notify/tokens.js +11 -1
  51. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +6 -6
  52. package/dist/cjs/components/overlay/Overlay.js +70 -77
  53. package/dist/cjs/components/overlay/index.js +13 -27
  54. package/dist/cjs/components/overlay/tokens.js +4 -31
  55. package/dist/cjs/components/password-input/PasswordInput.js +2 -41
  56. package/dist/cjs/components/password-input/tokens.js +53 -0
  57. package/dist/cjs/components/picker/Picker.js +618 -38
  58. package/dist/cjs/components/popup/Popup.js +60 -47
  59. package/dist/cjs/components/portal/Portal.js +39 -31
  60. package/dist/cjs/components/portal/PortalHost.js +258 -213
  61. package/dist/cjs/components/portal/tokens.js +11 -0
  62. package/dist/cjs/components/progress/Progress.js +77 -36
  63. package/dist/cjs/components/progress/index.js +6 -0
  64. package/dist/cjs/components/radio/Radio.js +35 -12
  65. package/dist/cjs/components/radio/RadioContext.js +7 -10
  66. package/dist/cjs/components/radio/RadioGroup.js +23 -20
  67. package/dist/cjs/components/safe-area-view/tokens.js +11 -0
  68. package/dist/cjs/components/search/Search.js +16 -16
  69. package/dist/cjs/components/selector/Selector.js +6 -6
  70. package/dist/cjs/components/share-sheet/ShareSheet.js +50 -46
  71. package/dist/cjs/components/sidebar/Sidebar.js +27 -22
  72. package/dist/cjs/components/sidebar/SidebarItem.js +27 -22
  73. package/dist/cjs/components/skeleton/Skeleton.js +34 -21
  74. package/dist/cjs/components/slider/Slider.js +135 -78
  75. package/dist/cjs/components/stepper/Stepper.js +12 -10
  76. package/dist/cjs/components/swiper/Swiper.js +247 -710
  77. package/dist/cjs/components/swiper/SwiperItem.js +5 -33
  78. package/dist/cjs/components/swiper/tokens.js +11 -0
  79. package/dist/cjs/components/switch/Switch.js +46 -98
  80. package/dist/cjs/components/switch/tokens.js +1 -55
  81. package/dist/cjs/components/tabbar/Tabbar.js +26 -22
  82. package/dist/cjs/components/tabbar/TabbarItem.js +23 -22
  83. package/dist/cjs/components/tabbar/tokens.js +0 -2
  84. package/dist/cjs/components/tabs/Tabs.js +268 -94
  85. package/dist/cjs/components/tabs/index.js +4 -5
  86. package/dist/cjs/components/toast/Toast.js +72 -27
  87. package/dist/cjs/components/toast/imperative.js +2 -2
  88. package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -2
  89. package/dist/cjs/hooks/index.js +12 -12
  90. package/dist/cjs/hooks/overlay/index.js +27 -0
  91. package/dist/cjs/hooks/useHairline.js +0 -4
  92. package/dist/cjs/platform/scrollLock.js +1 -1
  93. package/dist/cjs/utils/compare.js +26 -0
  94. package/dist/cjs/utils/index.js +11 -0
  95. package/dist/es/components/action-sheet/ActionSheet.js +29 -23
  96. package/dist/es/components/area/Area.js +73 -7
  97. package/dist/es/components/area/tokens.js +5 -0
  98. package/dist/es/components/avatar/Avatar.js +42 -10
  99. package/dist/es/components/badge/Badge.js +11 -11
  100. package/dist/es/components/badge/tokens.js +4 -0
  101. package/dist/es/components/button/Button.js +17 -65
  102. package/dist/es/components/button/ButtonContext.js +1 -2
  103. package/dist/es/components/button/ButtonGroup.js +10 -12
  104. package/dist/es/components/button/tokens.js +1 -5
  105. package/dist/es/components/calendar/Calendar.js +24 -13
  106. package/dist/es/components/cascader/Cascader.js +16 -11
  107. package/dist/es/components/cell/Cell.js +4 -4
  108. package/dist/es/components/cell/CellGroup.js +25 -20
  109. package/dist/es/components/checkbox/Checkbox.js +5 -4
  110. package/dist/es/components/checkbox/CheckboxContext.js +1 -2
  111. package/dist/es/components/checkbox/CheckboxGroup.js +24 -21
  112. package/dist/es/components/circle/Circle.js +7 -7
  113. package/dist/es/components/collapse/Collapse.js +11 -11
  114. package/dist/es/components/config-provider/locale/en-US.js +66 -4
  115. package/dist/es/components/config-provider/locale/zh-CN.js +74 -2
  116. package/dist/es/components/config-provider/tokens.js +5 -0
  117. package/dist/es/components/count-down/CountDown.js +7 -7
  118. package/dist/es/components/datetime-picker/DatetimePicker.js +7 -7
  119. package/dist/es/components/datetime-picker/tokens.js +5 -0
  120. package/dist/es/components/dialog/Dialog.js +40 -35
  121. package/dist/es/components/dialog/tokens.js +1 -4
  122. package/dist/es/components/divider/Divider.js +36 -1
  123. package/dist/es/components/field/Field.js +304 -202
  124. package/dist/es/components/flex/Flex.js +5 -1
  125. package/dist/es/components/flex/FlexContext.js +1 -6
  126. package/dist/es/components/form/Form.js +89 -99
  127. package/dist/es/components/form/FormContext.js +1 -2
  128. package/dist/es/components/form/FormItem.js +32 -6
  129. package/dist/es/components/form/FormList.js +18 -5
  130. package/dist/es/components/form/tokens.js +5 -0
  131. package/dist/es/components/form/utils.js +1 -0
  132. package/dist/es/components/grid/Grid.js +43 -29
  133. package/dist/es/components/grid/GridContext.js +1 -2
  134. package/dist/es/components/grid/GridItem.js +24 -24
  135. package/dist/es/components/image/Image.js +18 -14
  136. package/dist/es/components/image-preview/ImagePreview.js +44 -42
  137. package/dist/es/components/index.js +2 -17
  138. package/dist/es/components/input/Input.js +20 -6
  139. package/dist/es/components/loading/Loading.js +10 -139
  140. package/dist/es/components/loading/tokens.js +0 -24
  141. package/dist/es/components/notice-bar/NoticeBar.js +46 -42
  142. package/dist/es/components/notify/Notify.js +63 -22
  143. package/dist/es/components/notify/imperative.js +2 -2
  144. package/dist/es/components/notify/tokens.js +5 -1
  145. package/dist/es/components/number-keyboard/NumberKeyboard.js +7 -7
  146. package/dist/es/components/overlay/Overlay.js +58 -75
  147. package/dist/es/components/overlay/index.js +3 -4
  148. package/dist/es/components/overlay/tokens.js +3 -29
  149. package/dist/es/components/password-input/PasswordInput.js +1 -40
  150. package/dist/es/components/password-input/tokens.js +41 -0
  151. package/dist/es/components/picker/Picker.js +610 -34
  152. package/dist/es/components/popup/Popup.js +62 -49
  153. package/dist/es/components/portal/Portal.js +37 -31
  154. package/dist/es/components/portal/PortalHost.js +257 -211
  155. package/dist/es/components/portal/tokens.js +5 -0
  156. package/dist/es/components/progress/Progress.js +76 -36
  157. package/dist/es/components/progress/index.js +2 -1
  158. package/dist/es/components/radio/Radio.js +37 -14
  159. package/dist/es/components/radio/RadioContext.js +1 -2
  160. package/dist/es/components/radio/RadioGroup.js +23 -20
  161. package/dist/es/components/safe-area-view/tokens.js +5 -0
  162. package/dist/es/components/search/Search.js +17 -17
  163. package/dist/es/components/selector/Selector.js +7 -7
  164. package/dist/es/components/share-sheet/ShareSheet.js +51 -47
  165. package/dist/es/components/sidebar/Sidebar.js +26 -21
  166. package/dist/es/components/sidebar/SidebarItem.js +26 -22
  167. package/dist/es/components/skeleton/Skeleton.js +35 -22
  168. package/dist/es/components/slider/Slider.js +132 -75
  169. package/dist/es/components/stepper/Stepper.js +13 -11
  170. package/dist/es/components/swiper/Swiper.js +248 -711
  171. package/dist/es/components/swiper/SwiperItem.js +1 -21
  172. package/dist/es/components/swiper/tokens.js +5 -0
  173. package/dist/es/components/switch/Switch.js +49 -101
  174. package/dist/es/components/switch/tokens.js +1 -49
  175. package/dist/es/components/tabbar/Tabbar.js +27 -23
  176. package/dist/es/components/tabbar/TabbarItem.js +22 -22
  177. package/dist/es/components/tabbar/tokens.js +0 -2
  178. package/dist/es/components/tabs/Tabs.js +264 -90
  179. package/dist/es/components/tabs/index.js +1 -2
  180. package/dist/es/components/toast/Toast.js +72 -28
  181. package/dist/es/components/toast/imperative.js +2 -2
  182. package/dist/es/hooks/gesture/useGestureScroll.js +1 -2
  183. package/dist/es/hooks/index.js +1 -1
  184. package/dist/es/hooks/overlay/index.js +3 -0
  185. package/dist/es/hooks/useHairline.js +0 -4
  186. package/dist/es/platform/scrollLock.js +1 -1
  187. package/dist/es/utils/compare.js +18 -0
  188. package/dist/es/utils/index.js +1 -1
  189. package/dist/types/components/area/tokens.d.ts +3 -0
  190. package/dist/types/components/avatar/Avatar.d.ts +4 -2
  191. package/dist/types/components/button/ButtonContext.d.ts +2 -16
  192. package/dist/types/components/button/ButtonGroup.d.ts +14 -1
  193. package/dist/types/components/button/index.d.ts +1 -1
  194. package/dist/types/components/checkbox/CheckboxContext.d.ts +2 -16
  195. package/dist/types/components/checkbox/CheckboxGroup.d.ts +15 -1
  196. package/dist/types/components/collapse/Collapse.d.ts +0 -1
  197. package/dist/types/components/config-provider/LocaleContext.d.ts +2 -74
  198. package/dist/types/components/config-provider/tokens.d.ts +3 -0
  199. package/dist/types/components/config-provider/useLocale.d.ts +1 -74
  200. package/dist/types/components/datetime-picker/tokens.d.ts +3 -0
  201. package/dist/types/components/flex/Flex.d.ts +6 -0
  202. package/dist/types/components/flex/FlexContext.d.ts +2 -8
  203. package/dist/types/components/form/Form.d.ts +15 -1
  204. package/dist/types/components/form/FormContext.d.ts +2 -17
  205. package/dist/types/components/form/tokens.d.ts +3 -0
  206. package/dist/types/components/form/utils.d.ts +1 -0
  207. package/dist/types/components/grid/Grid.d.ts +16 -1
  208. package/dist/types/components/grid/GridContext.d.ts +2 -17
  209. package/dist/types/components/index.d.ts +3 -33
  210. package/dist/types/components/loading/index.d.ts +1 -1
  211. package/dist/types/components/notify/Notify.d.ts +1 -0
  212. package/dist/types/components/overlay/Overlay.d.ts +6 -1
  213. package/dist/types/components/overlay/index.d.ts +2 -3
  214. package/dist/types/components/overlay/tokens.d.ts +2 -3
  215. package/dist/types/components/password-input/PasswordInput.d.ts +0 -39
  216. package/dist/types/components/password-input/tokens.d.ts +40 -0
  217. package/dist/types/components/picker/Picker.d.ts +18 -2
  218. package/dist/types/components/picker/index.d.ts +1 -1
  219. package/dist/types/components/portal/Portal.d.ts +4 -6
  220. package/dist/types/components/portal/PortalHost.d.ts +1 -15
  221. package/dist/types/components/portal/tokens.d.ts +3 -0
  222. package/dist/types/components/progress/Progress.d.ts +4 -0
  223. package/dist/types/components/progress/index.d.ts +2 -1
  224. package/dist/types/components/radio/RadioContext.d.ts +2 -13
  225. package/dist/types/components/radio/RadioGroup.d.ts +12 -1
  226. package/dist/types/components/safe-area-view/tokens.d.ts +3 -0
  227. package/dist/types/components/swiper/Swiper.d.ts +4 -2
  228. package/dist/types/components/swiper/SwiperItem.d.ts +1 -5
  229. package/dist/types/components/swiper/tokens.d.ts +3 -0
  230. package/dist/types/components/tabs/Tabs.d.ts +8 -4
  231. package/dist/types/components/tabs/index.d.ts +3 -1
  232. package/dist/types/components/toast/Toast.d.ts +1 -4
  233. package/dist/types/hooks/aria/useAriaListBox.d.ts +0 -6
  234. package/dist/types/hooks/aria/useAriaOverlay.d.ts +0 -10
  235. package/dist/types/hooks/aria/useAriaPress.d.ts +0 -20
  236. package/dist/types/hooks/aria/useAriaToggle.d.ts +0 -3
  237. package/dist/types/hooks/index.d.ts +1 -1
  238. package/dist/types/hooks/overlay/index.d.ts +2 -0
  239. package/dist/types/hooks/useHairline.d.ts +0 -21
  240. package/dist/types/utils/compare.d.ts +2 -0
  241. package/dist/types/utils/index.d.ts +1 -0
  242. package/package.json +10 -48
  243. package/dist/cjs/components/area/utils.js +0 -74
  244. package/dist/cjs/components/cascader/utils.js +0 -20
  245. package/dist/cjs/components/config-provider/locale/base.js +0 -80
  246. package/dist/cjs/components/dropdown-menu/DropdownItem.js +0 -288
  247. package/dist/cjs/components/dropdown-menu/DropdownMenu.js +0 -340
  248. package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +0 -21
  249. package/dist/cjs/components/dropdown-menu/index.js +0 -25
  250. package/dist/cjs/components/dropdown-menu/tokens.js +0 -67
  251. package/dist/cjs/components/field/utils.js +0 -24
  252. package/dist/cjs/components/index-bar/IndexAnchor.js +0 -74
  253. package/dist/cjs/components/index-bar/IndexBar.js +0 -436
  254. package/dist/cjs/components/index-bar/index.js +0 -25
  255. package/dist/cjs/components/index-bar/tokens.js +0 -45
  256. package/dist/cjs/components/list/List.js +0 -165
  257. package/dist/cjs/components/list/index.js +0 -9
  258. package/dist/cjs/components/list/tokens.js +0 -39
  259. package/dist/cjs/components/notify/defaults.js +0 -15
  260. package/dist/cjs/components/pagination/Pagination.js +0 -160
  261. package/dist/cjs/components/pagination/index.js +0 -22
  262. package/dist/cjs/components/pagination/tokens.js +0 -103
  263. package/dist/cjs/components/picker/WheelPicker.js +0 -492
  264. package/dist/cjs/components/picker/utils.js +0 -138
  265. package/dist/cjs/components/pull-refresh/PullRefresh.js +0 -378
  266. package/dist/cjs/components/pull-refresh/index.js +0 -16
  267. package/dist/cjs/components/pull-refresh/tokens.js +0 -22
  268. package/dist/cjs/components/rate/Rate.js +0 -269
  269. package/dist/cjs/components/rate/index.js +0 -15
  270. package/dist/cjs/components/rate/tokens.js +0 -60
  271. package/dist/cjs/components/slider/utils.js +0 -60
  272. package/dist/cjs/components/swiper/useSwiperWeb.js +0 -209
  273. package/dist/cjs/components/swiper/utils.js +0 -49
  274. package/dist/cjs/components/tabs/TabPane.js +0 -9
  275. package/dist/cjs/components/tabs/useTabsAnimation.js +0 -74
  276. package/dist/cjs/components/tabs/useTabsScroll.js +0 -133
  277. package/dist/cjs/components/tabs/utils.js +0 -34
  278. package/dist/cjs/components/types.js +0 -1
  279. package/dist/cjs/components/uploader/Uploader.js +0 -557
  280. package/dist/cjs/components/uploader/index.js +0 -22
  281. package/dist/cjs/components/uploader/tokens.js +0 -58
  282. package/dist/cjs/components/uploader/utils.js +0 -72
  283. package/dist/cjs/hooks/usePresenceAnimation.js +0 -70
  284. package/dist/es/components/area/utils.js +0 -67
  285. package/dist/es/components/cascader/utils.js +0 -13
  286. package/dist/es/components/config-provider/locale/base.js +0 -74
  287. package/dist/es/components/dropdown-menu/DropdownItem.js +0 -269
  288. package/dist/es/components/dropdown-menu/DropdownMenu.js +0 -320
  289. package/dist/es/components/dropdown-menu/DropdownMenuContext.js +0 -7
  290. package/dist/es/components/dropdown-menu/index.js +0 -7
  291. package/dist/es/components/dropdown-menu/tokens.js +0 -61
  292. package/dist/es/components/field/utils.js +0 -17
  293. package/dist/es/components/index-bar/IndexAnchor.js +0 -55
  294. package/dist/es/components/index-bar/IndexBar.js +0 -417
  295. package/dist/es/components/index-bar/index.js +0 -7
  296. package/dist/es/components/index-bar/tokens.js +0 -39
  297. package/dist/es/components/list/List.js +0 -145
  298. package/dist/es/components/list/index.js +0 -2
  299. package/dist/es/components/list/tokens.js +0 -32
  300. package/dist/es/components/notify/defaults.js +0 -9
  301. package/dist/es/components/pagination/Pagination.js +0 -141
  302. package/dist/es/components/pagination/index.js +0 -4
  303. package/dist/es/components/pagination/tokens.js +0 -91
  304. package/dist/es/components/picker/WheelPicker.js +0 -473
  305. package/dist/es/components/picker/utils.js +0 -127
  306. package/dist/es/components/pull-refresh/PullRefresh.js +0 -359
  307. package/dist/es/components/pull-refresh/index.js +0 -3
  308. package/dist/es/components/pull-refresh/tokens.js +0 -16
  309. package/dist/es/components/rate/Rate.js +0 -250
  310. package/dist/es/components/rate/index.js +0 -3
  311. package/dist/es/components/rate/tokens.js +0 -53
  312. package/dist/es/components/slider/utils.js +0 -49
  313. package/dist/es/components/swiper/useSwiperWeb.js +0 -190
  314. package/dist/es/components/swiper/utils.js +0 -37
  315. package/dist/es/components/tabs/TabPane.js +0 -3
  316. package/dist/es/components/tabs/useTabsAnimation.js +0 -55
  317. package/dist/es/components/tabs/useTabsScroll.js +0 -114
  318. package/dist/es/components/tabs/utils.js +0 -19
  319. package/dist/es/components/types.js +0 -1
  320. package/dist/es/components/uploader/Uploader.js +0 -537
  321. package/dist/es/components/uploader/index.js +0 -4
  322. package/dist/es/components/uploader/tokens.js +0 -52
  323. package/dist/es/components/uploader/utils.js +0 -60
  324. package/dist/es/hooks/usePresenceAnimation.js +0 -51
  325. package/dist/types/components/area/utils.d.ts +0 -2
  326. package/dist/types/components/cascader/utils.d.ts +0 -6
  327. package/dist/types/components/config-provider/locale/base.d.ts +0 -74
  328. package/dist/types/components/dropdown-menu/DropdownItem.d.ts +0 -4
  329. package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +0 -4
  330. package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +0 -17
  331. package/dist/types/components/dropdown-menu/index.d.ts +0 -8
  332. package/dist/types/components/dropdown-menu/tokens.d.ts +0 -52
  333. package/dist/types/components/field/utils.d.ts +0 -4
  334. package/dist/types/components/index-bar/IndexAnchor.d.ts +0 -4
  335. package/dist/types/components/index-bar/IndexBar.d.ts +0 -4
  336. package/dist/types/components/index-bar/index.d.ts +0 -9
  337. package/dist/types/components/index-bar/tokens.d.ts +0 -31
  338. package/dist/types/components/list/List.d.ts +0 -4
  339. package/dist/types/components/list/index.d.ts +0 -3
  340. package/dist/types/components/list/tokens.d.ts +0 -4
  341. package/dist/types/components/notify/defaults.d.ts +0 -10
  342. package/dist/types/components/pagination/Pagination.d.ts +0 -5
  343. package/dist/types/components/pagination/index.d.ts +0 -5
  344. package/dist/types/components/pagination/tokens.d.ts +0 -2
  345. package/dist/types/components/picker/WheelPicker.d.ts +0 -21
  346. package/dist/types/components/picker/utils.d.ts +0 -17
  347. package/dist/types/components/pull-refresh/PullRefresh.d.ts +0 -5
  348. package/dist/types/components/pull-refresh/index.d.ts +0 -4
  349. package/dist/types/components/pull-refresh/tokens.d.ts +0 -10
  350. package/dist/types/components/rate/Rate.d.ts +0 -4
  351. package/dist/types/components/rate/index.d.ts +0 -4
  352. package/dist/types/components/rate/tokens.d.ts +0 -4
  353. package/dist/types/components/slider/utils.d.ts +0 -42
  354. package/dist/types/components/swiper/useSwiperWeb.d.ts +0 -41
  355. package/dist/types/components/swiper/utils.d.ts +0 -17
  356. package/dist/types/components/tabs/TabPane.d.ts +0 -4
  357. package/dist/types/components/tabs/useTabsAnimation.d.ts +0 -30
  358. package/dist/types/components/tabs/useTabsScroll.d.ts +0 -23
  359. package/dist/types/components/tabs/utils.d.ts +0 -5
  360. package/dist/types/components/types.d.ts +0 -59
  361. package/dist/types/components/uploader/Uploader.d.ts +0 -4
  362. package/dist/types/components/uploader/index.d.ts +0 -5
  363. package/dist/types/components/uploader/tokens.d.ts +0 -42
  364. package/dist/types/components/uploader/utils.d.ts +0 -11
  365. package/dist/types/hooks/usePresenceAnimation.d.ts +0 -20
  366. /package/dist/cjs/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  367. /package/dist/cjs/{components → hooks}/overlay/useOverlayStack.js +0 -0
  368. /package/dist/es/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  369. /package/dist/es/{components → hooks}/overlay/useOverlayStack.js +0 -0
  370. /package/dist/types/{components → hooks}/overlay/OverlayStackStore.d.ts +0 -0
  371. /package/dist/types/{components → hooks}/overlay/useOverlayStack.d.ts +0 -0
@@ -1,5 +1,5 @@
1
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, useState } from 'react';
2
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
3
3
  import { ActivityIndicator, Image as RNImage, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
4
4
  import { SvgUri } from 'react-native-svg';
5
5
  import { isNumber, isString, isText } from '../../utils';
@@ -105,11 +105,11 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
105
105
  const {
106
106
  container: containerLayoutStyle,
107
107
  image: imageStyleWithoutLayout
108
- } = splitImageStyle(style);
109
- const actualSource = source ? source : src ? {
108
+ } = useMemo(() => splitImageStyle(style), [style]);
109
+ const actualSource = useMemo(() => source ? source : src ? {
110
110
  uri: src
111
- } : undefined;
112
- const sourceKey = (() => {
111
+ } : undefined, [source, src]);
112
+ const sourceKey = useMemo(() => {
113
113
  if (source) {
114
114
  if (typeof source === 'number') return `res:${source}`;
115
115
  const uri = resolveSourceUri(source);
@@ -118,7 +118,7 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
118
118
  }
119
119
  if (src) return `src:${src}`;
120
120
  return 'none';
121
- })();
121
+ }, [source, src]);
122
122
  const resolvedAccessibilityLabel = alt ?? accessibilityLabel ?? ariaLabel;
123
123
  const [status, setStatus] = useState(() => actualSource ? 'loading' : 'idle');
124
124
  useEffect(() => {
@@ -144,11 +144,11 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
144
144
  }
145
145
  });
146
146
  }, [handleError]);
147
- const uri = resolveSourceUri(actualSource);
148
- const normalizedUri = isString(uri) ? uri.toLowerCase() : undefined;
149
- const isSvg = !!normalizedUri && (normalizedUri.endsWith('.svg') || normalizedUri.includes('.svg?') || normalizedUri.includes('/svg?'));
150
- const resolvedLoadingSize = isNumber(loadingSize) ? loadingSize : tokens.defaults.loadingIndicatorBaseSize;
151
- const resolvedErrorIconSize = iconSizeProp ?? tokens.defaults.iconSize;
147
+ const uri = useMemo(() => resolveSourceUri(actualSource), [actualSource]);
148
+ const normalizedUri = useMemo(() => isString(uri) ? uri.toLowerCase() : undefined, [uri]);
149
+ const isSvg = useMemo(() => !!normalizedUri && (normalizedUri.endsWith('.svg') || normalizedUri.includes('.svg?') || normalizedUri.includes('/svg?')), [normalizedUri]);
150
+ const resolvedLoadingSize = useMemo(() => isNumber(loadingSize) ? loadingSize : tokens.defaults.loadingIndicatorBaseSize, [loadingSize, tokens.defaults.loadingIndicatorBaseSize]);
151
+ const resolvedErrorIconSize = useMemo(() => iconSizeProp ?? tokens.defaults.iconSize, [iconSizeProp, tokens.defaults.iconSize]);
152
152
  const containerRole = onPress ? 'button' : undefined;
153
153
  const pressableProps = onPress ? {
154
154
  onPress
@@ -170,7 +170,7 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
170
170
  }
171
171
  }, node) : node;
172
172
  };
173
- const containerStyles = [tokens.layout.container, {
173
+ const containerStyles = useMemo(() => [tokens.layout.container, {
174
174
  width: width,
175
175
  height: height,
176
176
  backgroundColor: tokens.colors.background
@@ -178,8 +178,12 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
178
178
  borderRadius: tokens.defaults.roundRadius
179
179
  } : isNumber(radius) ? {
180
180
  borderRadius: radius
181
- } : undefined, containerStyle, containerLayoutStyle];
181
+ } : undefined, containerStyle, containerLayoutStyle], [containerLayoutStyle, containerStyle, height, radius, round, tokens.colors.background, tokens.defaults.roundRadius, tokens.layout.container, width]);
182
182
  const imageAccessibilityLabel = !onPress ? resolvedAccessibilityLabel : undefined;
183
+ const webImageStyle = Platform.OS === 'web' ? {
184
+ height: 'revert-layer',
185
+ width: 'revert-layer'
186
+ } : undefined;
183
187
  const imageNode = actualSource ? isSvg && Platform.OS !== 'web' && uri ? /*#__PURE__*/React.createElement(SvgUri, _extends({
184
188
  width: "100%",
185
189
  height: "100%",
@@ -197,7 +201,7 @@ const Image = /*#__PURE__*/React.forwardRef((props, ref) => {
197
201
  accessibilityLabel: imageAccessibilityLabel
198
202
  }, rest, {
199
203
  source: actualSource,
200
- style: [tokens.layout.absoluteFill, imageStyleWithoutLayout],
204
+ style: [tokens.layout.absoluteFill, imageStyleWithoutLayout, webImageStyle],
201
205
  resizeMode: resolveFitMode(fit),
202
206
  onLoad: handleLoad,
203
207
  onError: handleError
@@ -1,5 +1,5 @@
1
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';
2
+ import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
3
3
  import { Image as RNImage, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
4
4
  import Popup from '../popup';
5
5
  import Swiper from '../swiper';
@@ -80,9 +80,9 @@ const ImagePreview = /*#__PURE__*/React.forwardRef((props, ref) => {
80
80
  beforeClose,
81
81
  onClose
82
82
  };
83
- const resolvedImages = images.map(img => isString(img) ? {
83
+ const resolvedImages = useMemo(() => images.map(img => isString(img) ? {
84
84
  uri: img
85
- } : img);
85
+ } : img), [images]);
86
86
  useEffect(() => {
87
87
  setActive(current => clampIndex(current, imagesLen));
88
88
  }, [imagesLen]);
@@ -180,45 +180,48 @@ const ImagePreview = /*#__PURE__*/React.forwardRef((props, ref) => {
180
180
  if (dx * dx + dy * dy >= TAP_MOVE_THRESHOLD_SQ) return;
181
181
  handleImagePress();
182
182
  }, [handleImagePress, resetTap]);
183
- const pressableHandlers = {
184
- onTouchStart: e => {
185
- const {
186
- pageX,
187
- pageY
188
- } = e.nativeEvent;
189
- if (pageX != null && pageY != null) markTapStart(pageX, pageY);
190
- },
191
- onTouchMove: e => {
192
- const {
193
- pageX,
194
- pageY
195
- } = e.nativeEvent;
196
- if (pageX != null && pageY != null) markTapMove(pageX, pageY);
197
- },
198
- onTouchEnd: e => {
199
- const {
200
- pageX,
201
- pageY
202
- } = e.nativeEvent;
203
- if (pageX != null && pageY != null) tryTapEnd(pageX, pageY);
204
- },
205
- onTouchCancel: resetTap
206
- };
207
- if (IS_WEB) {
208
- pressableHandlers.onMouseDown = e => {
209
- const ne = e.nativeEvent;
210
- if (ne?.pageX != null && ne?.pageY != null) markTapStart(ne.pageX, ne.pageY);
211
- };
212
- pressableHandlers.onMouseMove = e => {
213
- const ne = e.nativeEvent;
214
- if (ne?.buttons !== 1) return;
215
- if (ne?.pageX != null && ne?.pageY != null) markTapMove(ne.pageX, ne.pageY);
216
- };
217
- pressableHandlers.onMouseUp = e => {
218
- const ne = e.nativeEvent;
219
- if (ne?.pageX != null && ne?.pageY != null) tryTapEnd(ne.pageX, ne.pageY);
183
+ const pressableHandlers = useMemo(() => {
184
+ const handlers = {
185
+ onTouchStart: e => {
186
+ const {
187
+ pageX,
188
+ pageY
189
+ } = e.nativeEvent;
190
+ if (pageX != null && pageY != null) markTapStart(pageX, pageY);
191
+ },
192
+ onTouchMove: e => {
193
+ const {
194
+ pageX,
195
+ pageY
196
+ } = e.nativeEvent;
197
+ if (pageX != null && pageY != null) markTapMove(pageX, pageY);
198
+ },
199
+ onTouchEnd: e => {
200
+ const {
201
+ pageX,
202
+ pageY
203
+ } = e.nativeEvent;
204
+ if (pageX != null && pageY != null) tryTapEnd(pageX, pageY);
205
+ },
206
+ onTouchCancel: resetTap
220
207
  };
221
- }
208
+ if (IS_WEB) {
209
+ handlers.onMouseDown = e => {
210
+ const ne = e.nativeEvent;
211
+ if (ne?.pageX != null && ne?.pageY != null) markTapStart(ne.pageX, ne.pageY);
212
+ };
213
+ handlers.onMouseMove = e => {
214
+ const ne = e.nativeEvent;
215
+ if (ne?.buttons !== 1) return;
216
+ if (ne?.pageX != null && ne?.pageY != null) markTapMove(ne.pageX, ne.pageY);
217
+ };
218
+ handlers.onMouseUp = e => {
219
+ const ne = e.nativeEvent;
220
+ if (ne?.pageX != null && ne?.pageY != null) tryTapEnd(ne.pageX, ne.pageY);
221
+ };
222
+ }
223
+ return handlers;
224
+ }, [markTapMove, markTapStart, resetTap, tryTapEnd]);
222
225
  const renderIndex = useCallback((current, total) => {
223
226
  if (!showIndex || total === 0) return null;
224
227
  const indexText = `${current + 1} / ${total}`;
@@ -283,7 +286,6 @@ const ImagePreview = /*#__PURE__*/React.forwardRef((props, ref) => {
283
286
  initialSwipe: clampIndex(startPosition, imagesLen),
284
287
  loop: false,
285
288
  autoplay: false,
286
- duration: swipeDuration,
287
289
  touchable: imagesLen > 1,
288
290
  indicator: (total, current) => /*#__PURE__*/React.createElement(React.Fragment, null, renderIndex(current, total), showIndicators && total > 1 && /*#__PURE__*/React.createElement(Swiper.PagIndicator, {
289
291
  total: total,
@@ -49,8 +49,6 @@ export { default as Slider } from './slider';
49
49
  export { useSliderTokens } from './slider/tokens';
50
50
  export { default as Stepper } from './stepper';
51
51
  export { useStepperTokens } from './stepper/tokens';
52
- export { default as Rate } from './rate';
53
- export { useRateTokens } from './rate/tokens';
54
52
  export { default as Selector } from './selector';
55
53
  export { useSelectorTokens } from './selector/tokens';
56
54
  export { default as Search } from './search';
@@ -64,8 +62,7 @@ export { default as Collapse } from './collapse';
64
62
  export { useCollapseTokens } from './collapse/tokens';
65
63
  export { default as Popup } from './popup';
66
64
  export { usePopupTokens } from './popup/tokens';
67
- export { default as Overlay } from './overlay';
68
- export { useOverlayTokens } from './overlay/tokens';
65
+ export { default as Overlay, OverlayProvider } from './overlay';
69
66
  export { default as Dialog } from './dialog';
70
67
  export { useDialogTokens } from './dialog/tokens';
71
68
  export { default as Toast } from './toast';
@@ -92,32 +89,20 @@ export { default as NavBar } from './nav-bar';
92
89
  export { useNavBarTokens } from './nav-bar/tokens';
93
90
  export { default as Sidebar } from './sidebar';
94
91
  export { useSidebarTokens } from './sidebar/tokens';
95
- export { default as IndexBar } from './index-bar';
96
- export { useIndexBarTokens } from './index-bar/tokens';
97
92
  export { default as ActionSheet } from './action-sheet';
98
93
  export { useActionSheetTokens } from './action-sheet/tokens';
99
94
  export { default as ShareSheet } from './share-sheet';
100
95
  export { useShareSheetTokens } from './share-sheet/tokens';
101
- export { default as DropdownMenu } from './dropdown-menu';
102
- export { useDropdownMenuTokens } from './dropdown-menu/tokens';
103
96
  export { default as Area } from './area';
104
- export { default as List } from './list';
105
- export { useListTokens } from './list/tokens';
106
- export { default as PullRefresh } from './pull-refresh';
107
- export { usePullRefreshTokens } from './pull-refresh/tokens';
108
97
  export { default as ImagePreview } from './image-preview';
109
98
  export { useImagePreviewTokens } from './image-preview/tokens';
110
99
  export { default as Swiper } from './swiper';
111
100
  export { SwiperItem } from './swiper';
112
101
  export { SwiperPagIndicator } from './swiper';
113
102
  export { useSwiperPagIndicatorTokens } from './swiper';
114
- export { default as Uploader } from './uploader';
115
- export { useUploaderTokens } from './uploader';
116
103
  export { default as Skeleton } from './skeleton';
117
104
  export { useSkeletonTokens } from './skeleton';
118
105
  export { default as CountDown } from './count-down';
119
106
  export { useCountDownTokens } from './count-down/tokens';
120
107
  export { default as WaterMark } from './water-mark';
121
- export { useWaterMarkTokens } from './water-mark/tokens';
122
- export { default as Pagination } from './pagination';
123
- export { usePaginationTokens } from './pagination/tokens';
108
+ export { useWaterMarkTokens } from './water-mark/tokens';
@@ -1,9 +1,21 @@
1
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, useImperativeHandle, useRef } from 'react';
2
+ import React, { useCallback, useImperativeHandle, useRef, useMemo } from 'react';
3
3
  import { isBoolean, isFiniteNumber } from '../../utils/validate';
4
4
  import Field from '../field';
5
5
  import { useFieldTokens } from '../field/tokens';
6
6
  import { useInputTokens } from './tokens';
7
+ const mapKeyboardType = type => {
8
+ switch (type) {
9
+ case 'number':
10
+ return 'decimal-pad';
11
+ case 'digit':
12
+ return 'number-pad';
13
+ case 'tel':
14
+ return 'phone-pad';
15
+ default:
16
+ return undefined;
17
+ }
18
+ };
7
19
  const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
8
20
  const {
9
21
  type,
@@ -15,6 +27,7 @@ const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
15
27
  onChangeText,
16
28
  showWordLimit,
17
29
  style,
30
+ inputStyle,
18
31
  fieldTokensOverride,
19
32
  tokensOverride,
20
33
  ...rest
@@ -35,12 +48,12 @@ const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
35
48
  }), []);
36
49
  const resolvedInputAlign = align ?? inputAlignProp ?? tokens.defaults.inputAlign;
37
50
  const resolvedClearTrigger = clearTriggerOverride ?? tokens.defaults.clearTrigger;
38
- const resolvedKeyboardType = keyboardTypeProp ?? (type === 'number' ? 'decimal-pad' : undefined);
39
- const fieldStyle = [{
51
+ const resolvedKeyboardType = keyboardTypeProp ?? mapKeyboardType(type);
52
+ const fieldStyle = useMemo(() => [{
40
53
  paddingHorizontal: tokens.spacing.paddingHorizontal,
41
54
  paddingVertical: tokens.spacing.paddingVertical,
42
55
  backgroundColor: tokens.colors.background
43
- }, style];
56
+ }, style], [style, tokens.colors.background, tokens.spacing.paddingHorizontal, tokens.spacing.paddingVertical]);
44
57
  return /*#__PURE__*/React.createElement(Field, _extends({
45
58
  ref: inputRef
46
59
  }, rest, {
@@ -51,6 +64,7 @@ const InputComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
51
64
  inputAlign: resolvedInputAlign,
52
65
  clearTrigger: resolvedClearTrigger,
53
66
  style: fieldStyle,
67
+ inputStyle: inputStyle,
54
68
  showWordLimit: showWordLimit,
55
69
  onChangeText: handleChangeText
56
70
  }));
@@ -67,14 +81,14 @@ const TextArea = /*#__PURE__*/React.forwardRef((props, ref) => {
67
81
  if (!isFiniteNumber(height) || height <= 0) return undefined;
68
82
  return Math.max(1, Math.round(height / lineHeight));
69
83
  }, [lineHeight]);
70
- const resolvedAutoSize = !autoSize || isBoolean(autoSize) ? autoSize : (() => {
84
+ const resolvedAutoSize = useMemo(() => !autoSize || isBoolean(autoSize) ? autoSize : (() => {
71
85
  const minRows = toRows(autoSize.minHeight);
72
86
  const maxRows = toRows(autoSize.maxHeight);
73
87
  return minRows || maxRows ? {
74
88
  minRows,
75
89
  maxRows
76
90
  } : undefined;
77
- })();
91
+ })(), [autoSize, toRows]);
78
92
  return /*#__PURE__*/React.createElement(InputComponent, _extends({
79
93
  ref: ref
80
94
  }, rest, {
@@ -1,8 +1,6 @@
1
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, { useEffect, useRef } from 'react';
3
- import { Animated, Easing, Text, View } from 'react-native';
4
- import { nativeDriverEnabled } from '../../platform';
5
- import { withAlpha } from '../../utils/color';
2
+ import React from 'react';
3
+ import { ActivityIndicator, Text, View } from 'react-native';
6
4
  import { isText } from '../../utils/validate';
7
5
  import { useLoadingTokens } from './tokens';
8
6
  export const Loading = props => {
@@ -12,8 +10,9 @@ export const Loading = props => {
12
10
  size: sizeProp,
13
11
  textSize: textSizeProp,
14
12
  textColor: textColorProp,
15
- type: typeProp,
16
13
  vertical: verticalProp,
14
+ accessibilityLabel,
15
+ ['aria-label']: ariaLabel,
17
16
  style,
18
17
  textStyle,
19
18
  contentStyle,
@@ -25,142 +24,14 @@ export const Loading = props => {
25
24
  const size = sizeProp ?? tokens.defaults.size;
26
25
  const textSize = textSizeProp ?? tokens.defaults.textSize;
27
26
  const textColor = textColorProp ?? tokens.colors.text;
28
- const type = typeProp ?? tokens.defaults.type;
29
27
  const vertical = verticalProp ?? tokens.defaults.vertical;
30
- const spinValue = useRef(new Animated.Value(0)).current;
31
- useEffect(() => {
32
- if (type === 'spinner' || type === 'circular' || type === 'ball') {
33
- spinValue.setValue(0);
34
- const animation = Animated.loop(Animated.timing(spinValue, {
35
- toValue: 1,
36
- duration: 1000,
37
- easing: Easing.linear,
38
- useNativeDriver: nativeDriverEnabled
39
- }));
40
- animation.start();
41
- return () => animation.stop();
42
- }
43
- return undefined;
44
- }, [type]);
45
- const rotateValue = spinValue.interpolate({
46
- inputRange: [0, 1],
47
- outputRange: ['0deg', '360deg']
28
+ const resolvedAccessibilityLabel = ariaLabel ?? accessibilityLabel ?? 'loading';
29
+ const indicator = /*#__PURE__*/React.createElement(ActivityIndicator, {
30
+ testID: "rv-loading-spinner",
31
+ size: size,
32
+ color: color,
33
+ accessibilityLabel: resolvedAccessibilityLabel
48
34
  });
49
- const renderCircular = () => {
50
- const thickness = Math.max(2, Math.min(size / 8, 6));
51
- const trackColor = withAlpha(color, 0.2);
52
- return /*#__PURE__*/React.createElement(Animated.View, {
53
- testID: "rv-loading-circular",
54
- style: {
55
- width: size,
56
- height: size,
57
- transform: [{
58
- rotate: rotateValue
59
- }]
60
- }
61
- }, /*#__PURE__*/React.createElement(View, {
62
- pointerEvents: "none",
63
- style: {
64
- width: size,
65
- height: size,
66
- borderRadius: size / 2,
67
- borderWidth: thickness,
68
- borderColor: trackColor,
69
- borderTopColor: color
70
- }
71
- }));
72
- };
73
- const renderSpinner = () => {
74
- const innerGap = Math.min(size / 2 - 1, Math.max(0, tokens.sizing.spinner.innerGapRatio * size));
75
- const lineWidth = Math.max(1, Math.min(size / 3, size / tokens.defaults.size * tokens.sizing.spinner.lineWidth));
76
- const scaledLength = size / tokens.defaults.size * tokens.sizing.spinner.lineLength;
77
- const maxLength = Math.max(2, size / 2 - innerGap);
78
- const lineLength = Math.max(2, Math.min(maxLength, Math.max(tokens.sizing.spinner.lineLength, scaledLength)));
79
- return /*#__PURE__*/React.createElement(Animated.View, {
80
- testID: "rv-loading-spinner",
81
- style: {
82
- width: size,
83
- height: size,
84
- transform: [{
85
- rotate: rotateValue
86
- }]
87
- }
88
- }, Array.from({
89
- length: tokens.sizing.spinner.itemCount
90
- }, (_, index) => {
91
- const angle = index * 360 / tokens.sizing.spinner.itemCount;
92
- const opacity = 0.2 + index / tokens.sizing.spinner.itemCount * 0.8;
93
- return /*#__PURE__*/React.createElement(View, {
94
- key: index,
95
- pointerEvents: "none",
96
- style: [tokens.layout.spinnerItem, {
97
- transform: [{
98
- rotate: `${angle}deg`
99
- }]
100
- }]
101
- }, /*#__PURE__*/React.createElement(View, {
102
- style: [{
103
- width: lineWidth,
104
- height: lineLength,
105
- borderRadius: lineWidth / 2,
106
- backgroundColor: color,
107
- opacity,
108
- marginTop: size / 2 - lineLength - innerGap
109
- }]
110
- }));
111
- }));
112
- };
113
- const renderBall = () => {
114
- const itemCount = tokens.sizing.ball.itemCount;
115
- const dotSize = Math.max(2, Math.round(size * tokens.sizing.ball.dotSizeRatio));
116
- const gap = Math.max(1, Math.round(size * tokens.sizing.ball.gapRatio));
117
- const totalWidth = dotSize * itemCount + gap * (itemCount - 1);
118
- const pulseWidth = 0.4 / itemCount;
119
- return /*#__PURE__*/React.createElement(View, {
120
- testID: "rv-loading-ball",
121
- style: {
122
- width: totalWidth,
123
- height: size,
124
- alignItems: 'center',
125
- justifyContent: 'center'
126
- }
127
- }, /*#__PURE__*/React.createElement(View, {
128
- style: {
129
- flexDirection: 'row',
130
- alignItems: 'center'
131
- }
132
- }, Array.from({
133
- length: itemCount
134
- }, (_, index) => {
135
- const center = (index + 0.5) / itemCount;
136
- const left = Math.max(0, center - pulseWidth);
137
- const right = Math.min(1, center + pulseWidth);
138
- const scale = spinValue.interpolate({
139
- inputRange: [0, left, center, right, 1],
140
- outputRange: [tokens.sizing.ball.dotScaleMin, tokens.sizing.ball.dotScaleMin, 1, tokens.sizing.ball.dotScaleMin, tokens.sizing.ball.dotScaleMin]
141
- });
142
- const opacity = spinValue.interpolate({
143
- inputRange: [0, left, center, right, 1],
144
- outputRange: [0.4, 0.4, 1, 0.4, 0.4]
145
- });
146
- return /*#__PURE__*/React.createElement(Animated.View, {
147
- key: index,
148
- pointerEvents: "none",
149
- style: {
150
- width: dotSize,
151
- height: dotSize,
152
- borderRadius: dotSize / 2,
153
- backgroundColor: color,
154
- marginRight: index === itemCount - 1 ? 0 : gap,
155
- opacity,
156
- transform: [{
157
- scale
158
- }]
159
- }
160
- });
161
- })));
162
- };
163
- const indicator = type === 'spinner' ? renderSpinner() : type === 'ball' ? renderBall() : renderCircular();
164
35
  const hasChildren = children !== undefined && children !== null && children !== false;
165
36
  const textSpacingStyle = {
166
37
  marginLeft: vertical ? 0 : tokens.spacing.gap,
@@ -1,7 +1,6 @@
1
1
  import { createComponentTokensHook } from '../../design-system';
2
2
  export const createLoadingTokens = foundations => ({
3
3
  defaults: {
4
- type: 'circular',
5
4
  size: 30,
6
5
  textSize: foundations.fontSize.sm,
7
6
  vertical: false
@@ -10,15 +9,6 @@ export const createLoadingTokens = foundations => ({
10
9
  container: {
11
10
  alignItems: 'center'
12
11
  },
13
- spinnerItem: {
14
- position: 'absolute',
15
- top: 0,
16
- right: 0,
17
- bottom: 0,
18
- left: 0,
19
- alignItems: 'center',
20
- justifyContent: 'flex-start'
21
- },
22
12
  text: {
23
13
  includeFontPadding: false,
24
14
  textAlignVertical: 'center'
@@ -28,20 +18,6 @@ export const createLoadingTokens = foundations => ({
28
18
  indicator: foundations.palette.default[400],
29
19
  text: foundations.palette.default[500]
30
20
  },
31
- sizing: {
32
- spinner: {
33
- lineWidth: 2,
34
- lineLength: 8,
35
- itemCount: 12,
36
- innerGapRatio: 0.25
37
- },
38
- ball: {
39
- itemCount: 3,
40
- dotSizeRatio: 0.2,
41
- dotScaleMin: 0.4,
42
- gapRatio: 0.25
43
- }
44
- },
45
21
  spacing: {
46
22
  gap: foundations.spacing.sm
47
23
  }
@@ -1,5 +1,5 @@
1
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, useRef, useState } from 'react';
2
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
3
  import { Animated, Easing, Pressable, StyleSheet, Text, View, Platform } from 'react-native';
4
4
  import { Arrow, Close } from 'react-native-system-icon';
5
5
  import { useAriaPress } from '../../hooks';
@@ -58,15 +58,15 @@ export const NoticeBar = props => {
58
58
  const resolvedSpeed = parseNumber(speed, 60);
59
59
  const resolvedVerticalInterval = Math.max(0, parseNumber(verticalInterval, 3000));
60
60
  const resolvedVerticalDuration = Math.max(0, parseNumber(verticalDuration, 300));
61
- const verticalItems = (() => {
61
+ const verticalItems = useMemo(() => {
62
62
  if (!isVertical) return [];
63
63
  if (items && items.length) return items;
64
64
  const childArray = React.Children.toArray(children);
65
65
  if (childArray.length) return childArray;
66
66
  return text !== undefined ? [text] : [];
67
- })();
67
+ }, [children, isVertical, items, text]);
68
68
  const hasVerticalLoop = isVertical && verticalItems.length > 1;
69
- const verticalTrackItems = hasVerticalLoop ? [...verticalItems, verticalItems[0]] : verticalItems;
69
+ const verticalTrackItems = useMemo(() => hasVerticalLoop ? [...verticalItems, verticalItems[0]] : verticalItems, [hasVerticalLoop, verticalItems]);
70
70
  const verticalTranslateY = useRef(new Animated.Value(0)).current;
71
71
  const [itemHeight, setItemHeight] = useState(0);
72
72
  const setContentWidthSafe = useCallback(next => {
@@ -94,7 +94,7 @@ export const NoticeBar = props => {
94
94
  accessibilityRole: 'button'
95
95
  } : undefined
96
96
  });
97
- const rightNode = mode === 'closeable' ? /*#__PURE__*/React.createElement(Pressable, _extends({
97
+ const rightNode = useMemo(() => mode === 'closeable' ? /*#__PURE__*/React.createElement(Pressable, _extends({
98
98
  hitSlop: 8
99
99
  }, closePress.interactionProps), /*#__PURE__*/React.createElement(Close, {
100
100
  size: 16,
@@ -104,7 +104,7 @@ export const NoticeBar = props => {
104
104
  size: 16,
105
105
  fill: resolvedColor,
106
106
  color: resolvedColor
107
- }) : rightIcon || null;
107
+ }) : rightIcon || null, [closePress.interactionProps, mode, resolvedColor, rightIcon]);
108
108
  const hasLeft = isRenderable(leftIcon);
109
109
  const hasRight = Boolean(rightNode);
110
110
  const effectiveContainerWidth = Math.max(0, containerWidth - (hasLeft ? tokens.spacing.sidePadding : 0) - (hasRight ? tokens.spacing.sidePadding : 0));
@@ -185,44 +185,48 @@ export const NoticeBar = props => {
185
185
  if (!height) return;
186
186
  setItemHeight(prev => prev === 0 || Math.abs(prev - height) >= 0.5 ? height : prev);
187
187
  }, []);
188
- const verticalContentNode = !isVertical || verticalTrackItems.length === 0 ? null : !hasVerticalLoop ? (() => {
189
- const single = verticalTrackItems[0];
190
- if (isText(single)) {
191
- return /*#__PURE__*/React.createElement(Text, _extends({
192
- onLayout: textOnLayout,
193
- style: [styles.text, {
194
- color: resolvedColor,
195
- fontSize: tokens.typography.fontSize
196
- }],
197
- numberOfLines: 1,
198
- ellipsizeMode: "tail"
199
- }, restTextProps), single);
188
+ const verticalContentNode = useMemo(() => {
189
+ if (!isVertical || verticalTrackItems.length === 0) return null;
190
+ if (!hasVerticalLoop) {
191
+ const single = verticalTrackItems[0];
192
+ if (isText(single)) {
193
+ return /*#__PURE__*/React.createElement(Text, _extends({
194
+ onLayout: textOnLayout,
195
+ style: [styles.text, {
196
+ color: resolvedColor,
197
+ fontSize: tokens.typography.fontSize
198
+ }],
199
+ numberOfLines: 1,
200
+ ellipsizeMode: "tail"
201
+ }, restTextProps), single);
202
+ }
203
+ return single;
200
204
  }
201
- return single;
202
- })() : /*#__PURE__*/React.createElement(View, {
203
- style: [styles.verticalViewport, itemHeight ? {
204
- height: itemHeight
205
- } : undefined],
206
- pointerEvents: "none"
207
- }, /*#__PURE__*/React.createElement(Animated.View, {
208
- style: [styles.verticalTrack, {
209
- transform: [{
210
- translateY: verticalTranslateY
205
+ return /*#__PURE__*/React.createElement(View, {
206
+ style: [styles.verticalViewport, itemHeight ? {
207
+ height: itemHeight
208
+ } : undefined],
209
+ pointerEvents: "none"
210
+ }, /*#__PURE__*/React.createElement(Animated.View, {
211
+ style: [styles.verticalTrack, {
212
+ transform: [{
213
+ translateY: verticalTranslateY
214
+ }]
211
215
  }]
212
- }]
213
- }, verticalTrackItems.map((item, index) => /*#__PURE__*/React.createElement(View, {
214
- key: index,
215
- onLayout: index === 0 ? handleItemLayout : undefined,
216
- style: styles.verticalItem
217
- }, isText(item) ? /*#__PURE__*/React.createElement(Text, _extends({
218
- onLayout: textOnLayout,
219
- style: [styles.text, {
220
- color: resolvedColor,
221
- fontSize: tokens.typography.fontSize
222
- }],
223
- numberOfLines: 1,
224
- ellipsizeMode: "tail"
225
- }, restTextProps), item) : item))));
216
+ }, verticalTrackItems.map((item, index) => /*#__PURE__*/React.createElement(View, {
217
+ key: index,
218
+ onLayout: index === 0 ? handleItemLayout : undefined,
219
+ style: styles.verticalItem
220
+ }, isText(item) ? /*#__PURE__*/React.createElement(Text, _extends({
221
+ onLayout: textOnLayout,
222
+ style: [styles.text, {
223
+ color: resolvedColor,
224
+ fontSize: tokens.typography.fontSize
225
+ }],
226
+ numberOfLines: 1,
227
+ ellipsizeMode: "tail"
228
+ }, restTextProps), item) : item))));
229
+ }, [handleItemLayout, hasVerticalLoop, isVertical, itemHeight, resolvedColor, restTextProps, textOnLayout, tokens.typography.fontSize, verticalTrackItems, verticalTranslateY]);
226
230
  const handleContainerLayout = useCallback(event => {
227
231
  setContainerWidthSafe(event.nativeEvent.layout.width);
228
232
  }, [setContainerWidthSafe]);