react-native-system-ui 0.0.2 → 0.0.4

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 (565) hide show
  1. package/README.md +22 -6
  2. package/dist/cjs/{area → components/area}/Area.js +4 -10
  3. package/dist/cjs/{avatar → components/avatar}/Avatar.js +3 -3
  4. package/dist/cjs/{avatar → components/avatar}/tokens.js +2 -1
  5. package/dist/cjs/{badge → components/badge}/Badge.js +30 -38
  6. package/dist/cjs/{button → components/button}/Button.js +13 -13
  7. package/dist/cjs/{button → components/button}/ButtonGroup.js +8 -8
  8. package/dist/cjs/{calendar → components/calendar}/Calendar.js +10 -10
  9. package/dist/cjs/{cascader → components/cascader}/Cascader.js +4 -4
  10. package/dist/cjs/{cascader → components/cascader}/useCascaderExtend.js +5 -15
  11. package/dist/cjs/{checkbox → components/checkbox}/CheckboxGroup.js +2 -2
  12. package/dist/cjs/{circle → components/circle}/Circle.js +2 -2
  13. package/dist/cjs/{collapse → components/collapse}/Collapse.js +13 -16
  14. package/dist/cjs/{config-provider → components/config-provider}/ConfigProvider.js +1 -1
  15. package/dist/cjs/{datetime-picker → components/datetime-picker}/DatetimePicker.js +7 -7
  16. package/dist/cjs/{dialog → components/dialog}/Dialog.js +4 -6
  17. package/dist/cjs/{dialog → components/dialog}/tokens.js +2 -1
  18. package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +53 -52
  19. package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +19 -23
  20. package/dist/cjs/{dropdown-menu → components/dropdown-menu}/tokens.js +20 -3
  21. package/dist/cjs/{field → components/field}/Field.js +6 -6
  22. package/dist/cjs/{form → components/form}/Form.js +5 -9
  23. package/dist/cjs/{grid → components/grid}/Grid.js +4 -4
  24. package/dist/cjs/{image → components/image}/Image.js +19 -15
  25. package/dist/cjs/{image-preview → components/image-preview}/ImagePreview.js +62 -60
  26. package/dist/cjs/{image-preview → components/image-preview}/tokens.js +21 -2
  27. package/dist/cjs/{index-bar → components/index-bar}/IndexAnchor.js +7 -6
  28. package/dist/cjs/{index-bar → components/index-bar}/IndexBar.js +40 -45
  29. package/dist/cjs/components/index-bar/tokens.js +45 -0
  30. package/dist/cjs/components/index.js +854 -0
  31. package/dist/cjs/{input → components/input}/Input.js +7 -10
  32. package/dist/cjs/{nav-bar → components/nav-bar}/NavBar.js +2 -1
  33. package/dist/cjs/{notice-bar → components/notice-bar}/NoticeBar.js +69 -95
  34. package/dist/cjs/{notify → components/notify}/Notify.js +65 -49
  35. package/dist/cjs/{notify → components/notify}/defaults.js +2 -2
  36. package/dist/cjs/{notify → components/notify}/imperative.js +2 -2
  37. package/dist/cjs/{notify → components/notify}/tokens.js +5 -4
  38. package/dist/cjs/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +15 -16
  39. package/dist/cjs/{number-keyboard → components/number-keyboard}/tokens.js +4 -2
  40. package/dist/cjs/{overlay → components/overlay}/useOverlayStack.js +5 -1
  41. package/dist/cjs/{pagination → components/pagination}/Pagination.js +2 -2
  42. package/dist/cjs/{password-input → components/password-input}/PasswordInput.js +35 -27
  43. package/dist/cjs/{picker → components/picker}/Picker.js +11 -12
  44. package/dist/cjs/{picker → components/picker}/WheelPicker.js +9 -9
  45. package/dist/cjs/{picker → components/picker}/tokens.js +4 -2
  46. package/dist/cjs/{popup → components/popup}/Popup.js +48 -75
  47. package/dist/cjs/{popup → components/popup}/tokens.js +2 -1
  48. package/dist/cjs/{portal → components/portal}/Portal.js +5 -0
  49. package/dist/cjs/{portal → components/portal}/PortalHost.js +1 -13
  50. package/dist/cjs/{pull-refresh → components/pull-refresh}/PullRefresh.js +46 -27
  51. package/dist/cjs/{radio → components/radio}/RadioGroup.js +2 -2
  52. package/dist/cjs/components/safe-area-view/SafeAreaView.js +63 -0
  53. package/dist/cjs/components/safe-area-view/index.js +12 -0
  54. package/dist/cjs/{search → components/search}/Search.js +52 -67
  55. package/dist/cjs/{search → components/search}/tokens.js +2 -1
  56. package/dist/cjs/{selector → components/selector}/Selector.js +3 -3
  57. package/dist/cjs/{share-sheet → components/share-sheet}/ShareSheet.js +64 -62
  58. package/dist/cjs/{share-sheet → components/share-sheet}/tokens.js +15 -2
  59. package/dist/cjs/{sidebar → components/sidebar}/Sidebar.js +15 -19
  60. package/dist/cjs/{sidebar → components/sidebar}/SidebarItem.js +0 -3
  61. package/dist/cjs/{skeleton → components/skeleton}/Skeleton.js +44 -56
  62. package/dist/cjs/{slider → components/slider}/Slider.js +55 -61
  63. package/dist/cjs/{stepper → components/stepper}/Stepper.js +13 -16
  64. package/dist/cjs/{stepper → components/stepper}/tokens.js +4 -2
  65. package/dist/cjs/{swiper → components/swiper}/Swiper.js +21 -42
  66. package/dist/cjs/{swiper → components/swiper}/useSwiperWeb.js +15 -18
  67. package/dist/cjs/{tabbar → components/tabbar}/Tabbar.js +10 -12
  68. package/dist/cjs/{tabbar → components/tabbar}/TabbarItem.js +0 -3
  69. package/dist/cjs/{tabs → components/tabs}/Tabs.js +33 -54
  70. package/dist/cjs/{tabs → components/tabs}/tokens.js +9 -1
  71. package/dist/cjs/{tabs → components/tabs}/useTabsScroll.js +4 -0
  72. package/dist/cjs/{toast → components/toast}/Toast.js +15 -16
  73. package/dist/cjs/{toast → components/toast}/tokens.js +5 -1
  74. package/dist/cjs/components/types.js +1 -0
  75. package/dist/cjs/{typography → components/typography}/Typography.js +17 -30
  76. package/dist/cjs/{uploader → components/uploader}/Uploader.js +49 -46
  77. package/dist/cjs/{uploader → components/uploader}/tokens.js +27 -1
  78. package/dist/cjs/{water-mark → components/water-mark}/WaterMark.js +16 -16
  79. package/dist/cjs/design-system/ThemeContext.js +19 -0
  80. package/dist/cjs/design-system/ThemeProvider.js +37 -0
  81. package/dist/cjs/design-system/createComponentTokensHook.js +30 -0
  82. package/dist/cjs/design-system/index.js +59 -0
  83. package/dist/cjs/design-system/mergeTokensOverride.js +12 -0
  84. package/dist/cjs/design-system/presets.js +147 -0
  85. package/dist/cjs/design-system/tokens.js +144 -0
  86. package/dist/cjs/design-system/useTheme.js +16 -0
  87. package/dist/cjs/hooks/aria/index.js +49 -0
  88. package/dist/cjs/hooks/aria/useAriaListBox.js +58 -0
  89. package/dist/cjs/hooks/aria/useAriaOverlay.js +50 -0
  90. package/dist/cjs/hooks/aria/useAriaPress.js +107 -0
  91. package/dist/cjs/hooks/aria/useAriaToggle.js +41 -0
  92. package/dist/cjs/hooks/gesture/index.js +16 -0
  93. package/dist/cjs/hooks/gesture/useGestureScroll.js +131 -0
  94. package/dist/cjs/hooks/index.js +84 -0
  95. package/dist/cjs/hooks/useControllableValue.js +52 -0
  96. package/dist/cjs/hooks/useCountDown.js +107 -0
  97. package/dist/cjs/hooks/useHairline.js +62 -0
  98. package/dist/cjs/hooks/usePresenceAnimation.js +70 -0
  99. package/dist/cjs/hooks/useSafeAreaPadding.js +41 -0
  100. package/dist/cjs/index.js +33 -499
  101. package/dist/cjs/platform/animation.js +14 -0
  102. package/dist/cjs/platform/history.js +14 -0
  103. package/dist/cjs/platform/index.js +60 -0
  104. package/dist/cjs/platform/measure.js +55 -0
  105. package/dist/cjs/platform/runtime.js +19 -0
  106. package/dist/cjs/platform/scrollLock.js +24 -0
  107. package/dist/cjs/utils/array.js +12 -0
  108. package/dist/cjs/utils/color.js +52 -0
  109. package/dist/cjs/utils/createPlatformShadow.js +63 -0
  110. package/dist/cjs/utils/date.js +75 -0
  111. package/dist/cjs/utils/deepMerge.js +37 -0
  112. package/dist/cjs/utils/hairline.js +103 -0
  113. package/dist/cjs/utils/index.js +115 -0
  114. package/dist/cjs/utils/number.js +73 -0
  115. package/dist/cjs/utils/promise.js +9 -0
  116. package/dist/cjs/utils/string.js +39 -0
  117. package/dist/cjs/utils/validate.js +41 -0
  118. package/dist/es/{area → components/area}/Area.js +5 -11
  119. package/dist/es/{avatar → components/avatar}/Avatar.js +3 -3
  120. package/dist/es/{avatar → components/avatar}/tokens.js +2 -1
  121. package/dist/es/{badge → components/badge}/Badge.js +31 -39
  122. package/dist/es/{button → components/button}/Button.js +14 -14
  123. package/dist/es/{button → components/button}/ButtonGroup.js +7 -7
  124. package/dist/es/{calendar → components/calendar}/Calendar.js +11 -11
  125. package/dist/es/{cascader → components/cascader}/Cascader.js +5 -5
  126. package/dist/es/{cascader → components/cascader}/useCascaderExtend.js +5 -9
  127. package/dist/es/{checkbox → components/checkbox}/CheckboxGroup.js +3 -3
  128. package/dist/es/{circle → components/circle}/Circle.js +3 -3
  129. package/dist/es/{collapse → components/collapse}/Collapse.js +14 -17
  130. package/dist/es/{config-provider → components/config-provider}/ConfigProvider.js +2 -2
  131. package/dist/es/{datetime-picker → components/datetime-picker}/DatetimePicker.js +8 -8
  132. package/dist/es/{dialog → components/dialog}/Dialog.js +4 -6
  133. package/dist/es/{dialog → components/dialog}/tokens.js +2 -1
  134. package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +53 -52
  135. package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +20 -24
  136. package/dist/es/{dropdown-menu → components/dropdown-menu}/tokens.js +20 -3
  137. package/dist/es/{field → components/field}/Field.js +7 -7
  138. package/dist/es/{field → components/field}/index.js +1 -1
  139. package/dist/es/{form → components/form}/Form.js +6 -10
  140. package/dist/es/{grid → components/grid}/Grid.js +3 -3
  141. package/dist/es/{image → components/image}/Image.js +20 -16
  142. package/dist/es/{image-preview → components/image-preview}/ImagePreview.js +63 -61
  143. package/dist/es/components/image-preview/tokens.js +35 -0
  144. package/dist/es/{index-bar → components/index-bar}/IndexAnchor.js +7 -6
  145. package/dist/es/{index-bar → components/index-bar}/IndexBar.js +41 -46
  146. package/dist/es/components/index-bar/tokens.js +39 -0
  147. package/dist/es/components/index.js +123 -0
  148. package/dist/es/{input → components/input}/Input.js +8 -11
  149. package/dist/es/{nav-bar → components/nav-bar}/NavBar.js +2 -1
  150. package/dist/es/{notice-bar → components/notice-bar}/NoticeBar.js +70 -96
  151. package/dist/es/{notify → components/notify}/Notify.js +68 -52
  152. package/dist/es/{notify → components/notify}/defaults.js +2 -2
  153. package/dist/es/{notify → components/notify}/imperative.js +2 -2
  154. package/dist/es/{notify → components/notify}/tokens.js +5 -4
  155. package/dist/es/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +16 -17
  156. package/dist/es/{number-keyboard → components/number-keyboard}/tokens.js +4 -2
  157. package/dist/es/{overlay → components/overlay}/useOverlayStack.js +6 -2
  158. package/dist/es/{pagination → components/pagination}/Pagination.js +3 -3
  159. package/dist/es/{password-input → components/password-input}/PasswordInput.js +36 -28
  160. package/dist/es/{picker → components/picker}/Picker.js +12 -13
  161. package/dist/es/{picker → components/picker}/WheelPicker.js +10 -10
  162. package/dist/es/{picker → components/picker}/tokens.js +4 -2
  163. package/dist/es/{popup → components/popup}/Popup.js +48 -75
  164. package/dist/es/{popup → components/popup}/tokens.js +2 -1
  165. package/dist/es/{portal → components/portal}/Portal.js +5 -0
  166. package/dist/es/{portal → components/portal}/PortalHost.js +1 -13
  167. package/dist/es/{pull-refresh → components/pull-refresh}/PullRefresh.js +47 -28
  168. package/dist/es/{radio → components/radio}/RadioGroup.js +3 -3
  169. package/dist/es/components/safe-area-view/SafeAreaView.js +43 -0
  170. package/dist/es/components/safe-area-view/index.js +1 -0
  171. package/dist/es/{search → components/search}/Search.js +53 -68
  172. package/dist/es/{search → components/search}/tokens.js +2 -1
  173. package/dist/es/{selector → components/selector}/Selector.js +4 -4
  174. package/dist/es/{share-sheet → components/share-sheet}/ShareSheet.js +65 -63
  175. package/dist/es/{share-sheet → components/share-sheet}/tokens.js +15 -2
  176. package/dist/es/{sidebar → components/sidebar}/Sidebar.js +14 -18
  177. package/dist/es/{sidebar → components/sidebar}/SidebarItem.js +0 -3
  178. package/dist/es/{skeleton → components/skeleton}/Skeleton.js +45 -57
  179. package/dist/es/{slider → components/slider}/Slider.js +56 -62
  180. package/dist/es/{stepper → components/stepper}/Stepper.js +14 -17
  181. package/dist/es/{stepper → components/stepper}/tokens.js +4 -2
  182. package/dist/es/{swiper → components/swiper}/Swiper.js +22 -43
  183. package/dist/es/{swiper → components/swiper}/useSwiperWeb.js +16 -19
  184. package/dist/es/{tabbar → components/tabbar}/Tabbar.js +11 -13
  185. package/dist/es/{tabbar → components/tabbar}/TabbarItem.js +0 -3
  186. package/dist/es/{tabs → components/tabs}/Tabs.js +34 -55
  187. package/dist/es/{tabs → components/tabs}/tokens.js +9 -1
  188. package/dist/es/{tabs → components/tabs}/useTabsScroll.js +4 -0
  189. package/dist/es/{toast → components/toast}/Toast.js +14 -15
  190. package/dist/es/{toast → components/toast}/tokens.js +5 -1
  191. package/dist/es/components/types.js +1 -0
  192. package/dist/es/{typography → components/typography}/Typography.js +18 -31
  193. package/dist/es/{uploader → components/uploader}/Uploader.js +49 -46
  194. package/dist/es/{uploader → components/uploader}/tokens.js +27 -1
  195. package/dist/es/{water-mark → components/water-mark}/WaterMark.js +17 -17
  196. package/dist/es/design-system/ThemeContext.js +6 -0
  197. package/dist/es/design-system/ThemeProvider.js +23 -0
  198. package/dist/es/design-system/createComponentTokensHook.js +17 -0
  199. package/dist/es/design-system/index.js +6 -0
  200. package/dist/es/design-system/mergeTokensOverride.js +5 -0
  201. package/dist/es/design-system/presets.js +140 -0
  202. package/dist/es/design-system/tokens.js +136 -0
  203. package/dist/es/design-system/useTheme.js +3 -0
  204. package/dist/es/hooks/aria/index.js +5 -0
  205. package/dist/es/hooks/aria/useAriaListBox.js +33 -0
  206. package/dist/es/hooks/aria/useAriaOverlay.js +25 -0
  207. package/dist/es/hooks/aria/useAriaPress.js +70 -0
  208. package/dist/es/hooks/aria/useAriaToggle.js +16 -0
  209. package/dist/es/hooks/gesture/index.js +2 -0
  210. package/dist/es/hooks/gesture/useGestureScroll.js +112 -0
  211. package/dist/es/hooks/index.js +7 -0
  212. package/dist/es/hooks/useControllableValue.js +40 -0
  213. package/dist/es/hooks/useCountDown.js +95 -0
  214. package/dist/es/hooks/useHairline.js +42 -0
  215. package/dist/es/hooks/usePresenceAnimation.js +51 -0
  216. package/dist/es/hooks/useSafeAreaPadding.js +23 -0
  217. package/dist/es/index.js +4 -73
  218. package/dist/es/platform/animation.js +2 -0
  219. package/dist/es/platform/history.js +7 -0
  220. package/dist/es/platform/index.js +6 -0
  221. package/dist/es/platform/measure.js +48 -0
  222. package/dist/es/platform/runtime.js +4 -0
  223. package/dist/es/platform/scrollLock.js +16 -0
  224. package/dist/es/utils/array.js +5 -0
  225. package/dist/es/utils/color.js +42 -0
  226. package/dist/es/utils/createPlatformShadow.js +50 -0
  227. package/dist/es/utils/date.js +63 -0
  228. package/dist/es/utils/deepMerge.js +31 -0
  229. package/dist/es/utils/hairline.js +84 -0
  230. package/dist/es/utils/index.js +12 -0
  231. package/dist/es/utils/number.js +56 -0
  232. package/dist/es/utils/promise.js +2 -0
  233. package/dist/es/utils/string.js +30 -0
  234. package/dist/es/utils/validate.js +15 -0
  235. package/dist/types/components/dialog/tokens.d.ts +1 -0
  236. package/dist/types/components/dropdown-menu/tokens.d.ts +17 -0
  237. package/dist/types/components/field/index.d.ts +1 -1
  238. package/dist/types/components/image-preview/tokens.d.ts +16 -0
  239. package/dist/types/components/index-bar/tokens.d.ts +13 -4
  240. package/dist/types/components/index.d.ts +104 -0
  241. package/dist/types/components/notify/defaults.d.ts +2 -2
  242. package/dist/types/components/number-keyboard/tokens.d.ts +1 -0
  243. package/dist/types/components/password-input/PasswordInput.d.ts +4 -0
  244. package/dist/types/components/picker/tokens.d.ts +2 -0
  245. package/dist/types/components/popup/tokens.d.ts +1 -0
  246. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +10 -0
  247. package/dist/types/components/safe-area-view/index.d.ts +2 -0
  248. package/dist/types/components/search/tokens.d.ts +1 -0
  249. package/dist/types/components/share-sheet/tokens.d.ts +13 -0
  250. package/dist/types/components/stepper/tokens.d.ts +2 -0
  251. package/dist/types/components/tabs/tokens.d.ts +8 -0
  252. package/dist/types/components/toast/tokens.d.ts +4 -0
  253. package/dist/types/components/uploader/tokens.d.ts +25 -0
  254. package/dist/types/hooks/index.d.ts +1 -0
  255. package/dist/types/hooks/usePresenceAnimation.d.ts +6 -1
  256. package/dist/types/hooks/useSafeAreaPadding.d.ts +13 -0
  257. package/package.json +290 -274
  258. package/dist/cjs/index-bar/tokens.js +0 -36
  259. package/dist/cjs/safe-area/SafeAreaClipper.js +0 -114
  260. package/dist/cjs/safe-area/index.js +0 -63
  261. package/dist/es/image-preview/tokens.js +0 -16
  262. package/dist/es/index-bar/tokens.js +0 -30
  263. package/dist/es/safe-area/SafeAreaClipper.js +0 -86
  264. package/dist/es/safe-area/index.js +0 -25
  265. package/dist/types/components/safe-area/SafeAreaClipper.d.ts +0 -47
  266. package/dist/types/components/safe-area/index.d.ts +0 -9
  267. /package/dist/cjs/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
  268. /package/dist/cjs/{action-sheet → components/action-sheet}/index.js +0 -0
  269. /package/dist/cjs/{action-sheet → components/action-sheet}/tokens.js +0 -0
  270. /package/dist/cjs/{area → components/area}/index.js +0 -0
  271. /package/dist/cjs/{area → components/area}/utils.js +0 -0
  272. /package/dist/cjs/{avatar → components/avatar}/index.js +0 -0
  273. /package/dist/cjs/{badge → components/badge}/index.js +0 -0
  274. /package/dist/cjs/{badge → components/badge}/tokens.js +0 -0
  275. /package/dist/cjs/{button → components/button}/ButtonContext.js +0 -0
  276. /package/dist/cjs/{button → components/button}/index.js +0 -0
  277. /package/dist/cjs/{button → components/button}/tokens.js +0 -0
  278. /package/dist/cjs/{calendar → components/calendar}/index.js +0 -0
  279. /package/dist/cjs/{calendar → components/calendar}/tokens.js +0 -0
  280. /package/dist/cjs/{cascader → components/cascader}/index.js +0 -0
  281. /package/dist/cjs/{cascader → components/cascader}/tokens.js +0 -0
  282. /package/dist/cjs/{cascader → components/cascader}/utils.js +0 -0
  283. /package/dist/cjs/{cell → components/cell}/Cell.js +0 -0
  284. /package/dist/cjs/{cell → components/cell}/CellContext.js +0 -0
  285. /package/dist/cjs/{cell → components/cell}/CellGroup.js +0 -0
  286. /package/dist/cjs/{cell → components/cell}/index.js +0 -0
  287. /package/dist/cjs/{cell → components/cell}/tokens.js +0 -0
  288. /package/dist/cjs/{checkbox → components/checkbox}/Checkbox.js +0 -0
  289. /package/dist/cjs/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
  290. /package/dist/cjs/{checkbox → components/checkbox}/index.js +0 -0
  291. /package/dist/cjs/{checkbox → components/checkbox}/tokens.js +0 -0
  292. /package/dist/cjs/{circle → components/circle}/index.js +0 -0
  293. /package/dist/cjs/{circle → components/circle}/tokens.js +0 -0
  294. /package/dist/cjs/{collapse → components/collapse}/index.js +0 -0
  295. /package/dist/cjs/{collapse → components/collapse}/tokens.js +0 -0
  296. /package/dist/cjs/{config-provider → components/config-provider}/LocaleContext.js +0 -0
  297. /package/dist/cjs/{config-provider → components/config-provider}/index.js +0 -0
  298. /package/dist/cjs/{config-provider → components/config-provider}/locale/base.js +0 -0
  299. /package/dist/cjs/{config-provider → components/config-provider}/locale/en-US.js +0 -0
  300. /package/dist/cjs/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
  301. /package/dist/cjs/{config-provider → components/config-provider}/useLocale.js +0 -0
  302. /package/dist/cjs/{count-down → components/count-down}/CountDown.js +0 -0
  303. /package/dist/cjs/{count-down → components/count-down}/index.js +0 -0
  304. /package/dist/cjs/{count-down → components/count-down}/tokens.js +0 -0
  305. /package/dist/cjs/{datetime-picker → components/datetime-picker}/index.js +0 -0
  306. /package/dist/cjs/{dialog → components/dialog}/imperative.js +0 -0
  307. /package/dist/cjs/{dialog → components/dialog}/index.js +0 -0
  308. /package/dist/cjs/{divider → components/divider}/Divider.js +0 -0
  309. /package/dist/cjs/{divider → components/divider}/index.js +0 -0
  310. /package/dist/cjs/{divider → components/divider}/tokens.js +0 -0
  311. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
  312. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
  313. /package/dist/cjs/{empty → components/empty}/Empty.js +0 -0
  314. /package/dist/cjs/{empty → components/empty}/index.js +0 -0
  315. /package/dist/cjs/{empty → components/empty}/tokens.js +0 -0
  316. /package/dist/cjs/{field → components/field}/index.js +0 -0
  317. /package/dist/cjs/{field → components/field}/tokens.js +0 -0
  318. /package/dist/cjs/{field → components/field}/utils.js +0 -0
  319. /package/dist/cjs/{flex → components/flex}/Flex.js +0 -0
  320. /package/dist/cjs/{flex → components/flex}/FlexContext.js +0 -0
  321. /package/dist/cjs/{flex → components/flex}/FlexItem.js +0 -0
  322. /package/dist/cjs/{flex → components/flex}/index.js +0 -0
  323. /package/dist/cjs/{flex → components/flex}/tokens.js +0 -0
  324. /package/dist/cjs/{form → components/form}/FormContext.js +0 -0
  325. /package/dist/cjs/{form → components/form}/FormItem.js +0 -0
  326. /package/dist/cjs/{form → components/form}/FormList.js +0 -0
  327. /package/dist/cjs/{form → components/form}/index.js +0 -0
  328. /package/dist/cjs/{form → components/form}/utils.js +0 -0
  329. /package/dist/cjs/{grid → components/grid}/GridContext.js +0 -0
  330. /package/dist/cjs/{grid → components/grid}/GridItem.js +0 -0
  331. /package/dist/cjs/{grid → components/grid}/index.js +0 -0
  332. /package/dist/cjs/{grid → components/grid}/tokens.js +0 -0
  333. /package/dist/cjs/{image → components/image}/index.js +0 -0
  334. /package/dist/cjs/{image → components/image}/tokens.js +0 -0
  335. /package/dist/cjs/{image-preview → components/image-preview}/imperative.js +0 -0
  336. /package/dist/cjs/{image-preview → components/image-preview}/index.js +0 -0
  337. /package/dist/cjs/{index-bar → components/index-bar}/index.js +0 -0
  338. /package/dist/cjs/{input → components/input}/index.js +0 -0
  339. /package/dist/cjs/{input → components/input}/tokens.js +0 -0
  340. /package/dist/cjs/{list → components/list}/List.js +0 -0
  341. /package/dist/cjs/{list → components/list}/index.js +0 -0
  342. /package/dist/cjs/{list → components/list}/tokens.js +0 -0
  343. /package/dist/cjs/{loading → components/loading}/Loading.js +0 -0
  344. /package/dist/cjs/{loading → components/loading}/index.js +0 -0
  345. /package/dist/cjs/{loading → components/loading}/tokens.js +0 -0
  346. /package/dist/cjs/{nav-bar → components/nav-bar}/index.js +0 -0
  347. /package/dist/cjs/{nav-bar → components/nav-bar}/tokens.js +0 -0
  348. /package/dist/cjs/{notice-bar → components/notice-bar}/index.js +0 -0
  349. /package/dist/cjs/{notice-bar → components/notice-bar}/tokens.js +0 -0
  350. /package/dist/cjs/{notify → components/notify}/index.js +0 -0
  351. /package/dist/cjs/{number-keyboard → components/number-keyboard}/index.js +0 -0
  352. /package/dist/cjs/{overlay → components/overlay}/Overlay.js +0 -0
  353. /package/dist/cjs/{overlay → components/overlay}/OverlayStackStore.js +0 -0
  354. /package/dist/cjs/{overlay → components/overlay}/index.js +0 -0
  355. /package/dist/cjs/{overlay → components/overlay}/tokens.js +0 -0
  356. /package/dist/cjs/{pagination → components/pagination}/index.js +0 -0
  357. /package/dist/cjs/{pagination → components/pagination}/tokens.js +0 -0
  358. /package/dist/cjs/{password-input → components/password-input}/index.js +0 -0
  359. /package/dist/cjs/{picker → components/picker}/index.js +0 -0
  360. /package/dist/cjs/{picker → components/picker}/utils.js +0 -0
  361. /package/dist/cjs/{popup → components/popup}/index.js +0 -0
  362. /package/dist/cjs/{portal → components/portal}/PortalContext.js +0 -0
  363. /package/dist/cjs/{portal → components/portal}/index.js +0 -0
  364. /package/dist/cjs/{progress → components/progress}/Progress.js +0 -0
  365. /package/dist/cjs/{progress → components/progress}/index.js +0 -0
  366. /package/dist/cjs/{progress → components/progress}/tokens.js +0 -0
  367. /package/dist/cjs/{pull-refresh → components/pull-refresh}/index.js +0 -0
  368. /package/dist/cjs/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
  369. /package/dist/cjs/{radio → components/radio}/Radio.js +0 -0
  370. /package/dist/cjs/{radio → components/radio}/RadioContext.js +0 -0
  371. /package/dist/cjs/{radio → components/radio}/index.js +0 -0
  372. /package/dist/cjs/{radio → components/radio}/tokens.js +0 -0
  373. /package/dist/cjs/{rate → components/rate}/Rate.js +0 -0
  374. /package/dist/cjs/{rate → components/rate}/index.js +0 -0
  375. /package/dist/cjs/{rate → components/rate}/tokens.js +0 -0
  376. /package/dist/cjs/{search → components/search}/index.js +0 -0
  377. /package/dist/cjs/{selector → components/selector}/index.js +0 -0
  378. /package/dist/cjs/{selector → components/selector}/tokens.js +0 -0
  379. /package/dist/cjs/{share-sheet → components/share-sheet}/index.js +0 -0
  380. /package/dist/cjs/{sidebar → components/sidebar}/SidebarContext.js +0 -0
  381. /package/dist/cjs/{sidebar → components/sidebar}/index.js +0 -0
  382. /package/dist/cjs/{sidebar → components/sidebar}/tokens.js +0 -0
  383. /package/dist/cjs/{skeleton → components/skeleton}/index.js +0 -0
  384. /package/dist/cjs/{skeleton → components/skeleton}/tokens.js +0 -0
  385. /package/dist/cjs/{slider → components/slider}/index.js +0 -0
  386. /package/dist/cjs/{slider → components/slider}/tokens.js +0 -0
  387. /package/dist/cjs/{slider → components/slider}/utils.js +0 -0
  388. /package/dist/cjs/{space → components/space}/Space.js +0 -0
  389. /package/dist/cjs/{space → components/space}/index.js +0 -0
  390. /package/dist/cjs/{space → components/space}/tokens.js +0 -0
  391. /package/dist/cjs/{stepper → components/stepper}/index.js +0 -0
  392. /package/dist/cjs/{swiper → components/swiper}/SwiperItem.js +0 -0
  393. /package/dist/cjs/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
  394. /package/dist/cjs/{swiper → components/swiper}/index.js +0 -0
  395. /package/dist/cjs/{swiper → components/swiper}/utils.js +0 -0
  396. /package/dist/cjs/{switch → components/switch}/Switch.js +0 -0
  397. /package/dist/cjs/{switch → components/switch}/index.js +0 -0
  398. /package/dist/cjs/{switch → components/switch}/tokens.js +0 -0
  399. /package/dist/cjs/{tabbar → components/tabbar}/TabbarContext.js +0 -0
  400. /package/dist/cjs/{tabbar → components/tabbar}/index.js +0 -0
  401. /package/dist/cjs/{tabbar → components/tabbar}/tokens.js +0 -0
  402. /package/dist/cjs/{tabs → components/tabs}/TabPane.js +0 -0
  403. /package/dist/cjs/{tabs → components/tabs}/index.js +0 -0
  404. /package/dist/cjs/{tabs → components/tabs}/useTabsAnimation.js +0 -0
  405. /package/dist/cjs/{tabs → components/tabs}/utils.js +0 -0
  406. /package/dist/cjs/{tag → components/tag}/Tag.js +0 -0
  407. /package/dist/cjs/{tag → components/tag}/index.js +0 -0
  408. /package/dist/cjs/{tag → components/tag}/tokens.js +0 -0
  409. /package/dist/cjs/{toast → components/toast}/imperative.js +0 -0
  410. /package/dist/cjs/{toast → components/toast}/index.js +0 -0
  411. /package/dist/cjs/{typography → components/typography}/index.js +0 -0
  412. /package/dist/cjs/{typography → components/typography}/tokens.js +0 -0
  413. /package/dist/cjs/{uploader → components/uploader}/index.js +0 -0
  414. /package/dist/cjs/{uploader → components/uploader}/utils.js +0 -0
  415. /package/dist/cjs/{water-mark → components/water-mark}/index.js +0 -0
  416. /package/dist/cjs/{water-mark → components/water-mark}/tokens.js +0 -0
  417. /package/dist/es/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
  418. /package/dist/es/{action-sheet → components/action-sheet}/index.js +0 -0
  419. /package/dist/es/{action-sheet → components/action-sheet}/tokens.js +0 -0
  420. /package/dist/es/{area → components/area}/index.js +0 -0
  421. /package/dist/es/{area → components/area}/utils.js +0 -0
  422. /package/dist/es/{avatar → components/avatar}/index.js +0 -0
  423. /package/dist/es/{badge → components/badge}/index.js +0 -0
  424. /package/dist/es/{badge → components/badge}/tokens.js +0 -0
  425. /package/dist/es/{button → components/button}/ButtonContext.js +0 -0
  426. /package/dist/es/{button → components/button}/index.js +0 -0
  427. /package/dist/es/{button → components/button}/tokens.js +0 -0
  428. /package/dist/es/{calendar → components/calendar}/index.js +0 -0
  429. /package/dist/es/{calendar → components/calendar}/tokens.js +0 -0
  430. /package/dist/es/{cascader → components/cascader}/index.js +0 -0
  431. /package/dist/es/{cascader → components/cascader}/tokens.js +0 -0
  432. /package/dist/es/{cascader → components/cascader}/utils.js +0 -0
  433. /package/dist/es/{cell → components/cell}/Cell.js +0 -0
  434. /package/dist/es/{cell → components/cell}/CellContext.js +0 -0
  435. /package/dist/es/{cell → components/cell}/CellGroup.js +0 -0
  436. /package/dist/es/{cell → components/cell}/index.js +0 -0
  437. /package/dist/es/{cell → components/cell}/tokens.js +0 -0
  438. /package/dist/es/{checkbox → components/checkbox}/Checkbox.js +0 -0
  439. /package/dist/es/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
  440. /package/dist/es/{checkbox → components/checkbox}/index.js +0 -0
  441. /package/dist/es/{checkbox → components/checkbox}/tokens.js +0 -0
  442. /package/dist/es/{circle → components/circle}/index.js +0 -0
  443. /package/dist/es/{circle → components/circle}/tokens.js +0 -0
  444. /package/dist/es/{collapse → components/collapse}/index.js +0 -0
  445. /package/dist/es/{collapse → components/collapse}/tokens.js +0 -0
  446. /package/dist/es/{config-provider → components/config-provider}/LocaleContext.js +0 -0
  447. /package/dist/es/{config-provider → components/config-provider}/index.js +0 -0
  448. /package/dist/es/{config-provider → components/config-provider}/locale/base.js +0 -0
  449. /package/dist/es/{config-provider → components/config-provider}/locale/en-US.js +0 -0
  450. /package/dist/es/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
  451. /package/dist/es/{config-provider → components/config-provider}/useLocale.js +0 -0
  452. /package/dist/es/{count-down → components/count-down}/CountDown.js +0 -0
  453. /package/dist/es/{count-down → components/count-down}/index.js +0 -0
  454. /package/dist/es/{count-down → components/count-down}/tokens.js +0 -0
  455. /package/dist/es/{datetime-picker → components/datetime-picker}/index.js +0 -0
  456. /package/dist/es/{dialog → components/dialog}/imperative.js +0 -0
  457. /package/dist/es/{dialog → components/dialog}/index.js +0 -0
  458. /package/dist/es/{divider → components/divider}/Divider.js +0 -0
  459. /package/dist/es/{divider → components/divider}/index.js +0 -0
  460. /package/dist/es/{divider → components/divider}/tokens.js +0 -0
  461. /package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
  462. /package/dist/es/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
  463. /package/dist/es/{empty → components/empty}/Empty.js +0 -0
  464. /package/dist/es/{empty → components/empty}/index.js +0 -0
  465. /package/dist/es/{empty → components/empty}/tokens.js +0 -0
  466. /package/dist/es/{field → components/field}/tokens.js +0 -0
  467. /package/dist/es/{field → components/field}/utils.js +0 -0
  468. /package/dist/es/{flex → components/flex}/Flex.js +0 -0
  469. /package/dist/es/{flex → components/flex}/FlexContext.js +0 -0
  470. /package/dist/es/{flex → components/flex}/FlexItem.js +0 -0
  471. /package/dist/es/{flex → components/flex}/index.js +0 -0
  472. /package/dist/es/{flex → components/flex}/tokens.js +0 -0
  473. /package/dist/es/{form → components/form}/FormContext.js +0 -0
  474. /package/dist/es/{form → components/form}/FormItem.js +0 -0
  475. /package/dist/es/{form → components/form}/FormList.js +0 -0
  476. /package/dist/es/{form → components/form}/index.js +0 -0
  477. /package/dist/es/{form → components/form}/utils.js +0 -0
  478. /package/dist/es/{grid → components/grid}/GridContext.js +0 -0
  479. /package/dist/es/{grid → components/grid}/GridItem.js +0 -0
  480. /package/dist/es/{grid → components/grid}/index.js +0 -0
  481. /package/dist/es/{grid → components/grid}/tokens.js +0 -0
  482. /package/dist/es/{image → components/image}/index.js +0 -0
  483. /package/dist/es/{image → components/image}/tokens.js +0 -0
  484. /package/dist/es/{image-preview → components/image-preview}/imperative.js +0 -0
  485. /package/dist/es/{image-preview → components/image-preview}/index.js +0 -0
  486. /package/dist/es/{index-bar → components/index-bar}/index.js +0 -0
  487. /package/dist/es/{input → components/input}/index.js +0 -0
  488. /package/dist/es/{input → components/input}/tokens.js +0 -0
  489. /package/dist/es/{list → components/list}/List.js +0 -0
  490. /package/dist/es/{list → components/list}/index.js +0 -0
  491. /package/dist/es/{list → components/list}/tokens.js +0 -0
  492. /package/dist/es/{loading → components/loading}/Loading.js +0 -0
  493. /package/dist/es/{loading → components/loading}/index.js +0 -0
  494. /package/dist/es/{loading → components/loading}/tokens.js +0 -0
  495. /package/dist/es/{nav-bar → components/nav-bar}/index.js +0 -0
  496. /package/dist/es/{nav-bar → components/nav-bar}/tokens.js +0 -0
  497. /package/dist/es/{notice-bar → components/notice-bar}/index.js +0 -0
  498. /package/dist/es/{notice-bar → components/notice-bar}/tokens.js +0 -0
  499. /package/dist/es/{notify → components/notify}/index.js +0 -0
  500. /package/dist/es/{number-keyboard → components/number-keyboard}/index.js +0 -0
  501. /package/dist/es/{overlay → components/overlay}/Overlay.js +0 -0
  502. /package/dist/es/{overlay → components/overlay}/OverlayStackStore.js +0 -0
  503. /package/dist/es/{overlay → components/overlay}/index.js +0 -0
  504. /package/dist/es/{overlay → components/overlay}/tokens.js +0 -0
  505. /package/dist/es/{pagination → components/pagination}/index.js +0 -0
  506. /package/dist/es/{pagination → components/pagination}/tokens.js +0 -0
  507. /package/dist/es/{password-input → components/password-input}/index.js +0 -0
  508. /package/dist/es/{picker → components/picker}/index.js +0 -0
  509. /package/dist/es/{picker → components/picker}/utils.js +0 -0
  510. /package/dist/es/{popup → components/popup}/index.js +0 -0
  511. /package/dist/es/{portal → components/portal}/PortalContext.js +0 -0
  512. /package/dist/es/{portal → components/portal}/index.js +0 -0
  513. /package/dist/es/{progress → components/progress}/Progress.js +0 -0
  514. /package/dist/es/{progress → components/progress}/index.js +0 -0
  515. /package/dist/es/{progress → components/progress}/tokens.js +0 -0
  516. /package/dist/es/{pull-refresh → components/pull-refresh}/index.js +0 -0
  517. /package/dist/es/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
  518. /package/dist/es/{radio → components/radio}/Radio.js +0 -0
  519. /package/dist/es/{radio → components/radio}/RadioContext.js +0 -0
  520. /package/dist/es/{radio → components/radio}/index.js +0 -0
  521. /package/dist/es/{radio → components/radio}/tokens.js +0 -0
  522. /package/dist/es/{rate → components/rate}/Rate.js +0 -0
  523. /package/dist/es/{rate → components/rate}/index.js +0 -0
  524. /package/dist/es/{rate → components/rate}/tokens.js +0 -0
  525. /package/dist/es/{search → components/search}/index.js +0 -0
  526. /package/dist/es/{selector → components/selector}/index.js +0 -0
  527. /package/dist/es/{selector → components/selector}/tokens.js +0 -0
  528. /package/dist/es/{share-sheet → components/share-sheet}/index.js +0 -0
  529. /package/dist/es/{sidebar → components/sidebar}/SidebarContext.js +0 -0
  530. /package/dist/es/{sidebar → components/sidebar}/index.js +0 -0
  531. /package/dist/es/{sidebar → components/sidebar}/tokens.js +0 -0
  532. /package/dist/es/{skeleton → components/skeleton}/index.js +0 -0
  533. /package/dist/es/{skeleton → components/skeleton}/tokens.js +0 -0
  534. /package/dist/es/{slider → components/slider}/index.js +0 -0
  535. /package/dist/es/{slider → components/slider}/tokens.js +0 -0
  536. /package/dist/es/{slider → components/slider}/utils.js +0 -0
  537. /package/dist/es/{space → components/space}/Space.js +0 -0
  538. /package/dist/es/{space → components/space}/index.js +0 -0
  539. /package/dist/es/{space → components/space}/tokens.js +0 -0
  540. /package/dist/es/{stepper → components/stepper}/index.js +0 -0
  541. /package/dist/es/{swiper → components/swiper}/SwiperItem.js +0 -0
  542. /package/dist/es/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
  543. /package/dist/es/{swiper → components/swiper}/index.js +0 -0
  544. /package/dist/es/{swiper → components/swiper}/utils.js +0 -0
  545. /package/dist/es/{switch → components/switch}/Switch.js +0 -0
  546. /package/dist/es/{switch → components/switch}/index.js +0 -0
  547. /package/dist/es/{switch → components/switch}/tokens.js +0 -0
  548. /package/dist/es/{tabbar → components/tabbar}/TabbarContext.js +0 -0
  549. /package/dist/es/{tabbar → components/tabbar}/index.js +0 -0
  550. /package/dist/es/{tabbar → components/tabbar}/tokens.js +0 -0
  551. /package/dist/es/{tabs → components/tabs}/TabPane.js +0 -0
  552. /package/dist/es/{tabs → components/tabs}/index.js +0 -0
  553. /package/dist/es/{tabs → components/tabs}/useTabsAnimation.js +0 -0
  554. /package/dist/es/{tabs → components/tabs}/utils.js +0 -0
  555. /package/dist/es/{tag → components/tag}/Tag.js +0 -0
  556. /package/dist/es/{tag → components/tag}/index.js +0 -0
  557. /package/dist/es/{tag → components/tag}/tokens.js +0 -0
  558. /package/dist/es/{toast → components/toast}/imperative.js +0 -0
  559. /package/dist/es/{toast → components/toast}/index.js +0 -0
  560. /package/dist/es/{typography → components/typography}/index.js +0 -0
  561. /package/dist/es/{typography → components/typography}/tokens.js +0 -0
  562. /package/dist/es/{uploader → components/uploader}/index.js +0 -0
  563. /package/dist/es/{uploader → components/uploader}/utils.js +0 -0
  564. /package/dist/es/{water-mark → components/water-mark}/index.js +0 -0
  565. /package/dist/es/{water-mark → components/water-mark}/tokens.js +0 -0
