react-native-system-ui 0.0.1 → 0.0.3

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 (679) hide show
  1. package/README.md +55 -46
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +55 -33
  3. package/dist/cjs/components/area/Area.js +42 -7
  4. package/dist/cjs/components/area/utils.js +37 -33
  5. package/dist/cjs/components/avatar/Avatar.js +4 -4
  6. package/dist/cjs/components/badge/Badge.js +31 -38
  7. package/dist/cjs/components/badge/tokens.js +1 -1
  8. package/dist/cjs/components/button/Button.js +13 -21
  9. package/dist/cjs/components/button/ButtonGroup.js +5 -5
  10. package/dist/cjs/components/button/tokens.js +2 -2
  11. package/dist/cjs/components/calendar/Calendar.js +39 -31
  12. package/dist/cjs/components/cascader/Cascader.js +135 -58
  13. package/dist/cjs/components/cascader/useCascaderExtend.js +19 -19
  14. package/dist/cjs/components/cell/Cell.js +13 -14
  15. package/dist/cjs/components/cell/CellGroup.js +5 -4
  16. package/dist/cjs/components/checkbox/Checkbox.js +24 -27
  17. package/dist/cjs/components/checkbox/CheckboxGroup.js +10 -9
  18. package/dist/cjs/components/circle/Circle.js +56 -78
  19. package/dist/cjs/components/collapse/Collapse.js +66 -60
  20. package/dist/cjs/components/collapse/tokens.js +1 -1
  21. package/dist/cjs/components/config-provider/ConfigProvider.js +7 -6
  22. package/dist/cjs/components/config-provider/useLocale.js +2 -3
  23. package/dist/cjs/components/count-down/CountDown.js +7 -8
  24. package/dist/cjs/components/datetime-picker/DatetimePicker.js +80 -73
  25. package/dist/cjs/components/dialog/Dialog.js +95 -78
  26. package/dist/cjs/components/dialog/imperative.js +20 -21
  27. package/dist/cjs/components/dialog/index.js +5 -1
  28. package/dist/cjs/components/divider/Divider.js +6 -7
  29. package/dist/cjs/components/dropdown-menu/DropdownItem.js +17 -17
  30. package/dist/cjs/components/dropdown-menu/DropdownMenu.js +79 -57
  31. package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +3 -3
  32. package/dist/cjs/components/empty/Empty.js +6 -6
  33. package/dist/cjs/components/field/Field.js +57 -148
  34. package/dist/cjs/components/field/tokens.js +87 -12
  35. package/dist/cjs/components/field/utils.js +24 -0
  36. package/dist/cjs/components/flex/FlexItem.js +10 -10
  37. package/dist/cjs/components/form/Form.js +78 -36
  38. package/dist/cjs/components/form/FormItem.js +19 -15
  39. package/dist/cjs/components/form/FormList.js +6 -6
  40. package/dist/cjs/components/form/index.js +2 -3
  41. package/dist/cjs/components/form/utils.js +36 -13
  42. package/dist/cjs/components/grid/Grid.js +7 -7
  43. package/dist/cjs/components/grid/GridItem.js +11 -11
  44. package/dist/cjs/components/grid/tokens.js +1 -1
  45. package/dist/cjs/components/image/Image.js +93 -60
  46. package/dist/cjs/components/image-preview/ImagePreview.js +95 -71
  47. package/dist/cjs/components/image-preview/imperative.js +7 -6
  48. package/dist/cjs/components/index-bar/IndexBar.js +213 -105
  49. package/dist/cjs/components/index.js +498 -0
  50. package/dist/cjs/components/input/Input.js +25 -25
  51. package/dist/cjs/components/list/List.js +29 -22
  52. package/dist/cjs/components/loading/Loading.js +6 -6
  53. package/dist/cjs/components/nav-bar/NavBar.js +7 -6
  54. package/dist/cjs/components/nav-bar/tokens.js +71 -68
  55. package/dist/cjs/components/notice-bar/NoticeBar.js +46 -50
  56. package/dist/cjs/components/notify/Notify.js +19 -15
  57. package/dist/cjs/components/notify/defaults.js +15 -0
  58. package/dist/cjs/components/notify/imperative.js +9 -8
  59. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +191 -138
  60. package/dist/cjs/components/number-keyboard/tokens.js +7 -7
  61. package/dist/cjs/components/overlay/Overlay.js +19 -20
  62. package/dist/cjs/components/overlay/OverlayStackStore.js +4 -4
  63. package/dist/cjs/components/overlay/tokens.js +25 -2
  64. package/dist/cjs/components/overlay/useOverlayStack.js +9 -9
  65. package/dist/cjs/components/pagination/Pagination.js +10 -10
  66. package/dist/cjs/components/password-input/PasswordInput.js +57 -52
  67. package/dist/cjs/components/picker/Picker.js +219 -89
  68. package/dist/cjs/components/picker/WheelPicker.js +313 -135
  69. package/dist/cjs/components/picker/utils.js +14 -10
  70. package/dist/cjs/components/popup/Popup.js +184 -213
  71. package/dist/cjs/components/portal/Portal.js +6 -16
  72. package/dist/cjs/components/portal/PortalHost.js +103 -73
  73. package/dist/cjs/components/progress/Progress.js +114 -115
  74. package/dist/cjs/components/pull-refresh/PullRefresh.js +87 -52
  75. package/dist/cjs/components/radio/Radio.js +49 -53
  76. package/dist/cjs/components/radio/RadioGroup.js +9 -10
  77. package/dist/cjs/components/radio/tokens.js +1 -1
  78. package/dist/cjs/components/rate/Rate.js +77 -68
  79. package/dist/cjs/components/rate/tokens.js +1 -3
  80. package/dist/cjs/components/safe-area-view/SafeAreaView.js +63 -0
  81. package/dist/cjs/components/safe-area-view/index.js +12 -0
  82. package/dist/cjs/components/search/Search.js +23 -25
  83. package/dist/cjs/components/selector/Selector.js +128 -88
  84. package/dist/cjs/components/selector/tokens.js +1 -1
  85. package/dist/cjs/components/share-sheet/ShareSheet.js +73 -65
  86. package/dist/cjs/components/sidebar/Sidebar.js +36 -24
  87. package/dist/cjs/components/sidebar/SidebarContext.js +4 -3
  88. package/dist/cjs/components/sidebar/SidebarItem.js +9 -9
  89. package/dist/cjs/components/sidebar/tokens.js +3 -2
  90. package/dist/cjs/components/skeleton/Skeleton.js +72 -53
  91. package/dist/cjs/components/slider/Slider.js +200 -165
  92. package/dist/cjs/components/slider/utils.js +60 -0
  93. package/dist/cjs/components/space/Space.js +25 -26
  94. package/dist/cjs/components/stepper/Stepper.js +127 -103
  95. package/dist/cjs/components/swiper/Swiper.js +238 -341
  96. package/dist/cjs/components/swiper/SwiperItem.js +3 -3
  97. package/dist/cjs/components/swiper/SwiperPagIndicator.js +10 -8
  98. package/dist/cjs/components/swiper/useSwiperWeb.js +212 -0
  99. package/dist/cjs/components/swiper/utils.js +49 -0
  100. package/dist/cjs/components/switch/Switch.js +43 -39
  101. package/dist/cjs/components/switch/tokens.js +7 -5
  102. package/dist/cjs/components/tabbar/Tabbar.js +25 -30
  103. package/dist/cjs/components/tabbar/TabbarContext.js +4 -3
  104. package/dist/cjs/components/tabbar/TabbarItem.js +11 -10
  105. package/dist/cjs/components/tabs/Tabs.js +171 -228
  106. package/dist/cjs/components/tabs/tokens.js +4 -3
  107. package/dist/cjs/components/tabs/useTabsAnimation.js +74 -0
  108. package/dist/cjs/components/tabs/useTabsScroll.js +129 -0
  109. package/dist/cjs/components/tabs/utils.js +34 -0
  110. package/dist/cjs/components/tag/Tag.js +5 -5
  111. package/dist/cjs/components/tag/tokens.js +2 -2
  112. package/dist/cjs/components/toast/Toast.js +23 -11
  113. package/dist/cjs/components/toast/imperative.js +10 -9
  114. package/dist/cjs/components/types.js +1 -0
  115. package/dist/cjs/components/typography/Typography.js +57 -38
  116. package/dist/cjs/components/typography/tokens.js +3 -3
  117. package/dist/cjs/components/uploader/Uploader.js +42 -93
  118. package/dist/cjs/components/uploader/utils.js +72 -0
  119. package/dist/cjs/components/water-mark/WaterMark.js +18 -18
  120. package/dist/cjs/design-system/ThemeProvider.js +3 -3
  121. package/dist/cjs/design-system/createComponentTokensHook.js +4 -5
  122. package/dist/cjs/design-system/tokens.js +1 -0
  123. package/dist/cjs/design-system/useTheme.js +2 -3
  124. package/dist/cjs/hooks/aria/useAriaListBox.js +24 -9
  125. package/dist/cjs/hooks/aria/useAriaOverlay.js +13 -9
  126. package/dist/cjs/hooks/aria/useAriaPress.js +47 -21
  127. package/dist/cjs/hooks/aria/useAriaToggle.js +6 -6
  128. package/dist/cjs/hooks/gesture/useGestureScroll.js +22 -23
  129. package/dist/cjs/hooks/index.js +12 -0
  130. package/dist/cjs/hooks/useControllableValue.js +10 -9
  131. package/dist/cjs/hooks/useCountDown.js +17 -18
  132. package/dist/cjs/hooks/useHairline.js +3 -3
  133. package/dist/cjs/hooks/usePresenceAnimation.js +5 -6
  134. package/dist/cjs/hooks/useSafeAreaPadding.js +41 -0
  135. package/dist/cjs/index.js +22 -0
  136. package/dist/cjs/platform/index.js +11 -0
  137. package/dist/cjs/platform/measure.js +10 -8
  138. package/dist/cjs/platform/runtime.js +19 -0
  139. package/dist/cjs/utils/deepMerge.js +5 -2
  140. package/dist/cjs/utils/hairline.js +6 -3
  141. package/dist/cjs/utils/index.js +115 -0
  142. package/dist/es/components/action-sheet/ActionSheet.js +43 -22
  143. package/dist/es/components/area/Area.js +41 -7
  144. package/dist/es/components/area/utils.js +37 -33
  145. package/dist/es/components/avatar/Avatar.js +3 -3
  146. package/dist/es/components/badge/Badge.js +27 -34
  147. package/dist/es/components/badge/tokens.js +1 -1
  148. package/dist/es/components/button/Button.js +12 -21
  149. package/dist/es/components/button/ButtonGroup.js +4 -4
  150. package/dist/es/components/button/tokens.js +1 -1
  151. package/dist/es/components/calendar/Calendar.js +38 -31
  152. package/dist/es/components/cascader/Cascader.js +136 -60
  153. package/dist/es/components/cascader/useCascaderExtend.js +17 -16
  154. package/dist/es/components/cell/Cell.js +4 -5
  155. package/dist/es/components/cell/CellGroup.js +3 -2
  156. package/dist/es/components/checkbox/Checkbox.js +22 -25
  157. package/dist/es/components/checkbox/CheckboxGroup.js +9 -8
  158. package/dist/es/components/circle/Circle.js +53 -74
  159. package/dist/es/components/collapse/Collapse.js +61 -55
  160. package/dist/es/components/collapse/tokens.js +1 -1
  161. package/dist/es/components/config-provider/ConfigProvider.js +7 -5
  162. package/dist/es/components/config-provider/useLocale.js +2 -2
  163. package/dist/es/components/count-down/CountDown.js +4 -5
  164. package/dist/es/components/datetime-picker/DatetimePicker.js +61 -55
  165. package/dist/es/components/dialog/Dialog.js +94 -78
  166. package/dist/es/components/dialog/imperative.js +14 -16
  167. package/dist/es/components/dialog/index.js +5 -1
  168. package/dist/es/components/divider/Divider.js +3 -4
  169. package/dist/es/components/dropdown-menu/DropdownItem.js +11 -11
  170. package/dist/es/components/dropdown-menu/DropdownMenu.js +78 -57
  171. package/dist/es/components/dropdown-menu/DropdownMenuContext.js +2 -2
  172. package/dist/es/components/empty/Empty.js +3 -3
  173. package/dist/es/components/field/Field.js +54 -146
  174. package/dist/es/components/field/tokens.js +81 -12
  175. package/dist/es/components/field/utils.js +17 -0
  176. package/dist/es/components/flex/FlexItem.js +3 -3
  177. package/dist/es/components/form/Form.js +77 -35
  178. package/dist/es/components/form/FormItem.js +14 -10
  179. package/dist/es/components/form/FormList.js +5 -5
  180. package/dist/es/components/form/index.js +2 -2
  181. package/dist/es/components/form/utils.js +34 -11
  182. package/dist/es/components/grid/Grid.js +4 -4
  183. package/dist/es/components/grid/GridItem.js +5 -6
  184. package/dist/es/components/grid/tokens.js +1 -1
  185. package/dist/es/components/image/Image.js +88 -55
  186. package/dist/es/components/image-preview/ImagePreview.js +94 -71
  187. package/dist/es/components/image-preview/imperative.js +6 -6
  188. package/dist/es/components/index-bar/IndexBar.js +212 -104
  189. package/dist/es/components/index.js +74 -2
  190. package/dist/es/components/input/Input.js +24 -25
  191. package/dist/es/components/list/List.js +28 -22
  192. package/dist/es/components/loading/Loading.js +5 -5
  193. package/dist/es/components/nav-bar/NavBar.js +6 -5
  194. package/dist/es/components/nav-bar/tokens.js +71 -68
  195. package/dist/es/components/notice-bar/NoticeBar.js +45 -49
  196. package/dist/es/components/notify/Notify.js +19 -15
  197. package/dist/es/components/notify/defaults.js +9 -0
  198. package/dist/es/components/notify/imperative.js +5 -5
  199. package/dist/es/components/number-keyboard/NumberKeyboard.js +191 -139
  200. package/dist/es/components/number-keyboard/tokens.js +7 -7
  201. package/dist/es/components/overlay/Overlay.js +18 -20
  202. package/dist/es/components/overlay/OverlayStackStore.js +2 -2
  203. package/dist/es/components/overlay/tokens.js +25 -2
  204. package/dist/es/components/overlay/useOverlayStack.js +9 -8
  205. package/dist/es/components/pagination/Pagination.js +9 -9
  206. package/dist/es/components/password-input/PasswordInput.js +56 -51
  207. package/dist/es/components/picker/Picker.js +209 -81
  208. package/dist/es/components/picker/WheelPicker.js +304 -126
  209. package/dist/es/components/picker/utils.js +13 -9
  210. package/dist/es/components/popup/Popup.js +184 -214
  211. package/dist/es/components/portal/Portal.js +6 -15
  212. package/dist/es/components/portal/PortalHost.js +103 -73
  213. package/dist/es/components/progress/Progress.js +112 -112
  214. package/dist/es/components/pull-refresh/PullRefresh.js +86 -51
  215. package/dist/es/components/radio/Radio.js +46 -49
  216. package/dist/es/components/radio/RadioGroup.js +8 -9
  217. package/dist/es/components/radio/tokens.js +1 -1
  218. package/dist/es/components/rate/Rate.js +67 -57
  219. package/dist/es/components/rate/tokens.js +1 -3
  220. package/dist/es/components/safe-area-view/SafeAreaView.js +43 -0
  221. package/dist/es/components/safe-area-view/index.js +1 -0
  222. package/dist/es/components/search/Search.js +22 -25
  223. package/dist/es/components/selector/Selector.js +128 -87
  224. package/dist/es/components/selector/tokens.js +1 -1
  225. package/dist/es/components/share-sheet/ShareSheet.js +72 -65
  226. package/dist/es/components/sidebar/Sidebar.js +34 -22
  227. package/dist/es/components/sidebar/SidebarContext.js +2 -1
  228. package/dist/es/components/sidebar/SidebarItem.js +7 -7
  229. package/dist/es/components/sidebar/tokens.js +3 -2
  230. package/dist/es/components/skeleton/Skeleton.js +70 -51
  231. package/dist/es/components/slider/Slider.js +197 -162
  232. package/dist/es/components/slider/utils.js +49 -0
  233. package/dist/es/components/space/Space.js +21 -21
  234. package/dist/es/components/stepper/Stepper.js +105 -81
  235. package/dist/es/components/swiper/Swiper.js +229 -332
  236. package/dist/es/components/swiper/SwiperItem.js +2 -2
  237. package/dist/es/components/swiper/SwiperPagIndicator.js +9 -7
  238. package/dist/es/components/swiper/useSwiperWeb.js +193 -0
  239. package/dist/es/components/swiper/utils.js +37 -0
  240. package/dist/es/components/switch/Switch.js +42 -37
  241. package/dist/es/components/switch/tokens.js +7 -5
  242. package/dist/es/components/tabbar/Tabbar.js +25 -30
  243. package/dist/es/components/tabbar/TabbarContext.js +2 -1
  244. package/dist/es/components/tabbar/TabbarItem.js +11 -10
  245. package/dist/es/components/tabs/Tabs.js +170 -227
  246. package/dist/es/components/tabs/tokens.js +4 -3
  247. package/dist/es/components/tabs/useTabsAnimation.js +55 -0
  248. package/dist/es/components/tabs/useTabsScroll.js +110 -0
  249. package/dist/es/components/tabs/utils.js +19 -0
  250. package/dist/es/components/tag/Tag.js +3 -3
  251. package/dist/es/components/tag/tokens.js +1 -1
  252. package/dist/es/components/toast/Toast.js +22 -11
  253. package/dist/es/components/toast/imperative.js +6 -6
  254. package/dist/es/components/types.js +1 -0
  255. package/dist/es/components/typography/Typography.js +54 -35
  256. package/dist/es/components/typography/tokens.js +3 -3
  257. package/dist/es/components/uploader/Uploader.js +35 -87
  258. package/dist/es/components/uploader/utils.js +60 -0
  259. package/dist/es/components/water-mark/WaterMark.js +13 -13
  260. package/dist/es/design-system/ThemeProvider.js +2 -2
  261. package/dist/es/design-system/createComponentTokensHook.js +2 -2
  262. package/dist/es/design-system/tokens.js +1 -0
  263. package/dist/es/design-system/useTheme.js +2 -2
  264. package/dist/es/hooks/aria/useAriaListBox.js +22 -6
  265. package/dist/es/hooks/aria/useAriaOverlay.js +5 -6
  266. package/dist/es/hooks/aria/useAriaPress.js +35 -21
  267. package/dist/es/hooks/aria/useAriaToggle.js +4 -3
  268. package/dist/es/hooks/gesture/useGestureScroll.js +20 -20
  269. package/dist/es/hooks/index.js +1 -0
  270. package/dist/es/hooks/useControllableValue.js +10 -8
  271. package/dist/es/hooks/useCountDown.js +17 -17
  272. package/dist/es/hooks/useHairline.js +2 -2
  273. package/dist/es/hooks/usePresenceAnimation.js +5 -5
  274. package/dist/es/hooks/useSafeAreaPadding.js +23 -0
  275. package/dist/es/index.js +2 -4
  276. package/dist/es/platform/index.js +1 -0
  277. package/dist/es/platform/measure.js +10 -8
  278. package/dist/es/platform/runtime.js +4 -0
  279. package/dist/es/utils/deepMerge.js +5 -2
  280. package/dist/es/utils/hairline.js +6 -3
  281. package/dist/es/utils/index.js +12 -0
  282. package/dist/types/components/action-sheet/ActionSheet.d.ts +4 -0
  283. package/dist/types/components/action-sheet/index.d.ts +4 -0
  284. package/dist/types/components/action-sheet/tokens.d.ts +4 -0
  285. package/dist/types/components/area/Area.d.ts +4 -0
  286. package/dist/types/components/area/index.d.ts +3 -0
  287. package/dist/types/components/area/utils.d.ts +2 -0
  288. package/dist/types/components/avatar/Avatar.d.ts +5 -0
  289. package/dist/types/components/avatar/index.d.ts +3 -0
  290. package/dist/types/components/avatar/tokens.d.ts +4 -0
  291. package/dist/types/components/badge/Badge.d.ts +4 -0
  292. package/dist/types/components/badge/index.d.ts +3 -0
  293. package/dist/types/components/badge/tokens.d.ts +2 -0
  294. package/dist/types/components/button/Button.d.ts +5 -0
  295. package/dist/types/components/button/ButtonContext.d.ts +16 -0
  296. package/dist/types/components/button/ButtonGroup.d.ts +10 -0
  297. package/dist/types/components/button/index.d.ts +6 -0
  298. package/dist/types/components/button/tokens.d.ts +2 -0
  299. package/dist/types/components/calendar/Calendar.d.ts +4 -0
  300. package/dist/types/components/calendar/index.d.ts +3 -0
  301. package/dist/types/components/calendar/tokens.d.ts +4 -0
  302. package/dist/types/components/cascader/Cascader.d.ts +4 -0
  303. package/dist/types/components/cascader/index.d.ts +4 -0
  304. package/dist/types/components/cascader/tokens.d.ts +4 -0
  305. package/dist/types/components/cascader/useCascaderExtend.d.ts +12 -0
  306. package/dist/types/components/cascader/utils.d.ts +6 -0
  307. package/dist/types/components/cell/Cell.d.ts +4 -0
  308. package/dist/types/components/cell/CellContext.d.ts +7 -0
  309. package/dist/types/components/cell/CellGroup.d.ts +3 -0
  310. package/dist/types/components/cell/index.d.ts +8 -0
  311. package/dist/types/components/cell/tokens.d.ts +4 -0
  312. package/dist/types/components/checkbox/Checkbox.d.ts +5 -0
  313. package/dist/types/components/checkbox/CheckboxContext.d.ts +16 -0
  314. package/dist/types/components/checkbox/CheckboxGroup.d.ts +8 -0
  315. package/dist/types/components/checkbox/index.d.ts +7 -0
  316. package/dist/types/components/checkbox/tokens.d.ts +2 -0
  317. package/dist/types/components/circle/Circle.d.ts +5 -0
  318. package/dist/types/components/circle/index.d.ts +3 -0
  319. package/dist/types/components/circle/tokens.d.ts +4 -0
  320. package/dist/types/components/collapse/Collapse.d.ts +45 -0
  321. package/dist/types/components/collapse/index.d.ts +3 -0
  322. package/dist/types/components/collapse/tokens.d.ts +4 -0
  323. package/dist/types/components/config-provider/ConfigProvider.d.ts +3 -0
  324. package/dist/types/components/config-provider/LocaleContext.d.ts +75 -0
  325. package/dist/types/components/config-provider/index.d.ts +5 -0
  326. package/dist/types/components/config-provider/locale/base.d.ts +74 -0
  327. package/dist/types/components/config-provider/locale/en-US.d.ts +74 -0
  328. package/dist/types/components/config-provider/locale/zh-CN.d.ts +74 -0
  329. package/dist/types/components/config-provider/useLocale.d.ts +74 -0
  330. package/dist/types/components/count-down/CountDown.d.ts +4 -0
  331. package/dist/types/components/count-down/index.d.ts +4 -0
  332. package/dist/types/components/count-down/tokens.d.ts +4 -0
  333. package/dist/types/components/datetime-picker/DatetimePicker.d.ts +4 -0
  334. package/dist/types/components/datetime-picker/index.d.ts +3 -0
  335. package/dist/types/components/dialog/Dialog.d.ts +4 -0
  336. package/dist/types/components/dialog/imperative.d.ts +23 -0
  337. package/dist/types/components/dialog/index.d.ts +5 -0
  338. package/dist/types/components/dialog/tokens.d.ts +46 -0
  339. package/dist/types/components/divider/Divider.d.ts +3 -0
  340. package/dist/types/components/divider/index.d.ts +3 -0
  341. package/dist/types/components/divider/tokens.d.ts +4 -0
  342. package/dist/types/components/dropdown-menu/DropdownItem.d.ts +4 -0
  343. package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +4 -0
  344. package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +17 -0
  345. package/dist/types/components/dropdown-menu/index.d.ts +8 -0
  346. package/dist/types/components/dropdown-menu/tokens.d.ts +35 -0
  347. package/dist/types/components/empty/Empty.d.ts +3 -0
  348. package/dist/types/components/empty/index.d.ts +3 -0
  349. package/dist/types/components/empty/tokens.d.ts +4 -0
  350. package/dist/types/components/field/Field.d.ts +4 -0
  351. package/dist/types/components/field/index.d.ts +7 -0
  352. package/dist/types/components/field/tokens.d.ts +131 -0
  353. package/dist/types/components/field/utils.d.ts +4 -0
  354. package/dist/types/components/flex/Flex.d.ts +3 -0
  355. package/dist/types/components/flex/FlexContext.d.ts +8 -0
  356. package/dist/types/components/flex/FlexItem.d.ts +3 -0
  357. package/dist/types/components/flex/index.d.ts +8 -0
  358. package/dist/types/components/flex/tokens.d.ts +2 -0
  359. package/dist/types/components/form/Form.d.ts +6 -0
  360. package/dist/types/components/form/FormContext.d.ts +17 -0
  361. package/dist/types/components/form/FormItem.d.ts +4 -0
  362. package/dist/types/components/form/FormList.d.ts +18 -0
  363. package/dist/types/components/form/index.d.ts +17 -0
  364. package/dist/types/components/form/utils.d.ts +6 -0
  365. package/dist/types/components/grid/Grid.d.ts +3 -0
  366. package/dist/types/components/grid/GridContext.d.ts +17 -0
  367. package/dist/types/components/grid/GridItem.d.ts +3 -0
  368. package/dist/types/components/grid/index.d.ts +5 -0
  369. package/dist/types/components/grid/tokens.d.ts +4 -0
  370. package/dist/types/components/image/Image.d.ts +5 -0
  371. package/dist/types/components/image/index.d.ts +4 -0
  372. package/dist/types/components/image/tokens.d.ts +2 -0
  373. package/dist/types/components/image-preview/ImagePreview.d.ts +4 -0
  374. package/dist/types/components/image-preview/imperative.d.ts +5 -0
  375. package/dist/types/components/image-preview/index.d.ts +6 -0
  376. package/dist/types/components/image-preview/tokens.d.ts +10 -0
  377. package/dist/types/components/index-bar/IndexAnchor.d.ts +4 -0
  378. package/dist/types/components/index-bar/IndexBar.d.ts +4 -0
  379. package/dist/types/components/index-bar/index.d.ts +9 -0
  380. package/dist/types/components/index-bar/tokens.d.ts +22 -0
  381. package/dist/types/components/index.d.ts +138 -0
  382. package/dist/types/components/input/Input.d.ts +8 -0
  383. package/dist/types/components/input/index.d.ts +4 -0
  384. package/dist/types/components/input/tokens.d.ts +2 -0
  385. package/dist/types/components/list/List.d.ts +4 -0
  386. package/dist/types/components/list/index.d.ts +3 -0
  387. package/dist/types/components/list/tokens.d.ts +4 -0
  388. package/dist/types/components/loading/Loading.d.ts +3 -0
  389. package/dist/types/components/loading/index.d.ts +3 -0
  390. package/dist/types/components/loading/tokens.d.ts +4 -0
  391. package/dist/types/components/nav-bar/NavBar.d.ts +4 -0
  392. package/dist/types/components/nav-bar/index.d.ts +4 -0
  393. package/dist/types/components/nav-bar/tokens.d.ts +4 -0
  394. package/dist/types/components/notice-bar/NoticeBar.d.ts +3 -0
  395. package/dist/types/components/notice-bar/index.d.ts +3 -0
  396. package/dist/types/components/notice-bar/tokens.d.ts +23 -0
  397. package/dist/types/components/notify/Notify.d.ts +5 -0
  398. package/dist/types/components/notify/defaults.d.ts +10 -0
  399. package/dist/types/components/notify/imperative.d.ts +22 -0
  400. package/dist/types/components/notify/index.d.ts +15 -0
  401. package/dist/types/components/notify/tokens.d.ts +4 -0
  402. package/dist/types/components/number-keyboard/NumberKeyboard.d.ts +4 -0
  403. package/dist/types/components/number-keyboard/index.d.ts +4 -0
  404. package/dist/types/components/number-keyboard/tokens.d.ts +36 -0
  405. package/dist/types/components/overlay/Overlay.d.ts +4 -0
  406. package/dist/types/components/overlay/OverlayStackStore.d.ts +39 -0
  407. package/dist/types/components/overlay/index.d.ts +6 -0
  408. package/dist/types/components/overlay/tokens.d.ts +4 -0
  409. package/dist/types/components/overlay/useOverlayStack.d.ts +10 -0
  410. package/dist/types/components/pagination/Pagination.d.ts +5 -0
  411. package/dist/types/components/pagination/index.d.ts +5 -0
  412. package/dist/types/components/pagination/tokens.d.ts +2 -0
  413. package/dist/types/components/password-input/PasswordInput.d.ts +39 -0
  414. package/dist/types/components/password-input/index.d.ts +2 -0
  415. package/dist/types/components/picker/Picker.d.ts +16 -0
  416. package/dist/types/components/picker/WheelPicker.d.ts +21 -0
  417. package/dist/types/components/picker/index.d.ts +4 -0
  418. package/dist/types/components/picker/tokens.d.ts +37 -0
  419. package/dist/types/components/picker/utils.d.ts +17 -0
  420. package/dist/types/components/popup/Popup.d.ts +44 -0
  421. package/dist/types/components/popup/index.d.ts +4 -0
  422. package/dist/types/components/popup/tokens.d.ts +46 -0
  423. package/dist/types/components/portal/Portal.d.ts +13 -0
  424. package/dist/types/components/portal/PortalContext.d.ts +7 -0
  425. package/dist/types/components/portal/PortalHost.d.ts +25 -0
  426. package/dist/types/components/portal/index.d.ts +3 -0
  427. package/dist/types/components/progress/Progress.d.ts +4 -0
  428. package/dist/types/components/progress/index.d.ts +3 -0
  429. package/dist/types/components/progress/tokens.d.ts +4 -0
  430. package/dist/types/components/pull-refresh/PullRefresh.d.ts +5 -0
  431. package/dist/types/components/pull-refresh/index.d.ts +4 -0
  432. package/dist/types/components/pull-refresh/tokens.d.ts +10 -0
  433. package/dist/types/components/radio/Radio.d.ts +3 -0
  434. package/dist/types/components/radio/RadioContext.d.ts +13 -0
  435. package/dist/types/components/radio/RadioGroup.d.ts +3 -0
  436. package/dist/types/components/radio/index.d.ts +7 -0
  437. package/dist/types/components/radio/tokens.d.ts +2 -0
  438. package/dist/types/components/rate/Rate.d.ts +4 -0
  439. package/dist/types/components/rate/index.d.ts +4 -0
  440. package/dist/types/components/rate/tokens.d.ts +4 -0
  441. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +10 -0
  442. package/dist/types/components/safe-area-view/index.d.ts +2 -0
  443. package/dist/types/components/search/Search.d.ts +4 -0
  444. package/dist/types/components/search/index.d.ts +4 -0
  445. package/dist/types/components/search/tokens.d.ts +40 -0
  446. package/dist/types/components/selector/Selector.d.ts +7 -0
  447. package/dist/types/components/selector/index.d.ts +4 -0
  448. package/dist/types/components/selector/tokens.d.ts +2 -0
  449. package/dist/types/components/share-sheet/ShareSheet.d.ts +4 -0
  450. package/dist/types/components/share-sheet/index.d.ts +4 -0
  451. package/dist/types/components/share-sheet/tokens.d.ts +26 -0
  452. package/dist/types/components/sidebar/Sidebar.d.ts +4 -0
  453. package/dist/types/components/sidebar/SidebarContext.d.ts +7 -0
  454. package/dist/types/components/sidebar/SidebarItem.d.ts +4 -0
  455. package/dist/types/components/sidebar/index.d.ts +8 -0
  456. package/dist/types/components/sidebar/tokens.d.ts +4 -0
  457. package/dist/types/components/skeleton/Skeleton.d.ts +5 -0
  458. package/dist/types/components/skeleton/index.d.ts +5 -0
  459. package/dist/types/components/skeleton/tokens.d.ts +2 -0
  460. package/dist/types/components/slider/Slider.d.ts +4 -0
  461. package/dist/types/components/slider/index.d.ts +3 -0
  462. package/dist/types/components/slider/tokens.d.ts +28 -0
  463. package/dist/types/components/slider/utils.d.ts +42 -0
  464. package/dist/types/components/space/Space.d.ts +3 -0
  465. package/dist/types/components/space/index.d.ts +3 -0
  466. package/dist/types/components/space/tokens.d.ts +3 -0
  467. package/dist/types/components/stepper/Stepper.d.ts +4 -0
  468. package/dist/types/components/stepper/index.d.ts +4 -0
  469. package/dist/types/components/stepper/tokens.d.ts +43 -0
  470. package/dist/types/components/swiper/Swiper.d.ts +7 -0
  471. package/dist/types/components/swiper/SwiperItem.d.ts +5 -0
  472. package/dist/types/components/swiper/SwiperPagIndicator.d.ts +36 -0
  473. package/dist/types/components/swiper/index.d.ts +14 -0
  474. package/dist/types/components/swiper/useSwiperWeb.d.ts +41 -0
  475. package/dist/types/components/swiper/utils.d.ts +17 -0
  476. package/dist/types/components/switch/Switch.d.ts +7 -0
  477. package/dist/types/components/switch/index.d.ts +4 -0
  478. package/dist/types/components/switch/tokens.d.ts +2 -0
  479. package/dist/types/components/tabbar/Tabbar.d.ts +4 -0
  480. package/dist/types/components/tabbar/TabbarContext.d.ts +13 -0
  481. package/dist/types/components/tabbar/TabbarItem.d.ts +4 -0
  482. package/dist/types/components/tabbar/index.d.ts +9 -0
  483. package/dist/types/components/tabbar/tokens.d.ts +28 -0
  484. package/dist/types/components/tabs/TabPane.d.ts +4 -0
  485. package/dist/types/components/tabs/Tabs.d.ts +4 -0
  486. package/dist/types/components/tabs/index.d.ts +8 -0
  487. package/dist/types/components/tabs/tokens.d.ts +87 -0
  488. package/dist/types/components/tabs/useTabsAnimation.d.ts +30 -0
  489. package/dist/types/components/tabs/useTabsScroll.d.ts +23 -0
  490. package/dist/types/components/tabs/utils.d.ts +5 -0
  491. package/dist/types/components/tag/Tag.d.ts +3 -0
  492. package/dist/types/components/tag/index.d.ts +3 -0
  493. package/dist/types/components/tag/tokens.d.ts +4 -0
  494. package/dist/types/components/toast/Toast.d.ts +36 -0
  495. package/dist/types/components/toast/imperative.d.ts +22 -0
  496. package/dist/types/components/toast/index.d.ts +15 -0
  497. package/dist/types/components/toast/tokens.d.ts +24 -0
  498. package/dist/types/components/types.d.ts +59 -0
  499. package/dist/types/components/typography/Typography.d.ts +11 -0
  500. package/dist/types/components/typography/index.d.ts +3 -0
  501. package/dist/types/components/typography/tokens.d.ts +2 -0
  502. package/dist/types/components/uploader/Uploader.d.ts +4 -0
  503. package/dist/types/components/uploader/index.d.ts +5 -0
  504. package/dist/types/components/uploader/tokens.d.ts +17 -0
  505. package/dist/types/components/uploader/utils.d.ts +11 -0
  506. package/dist/types/components/water-mark/WaterMark.d.ts +4 -0
  507. package/dist/types/components/water-mark/index.d.ts +5 -0
  508. package/dist/types/components/water-mark/tokens.d.ts +2 -0
  509. package/dist/types/design-system/ThemeContext.d.ts +14 -0
  510. package/dist/types/design-system/ThemeProvider.d.ts +14 -0
  511. package/dist/types/design-system/createComponentTokensHook.d.ts +4 -0
  512. package/dist/types/design-system/index.d.ts +10 -0
  513. package/dist/types/design-system/mergeTokensOverride.d.ts +2 -0
  514. package/dist/types/design-system/presets.d.ts +8 -0
  515. package/dist/types/design-system/tokens.d.ts +74 -0
  516. package/dist/types/design-system/useTheme.d.ts +1 -0
  517. package/dist/types/hooks/aria/index.d.ts +4 -0
  518. package/dist/types/hooks/aria/useAriaListBox.d.ts +20 -0
  519. package/dist/types/hooks/aria/useAriaOverlay.d.ts +24 -0
  520. package/dist/types/hooks/aria/useAriaPress.d.ts +39 -0
  521. package/dist/types/hooks/aria/useAriaToggle.d.ts +15 -0
  522. package/dist/types/hooks/gesture/index.d.ts +1 -0
  523. package/dist/types/hooks/gesture/useGestureScroll.d.ts +32 -0
  524. package/dist/types/hooks/index.d.ts +8 -0
  525. package/dist/types/hooks/useControllableValue.d.ts +9 -0
  526. package/dist/types/hooks/useCountDown.d.ts +23 -0
  527. package/dist/types/hooks/useHairline.d.ts +31 -0
  528. package/dist/types/hooks/usePresenceAnimation.d.ts +15 -0
  529. package/dist/types/hooks/useSafeAreaPadding.d.ts +13 -0
  530. package/dist/types/index.d.ts +4 -0
  531. package/dist/types/platform/animation.d.ts +1 -0
  532. package/dist/types/platform/history.d.ts +1 -0
  533. package/dist/types/platform/index.d.ts +5 -0
  534. package/dist/types/platform/measure.d.ts +7 -0
  535. package/dist/types/platform/runtime.d.ts +3 -0
  536. package/dist/types/platform/scrollLock.d.ts +2 -0
  537. package/dist/types/types.d.ts +4 -0
  538. package/dist/types/utils/array.d.ts +1 -0
  539. package/dist/types/utils/color.d.ts +5 -0
  540. package/dist/types/utils/createPlatformShadow.d.ts +11 -0
  541. package/dist/types/utils/date.d.ts +13 -0
  542. package/dist/types/utils/deepMerge.d.ts +3 -0
  543. package/dist/types/utils/hairline.d.ts +20 -0
  544. package/dist/types/utils/index.d.ts +10 -0
  545. package/dist/types/utils/number.d.ts +11 -0
  546. package/dist/types/utils/promise.d.ts +1 -0
  547. package/dist/types/utils/string.d.ts +3 -0
  548. package/dist/types/utils/validate.d.ts +14 -0
  549. package/package.json +411 -14
  550. package/dist/cjs/components/action-sheet/types.d.ts +0 -96
  551. package/dist/cjs/components/area/types.d.ts +0 -27
  552. package/dist/cjs/components/avatar/types.d.ts +0 -64
  553. package/dist/cjs/components/badge/types.d.ts +0 -61
  554. package/dist/cjs/components/button/types.d.ts +0 -145
  555. package/dist/cjs/components/calendar/types.d.ts +0 -115
  556. package/dist/cjs/components/cascader/types.d.ts +0 -159
  557. package/dist/cjs/components/cell/types.d.ts +0 -117
  558. package/dist/cjs/components/checkbox/types.d.ts +0 -108
  559. package/dist/cjs/components/circle/types.d.ts +0 -94
  560. package/dist/cjs/components/collapse/types.d.ts +0 -47
  561. package/dist/cjs/components/config-provider/locale/types.d.ts +0 -3
  562. package/dist/cjs/components/config-provider/types.d.ts +0 -10
  563. package/dist/cjs/components/count-down/types.d.ts +0 -33
  564. package/dist/cjs/components/datetime-picker/types.d.ts +0 -46
  565. package/dist/cjs/components/dialog/types.d.ts +0 -83
  566. package/dist/cjs/components/divider/types.d.ts +0 -50
  567. package/dist/cjs/components/dropdown-menu/types.d.ts +0 -89
  568. package/dist/cjs/components/empty/types.d.ts +0 -48
  569. package/dist/cjs/components/field/types.d.ts +0 -112
  570. package/dist/cjs/components/flex/types.d.ts +0 -42
  571. package/dist/cjs/components/form/types.d.ts +0 -80
  572. package/dist/cjs/components/grid/types.d.ts +0 -82
  573. package/dist/cjs/components/image/types.d.ts +0 -56
  574. package/dist/cjs/components/image-preview/types.d.ts +0 -67
  575. package/dist/cjs/components/index-bar/types.d.ts +0 -43
  576. package/dist/cjs/components/input/types.d.ts +0 -49
  577. package/dist/cjs/components/list/types.d.ts +0 -48
  578. package/dist/cjs/components/loading/types.d.ts +0 -53
  579. package/dist/cjs/components/nav-bar/types.d.ts +0 -69
  580. package/dist/cjs/components/notice-bar/types.d.ts +0 -29
  581. package/dist/cjs/components/notify/types.d.ts +0 -63
  582. package/dist/cjs/components/number-keyboard/types.d.ts +0 -40
  583. package/dist/cjs/components/pagination/types.d.ts +0 -75
  584. package/dist/cjs/components/password-input/types.d.ts +0 -65
  585. package/dist/cjs/components/picker/core.js +0 -41
  586. package/dist/cjs/components/picker/styles.js +0 -75
  587. package/dist/cjs/components/picker/types.d.ts +0 -70
  588. package/dist/cjs/components/picker/usePickerValue.js +0 -74
  589. package/dist/cjs/components/progress/types.d.ts +0 -53
  590. package/dist/cjs/components/pull-refresh/types.d.ts +0 -29
  591. package/dist/cjs/components/radio/types.d.ts +0 -96
  592. package/dist/cjs/components/rate/types.d.ts +0 -54
  593. package/dist/cjs/components/search/types.d.ts +0 -84
  594. package/dist/cjs/components/selector/types.d.ts +0 -80
  595. package/dist/cjs/components/share-sheet/types.d.ts +0 -30
  596. package/dist/cjs/components/sidebar/types.d.ts +0 -66
  597. package/dist/cjs/components/skeleton/types.d.ts +0 -46
  598. package/dist/cjs/components/slider/types.d.ts +0 -39
  599. package/dist/cjs/components/space/types.d.ts +0 -47
  600. package/dist/cjs/components/stepper/types.d.ts +0 -58
  601. package/dist/cjs/components/swipe-cell/SwipeCell.js +0 -399
  602. package/dist/cjs/components/swipe-cell/index.js +0 -9
  603. package/dist/cjs/components/swiper/types.d.ts +0 -83
  604. package/dist/cjs/components/switch/types.d.ts +0 -71
  605. package/dist/cjs/components/tabbar/types.d.ts +0 -51
  606. package/dist/cjs/components/tabs/types.d.ts +0 -71
  607. package/dist/cjs/components/tag/types.d.ts +0 -67
  608. package/dist/cjs/components/theme.d.ts +0 -113
  609. package/dist/cjs/components/typography/types.d.ts +0 -77
  610. package/dist/cjs/components/uploader/types.d.ts +0 -90
  611. package/dist/cjs/components/water-mark/types.d.ts +0 -60
  612. package/dist/cjs/index.d.ts +0 -16
  613. package/dist/client-CDqbgn-w.mjs +0 -31965
  614. package/dist/es/components/action-sheet/types.d.ts +0 -96
  615. package/dist/es/components/area/types.d.ts +0 -27
  616. package/dist/es/components/avatar/types.d.ts +0 -64
  617. package/dist/es/components/badge/types.d.ts +0 -61
  618. package/dist/es/components/button/types.d.ts +0 -145
  619. package/dist/es/components/calendar/types.d.ts +0 -115
  620. package/dist/es/components/cascader/types.d.ts +0 -159
  621. package/dist/es/components/cell/types.d.ts +0 -117
  622. package/dist/es/components/checkbox/types.d.ts +0 -108
  623. package/dist/es/components/circle/types.d.ts +0 -94
  624. package/dist/es/components/collapse/types.d.ts +0 -47
  625. package/dist/es/components/config-provider/locale/types.d.ts +0 -3
  626. package/dist/es/components/config-provider/types.d.ts +0 -10
  627. package/dist/es/components/count-down/types.d.ts +0 -33
  628. package/dist/es/components/datetime-picker/types.d.ts +0 -46
  629. package/dist/es/components/dialog/types.d.ts +0 -83
  630. package/dist/es/components/divider/types.d.ts +0 -50
  631. package/dist/es/components/dropdown-menu/types.d.ts +0 -89
  632. package/dist/es/components/empty/types.d.ts +0 -48
  633. package/dist/es/components/field/types.d.ts +0 -112
  634. package/dist/es/components/flex/types.d.ts +0 -42
  635. package/dist/es/components/form/types.d.ts +0 -80
  636. package/dist/es/components/grid/types.d.ts +0 -82
  637. package/dist/es/components/image/types.d.ts +0 -56
  638. package/dist/es/components/image-preview/types.d.ts +0 -67
  639. package/dist/es/components/index-bar/types.d.ts +0 -43
  640. package/dist/es/components/input/types.d.ts +0 -49
  641. package/dist/es/components/list/types.d.ts +0 -48
  642. package/dist/es/components/loading/types.d.ts +0 -53
  643. package/dist/es/components/nav-bar/types.d.ts +0 -69
  644. package/dist/es/components/notice-bar/types.d.ts +0 -29
  645. package/dist/es/components/notify/types.d.ts +0 -63
  646. package/dist/es/components/number-keyboard/types.d.ts +0 -40
  647. package/dist/es/components/pagination/types.d.ts +0 -75
  648. package/dist/es/components/password-input/types.d.ts +0 -65
  649. package/dist/es/components/picker/core.js +0 -31
  650. package/dist/es/components/picker/styles.js +0 -63
  651. package/dist/es/components/picker/types.d.ts +0 -70
  652. package/dist/es/components/picker/usePickerValue.js +0 -60
  653. package/dist/es/components/progress/types.d.ts +0 -53
  654. package/dist/es/components/pull-refresh/types.d.ts +0 -29
  655. package/dist/es/components/radio/types.d.ts +0 -96
  656. package/dist/es/components/rate/types.d.ts +0 -54
  657. package/dist/es/components/search/types.d.ts +0 -84
  658. package/dist/es/components/selector/types.d.ts +0 -80
  659. package/dist/es/components/share-sheet/types.d.ts +0 -30
  660. package/dist/es/components/sidebar/types.d.ts +0 -66
  661. package/dist/es/components/skeleton/types.d.ts +0 -46
  662. package/dist/es/components/slider/types.d.ts +0 -39
  663. package/dist/es/components/space/types.d.ts +0 -47
  664. package/dist/es/components/stepper/types.d.ts +0 -58
  665. package/dist/es/components/swipe-cell/SwipeCell.js +0 -380
  666. package/dist/es/components/swipe-cell/index.js +0 -2
  667. package/dist/es/components/swiper/types.d.ts +0 -83
  668. package/dist/es/components/switch/types.d.ts +0 -71
  669. package/dist/es/components/tabbar/types.d.ts +0 -51
  670. package/dist/es/components/tabs/types.d.ts +0 -71
  671. package/dist/es/components/tag/types.d.ts +0 -67
  672. package/dist/es/components/theme.d.ts +0 -113
  673. package/dist/es/components/typography/types.d.ts +0 -77
  674. package/dist/es/components/uploader/types.d.ts +0 -90
  675. package/dist/es/components/water-mark/types.d.ts +0 -60
  676. package/dist/es/index.d.ts +0 -16
  677. package/dist/react-native-system-ui.es.mjs +0 -1194
  678. package/dist/react-native-system-ui.js +0 -33977
  679. package/dist/react-native-system-ui.min.js +0 -1
@@ -1,73 +1,18 @@
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 from 'react';
2
+ import React, { useEffect, useImperativeHandle, useRef, useState } from 'react';
3
3
  import { ActivityIndicator, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
4
4
  import { useUploaderTokens } from './tokens';
5
5
  import { useControllableValue } from '../../hooks';
6
6
  import Image from '../image';
7
7
  import ImagePreview from '../image-preview';
8
- import { parseNumber } from '../../utils/number';
9
8
  import { toArray } from '../../utils/array';
10
- import { isImageUrlString, isFunction, isUndefined, isString } from '../../utils/validate';
9
+ import { parseNumber } from '../../utils/number';
10
+ import { isFunction, isString } from '../../utils/validate';
11
+ import { isImageFile, resolveSource, normalizeMaxSize, filterFiles, readFileContent, processBeforeRead } from './utils';
11
12
  const statusDefaults = {
12
13
  pending: '上传中',
13
14
  failed: '上传失败'
14
15
  };
15
- const isImageFile = (item, forced) => {
16
- if (forced !== undefined) return forced;
17
- if (item.file?.type) return item.file.type.indexOf('image') === 0;
18
- return isImageUrlString(item.url ?? item.thumbnail ?? '');
19
- };
20
- const resolveSource = (item, isImage) => {
21
- if (!isImage) return;
22
- if (item.source) return item.source;
23
- const uri = item.thumbnail ?? item.url;
24
- return uri ? {
25
- uri
26
- } : undefined;
27
- };
28
- const normalizeMaxSize = (maxSize, fallback) => {
29
- if (isFunction(maxSize)) return maxSize;
30
- return parseNumber(maxSize, fallback);
31
- };
32
- const filterFiles = (files, maxSize) => {
33
- const valid = [];
34
- const invalid = [];
35
- files.forEach(file => {
36
- ;
37
- ((isFunction(maxSize) ? maxSize(file) : file.size > maxSize) ? invalid : valid).push(file);
38
- });
39
- return {
40
- valid,
41
- invalid
42
- };
43
- };
44
- const readFileContent = async (file, resultType, createObjectUrl) => {
45
- if (file?.type?.indexOf('image') === 0) {
46
- return createObjectUrl(file);
47
- }
48
- if (resultType === 'file') return undefined;
49
- if (isUndefined(FileReader)) {
50
- return undefined;
51
- }
52
- return await new Promise(resolve => {
53
- const reader = new FileReader();
54
- reader.onload = event => resolve(event.target?.result);
55
- reader.onerror = () => resolve(undefined);
56
- if (resultType === 'dataUrl') {
57
- reader.readAsDataURL(file);
58
- } else {
59
- reader.readAsText(file);
60
- }
61
- });
62
- };
63
- const processBeforeRead = async (file, files, beforeRead) => {
64
- if (!beforeRead) return file;
65
- try {
66
- return await beforeRead(file, files);
67
- } catch {
68
- return false;
69
- }
70
- };
71
16
  const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
72
17
  const {
73
18
  tokensOverride,
@@ -110,11 +55,11 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
110
55
  defaultValue: []
111
56
  });