@@ -0,0 +1,25 @@
1
+ import { useMemo, useRef } from 'react';
2
+ import { useOverlay } from '@react-native-aria/overlays';
3
+ import { mergeProps } from '@react-native-aria/utils';
4
+ export const useAriaOverlay = ({
5
+ isOpen,
6
+ onClose,
7
+ isDismissable = true,
8
+ shouldCloseOnInteractOutside,
9
+ overlayProps: overlayPropOverrides
10
+ }) => {
11
+ const overlayRef = useRef(null);
12
+ const {
13
+ overlayProps
14
+ } = useOverlay({
15
+ isOpen,
16
+ onClose,
17
+ isDismissable,
18
+ shouldCloseOnInteractOutside
19
+ }, overlayRef);
20
+ const resolvedOverlayProps = useMemo(() => mergeProps(overlayProps ?? {}, overlayPropOverrides ?? {}), [overlayPropOverrides, overlayProps]);
21
+ return {
22
+ overlayRef,
23
+ overlayProps: resolvedOverlayProps
24
+ };
25
+ };
@@ -0,0 +1,70 @@
1
+ import { useMemo } from 'react';
2
+ import { Platform } from 'react-native';
3
+ import { useFocus, useFocusRing } from '@react-native-aria/focus';
4
+ import { useHover, usePress } from '@react-native-aria/interactions';
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
+ };
12
+ export const useAriaPress = ({
13
+ disabled = false,
14
+ allowHover = Platform.OS === 'web',
15
+ allowFocus = Platform.OS === 'web',
16
+ extraProps,
17
+ ...pressEvents
18
+ } = {}) => {
19
+ const {
20
+ pressProps,
21
+ isPressed
22
+ } = usePress({
23
+ ...pressEvents,
24
+ isDisabled: disabled
25
+ });
26
+ const {
27
+ isHovered,
28
+ hoverProps
29
+ } = useHover({
30
+ isDisabled: disabled || !allowHover
31
+ });
32
+ const useFocusCompat = useFocus;
33
+ const {
34
+ isFocused,
35
+ focusProps
36
+ } = useFocusCompat({
37
+ isDisabled: disabled
38
+ });
39
+ const useFocusRingCompat = useFocusRing;
40
+ const {
41
+ focusProps: focusRingProps,
42
+ isFocusVisible
43
+ } = useFocusRingCompat({
44
+ isDisabled: disabled
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]);
66
+ return {
67
+ interactionProps,
68
+ states
69
+ };
70
+ };
@@ -0,0 +1,16 @@
1
+ import { useMemo, useRef } from 'react';
2
+ import { useToggle } from '@react-native-aria/toggle';
3
+ import { useToggleState } from '@react-stately/toggle';
4
+ export const useAriaToggle = props => {
5
+ const inputRef = props.inputRef ?? useRef(null);
6
+ const state = useToggleState(props);
7
+ const {
8
+ inputProps
9
+ } = useToggle(props, state, inputRef);
10
+ const resolvedInputProps = useMemo(() => inputProps, [inputProps]);
11
+ return {
12
+ state,
13
+ inputProps: resolvedInputProps,
14
+ inputRef
15
+ };
16
+ };
@@ -0,0 +1,2 @@
1
+ export * from './useGestureScroll';
2
+ export {};
@@ -0,0 +1,112 @@
1
+ import { useCallback, useMemo, useRef, useState } from 'react';
2
+ import { Animated } from 'react-native';
3
+ const DEFAULT_THROTTLE = 16;
4
+ const VELOCITY_NORMALIZER = 1000; // convert delta/ms to px per second
5
+
6
+ export const useGestureScroll = (options = {}) => {
7
+ const {
8
+ axis = 'y',
9
+ scrollEventThrottle = DEFAULT_THROTTLE,
10
+ onScroll,
11
+ onScrollBeginDrag,
12
+ onScrollEndDrag,
13
+ onMomentumScrollBegin,
14
+ onMomentumScrollEnd
15
+ } = options;
16
+ const scrollValue = useRef(new Animated.Value(0)).current;
17
+ const lastOffsetRef = useRef(0);
18
+ const lastTimestampRef = useRef(null);
19
+ const velocityRef = useRef(0);
20
+ const directionRef = useRef(null);
21
+ const [direction, setDirection] = useState(null);
22
+ const [isDragging, setIsDragging] = useState(false);
23
+ const [isMomentum, setIsMomentum] = useState(false);
24
+ const updateDirection = useCallback(next => {
25
+ if (directionRef.current !== next) {
26
+ directionRef.current = next;
27
+ setDirection(next);
28
+ }
29
+ }, []);
30
+ const handleScroll = useCallback(event => {
31
+ onScroll?.(event);
32
+ const contentOffset = event.nativeEvent.contentOffset;
33
+ const current = axis === 'x' ? contentOffset.x ?? 0 : contentOffset.y ?? 0;
34
+ const delta = current - lastOffsetRef.current;
35
+ const timestamp = event.timeStamp ?? Date.now();
36
+ if (delta > 0) {
37
+ updateDirection('forward');
38
+ } else if (delta < 0) {
39
+ updateDirection('backward');
40
+ }
41
+ if (lastTimestampRef.current != null) {
42
+ const elapsed = Math.max(timestamp - lastTimestampRef.current, 1);
43
+ velocityRef.current = delta / elapsed * VELOCITY_NORMALIZER;
44
+ }
45
+ lastTimestampRef.current = timestamp;
46
+ lastOffsetRef.current = current;
47
+ }, [axis, onScroll, updateDirection]);
48
+ const animatedScrollHandler = useMemo(() => {
49
+ const mapping = axis === 'x' ? [{
50
+ nativeEvent: {
51
+ contentOffset: {
52
+ x: scrollValue
53
+ }
54
+ }
55
+ }] : [{
56
+ nativeEvent: {
57
+ contentOffset: {
58
+ y: scrollValue
59
+ }
60
+ }
61
+ }];
62
+ return Animated.event(mapping, {
63
+ useNativeDriver: false,
64
+ listener: handleScroll
65
+ });
66
+ }, [axis, handleScroll, scrollValue]);
67
+ const handleScrollBeginDrag = useCallback(event => {
68
+ setIsDragging(true);
69
+ onScrollBeginDrag?.(event);
70
+ }, [onScrollBeginDrag]);
71
+ const handleScrollEndDrag = useCallback(event => {
72
+ setIsDragging(false);
73
+ onScrollEndDrag?.(event);
74
+ }, [onScrollEndDrag]);
75
+ const handleMomentumBegin = useCallback(event => {
76
+ setIsMomentum(true);
77
+ onMomentumScrollBegin?.(event);
78
+ }, [onMomentumScrollBegin]);
79
+ const handleMomentumEnd = useCallback(event => {
80
+ setIsMomentum(false);
81
+ onMomentumScrollEnd?.(event);
82
+ }, [onMomentumScrollEnd]);
83
+ const resetOffset = useCallback((value = 0) => {
84
+ scrollValue.stopAnimation();
85
+ scrollValue.setValue(value);
86
+ lastOffsetRef.current = value;
87
+ lastTimestampRef.current = null;
88
+ velocityRef.current = 0;
89
+ updateDirection(null);
90
+ }, [scrollValue, updateDirection]);
91
+ const getVelocity = useCallback(() => velocityRef.current, []);
92
+ const getCurrentOffset = useCallback(() => lastOffsetRef.current, []);
93
+ const scrollProps = useMemo(() => ({
94
+ onScroll: animatedScrollHandler,
95
+ scrollEventThrottle,
96
+ onScrollBeginDrag: handleScrollBeginDrag,
97
+ onScrollEndDrag: handleScrollEndDrag,
98
+ onMomentumScrollBegin: handleMomentumBegin,
99
+ onMomentumScrollEnd: handleMomentumEnd
100
+ }), [animatedScrollHandler, handleMomentumBegin, handleMomentumEnd, handleScrollBeginDrag, handleScrollEndDrag, scrollEventThrottle]);
101
+ return {
102
+ scrollValue,
103
+ scrollProps,
104
+ direction,
105
+ isDragging,
106
+ isMomentum,
107
+ getVelocity,
108
+ getCurrentOffset,
109
+ resetOffset
110
+ };
111
+ };
112
+ export default useGestureScroll;
@@ -0,0 +1,7 @@
1
+ export * from './usePresenceAnimation';
2
+ export * from './useSafeAreaPadding';
3
+ export * from './aria';
4
+ export * from './gesture';
5
+ export { default as useControllableValue } from './useControllableValue';
6
+ export { default as useCountDown } from './useCountDown';
7
+ export * from './useHairline';
@@ -0,0 +1,40 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { isFunction } from '../utils/validate';
3
+ const hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
4
+ function useControllableValue(props = {}, options = {}) {
5
+ const {
6
+ defaultValue,
7
+ defaultValuePropName = 'defaultValue',
8
+ valuePropName = 'value',
9
+ trigger = 'onChange'
10
+ } = options;
11
+ const propsRecord = props;
12
+ const isControlled = hasProp(props, valuePropName);
13
+ const value = propsRecord[valuePropName];
14
+ const [internalValue, setInternalValue] = useState(() => {
15
+ if (isControlled) {
16
+ return value;
17
+ }
18
+ if (hasProp(props, defaultValuePropName)) {
19
+ return propsRecord[defaultValuePropName];
20
+ }
21
+ return defaultValue;
22
+ });
23
+ const mergedValue = isControlled ? value : internalValue;
24
+ const handlerRef = useRef(propsRecord[trigger]);
25
+ useEffect(() => {
26
+ handlerRef.current = propsRecord[trigger];
27
+ }, [props, trigger]);
28
+ const triggerChange = useCallback((nextValue, ...args) => {
29
+ if (!isControlled) {
30
+ setInternalValue(nextValue);
31
+ }
32
+ const handler = handlerRef.current;
33
+ if (isFunction(handler)) {
34
+ ;
35
+ handler(nextValue, ...args);
36
+ }
37
+ }, [isControlled]);
38
+ return [mergedValue, triggerChange];
39
+ }
40
+ export default useControllableValue;
@@ -0,0 +1,95 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { isNumber } from '../utils/validate';
3
+ const parseTime = time => {
4
+ const total = Math.max(time, 0);
5
+ const days = Math.floor(total / (24 * 60 * 60 * 1000));
6
+ const hours = Math.floor(total % (24 * 60 * 60 * 1000) / (60 * 60 * 1000));
7
+ const minutes = Math.floor(total % (60 * 60 * 1000) / (60 * 1000));
8
+ const seconds = Math.floor(total % (60 * 1000) / 1000);
9
+ const milliseconds = total % 1000;
10
+ return {
11
+ total,
12
+ days,
13
+ hours,
14
+ minutes,
15
+ seconds,
16
+ milliseconds
17
+ };
18
+ };
19
+ const useCountDown = options => {
20
+ const {
21
+ time,
22
+ millisecond = false,
23
+ onChange,
24
+ onFinish
25
+ } = options;
26
+ const timeRef = useRef(time);
27
+ const millisecondRef = useRef(millisecond);
28
+ const onChangeRef = useRef(onChange);
29
+ const onFinishRef = useRef(onFinish);
30
+ timeRef.current = time;
31
+ millisecondRef.current = millisecond;
32
+ onChangeRef.current = onChange;
33
+ onFinishRef.current = onFinish;
34
+ const remainRef = useRef(Math.max(0, time));
35
+ const endTimeRef = useRef(Date.now() + remainRef.current);
36
+ const timerRef = useRef(null);
37
+ const countingRef = useRef(false);
38
+ const [current, setCurrent] = useState(() => parseTime(remainRef.current));
39
+ const clearTimer = useCallback(() => {
40
+ if (timerRef.current) {
41
+ clearTimeout(timerRef.current);
42
+ timerRef.current = null;
43
+ }
44
+ }, []);
45
+ const update = useCallback(remain => {
46
+ remainRef.current = remain;
47
+ const next = parseTime(remain);
48
+ setCurrent(next);
49
+ onChangeRef.current?.(next);
50
+ if (remain === 0) {
51
+ countingRef.current = false;
52
+ clearTimer();
53
+ onFinishRef.current?.();
54
+ }
55
+ }, [clearTimer]);
56
+ const tick = useCallback(() => {
57
+ if (!countingRef.current) return;
58
+ clearTimer();
59
+ const remain = Math.max(endTimeRef.current - Date.now(), 0);
60
+ update(remain);
61
+ if (remain <= 0) return;
62
+ const delay = millisecondRef.current ? Math.max(1, Math.min(30, remain)) : Math.max(1, Math.min(remain, remain % 1000 + 1));
63
+ timerRef.current = setTimeout(() => {
64
+ tick();
65
+ }, delay);
66
+ }, [clearTimer, update]);
67
+ const start = useCallback(() => {
68
+ if (countingRef.current || remainRef.current <= 0) return;
69
+ countingRef.current = true;
70
+ endTimeRef.current = Date.now() + remainRef.current;
71
+ tick();
72
+ }, [tick]);
73
+ const pause = useCallback(() => {
74
+ if (!countingRef.current) return;
75
+ countingRef.current = false;
76
+ remainRef.current = Math.max(endTimeRef.current - Date.now(), 0);
77
+ clearTimer();
78
+ }, [clearTimer]);
79
+ const reset = useCallback(newTime => {
80
+ pause();
81
+ const next = Math.max(0, isNumber(newTime) ? newTime : timeRef.current);
82
+ remainRef.current = next;
83
+ endTimeRef.current = Date.now() + next;
84
+ setCurrent(parseTime(next));
85
+ }, [pause]);
86
+ useEffect(() => () => clearTimer(), [clearTimer]);
87
+ return {
88
+ start,
89
+ pause,
90
+ reset,
91
+ current
92
+ };
93
+ };
94
+ export { parseTime };
95
+ export default useCountDown;
@@ -0,0 +1,42 @@
1
+ import React, { useMemo } from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import { createHairlineView } from '../utils/hairline';
4
+ import { isNumber } from '../utils/validate';
5
+ /**
6
+ * A hook to generate a hairline (separator) view that respects the container's padding.
7
+ * Useful for list items, cells, etc.
8
+ */
9
+ export const useHairline = ({
10
+ show = true,
11
+ containerStyle,
12
+ color,
13
+ width,
14
+ defaultPaddingHorizontal = 0
15
+ }) => {
16
+ return useMemo(() => {
17
+ if (!show) return null;
18
+ const flattened = StyleSheet.flatten(containerStyle);
19
+ const paddingHorizontal = isNumber(flattened?.paddingHorizontal) ? flattened.paddingHorizontal : undefined;
20
+ const resolveInset = (primary, secondary) => isNumber(primary) ? primary : isNumber(secondary) ? secondary : isNumber(paddingHorizontal) ? paddingHorizontal : defaultPaddingHorizontal;
21
+ const resolvedPadding = {
22
+ left: resolveInset(flattened?.paddingLeft, flattened?.paddingStart),
23
+ right: resolveInset(flattened?.paddingRight, flattened?.paddingEnd)
24
+ };
25
+ return /*#__PURE__*/React.createElement(View, {
26
+ style: [styles.hairline, createHairlineView({
27
+ position: 'bottom',
28
+ color,
29
+ left: resolvedPadding.left,
30
+ right: resolvedPadding.right,
31
+ enabled: width > 0,
32
+ width
33
+ })]
34
+ });
35
+ }, [show, containerStyle, color, width, defaultPaddingHorizontal]);
36
+ };
37
+ const styles = StyleSheet.create({
38
+ hairline: {
39
+ position: 'absolute',
40
+ bottom: 0
41
+ }
42
+ });
@@ -0,0 +1,51 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+ import { Animated, Easing } from 'react-native';
3
+ import { nativeDriverEnabled } from '../platform';
4
+ export const usePresenceAnimation = (visible, {
5
+ duration = 180,
6
+ easing = Easing.out(Easing.cubic),
7
+ appear = false,
8
+ canAnimate = true
9
+ } = {}) => {
10
+ const [mounted, setMounted] = useState(visible);
11
+ const animated = useRef(new Animated.Value(visible && !appear ? 1 : 0)).current;
12
+ const useNativeDriver = nativeDriverEnabled;
13
+ const animationIdRef = useRef(0);
14
+ useEffect(() => {
15
+ animationIdRef.current += 1;
16
+ const animationId = animationIdRef.current;
17
+ animated.stopAnimation();
18
+ if (visible) {
19
+ setMounted(true);
20
+ if (!canAnimate) {
21
+ animated.setValue(0);
22
+ return;
23
+ }
24
+ Animated.timing(animated, {
25
+ toValue: 1,
26
+ duration,
27
+ easing,
28
+ useNativeDriver
29
+ }).start();
30
+ } else {
31
+ if (!canAnimate) {
32
+ animated.setValue(0);
33
+ setMounted(false);
34
+ return;
35
+ }
36
+ Animated.timing(animated, {
37
+ toValue: 0,
38
+ duration,
39
+ easing,
40
+ useNativeDriver
41
+ }).start(() => {
42
+ if (animationId !== animationIdRef.current) return;
43
+ setMounted(false);
44
+ });
45
+ }
46
+ }, [animated, canAnimate, duration, easing, useNativeDriver, visible]);
47
+ return {
48
+ mounted,
49
+ animated
50
+ };
51
+ };
@@ -0,0 +1,23 @@
1
+ import { Platform } from 'react-native';
2
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
3
+ export function useSafeAreaPadding(min) {
4
+ const insets = useSafeAreaInsets();
5
+ if (Platform.OS === 'web') {
6
+ const t = min?.top ?? 0,
7
+ b = min?.bottom ?? 0,
8
+ l = min?.left ?? 0,
9
+ r = min?.right ?? 0;
10
+ return {
11
+ paddingTop: `max(env(safe-area-inset-top, 0px), ${t}px)`,
12
+ paddingBottom: `max(env(safe-area-inset-bottom, 0px), ${b}px)`,
13
+ paddingLeft: `max(env(safe-area-inset-left, 0px), ${l}px)`,
14
+ paddingRight: `max(env(safe-area-inset-right, 0px), ${r}px)`
15
+ };
16
+ }
17
+ return {
18
+ paddingTop: Math.max(insets.top, min?.top ?? 0),
19
+ paddingBottom: Math.max(insets.bottom, min?.bottom ?? 0),
20
+ paddingLeft: Math.max(insets.left, min?.left ?? 0),
21
+ paddingRight: Math.max(insets.right, min?.right ?? 0)
22
+ };
23
+ }
package/dist/es/index.js CHANGED
@@ -1,73 +1,4 @@
1
- export { default as Button } from './button';
2
- export { default as Cell } from './cell';
3
- export { CellGroup } from './cell';
4
- export { default as Flex } from './flex';
5
- export { default as Space } from './space';
6
- export { default as Divider } from './divider';
7
- export { default as Tag } from './tag';
8
- export { Checkbox } from './checkbox';
9
- export { CheckboxGroup } from './checkbox';
10
- export { Radio } from './radio';
11
- export { RadioGroup } from './radio';
12
- export { default as Field } from './field';
13
- export { FieldGroup } from './field';
14
- export { default as Input } from './input';
15
- export { default as Form } from './form';
16
- export { default as Switch } from './switch';
17
- export { default as Badge } from './badge';
18
- export { default as Avatar } from './avatar';
19
- export { default as Grid } from './grid';
20
- export { default as Typography } from './typography';
21
- export { default as Loading } from './loading';
22
- export { default as Empty } from './empty';
23
- export { default as Image } from './image';
24
- export { useImageTokens } from './image';
25
- export { default as Progress } from './progress';
26
- export { default as Circle } from './circle';
27
- export { default as NoticeBar } from './notice-bar';
28
- export { default as Slider } from './slider';
29
- export { default as Stepper } from './stepper';
30
- export { default as Rate } from './rate';
31
- export { default as Selector } from './selector';
32
- export { default as Search } from './search';
33
- export { default as PasswordInput } from './password-input';
34
- export { default as Picker } from './picker';
35
- export { default as NumberKeyboard } from './number-keyboard';
36
- export { default as Collapse } from './collapse';
37
- export { default as Popup } from './popup';
38
- export { default as Overlay } from './overlay';
39
- export { default as Dialog } from './dialog';
40
- export { default as Toast } from './toast';
41
- export { default as Notify } from './notify';
42
- export { Portal } from './portal';
43
- export { PortalHost } from './portal';
44
- export { ConfigProvider } from './config-provider';
45
- export { useLocale } from './config-provider';
46
- export { zhCN } from './config-provider';
47
- export { enUS } from './config-provider';
48
- export { default as DatetimePicker } from './datetime-picker';
49
- export { default as Calendar } from './calendar';
50
- export { default as Cascader } from './cascader';
51
- export { default as Tabs } from './tabs';
52
- export { default as Tabbar } from './tabbar';
53
- export { default as NavBar } from './nav-bar';
54
- export { default as Sidebar } from './sidebar';
55
- export { default as IndexBar } from './index-bar';
56
- export { default as ActionSheet } from './action-sheet';
57
- export { default as ShareSheet } from './share-sheet';
58
- export { default as DropdownMenu } from './dropdown-menu';
59
- export { default as Area } from './area';
60
- export { default as List } from './list';
61
- export { default as PullRefresh } from './pull-refresh';
62
- export { default as ImagePreview } from './image-preview';
63
- export { default as Swiper } from './swiper';
64
- export { SwiperItem } from './swiper';
65
- export { SwiperPagIndicator } from './swiper';
66
- export { useSwiperPagIndicatorTokens } from './swiper';
67
- export { default as Uploader } from './uploader';
68
- export { useUploaderTokens } from './uploader';
69
- export { default as Skeleton } from './skeleton';
70
- export { useSkeletonTokens } from './skeleton';
71
- export { default as CountDown } from './count-down';
72
- export { default as WaterMark } from './water-mark';
73
- export { default as Pagination } from './pagination';
1
+ export * from './components';
2
+ export * from './design-system';
3
+ export * from './hooks';
4
+ export {};
@@ -0,0 +1,2 @@
1
+ import { Platform } from 'react-native';
2
+ export const nativeDriverEnabled = Platform.OS !== 'web';
@@ -0,0 +1,7 @@
1
+ export const addPopStateListener = listener => {
2
+ if (typeof window === 'undefined' || !window.addEventListener) return () => {};
3
+ window.addEventListener('popstate', listener);
4
+ return () => {
5
+ window.removeEventListener('popstate', listener);
6
+ };
7
+ };
@@ -0,0 +1,6 @@
1
+ export * from './animation';
2
+ export * from './history';
3
+ export * from './measure';
4
+ export * from './runtime';
5
+ export * from './scrollLock';
6
+ export {};
@@ -0,0 +1,48 @@
1
+ import { isFunction } from '../utils/validate';
2
+ export const measureInWindow = (node, callback) => {
3
+ if (!node) {
4
+ callback(null);
5
+ return;
6
+ }
7
+ try {
8
+ const maybeMeasureNode = node;
9
+ if (isFunction(maybeMeasureNode.measureInWindow)) {
10
+ maybeMeasureNode.measureInWindow((x, y, width, height) => {
11
+ if (![x, y, width, height].every(Number.isFinite)) {
12
+ callback(null);
13
+ return;
14
+ }
15
+ callback({
16
+ x,
17
+ y,
18
+ width,
19
+ height
20
+ });
21
+ });
22
+ return;
23
+ }
24
+ const maybeDomNode = node;
25
+ if (isFunction(maybeDomNode.getBoundingClientRect)) {
26
+ const rect = maybeDomNode.getBoundingClientRect();
27
+ const x = rect?.left;
28
+ const y = rect?.top;
29
+ const width = rect?.width;
30
+ const height = rect?.height;
31
+ if (![x, y, width, height].every(Number.isFinite)) {
32
+ callback(null);
33
+ return;
34
+ }
35
+ callback({
36
+ x: x,
37
+ y: y,
38
+ width: width,
39
+ height: height
40
+ });
41
+ return;
42
+ }
43
+ } catch (_error) {
44
+ callback(null);
45
+ return;
46
+ }
47
+ callback(null);
48
+ };
@@ -0,0 +1,4 @@
1
+ import { Platform } from 'react-native';
2
+ export const isWeb = () => Platform.OS === 'web';
3
+ export const isIOS = () => Platform.OS === 'ios';
4
+ export const isAndroid = () => Platform.OS === 'android';
@@ -0,0 +1,16 @@
1
+ let locked = false;
2
+ let previousOverflow = '';
3
+ export const setBodyScrollLocked = nextLocked => {
4
+ if (typeof document === 'undefined') return;
5
+ if (nextLocked && !locked) {
6
+ previousOverflow = document.body.style.overflow;
7
+ document.body.style.overflow = 'hidden';
8
+ locked = true;
9
+ return;
10
+ }
11
+ if (!nextLocked && locked) {
12
+ document.body.style.overflow = previousOverflow;
13
+ locked = false;
14
+ }
15
+ };
16
+ export const isBodyScrollLocked = () => locked;
@@ -0,0 +1,5 @@
1
+ export const toArray = value => {
2
+ if (value === undefined || value === null) return [];
3
+ if (Array.isArray(value)) return value;
4
+ return [value];
5
+ };