112
57
  const items = toArray(rawItems ?? []);
113
- const itemsRef = React.useRef(items);
114
- React.useEffect(() => {
58
+ const itemsRef = useRef(items);
59
+ useEffect(() => {
115
60
  itemsRef.current = items;
116
61
  }, [items]);
117
- const normalizeKeyRef = React.useRef(0);
62
+ const normalizeKeyRef = useRef(0);
118
63
  const normalizeItem = (item, keyFallback) => {
119
64
  const key = item.key ?? keyFallback ?? `rv-uploader-${normalizeKeyRef.current++}`;
120
65
  return item.key === key ? item : {
@@ -122,7 +67,7 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
122
67
  key
123
68
  };
124
69
  };
125
- const objectUrlsRef = React.useRef(new Set());
70
+ const objectUrlsRef = useRef(new Set());
126
71
  const createObjectUrl = file => {
127
72
  if (typeof URL === 'undefined' || !isFunction(URL.createObjectURL)) return undefined;
128
73
  const url = URL.createObjectURL(file);
@@ -136,8 +81,8 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
136
81
  URL.revokeObjectURL(url);
137
82
  objectUrlsRef.current.delete(url);
138
83
  };
139
- const prevItemUrlsRef = React.useRef(new Set());
140
- React.useEffect(() => {
84
+ const prevItemUrlsRef = useRef(new Set());
85
+ useEffect(() => {
141
86
  const current = new Set();
142
87
  items.forEach(item => {
143
88
  if (isString(item.url)) {
@@ -151,7 +96,7 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
151
96
  });
152
97
  prevItemUrlsRef.current = current;
153
98
  }, [items]);
154
- React.useEffect(() => {
99
+ useEffect(() => {
155
100
  return () => {
156
101
  objectUrlsRef.current.forEach(url => {
157
102
  if (typeof URL !== 'undefined' && isFunction(URL.revokeObjectURL)) {
@@ -172,14 +117,14 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
172
117
  const maxCountValue = Math.max(0, Math.floor(parseNumber(maxCount, Number.MAX_VALUE)));
173
118
  const maxSizeValue = normalizeMaxSize(maxSize, Number.MAX_VALUE);
174
119
  const sizeValue = parseNumber(previewSize, tokens.size);
175
- const idRef = React.useRef(0);
176
- const [tasks, setTasks] = React.useState([]);
177
- const tasksRef = React.useRef(tasks);
178
- React.useEffect(() => {
120
+ const idRef = useRef(0);
121
+ const [tasks, setTasks] = useState([]);
122
+ const tasksRef = useRef(tasks);
123
+ useEffect(() => {
179
124
  tasksRef.current = tasks;
180
125
  }, [tasks]);
181
- const [previewVisible, setPreviewVisible] = React.useState(false);
182
- const [previewIndex, setPreviewIndex] = React.useState(0);
126
+ const [previewVisible, setPreviewVisible] = useState(false);
127
+ const [previewIndex, setPreviewIndex] = useState(0);
183
128
  const imageFiles = items.filter(item => isImageFile(item, isImageUrl?.(item)));
184
129
  const previewImages = imageFiles.map(item => item.source ?? item.url ?? item.thumbnail).filter(value => value !== null && value !== undefined);
185
130
  const handleWebFiles = async files => {
@@ -252,10 +197,10 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
252
197
  })();
253
198
  });
254
199
  };
255
- const webInputRef = React.useRef(null);
256
- const webHandlerRef = React.useRef(() => {});
200
+ const webInputRef = useRef(null);
201
+ const webHandlerRef = useRef(() => {});
257
202
  webHandlerRef.current = handleWebFiles;
258
- React.useEffect(() => {
203
+ useEffect(() => {
259
204
  if (Platform.OS !== 'web') return;
260
205
  if (typeof document === 'undefined') return;
261
206
  const input = document.createElement('input');
@@ -284,7 +229,7 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
284
229
  }
285
230
  };
286
231
  }, []);
287
- React.useEffect(() => {
232
+ useEffect(() => {
288
233
  const input = webInputRef.current;
289
234
  if (!input) return;
290
235
  input.accept = accept;
@@ -305,17 +250,20 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
305
250
  }
306
251
  if (!onUpload) return;
307
252
  Promise.resolve(onUpload()).then(result => {
308
- const next = toArray(result);
253
+ if (!result) return;
254
+ const next = Array.isArray(result) ? result : [result];
309
255
  if (!next.length) return;
310
256
  updateItems(prev => {
311
257
  const available = maxCountValue > 0 ? Math.max(0, maxCountValue - prev.length) : next.length;
312
258
  if (available <= 0) return prev;
313
259
  return [...prev, ...next.slice(0, available).map(item => normalizeItem(item))];
314
260
  });
315
- }).catch(() => {});
261
+ }).catch(error => {
262
+ if (typeof __DEV__ !== 'undefined' && __DEV__) console.warn('[Uploader] onUpload rejected:', error);
263
+ });
316
264
  };
317
265
  const closeImagePreview = () => setPreviewVisible(false);
318
- React.useImperativeHandle(ref, () => ({
266
+ useImperativeHandle(ref, () => ({
319
267
  chooseFile,
320
268
  closeImagePreview
321
269
  }), [chooseFile]);
@@ -409,10 +357,10 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
409
357
  style: styles.placeholder
410
358
  }, /*#__PURE__*/React.createElement(Text, {
411
359
  style: styles.placeholderIcon
412
- }, "FILE"), name ? /*#__PURE__*/React.createElement(Text, {
360
+ }, "FILE"), name && /*#__PURE__*/React.createElement(Text, {
413
361
  style: placeholderNameStyle,
414
362
  numberOfLines: 1
415
- }, name) : null);
363
+ }, name));
416
364
  const renderDelete = (onPress, testID) => deleteRender ? deleteRender(onPress) : /*#__PURE__*/React.createElement(Pressable, {
417
365
  hitSlop: 8,
418
366
  onPress: onPress,
@@ -438,7 +386,7 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
438
386
  }, previewImage ? /*#__PURE__*/React.createElement(React.Fragment, null, items.map((item, index) => {
439
387
  const isImage = isImageFile(item, isImageUrl?.(item));
440
388
  const source = resolveSource(item, isImage);
441
- const fileName = item.file?.name ?? item.filename ?? item.url ?? '';
389
+ const fileName = typeof item.file?.name === 'string' ? item.file.name : typeof item.url === 'string' ? item.url : typeof item.thumbnail === 'string' ? item.thumbnail : '';
442
390
  return /*#__PURE__*/React.createElement(View, {
443
391
  key: item.key ?? index,
444
392
  style: boxStyle,
@@ -453,12 +401,12 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
453
401
  source: source,
454
402
  style: styles.image,
455
403
  fit: imageFit
456
- }) : renderPlaceholder(fileName), previewCoverRender ? /*#__PURE__*/React.createElement(View, {
404
+ }) : renderPlaceholder(fileName), previewCoverRender && /*#__PURE__*/React.createElement(View, {
457
405
  style: styles.cover,
458
406
  pointerEvents: "none"
459
- }, previewCoverRender(item)) : null, renderStatus(item.status), deletable ? /*#__PURE__*/React.createElement(View, {
407
+ }, previewCoverRender(item)), renderStatus(item.status), deletable && /*#__PURE__*/React.createElement(View, {
460
408
  style: deleteStyle
461
- }, renderDelete(() => handleDelete(item, index), `rv-uploader-delete-${index}`)) : null));
409
+ }, renderDelete(() => handleDelete(item, index), `rv-uploader-delete-${index}`))));
462
410
  }), tasks.map(task => /*#__PURE__*/React.createElement(View, {
463
411
  key: `task-${task.id}`,
464
412
  style: boxStyle,
@@ -471,9 +419,9 @@ const Uploader = /*#__PURE__*/React.forwardRef((props, ref) => {
471
419
  },
472
420
  style: styles.image,
473
421
  fit: imageFit
474
- }) : renderPlaceholder(task.file?.name), renderStatus(task.status), task.status !== 'pending' ? /*#__PURE__*/React.createElement(View, {
422
+ }) : renderPlaceholder(task.file?.name), renderStatus(task.status), task.status !== 'pending' && /*#__PURE__*/React.createElement(View, {
475
423
  style: deleteStyle
476
- }, renderDelete(() => removeTask(task.id), `rv-uploader-task-delete-${task.id}`)) : null)))) : null, canShowUpload ? /*#__PURE__*/React.createElement(Pressable, {
424
+ }, renderDelete(() => removeTask(task.id), `rv-uploader-task-delete-${task.id}`)))))) : null, canShowUpload ? /*#__PURE__*/React.createElement(Pressable, {
477
425
  style: ({
478
426
  pressed
479
427
  }) => [styles.upload, boxStyle, frameStyle, pressed && styles.pressed, uploadDisabled && styles.disabled],
@@ -0,0 +1,60 @@
1
+ import { isImageUrlString, isFunction, isUndefined, parseNumber } from '../../utils';
2
+ export const isImageFile = (item, forced) => {
3
+ if (forced !== undefined) return forced;
4
+ if (item.file?.type) return item.file.type.indexOf('image') === 0;
5
+ return isImageUrlString(item.url ?? item.thumbnail ?? '');
6
+ };
7
+ export const resolveSource = (item, isImage) => {
8
+ if (!isImage) return;
9
+ if (item.source) return item.source;
10
+ const uri = item.thumbnail ?? item.url;
11
+ return uri ? {
12
+ uri
13
+ } : undefined;
14
+ };
15
+ export const normalizeMaxSize = (maxSize, fallback) => {
16
+ if (isFunction(maxSize)) return maxSize;
17
+ return parseNumber(maxSize, fallback);
18
+ };
19
+ export const filterFiles = (files, maxSize) => {
20
+ const valid = [];
21
+ const invalid = [];
22
+ files.forEach(file => {
23
+ ;
24
+ ((isFunction(maxSize) ? maxSize(file) : file.size > maxSize) ? invalid : valid).push(file);
25
+ });
26
+ return {
27
+ valid,
28
+ invalid
29
+ };
30
+ };
31
+ export const readFileContent = async (file, resultType, createObjectUrl) => {
32
+ if (file?.type?.indexOf('image') === 0) {
33
+ return createObjectUrl(file);
34
+ }
35
+ if (resultType === 'file') return undefined;
36
+ if (isUndefined(FileReader)) {
37
+ return undefined;
38
+ }
39
+ return await new Promise(resolve => {
40
+ const reader = new FileReader();
41
+ reader.onload = event => {
42
+ const result = event.target?.result;
43
+ resolve(typeof result === 'string' ? result : undefined);
44
+ };
45
+ reader.onerror = () => resolve(undefined);
46
+ if (resultType === 'dataUrl') {
47
+ reader.readAsDataURL(file);
48
+ } else {
49
+ reader.readAsText(file);
50
+ }
51
+ });
52
+ };
53
+ export const processBeforeRead = async (file, files, beforeRead) => {
54
+ if (!beforeRead) return file;
55
+ try {
56
+ return await beforeRead(file, files);
57
+ } catch {
58
+ return false;
59
+ }
60
+ };
@@ -1,7 +1,7 @@
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 from 'react';
2
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
3
3
  import { Image, Text, View, useWindowDimensions } from 'react-native';
4
- import { isFiniteNumber, isString } from '../../utils/validate';
4
+ import { isFiniteNumber, isString } from '../../utils';
5
5
  import { useWaterMarkTokens } from './tokens';
6
6
  const WaterMark = props => {
7
7
  const {
@@ -32,11 +32,11 @@ const WaterMark = props => {
32
32
  const zIndex = resolveFiniteNumber(zIndexProp, tokens.defaults.zIndex);
33
33
  const fullPage = fullPageProp ?? tokens.defaults.fullPage;
34
34
  const window = useWindowDimensions();
35
- const [layoutSize, setLayoutSize] = React.useState({
35
+ const [layoutSize, setLayoutSize] = useState({
36
36
  width: 0,
37
37
  height: 0
38
38
  });
39
- const lastLayoutRef = React.useRef({
39
+ const lastLayoutRef = useRef({
40
40
  width: 0,
41
41
  height: 0
42
42
  });
@@ -78,7 +78,7 @@ const WaterMark = props => {
78
78
  height: nextHeight
79
79
  });
80
80
  };
81
- React.useEffect(() => {
81
+ useEffect(() => {
82
82
  if (!fullPage) return;
83
83
  if (!isFiniteNumber(window.width) || !isFiniteNumber(window.height)) return;
84
84
  if (window.width <= 0 || window.height <= 0) return;
@@ -87,39 +87,39 @@ const WaterMark = props => {
87
87
  height: window.height
88
88
  });
89
89
  }, [fullPage, onLayoutCalculated, window.width, window.height]);
90
- const zIndexStyle = React.useMemo(() => ({
90
+ const zIndexStyle = useMemo(() => ({
91
91
  zIndex
92
92
  }), [zIndex]);
93
- const cellStyle = React.useMemo(() => ({
93
+ const cellStyle = useMemo(() => ({
94
94
  width: cellWidth,
95
95
  height: cellHeight
96
96
  }), [cellWidth, cellHeight]);
97
- const oddRowStyle = React.useMemo(() => ({
97
+ const oddRowStyle = useMemo(() => ({
98
98
  paddingLeft: cellWidth / 2
99
99
  }), [cellWidth]);
100
- const markStyle = React.useMemo(() => ({
100
+ const markStyle = useMemo(() => ({
101
101
  width: markWidth,
102
102
  height: markHeight,
103
103
  transform: [{
104
104
  rotate: `${resolvedRotate}deg`
105
105
  }]
106
106
  }), [markHeight, markWidth, resolvedRotate]);
107
- const imageStyle = React.useMemo(() => ({
107
+ const imageStyle = useMemo(() => ({
108
108
  width: markWidth,
109
109
  height: markHeight,
110
110
  opacity: resolvedOpacity
111
111
  }), [markHeight, markWidth, resolvedOpacity]);
112
- const textBaseStyle = React.useMemo(() => ({
112
+ const textBaseStyle = useMemo(() => ({
113
113
  fontSize: normalizedFontSize,
114
114
  color: resolvedColor,
115
115
  opacity: resolvedOpacity,
116
116
  fontFamily: font?.family,
117
117
  fontWeight: font?.weight
118
118
  }), [font?.family, font?.weight, normalizedFontSize, resolvedColor, resolvedOpacity]);
119
- const rowIndexes = React.useMemo(() => Array.from({
119
+ const rowIndexes = useMemo(() => Array.from({
120
120
  length: rows
121
121
  }, (_, i) => i), [rows]);
122
- const colIndexes = React.useMemo(() => Array.from({
122
+ const colIndexes = useMemo(() => Array.from({
123
123
  length: cols
124
124
  }, (_, i) => i), [cols]);
125
125
  return /*#__PURE__*/React.createElement(View, _extends({
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { ThemeContext } from './ThemeContext';
3
3
  import { createTokens } from './tokens';
4
4
  import { isObject } from '../utils/validate';
@@ -9,7 +9,7 @@ export const ThemeProvider = ({
9
9
  value,
10
10
  children
11
11
  }) => {
12
- const resolved = React.useMemo(() => {
12
+ const resolved = useMemo(() => {
13
13
  const foundations = isThemeTokens(value) ? value : createTokens(value?.foundations);
14
14
  const components = !isThemeTokens(value) ? value?.components : undefined;
15
15
  return {
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { useMemo } from 'react';
2
2
  import { deepMerge } from '../utils/deepMerge';
3
3
  import { useTheme } from './useTheme';
4
4
  export const createComponentTokensHook = (key, createBaseTokens) => {
@@ -8,7 +8,7 @@ export const createComponentTokensHook = (key, createBaseTokens) => {
8
8
  components
9
9
  } = useTheme();
10
10
  const componentOverrides = components?.[key];
11
- return React.useMemo(() => {
11
+ return useMemo(() => {
12
12
  const base = createBaseTokens(foundations);
13
13
  const merged = componentOverrides && overrides ? deepMerge(componentOverrides, overrides) : componentOverrides ?? overrides;
14
14
  return merged ? deepMerge(base, merged) : base;
@@ -84,6 +84,7 @@ export const defaultFoundations = {
84
84
  none: 0,
85
85
  xxs: 2,
86
86
  xs: 4,
87
+ ssm: 6,
87
88
  sm: 8,
88
89
  md: 12,
89
90
  lg: 16,
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { useContext } from 'react';
2
2
  import { ThemeContext } from './ThemeContext';
3
- export const useTheme = () => React.useContext(ThemeContext);
3
+ export const useTheme = () => useContext(ThemeContext);
@@ -1,17 +1,33 @@
1
- import * as React from 'react';
1
+ import { useMemo, useRef } from 'react';
2
2
  import { useListBox } from '@react-native-aria/listbox';
3
3
  import { useListState } from '@react-stately/list';
4
4
  export const useAriaListBox = props => {
5
- const ref = React.useRef(null);
6
- const state = useListState(props);
5
+ const ref = useRef(null);
6
+ const {
7
+ label,
8
+ ...rest
9
+ } = props;
10
+ const resolvedProps = useMemo(() => {
11
+ if (label == null) return rest;
12
+ const ariaLabel = typeof label === 'string' ? label : undefined;
13
+ return {
14
+ ...rest,
15
+ ...(ariaLabel ? {
16
+ 'aria-label': ariaLabel
17
+ } : null)
18
+ };
19
+ }, [label, rest]);
20
+ const state = useListState(resolvedProps);
7
21
  const {
8
22
  listBoxProps,
9
23
  labelProps
10
- } = useListBox(props, state, ref);
24
+ } = useListBox(resolvedProps, state, ref);
25
+ const resolvedListBoxProps = useMemo(() => listBoxProps, [listBoxProps]);
26
+ const resolvedLabelProps = useMemo(() => labelProps, [labelProps]);
11
27
  return {
12
28
  state,
13
- listBoxProps,
14
- labelProps,
29
+ listBoxProps: resolvedListBoxProps,
30
+ labelProps: resolvedLabelProps,
15
31
  ref
16
32
  };
17
33
  };
@@ -1,5 +1,6 @@
1
- import * as React from 'react';
1
+ import { useMemo, useRef } from 'react';
2
2
  import { useOverlay } from '@react-native-aria/overlays';
3
+ import { mergeProps } from '@react-native-aria/utils';
3
4
  export const useAriaOverlay = ({
4
5
  isOpen,
5
6
  onClose,
@@ -7,7 +8,7 @@ export const useAriaOverlay = ({
7
8
  shouldCloseOnInteractOutside,
8
9
  overlayProps: overlayPropOverrides
9
10
  }) => {
10
- const overlayRef = React.useRef(null);
11
+ const overlayRef = useRef(null);
11
12
  const {
12
13
  overlayProps
13
14
  } = useOverlay({
@@ -16,11 +17,9 @@ export const useAriaOverlay = ({
16
17
  isDismissable,
17
18
  shouldCloseOnInteractOutside
18
19
  }, overlayRef);
20
+ const resolvedOverlayProps = useMemo(() => mergeProps(overlayProps ?? {}, overlayPropOverrides ?? {}), [overlayPropOverrides, overlayProps]);
19
21
  return {
20
22
  overlayRef,
21
- overlayProps: {
22
- ...(overlayProps ?? {}),
23
- ...(overlayPropOverrides ?? {})
24
- }
23
+ overlayProps: resolvedOverlayProps
25
24
  };
26
25
  };
@@ -1,10 +1,18 @@
1
+ import { useMemo } from 'react';
2
+ import { Platform } from 'react-native';
1
3
  import { useFocus, useFocusRing } from '@react-native-aria/focus';
2
4
  import { useHover, usePress } from '@react-native-aria/interactions';
3
5
  import { mergeProps } from '@react-native-aria/utils';
6
+ const mergePropsCompat = (...args) => {
7
+ if (typeof mergeProps === 'function') {
8
+ return mergeProps(...args);
9
+ }
10
+ return Object.assign({}, ...args);
11
+ };
4
12
  export const useAriaPress = ({
5
13
  disabled = false,
6
- allowHover = true,
7
- allowFocus = true,
14
+ allowHover = Platform.OS === 'web',
15
+ allowFocus = Platform.OS === 'web',
8
16
  extraProps,
9
17
  ...pressEvents
10
18
  } = {}) => {
@@ -21,36 +29,42 @@ export const useAriaPress = ({
21
29
  } = useHover({
22
30
  isDisabled: disabled || !allowHover
23
31
  });
32
+ const useFocusCompat = useFocus;
24
33
  const {
25
34
  isFocused,
26
35
  focusProps
27
- } = useFocus({
36
+ } = useFocusCompat({
28
37
  isDisabled: disabled
29
38
  });
39
+ const useFocusRingCompat = useFocusRing;
30
40
  const {
31
41
  focusProps: focusRingProps,
32
42
  isFocusVisible
33
- } = useFocusRing({
43
+ } = useFocusRingCompat({
34
44
  isDisabled: disabled
35
45
  });
36
- let interactionProps = pressProps;
37
- if (allowHover) {
38
- interactionProps = mergeProps(interactionProps, hoverProps);
39
- }
40
- if (allowFocus && !disabled) {
41
- interactionProps = mergeProps(interactionProps, focusProps, focusRingProps);
42
- }
43
- if (extraProps) {
44
- interactionProps = mergeProps(interactionProps, extraProps);
45
- }
46
+ const interactionProps = useMemo(() => {
47
+ let merged = pressProps;
48
+ if (allowHover) {
49
+ merged = mergePropsCompat(merged, hoverProps);
50
+ }
51
+ if (allowFocus && !disabled) {
52
+ merged = mergePropsCompat(merged, focusProps, focusRingProps);
53
+ }
54
+ if (extraProps) {
55
+ merged = mergePropsCompat(merged, extraProps);
56
+ }
57
+ return merged;
58
+ }, [allowFocus, allowHover, disabled, extraProps, focusProps, focusRingProps, hoverProps, pressProps]);
59
+ const states = useMemo(() => ({
60
+ hovered: !!isHovered,
61
+ pressed: !!isPressed,
62
+ focused: !!isFocused,
63
+ focusVisible: !!isFocusVisible,
64
+ disabled: !!disabled
65
+ }), [disabled, isFocusVisible, isFocused, isHovered, isPressed]);
46
66
  return {
47
67
  interactionProps,
48
- states: {
49
- hovered: !!isHovered,
50
- pressed: !!isPressed,
51
- focused: !!isFocused,
52
- focusVisible: !!isFocusVisible,
53
- disabled: !!disabled
54
- }
68
+ states
55
69
  };
56
70
  };
@@ -1,15 +1,16 @@
1
- import * as React from 'react';
1
+ import { useMemo, useRef } from 'react';
2
2
  import { useToggle } from '@react-native-aria/toggle';
3
3
  import { useToggleState } from '@react-stately/toggle';
4
4
  export const useAriaToggle = props => {
5
- const inputRef = props.inputRef ?? React.useRef(null);
5
+ const inputRef = props.inputRef ?? useRef(null);
6
6
  const state = useToggleState(props);
7
7
  const {
8
8
  inputProps
9
9
  } = useToggle(props, state, inputRef);
10
+ const resolvedInputProps = useMemo(() => inputProps, [inputProps]);
10
11
  return {
11
12
  state,
12
- inputProps,
13
+ inputProps: resolvedInputProps,
13
14
  inputRef
14
15
  };
15
16
  };