react-native-system-ui 0.0.2 → 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 (545) hide show
  1. package/README.md +22 -6
  2. package/dist/cjs/{index-bar → components/index-bar}/IndexBar.js +2 -1
  3. package/dist/cjs/components/index.js +511 -0
  4. package/dist/cjs/{nav-bar → components/nav-bar}/NavBar.js +2 -1
  5. package/dist/cjs/{notify → components/notify}/Notify.js +35 -43
  6. package/dist/cjs/{notify → components/notify}/imperative.js +1 -1
  7. package/dist/cjs/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +3 -4
  8. package/dist/cjs/{popup → components/popup}/Popup.js +9 -21
  9. package/dist/cjs/components/safe-area-view/SafeAreaView.js +63 -0
  10. package/dist/cjs/components/safe-area-view/index.js +12 -0
  11. package/dist/cjs/{tabbar → components/tabbar}/Tabbar.js +2 -1
  12. package/dist/cjs/{toast → components/toast}/Toast.js +5 -8
  13. package/dist/cjs/components/types.js +1 -0
  14. package/dist/cjs/design-system/ThemeContext.js +19 -0
  15. package/dist/cjs/design-system/ThemeProvider.js +37 -0
  16. package/dist/cjs/design-system/createComponentTokensHook.js +30 -0
  17. package/dist/cjs/design-system/index.js +59 -0
  18. package/dist/cjs/design-system/mergeTokensOverride.js +12 -0
  19. package/dist/cjs/design-system/presets.js +147 -0
  20. package/dist/cjs/design-system/tokens.js +144 -0
  21. package/dist/cjs/design-system/useTheme.js +16 -0
  22. package/dist/cjs/hooks/aria/index.js +49 -0
  23. package/dist/cjs/hooks/aria/useAriaListBox.js +58 -0
  24. package/dist/cjs/hooks/aria/useAriaOverlay.js +50 -0
  25. package/dist/cjs/hooks/aria/useAriaPress.js +107 -0
  26. package/dist/cjs/hooks/aria/useAriaToggle.js +41 -0
  27. package/dist/cjs/hooks/gesture/index.js +16 -0
  28. package/dist/cjs/hooks/gesture/useGestureScroll.js +131 -0
  29. package/dist/cjs/hooks/index.js +84 -0
  30. package/dist/cjs/hooks/useControllableValue.js +52 -0
  31. package/dist/cjs/hooks/useCountDown.js +107 -0
  32. package/dist/cjs/hooks/useHairline.js +62 -0
  33. package/dist/cjs/hooks/usePresenceAnimation.js +60 -0
  34. package/dist/cjs/hooks/useSafeAreaPadding.js +41 -0
  35. package/dist/cjs/index.js +33 -499
  36. package/dist/cjs/platform/animation.js +14 -0
  37. package/dist/cjs/platform/history.js +14 -0
  38. package/dist/cjs/platform/index.js +60 -0
  39. package/dist/cjs/platform/measure.js +55 -0
  40. package/dist/cjs/platform/runtime.js +19 -0
  41. package/dist/cjs/platform/scrollLock.js +24 -0
  42. package/dist/cjs/utils/array.js +12 -0
  43. package/dist/cjs/utils/color.js +52 -0
  44. package/dist/cjs/utils/createPlatformShadow.js +63 -0
  45. package/dist/cjs/utils/date.js +75 -0
  46. package/dist/cjs/utils/deepMerge.js +37 -0
  47. package/dist/cjs/utils/hairline.js +103 -0
  48. package/dist/cjs/utils/index.js +115 -0
  49. package/dist/cjs/utils/number.js +73 -0
  50. package/dist/cjs/utils/promise.js +9 -0
  51. package/dist/cjs/utils/string.js +39 -0
  52. package/dist/cjs/utils/validate.js +41 -0
  53. package/dist/es/{index-bar → components/index-bar}/IndexBar.js +2 -1
  54. package/dist/es/components/index.js +74 -0
  55. package/dist/es/{nav-bar → components/nav-bar}/NavBar.js +2 -1
  56. package/dist/es/{notify → components/notify}/Notify.js +37 -44
  57. package/dist/es/{notify → components/notify}/imperative.js +1 -1
  58. package/dist/es/{number-keyboard → components/number-keyboard}/NumberKeyboard.js +3 -4
  59. package/dist/es/{popup → components/popup}/Popup.js +8 -20
  60. package/dist/es/components/safe-area-view/SafeAreaView.js +43 -0
  61. package/dist/es/components/safe-area-view/index.js +1 -0
  62. package/dist/es/{tabbar → components/tabbar}/Tabbar.js +2 -1
  63. package/dist/es/{toast → components/toast}/Toast.js +4 -7
  64. package/dist/es/components/types.js +1 -0
  65. package/dist/es/design-system/ThemeContext.js +6 -0
  66. package/dist/es/design-system/ThemeProvider.js +23 -0
  67. package/dist/es/design-system/createComponentTokensHook.js +17 -0
  68. package/dist/es/design-system/index.js +6 -0
  69. package/dist/es/design-system/mergeTokensOverride.js +5 -0
  70. package/dist/es/design-system/presets.js +140 -0
  71. package/dist/es/design-system/tokens.js +136 -0
  72. package/dist/es/design-system/useTheme.js +3 -0
  73. package/dist/es/hooks/aria/index.js +5 -0
  74. package/dist/es/hooks/aria/useAriaListBox.js +33 -0
  75. package/dist/es/hooks/aria/useAriaOverlay.js +25 -0
  76. package/dist/es/hooks/aria/useAriaPress.js +70 -0
  77. package/dist/es/hooks/aria/useAriaToggle.js +16 -0
  78. package/dist/es/hooks/gesture/index.js +2 -0
  79. package/dist/es/hooks/gesture/useGestureScroll.js +112 -0
  80. package/dist/es/hooks/index.js +7 -0
  81. package/dist/es/hooks/useControllableValue.js +40 -0
  82. package/dist/es/hooks/useCountDown.js +95 -0
  83. package/dist/es/hooks/useHairline.js +42 -0
  84. package/dist/es/hooks/usePresenceAnimation.js +41 -0
  85. package/dist/es/hooks/useSafeAreaPadding.js +23 -0
  86. package/dist/es/index.js +4 -73
  87. package/dist/es/platform/animation.js +2 -0
  88. package/dist/es/platform/history.js +7 -0
  89. package/dist/es/platform/index.js +6 -0
  90. package/dist/es/platform/measure.js +48 -0
  91. package/dist/es/platform/runtime.js +4 -0
  92. package/dist/es/platform/scrollLock.js +16 -0
  93. package/dist/es/utils/array.js +5 -0
  94. package/dist/es/utils/color.js +42 -0
  95. package/dist/es/utils/createPlatformShadow.js +50 -0
  96. package/dist/es/utils/date.js +63 -0
  97. package/dist/es/utils/deepMerge.js +31 -0
  98. package/dist/es/utils/hairline.js +84 -0
  99. package/dist/es/utils/index.js +12 -0
  100. package/dist/es/utils/number.js +56 -0
  101. package/dist/es/utils/promise.js +2 -0
  102. package/dist/es/utils/string.js +30 -0
  103. package/dist/es/utils/validate.js +15 -0
  104. package/dist/types/components/index.d.ts +2 -0
  105. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +10 -0
  106. package/dist/types/components/safe-area-view/index.d.ts +2 -0
  107. package/dist/types/hooks/index.d.ts +1 -0
  108. package/dist/types/hooks/useSafeAreaPadding.d.ts +13 -0
  109. package/package.json +281 -265
  110. package/dist/cjs/safe-area/SafeAreaClipper.js +0 -114
  111. package/dist/cjs/safe-area/index.js +0 -63
  112. package/dist/es/safe-area/SafeAreaClipper.js +0 -86
  113. package/dist/es/safe-area/index.js +0 -25
  114. package/dist/types/components/safe-area/SafeAreaClipper.d.ts +0 -47
  115. package/dist/types/components/safe-area/index.d.ts +0 -9
  116. /package/dist/cjs/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
  117. /package/dist/cjs/{action-sheet → components/action-sheet}/index.js +0 -0
  118. /package/dist/cjs/{action-sheet → components/action-sheet}/tokens.js +0 -0
  119. /package/dist/cjs/{area → components/area}/Area.js +0 -0
  120. /package/dist/cjs/{area → components/area}/index.js +0 -0
  121. /package/dist/cjs/{area → components/area}/utils.js +0 -0
  122. /package/dist/cjs/{avatar → components/avatar}/Avatar.js +0 -0
  123. /package/dist/cjs/{avatar → components/avatar}/index.js +0 -0
  124. /package/dist/cjs/{avatar → components/avatar}/tokens.js +0 -0
  125. /package/dist/cjs/{badge → components/badge}/Badge.js +0 -0
  126. /package/dist/cjs/{badge → components/badge}/index.js +0 -0
  127. /package/dist/cjs/{badge → components/badge}/tokens.js +0 -0
  128. /package/dist/cjs/{button → components/button}/Button.js +0 -0
  129. /package/dist/cjs/{button → components/button}/ButtonContext.js +0 -0
  130. /package/dist/cjs/{button → components/button}/ButtonGroup.js +0 -0
  131. /package/dist/cjs/{button → components/button}/index.js +0 -0
  132. /package/dist/cjs/{button → components/button}/tokens.js +0 -0
  133. /package/dist/cjs/{calendar → components/calendar}/Calendar.js +0 -0
  134. /package/dist/cjs/{calendar → components/calendar}/index.js +0 -0
  135. /package/dist/cjs/{calendar → components/calendar}/tokens.js +0 -0
  136. /package/dist/cjs/{cascader → components/cascader}/Cascader.js +0 -0
  137. /package/dist/cjs/{cascader → components/cascader}/index.js +0 -0
  138. /package/dist/cjs/{cascader → components/cascader}/tokens.js +0 -0
  139. /package/dist/cjs/{cascader → components/cascader}/useCascaderExtend.js +0 -0
  140. /package/dist/cjs/{cascader → components/cascader}/utils.js +0 -0
  141. /package/dist/cjs/{cell → components/cell}/Cell.js +0 -0
  142. /package/dist/cjs/{cell → components/cell}/CellContext.js +0 -0
  143. /package/dist/cjs/{cell → components/cell}/CellGroup.js +0 -0
  144. /package/dist/cjs/{cell → components/cell}/index.js +0 -0
  145. /package/dist/cjs/{cell → components/cell}/tokens.js +0 -0
  146. /package/dist/cjs/{checkbox → components/checkbox}/Checkbox.js +0 -0
  147. /package/dist/cjs/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
  148. /package/dist/cjs/{checkbox → components/checkbox}/CheckboxGroup.js +0 -0
  149. /package/dist/cjs/{checkbox → components/checkbox}/index.js +0 -0
  150. /package/dist/cjs/{checkbox → components/checkbox}/tokens.js +0 -0
  151. /package/dist/cjs/{circle → components/circle}/Circle.js +0 -0
  152. /package/dist/cjs/{circle → components/circle}/index.js +0 -0
  153. /package/dist/cjs/{circle → components/circle}/tokens.js +0 -0
  154. /package/dist/cjs/{collapse → components/collapse}/Collapse.js +0 -0
  155. /package/dist/cjs/{collapse → components/collapse}/index.js +0 -0
  156. /package/dist/cjs/{collapse → components/collapse}/tokens.js +0 -0
  157. /package/dist/cjs/{config-provider → components/config-provider}/ConfigProvider.js +0 -0
  158. /package/dist/cjs/{config-provider → components/config-provider}/LocaleContext.js +0 -0
  159. /package/dist/cjs/{config-provider → components/config-provider}/index.js +0 -0
  160. /package/dist/cjs/{config-provider → components/config-provider}/locale/base.js +0 -0
  161. /package/dist/cjs/{config-provider → components/config-provider}/locale/en-US.js +0 -0
  162. /package/dist/cjs/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
  163. /package/dist/cjs/{config-provider → components/config-provider}/useLocale.js +0 -0
  164. /package/dist/cjs/{count-down → components/count-down}/CountDown.js +0 -0
  165. /package/dist/cjs/{count-down → components/count-down}/index.js +0 -0
  166. /package/dist/cjs/{count-down → components/count-down}/tokens.js +0 -0
  167. /package/dist/cjs/{datetime-picker → components/datetime-picker}/DatetimePicker.js +0 -0
  168. /package/dist/cjs/{datetime-picker → components/datetime-picker}/index.js +0 -0
  169. /package/dist/cjs/{dialog → components/dialog}/Dialog.js +0 -0
  170. /package/dist/cjs/{dialog → components/dialog}/imperative.js +0 -0
  171. /package/dist/cjs/{dialog → components/dialog}/index.js +0 -0
  172. /package/dist/cjs/{dialog → components/dialog}/tokens.js +0 -0
  173. /package/dist/cjs/{divider → components/divider}/Divider.js +0 -0
  174. /package/dist/cjs/{divider → components/divider}/index.js +0 -0
  175. /package/dist/cjs/{divider → components/divider}/tokens.js +0 -0
  176. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +0 -0
  177. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +0 -0
  178. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
  179. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
  180. /package/dist/cjs/{dropdown-menu → components/dropdown-menu}/tokens.js +0 -0
  181. /package/dist/cjs/{empty → components/empty}/Empty.js +0 -0
  182. /package/dist/cjs/{empty → components/empty}/index.js +0 -0
  183. /package/dist/cjs/{empty → components/empty}/tokens.js +0 -0
  184. /package/dist/cjs/{field → components/field}/Field.js +0 -0
  185. /package/dist/cjs/{field → components/field}/index.js +0 -0
  186. /package/dist/cjs/{field → components/field}/tokens.js +0 -0
  187. /package/dist/cjs/{field → components/field}/utils.js +0 -0
  188. /package/dist/cjs/{flex → components/flex}/Flex.js +0 -0
  189. /package/dist/cjs/{flex → components/flex}/FlexContext.js +0 -0
  190. /package/dist/cjs/{flex → components/flex}/FlexItem.js +0 -0
  191. /package/dist/cjs/{flex → components/flex}/index.js +0 -0
  192. /package/dist/cjs/{flex → components/flex}/tokens.js +0 -0
  193. /package/dist/cjs/{form → components/form}/Form.js +0 -0
  194. /package/dist/cjs/{form → components/form}/FormContext.js +0 -0
  195. /package/dist/cjs/{form → components/form}/FormItem.js +0 -0
  196. /package/dist/cjs/{form → components/form}/FormList.js +0 -0
  197. /package/dist/cjs/{form → components/form}/index.js +0 -0
  198. /package/dist/cjs/{form → components/form}/utils.js +0 -0
  199. /package/dist/cjs/{grid → components/grid}/Grid.js +0 -0
  200. /package/dist/cjs/{grid → components/grid}/GridContext.js +0 -0
  201. /package/dist/cjs/{grid → components/grid}/GridItem.js +0 -0
  202. /package/dist/cjs/{grid → components/grid}/index.js +0 -0
  203. /package/dist/cjs/{grid → components/grid}/tokens.js +0 -0
  204. /package/dist/cjs/{image → components/image}/Image.js +0 -0
  205. /package/dist/cjs/{image → components/image}/index.js +0 -0
  206. /package/dist/cjs/{image → components/image}/tokens.js +0 -0
  207. /package/dist/cjs/{image-preview → components/image-preview}/ImagePreview.js +0 -0
  208. /package/dist/cjs/{image-preview → components/image-preview}/imperative.js +0 -0
  209. /package/dist/cjs/{image-preview → components/image-preview}/index.js +0 -0
  210. /package/dist/cjs/{image-preview → components/image-preview}/tokens.js +0 -0
  211. /package/dist/cjs/{index-bar → components/index-bar}/IndexAnchor.js +0 -0
  212. /package/dist/cjs/{index-bar → components/index-bar}/index.js +0 -0
  213. /package/dist/cjs/{index-bar → components/index-bar}/tokens.js +0 -0
  214. /package/dist/cjs/{input → components/input}/Input.js +0 -0
  215. /package/dist/cjs/{input → components/input}/index.js +0 -0
  216. /package/dist/cjs/{input → components/input}/tokens.js +0 -0
  217. /package/dist/cjs/{list → components/list}/List.js +0 -0
  218. /package/dist/cjs/{list → components/list}/index.js +0 -0
  219. /package/dist/cjs/{list → components/list}/tokens.js +0 -0
  220. /package/dist/cjs/{loading → components/loading}/Loading.js +0 -0
  221. /package/dist/cjs/{loading → components/loading}/index.js +0 -0
  222. /package/dist/cjs/{loading → components/loading}/tokens.js +0 -0
  223. /package/dist/cjs/{nav-bar → components/nav-bar}/index.js +0 -0
  224. /package/dist/cjs/{nav-bar → components/nav-bar}/tokens.js +0 -0
  225. /package/dist/cjs/{notice-bar → components/notice-bar}/NoticeBar.js +0 -0
  226. /package/dist/cjs/{notice-bar → components/notice-bar}/index.js +0 -0
  227. /package/dist/cjs/{notice-bar → components/notice-bar}/tokens.js +0 -0
  228. /package/dist/cjs/{notify → components/notify}/defaults.js +0 -0
  229. /package/dist/cjs/{notify → components/notify}/index.js +0 -0
  230. /package/dist/cjs/{notify → components/notify}/tokens.js +0 -0
  231. /package/dist/cjs/{number-keyboard → components/number-keyboard}/index.js +0 -0
  232. /package/dist/cjs/{number-keyboard → components/number-keyboard}/tokens.js +0 -0
  233. /package/dist/cjs/{overlay → components/overlay}/Overlay.js +0 -0
  234. /package/dist/cjs/{overlay → components/overlay}/OverlayStackStore.js +0 -0
  235. /package/dist/cjs/{overlay → components/overlay}/index.js +0 -0
  236. /package/dist/cjs/{overlay → components/overlay}/tokens.js +0 -0
  237. /package/dist/cjs/{overlay → components/overlay}/useOverlayStack.js +0 -0
  238. /package/dist/cjs/{pagination → components/pagination}/Pagination.js +0 -0
  239. /package/dist/cjs/{pagination → components/pagination}/index.js +0 -0
  240. /package/dist/cjs/{pagination → components/pagination}/tokens.js +0 -0
  241. /package/dist/cjs/{password-input → components/password-input}/PasswordInput.js +0 -0
  242. /package/dist/cjs/{password-input → components/password-input}/index.js +0 -0
  243. /package/dist/cjs/{picker → components/picker}/Picker.js +0 -0
  244. /package/dist/cjs/{picker → components/picker}/WheelPicker.js +0 -0
  245. /package/dist/cjs/{picker → components/picker}/index.js +0 -0
  246. /package/dist/cjs/{picker → components/picker}/tokens.js +0 -0
  247. /package/dist/cjs/{picker → components/picker}/utils.js +0 -0
  248. /package/dist/cjs/{popup → components/popup}/index.js +0 -0
  249. /package/dist/cjs/{popup → components/popup}/tokens.js +0 -0
  250. /package/dist/cjs/{portal → components/portal}/Portal.js +0 -0
  251. /package/dist/cjs/{portal → components/portal}/PortalContext.js +0 -0
  252. /package/dist/cjs/{portal → components/portal}/PortalHost.js +0 -0
  253. /package/dist/cjs/{portal → components/portal}/index.js +0 -0
  254. /package/dist/cjs/{progress → components/progress}/Progress.js +0 -0
  255. /package/dist/cjs/{progress → components/progress}/index.js +0 -0
  256. /package/dist/cjs/{progress → components/progress}/tokens.js +0 -0
  257. /package/dist/cjs/{pull-refresh → components/pull-refresh}/PullRefresh.js +0 -0
  258. /package/dist/cjs/{pull-refresh → components/pull-refresh}/index.js +0 -0
  259. /package/dist/cjs/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
  260. /package/dist/cjs/{radio → components/radio}/Radio.js +0 -0
  261. /package/dist/cjs/{radio → components/radio}/RadioContext.js +0 -0
  262. /package/dist/cjs/{radio → components/radio}/RadioGroup.js +0 -0
  263. /package/dist/cjs/{radio → components/radio}/index.js +0 -0
  264. /package/dist/cjs/{radio → components/radio}/tokens.js +0 -0
  265. /package/dist/cjs/{rate → components/rate}/Rate.js +0 -0
  266. /package/dist/cjs/{rate → components/rate}/index.js +0 -0
  267. /package/dist/cjs/{rate → components/rate}/tokens.js +0 -0
  268. /package/dist/cjs/{search → components/search}/Search.js +0 -0
  269. /package/dist/cjs/{search → components/search}/index.js +0 -0
  270. /package/dist/cjs/{search → components/search}/tokens.js +0 -0
  271. /package/dist/cjs/{selector → components/selector}/Selector.js +0 -0
  272. /package/dist/cjs/{selector → components/selector}/index.js +0 -0
  273. /package/dist/cjs/{selector → components/selector}/tokens.js +0 -0
  274. /package/dist/cjs/{share-sheet → components/share-sheet}/ShareSheet.js +0 -0
  275. /package/dist/cjs/{share-sheet → components/share-sheet}/index.js +0 -0
  276. /package/dist/cjs/{share-sheet → components/share-sheet}/tokens.js +0 -0
  277. /package/dist/cjs/{sidebar → components/sidebar}/Sidebar.js +0 -0
  278. /package/dist/cjs/{sidebar → components/sidebar}/SidebarContext.js +0 -0
  279. /package/dist/cjs/{sidebar → components/sidebar}/SidebarItem.js +0 -0
  280. /package/dist/cjs/{sidebar → components/sidebar}/index.js +0 -0
  281. /package/dist/cjs/{sidebar → components/sidebar}/tokens.js +0 -0
  282. /package/dist/cjs/{skeleton → components/skeleton}/Skeleton.js +0 -0
  283. /package/dist/cjs/{skeleton → components/skeleton}/index.js +0 -0
  284. /package/dist/cjs/{skeleton → components/skeleton}/tokens.js +0 -0
  285. /package/dist/cjs/{slider → components/slider}/Slider.js +0 -0
  286. /package/dist/cjs/{slider → components/slider}/index.js +0 -0
  287. /package/dist/cjs/{slider → components/slider}/tokens.js +0 -0
  288. /package/dist/cjs/{slider → components/slider}/utils.js +0 -0
  289. /package/dist/cjs/{space → components/space}/Space.js +0 -0
  290. /package/dist/cjs/{space → components/space}/index.js +0 -0
  291. /package/dist/cjs/{space → components/space}/tokens.js +0 -0
  292. /package/dist/cjs/{stepper → components/stepper}/Stepper.js +0 -0
  293. /package/dist/cjs/{stepper → components/stepper}/index.js +0 -0
  294. /package/dist/cjs/{stepper → components/stepper}/tokens.js +0 -0
  295. /package/dist/cjs/{swiper → components/swiper}/Swiper.js +0 -0
  296. /package/dist/cjs/{swiper → components/swiper}/SwiperItem.js +0 -0
  297. /package/dist/cjs/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
  298. /package/dist/cjs/{swiper → components/swiper}/index.js +0 -0
  299. /package/dist/cjs/{swiper → components/swiper}/useSwiperWeb.js +0 -0
  300. /package/dist/cjs/{swiper → components/swiper}/utils.js +0 -0
  301. /package/dist/cjs/{switch → components/switch}/Switch.js +0 -0
  302. /package/dist/cjs/{switch → components/switch}/index.js +0 -0
  303. /package/dist/cjs/{switch → components/switch}/tokens.js +0 -0
  304. /package/dist/cjs/{tabbar → components/tabbar}/TabbarContext.js +0 -0
  305. /package/dist/cjs/{tabbar → components/tabbar}/TabbarItem.js +0 -0
  306. /package/dist/cjs/{tabbar → components/tabbar}/index.js +0 -0
  307. /package/dist/cjs/{tabbar → components/tabbar}/tokens.js +0 -0
  308. /package/dist/cjs/{tabs → components/tabs}/TabPane.js +0 -0
  309. /package/dist/cjs/{tabs → components/tabs}/Tabs.js +0 -0
  310. /package/dist/cjs/{tabs → components/tabs}/index.js +0 -0
  311. /package/dist/cjs/{tabs → components/tabs}/tokens.js +0 -0
  312. /package/dist/cjs/{tabs → components/tabs}/useTabsAnimation.js +0 -0
  313. /package/dist/cjs/{tabs → components/tabs}/useTabsScroll.js +0 -0
  314. /package/dist/cjs/{tabs → components/tabs}/utils.js +0 -0
  315. /package/dist/cjs/{tag → components/tag}/Tag.js +0 -0
  316. /package/dist/cjs/{tag → components/tag}/index.js +0 -0
  317. /package/dist/cjs/{tag → components/tag}/tokens.js +0 -0
  318. /package/dist/cjs/{toast → components/toast}/imperative.js +0 -0
  319. /package/dist/cjs/{toast → components/toast}/index.js +0 -0
  320. /package/dist/cjs/{toast → components/toast}/tokens.js +0 -0
  321. /package/dist/cjs/{typography → components/typography}/Typography.js +0 -0
  322. /package/dist/cjs/{typography → components/typography}/index.js +0 -0
  323. /package/dist/cjs/{typography → components/typography}/tokens.js +0 -0
  324. /package/dist/cjs/{uploader → components/uploader}/Uploader.js +0 -0
  325. /package/dist/cjs/{uploader → components/uploader}/index.js +0 -0
  326. /package/dist/cjs/{uploader → components/uploader}/tokens.js +0 -0
  327. /package/dist/cjs/{uploader → components/uploader}/utils.js +0 -0
  328. /package/dist/cjs/{water-mark → components/water-mark}/WaterMark.js +0 -0
  329. /package/dist/cjs/{water-mark → components/water-mark}/index.js +0 -0
  330. /package/dist/cjs/{water-mark → components/water-mark}/tokens.js +0 -0
  331. /package/dist/es/{action-sheet → components/action-sheet}/ActionSheet.js +0 -0
  332. /package/dist/es/{action-sheet → components/action-sheet}/index.js +0 -0
  333. /package/dist/es/{action-sheet → components/action-sheet}/tokens.js +0 -0
  334. /package/dist/es/{area → components/area}/Area.js +0 -0
  335. /package/dist/es/{area → components/area}/index.js +0 -0
  336. /package/dist/es/{area → components/area}/utils.js +0 -0
  337. /package/dist/es/{avatar → components/avatar}/Avatar.js +0 -0
  338. /package/dist/es/{avatar → components/avatar}/index.js +0 -0
  339. /package/dist/es/{avatar → components/avatar}/tokens.js +0 -0
  340. /package/dist/es/{badge → components/badge}/Badge.js +0 -0
  341. /package/dist/es/{badge → components/badge}/index.js +0 -0
  342. /package/dist/es/{badge → components/badge}/tokens.js +0 -0
  343. /package/dist/es/{button → components/button}/Button.js +0 -0
  344. /package/dist/es/{button → components/button}/ButtonContext.js +0 -0
  345. /package/dist/es/{button → components/button}/ButtonGroup.js +0 -0
  346. /package/dist/es/{button → components/button}/index.js +0 -0
  347. /package/dist/es/{button → components/button}/tokens.js +0 -0
  348. /package/dist/es/{calendar → components/calendar}/Calendar.js +0 -0
  349. /package/dist/es/{calendar → components/calendar}/index.js +0 -0
  350. /package/dist/es/{calendar → components/calendar}/tokens.js +0 -0
  351. /package/dist/es/{cascader → components/cascader}/Cascader.js +0 -0
  352. /package/dist/es/{cascader → components/cascader}/index.js +0 -0
  353. /package/dist/es/{cascader → components/cascader}/tokens.js +0 -0
  354. /package/dist/es/{cascader → components/cascader}/useCascaderExtend.js +0 -0
  355. /package/dist/es/{cascader → components/cascader}/utils.js +0 -0
  356. /package/dist/es/{cell → components/cell}/Cell.js +0 -0
  357. /package/dist/es/{cell → components/cell}/CellContext.js +0 -0
  358. /package/dist/es/{cell → components/cell}/CellGroup.js +0 -0
  359. /package/dist/es/{cell → components/cell}/index.js +0 -0
  360. /package/dist/es/{cell → components/cell}/tokens.js +0 -0
  361. /package/dist/es/{checkbox → components/checkbox}/Checkbox.js +0 -0
  362. /package/dist/es/{checkbox → components/checkbox}/CheckboxContext.js +0 -0
  363. /package/dist/es/{checkbox → components/checkbox}/CheckboxGroup.js +0 -0
  364. /package/dist/es/{checkbox → components/checkbox}/index.js +0 -0
  365. /package/dist/es/{checkbox → components/checkbox}/tokens.js +0 -0
  366. /package/dist/es/{circle → components/circle}/Circle.js +0 -0
  367. /package/dist/es/{circle → components/circle}/index.js +0 -0
  368. /package/dist/es/{circle → components/circle}/tokens.js +0 -0
  369. /package/dist/es/{collapse → components/collapse}/Collapse.js +0 -0
  370. /package/dist/es/{collapse → components/collapse}/index.js +0 -0
  371. /package/dist/es/{collapse → components/collapse}/tokens.js +0 -0
  372. /package/dist/es/{config-provider → components/config-provider}/ConfigProvider.js +0 -0
  373. /package/dist/es/{config-provider → components/config-provider}/LocaleContext.js +0 -0
  374. /package/dist/es/{config-provider → components/config-provider}/index.js +0 -0
  375. /package/dist/es/{config-provider → components/config-provider}/locale/base.js +0 -0
  376. /package/dist/es/{config-provider → components/config-provider}/locale/en-US.js +0 -0
  377. /package/dist/es/{config-provider → components/config-provider}/locale/zh-CN.js +0 -0
  378. /package/dist/es/{config-provider → components/config-provider}/useLocale.js +0 -0
  379. /package/dist/es/{count-down → components/count-down}/CountDown.js +0 -0
  380. /package/dist/es/{count-down → components/count-down}/index.js +0 -0
  381. /package/dist/es/{count-down → components/count-down}/tokens.js +0 -0
  382. /package/dist/es/{datetime-picker → components/datetime-picker}/DatetimePicker.js +0 -0
  383. /package/dist/es/{datetime-picker → components/datetime-picker}/index.js +0 -0
  384. /package/dist/es/{dialog → components/dialog}/Dialog.js +0 -0
  385. /package/dist/es/{dialog → components/dialog}/imperative.js +0 -0
  386. /package/dist/es/{dialog → components/dialog}/index.js +0 -0
  387. /package/dist/es/{dialog → components/dialog}/tokens.js +0 -0
  388. /package/dist/es/{divider → components/divider}/Divider.js +0 -0
  389. /package/dist/es/{divider → components/divider}/index.js +0 -0
  390. /package/dist/es/{divider → components/divider}/tokens.js +0 -0
  391. /package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownItem.js +0 -0
  392. /package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenu.js +0 -0
  393. /package/dist/es/{dropdown-menu → components/dropdown-menu}/DropdownMenuContext.js +0 -0
  394. /package/dist/es/{dropdown-menu → components/dropdown-menu}/index.js +0 -0
  395. /package/dist/es/{dropdown-menu → components/dropdown-menu}/tokens.js +0 -0
  396. /package/dist/es/{empty → components/empty}/Empty.js +0 -0
  397. /package/dist/es/{empty → components/empty}/index.js +0 -0
  398. /package/dist/es/{empty → components/empty}/tokens.js +0 -0
  399. /package/dist/es/{field → components/field}/Field.js +0 -0
  400. /package/dist/es/{field → components/field}/index.js +0 -0
  401. /package/dist/es/{field → components/field}/tokens.js +0 -0
  402. /package/dist/es/{field → components/field}/utils.js +0 -0
  403. /package/dist/es/{flex → components/flex}/Flex.js +0 -0
  404. /package/dist/es/{flex → components/flex}/FlexContext.js +0 -0
  405. /package/dist/es/{flex → components/flex}/FlexItem.js +0 -0
  406. /package/dist/es/{flex → components/flex}/index.js +0 -0
  407. /package/dist/es/{flex → components/flex}/tokens.js +0 -0
  408. /package/dist/es/{form → components/form}/Form.js +0 -0
  409. /package/dist/es/{form → components/form}/FormContext.js +0 -0
  410. /package/dist/es/{form → components/form}/FormItem.js +0 -0
  411. /package/dist/es/{form → components/form}/FormList.js +0 -0
  412. /package/dist/es/{form → components/form}/index.js +0 -0
  413. /package/dist/es/{form → components/form}/utils.js +0 -0
  414. /package/dist/es/{grid → components/grid}/Grid.js +0 -0
  415. /package/dist/es/{grid → components/grid}/GridContext.js +0 -0
  416. /package/dist/es/{grid → components/grid}/GridItem.js +0 -0
  417. /package/dist/es/{grid → components/grid}/index.js +0 -0
  418. /package/dist/es/{grid → components/grid}/tokens.js +0 -0
  419. /package/dist/es/{image → components/image}/Image.js +0 -0
  420. /package/dist/es/{image → components/image}/index.js +0 -0
  421. /package/dist/es/{image → components/image}/tokens.js +0 -0
  422. /package/dist/es/{image-preview → components/image-preview}/ImagePreview.js +0 -0
  423. /package/dist/es/{image-preview → components/image-preview}/imperative.js +0 -0
  424. /package/dist/es/{image-preview → components/image-preview}/index.js +0 -0
  425. /package/dist/es/{image-preview → components/image-preview}/tokens.js +0 -0
  426. /package/dist/es/{index-bar → components/index-bar}/IndexAnchor.js +0 -0
  427. /package/dist/es/{index-bar → components/index-bar}/index.js +0 -0
  428. /package/dist/es/{index-bar → components/index-bar}/tokens.js +0 -0
  429. /package/dist/es/{input → components/input}/Input.js +0 -0
  430. /package/dist/es/{input → components/input}/index.js +0 -0
  431. /package/dist/es/{input → components/input}/tokens.js +0 -0
  432. /package/dist/es/{list → components/list}/List.js +0 -0
  433. /package/dist/es/{list → components/list}/index.js +0 -0
  434. /package/dist/es/{list → components/list}/tokens.js +0 -0
  435. /package/dist/es/{loading → components/loading}/Loading.js +0 -0
  436. /package/dist/es/{loading → components/loading}/index.js +0 -0
  437. /package/dist/es/{loading → components/loading}/tokens.js +0 -0
  438. /package/dist/es/{nav-bar → components/nav-bar}/index.js +0 -0
  439. /package/dist/es/{nav-bar → components/nav-bar}/tokens.js +0 -0
  440. /package/dist/es/{notice-bar → components/notice-bar}/NoticeBar.js +0 -0
  441. /package/dist/es/{notice-bar → components/notice-bar}/index.js +0 -0
  442. /package/dist/es/{notice-bar → components/notice-bar}/tokens.js +0 -0
  443. /package/dist/es/{notify → components/notify}/defaults.js +0 -0
  444. /package/dist/es/{notify → components/notify}/index.js +0 -0
  445. /package/dist/es/{notify → components/notify}/tokens.js +0 -0
  446. /package/dist/es/{number-keyboard → components/number-keyboard}/index.js +0 -0
  447. /package/dist/es/{number-keyboard → components/number-keyboard}/tokens.js +0 -0
  448. /package/dist/es/{overlay → components/overlay}/Overlay.js +0 -0
  449. /package/dist/es/{overlay → components/overlay}/OverlayStackStore.js +0 -0
  450. /package/dist/es/{overlay → components/overlay}/index.js +0 -0
  451. /package/dist/es/{overlay → components/overlay}/tokens.js +0 -0
  452. /package/dist/es/{overlay → components/overlay}/useOverlayStack.js +0 -0
  453. /package/dist/es/{pagination → components/pagination}/Pagination.js +0 -0
  454. /package/dist/es/{pagination → components/pagination}/index.js +0 -0
  455. /package/dist/es/{pagination → components/pagination}/tokens.js +0 -0
  456. /package/dist/es/{password-input → components/password-input}/PasswordInput.js +0 -0
  457. /package/dist/es/{password-input → components/password-input}/index.js +0 -0
  458. /package/dist/es/{picker → components/picker}/Picker.js +0 -0
  459. /package/dist/es/{picker → components/picker}/WheelPicker.js +0 -0
  460. /package/dist/es/{picker → components/picker}/index.js +0 -0
  461. /package/dist/es/{picker → components/picker}/tokens.js +0 -0
  462. /package/dist/es/{picker → components/picker}/utils.js +0 -0
  463. /package/dist/es/{popup → components/popup}/index.js +0 -0
  464. /package/dist/es/{popup → components/popup}/tokens.js +0 -0
  465. /package/dist/es/{portal → components/portal}/Portal.js +0 -0
  466. /package/dist/es/{portal → components/portal}/PortalContext.js +0 -0
  467. /package/dist/es/{portal → components/portal}/PortalHost.js +0 -0
  468. /package/dist/es/{portal → components/portal}/index.js +0 -0
  469. /package/dist/es/{progress → components/progress}/Progress.js +0 -0
  470. /package/dist/es/{progress → components/progress}/index.js +0 -0
  471. /package/dist/es/{progress → components/progress}/tokens.js +0 -0
  472. /package/dist/es/{pull-refresh → components/pull-refresh}/PullRefresh.js +0 -0
  473. /package/dist/es/{pull-refresh → components/pull-refresh}/index.js +0 -0
  474. /package/dist/es/{pull-refresh → components/pull-refresh}/tokens.js +0 -0
  475. /package/dist/es/{radio → components/radio}/Radio.js +0 -0
  476. /package/dist/es/{radio → components/radio}/RadioContext.js +0 -0
  477. /package/dist/es/{radio → components/radio}/RadioGroup.js +0 -0
  478. /package/dist/es/{radio → components/radio}/index.js +0 -0
  479. /package/dist/es/{radio → components/radio}/tokens.js +0 -0
  480. /package/dist/es/{rate → components/rate}/Rate.js +0 -0
  481. /package/dist/es/{rate → components/rate}/index.js +0 -0
  482. /package/dist/es/{rate → components/rate}/tokens.js +0 -0
  483. /package/dist/es/{search → components/search}/Search.js +0 -0
  484. /package/dist/es/{search → components/search}/index.js +0 -0
  485. /package/dist/es/{search → components/search}/tokens.js +0 -0
  486. /package/dist/es/{selector → components/selector}/Selector.js +0 -0
  487. /package/dist/es/{selector → components/selector}/index.js +0 -0
  488. /package/dist/es/{selector → components/selector}/tokens.js +0 -0
  489. /package/dist/es/{share-sheet → components/share-sheet}/ShareSheet.js +0 -0
  490. /package/dist/es/{share-sheet → components/share-sheet}/index.js +0 -0
  491. /package/dist/es/{share-sheet → components/share-sheet}/tokens.js +0 -0
  492. /package/dist/es/{sidebar → components/sidebar}/Sidebar.js +0 -0
  493. /package/dist/es/{sidebar → components/sidebar}/SidebarContext.js +0 -0
  494. /package/dist/es/{sidebar → components/sidebar}/SidebarItem.js +0 -0
  495. /package/dist/es/{sidebar → components/sidebar}/index.js +0 -0
  496. /package/dist/es/{sidebar → components/sidebar}/tokens.js +0 -0
  497. /package/dist/es/{skeleton → components/skeleton}/Skeleton.js +0 -0
  498. /package/dist/es/{skeleton → components/skeleton}/index.js +0 -0
  499. /package/dist/es/{skeleton → components/skeleton}/tokens.js +0 -0
  500. /package/dist/es/{slider → components/slider}/Slider.js +0 -0
  501. /package/dist/es/{slider → components/slider}/index.js +0 -0
  502. /package/dist/es/{slider → components/slider}/tokens.js +0 -0
  503. /package/dist/es/{slider → components/slider}/utils.js +0 -0
  504. /package/dist/es/{space → components/space}/Space.js +0 -0
  505. /package/dist/es/{space → components/space}/index.js +0 -0
  506. /package/dist/es/{space → components/space}/tokens.js +0 -0
  507. /package/dist/es/{stepper → components/stepper}/Stepper.js +0 -0
  508. /package/dist/es/{stepper → components/stepper}/index.js +0 -0
  509. /package/dist/es/{stepper → components/stepper}/tokens.js +0 -0
  510. /package/dist/es/{swiper → components/swiper}/Swiper.js +0 -0
  511. /package/dist/es/{swiper → components/swiper}/SwiperItem.js +0 -0
  512. /package/dist/es/{swiper → components/swiper}/SwiperPagIndicator.js +0 -0
  513. /package/dist/es/{swiper → components/swiper}/index.js +0 -0
  514. /package/dist/es/{swiper → components/swiper}/useSwiperWeb.js +0 -0
  515. /package/dist/es/{swiper → components/swiper}/utils.js +0 -0
  516. /package/dist/es/{switch → components/switch}/Switch.js +0 -0
  517. /package/dist/es/{switch → components/switch}/index.js +0 -0
  518. /package/dist/es/{switch → components/switch}/tokens.js +0 -0
  519. /package/dist/es/{tabbar → components/tabbar}/TabbarContext.js +0 -0
  520. /package/dist/es/{tabbar → components/tabbar}/TabbarItem.js +0 -0
  521. /package/dist/es/{tabbar → components/tabbar}/index.js +0 -0
  522. /package/dist/es/{tabbar → components/tabbar}/tokens.js +0 -0
  523. /package/dist/es/{tabs → components/tabs}/TabPane.js +0 -0
  524. /package/dist/es/{tabs → components/tabs}/Tabs.js +0 -0
  525. /package/dist/es/{tabs → components/tabs}/index.js +0 -0
  526. /package/dist/es/{tabs → components/tabs}/tokens.js +0 -0
  527. /package/dist/es/{tabs → components/tabs}/useTabsAnimation.js +0 -0
  528. /package/dist/es/{tabs → components/tabs}/useTabsScroll.js +0 -0
  529. /package/dist/es/{tabs → components/tabs}/utils.js +0 -0
  530. /package/dist/es/{tag → components/tag}/Tag.js +0 -0
  531. /package/dist/es/{tag → components/tag}/index.js +0 -0
  532. /package/dist/es/{tag → components/tag}/tokens.js +0 -0
  533. /package/dist/es/{toast → components/toast}/imperative.js +0 -0
  534. /package/dist/es/{toast → components/toast}/index.js +0 -0
  535. /package/dist/es/{toast → components/toast}/tokens.js +0 -0
  536. /package/dist/es/{typography → components/typography}/Typography.js +0 -0
  537. /package/dist/es/{typography → components/typography}/index.js +0 -0
  538. /package/dist/es/{typography → components/typography}/tokens.js +0 -0
  539. /package/dist/es/{uploader → components/uploader}/Uploader.js +0 -0
  540. /package/dist/es/{uploader → components/uploader}/index.js +0 -0
  541. /package/dist/es/{uploader → components/uploader}/tokens.js +0 -0
  542. /package/dist/es/{uploader → components/uploader}/utils.js +0 -0
  543. /package/dist/es/{water-mark → components/water-mark}/WaterMark.js +0 -0
  544. /package/dist/es/{water-mark → components/water-mark}/index.js +0 -0
  545. /package/dist/es/{water-mark → components/water-mark}/tokens.js +0 -0
@@ -0,0 +1,136 @@
1
+ import { deepMerge } from '../utils/deepMerge';
2
+ export const defaultFoundations = {
3
+ palette: {
4
+ default: {
5
+ 50: '#f7f8fa',
6
+ 100: '#f1f2f5',
7
+ 200: '#ebedf0',
8
+ 300: '#c8ccd6',
9
+ 400: '#a8aebb',
10
+ 500: '#888f9f',
11
+ 600: '#6d7483',
12
+ 700: '#505560',
13
+ 800: '#353840',
14
+ 900: '#191a1f',
15
+ foreground: '#222222'
16
+ },
17
+ primary: {
18
+ 50: '#f5f8ff',
19
+ 100: '#e1e9ff',
20
+ 200: '#c2d4ff',
21
+ 300: '#9bb8ff',
22
+ 400: '#6d94ff',
23
+ 500: '#4770ff',
24
+ 600: '#2f51e0',
25
+ 700: '#243eb1',
26
+ 800: '#1a2d82',
27
+ 900: '#111d55',
28
+ foreground: '#ffffff'
29
+ },
30
+ info: {
31
+ 50: '#f0f8ff',
32
+ 100: '#d9ecff',
33
+ 200: '#b9dcff',
34
+ 300: '#8bc3ff',
35
+ 400: '#5aa7ff',
36
+ 500: '#328dff',
37
+ 600: '#1d6fde',
38
+ 700: '#1753a9',
39
+ 800: '#113a75',
40
+ 900: '#0a2143',
41
+ foreground: '#ffffff'
42
+ },
43
+ success: {
44
+ 50: '#f2fbf6',
45
+ 100: '#dcf5e7',
46
+ 200: '#b8e9cf',
47
+ 300: '#8ddbb1',
48
+ 400: '#5fcf93',
49
+ 500: '#31c174',
50
+ 600: '#1da45e',
51
+ 700: '#128047',
52
+ 800: '#0a5c32',
53
+ 900: '#043719',
54
+ foreground: '#ffffff'
55
+ },
56
+ warning: {
57
+ 50: '#fff8ec',
58
+ 100: '#ffecc7',
59
+ 200: '#ffd595',
60
+ 300: '#ffbc63',
61
+ 400: '#ffa035',
62
+ 500: '#ff8414',
63
+ 600: '#d9650b',
64
+ 700: '#ad4905',
65
+ 800: '#7f3101',
66
+ 900: '#4d1c00',
67
+ foreground: '#ffffff'
68
+ },
69
+ danger: {
70
+ 50: '#fff1f2',
71
+ 100: '#ffd8dd',
72
+ 200: '#ffadb7',
73
+ 300: '#ff8090',
74
+ 400: '#ff556c',
75
+ 500: '#f2324c',
76
+ 600: '#ce1733',
77
+ 700: '#a30f27',
78
+ 800: '#770819',
79
+ 900: '#47040b',
80
+ foreground: '#ffffff'
81
+ }
82
+ },
83
+ spacing: {
84
+ none: 0,
85
+ xxs: 2,
86
+ xs: 4,
87
+ ssm: 6,
88
+ sm: 8,
89
+ md: 12,
90
+ lg: 16,
91
+ xl: 20,
92
+ xxl: 28
93
+ },
94
+ radii: {
95
+ none: 0,
96
+ xs: 4,
97
+ sm: 6,
98
+ md: 8,
99
+ lg: 12,
100
+ pill: 999,
101
+ full: 9999
102
+ },
103
+ fontSize: {
104
+ xxs: 10,
105
+ xs: 12,
106
+ sm: 14,
107
+ md: 16,
108
+ lg: 18,
109
+ xl: 20
110
+ },
111
+ typography: {
112
+ fontFamily: 'System',
113
+ weight: {
114
+ regular: '400',
115
+ medium: '500',
116
+ semiBold: '600',
117
+ bold: '700'
118
+ },
119
+ lineHeightMultiplier: 1.2
120
+ },
121
+ opacity: {
122
+ disabled: 0.45,
123
+ loading: 0.65,
124
+ pressed: 0.85
125
+ }
126
+ };
127
+ export const buildFoundations = overrides => {
128
+ if (!overrides) {
129
+ return defaultFoundations;
130
+ }
131
+ return deepMerge(defaultFoundations, overrides);
132
+ };
133
+ export const createTokens = overrides => {
134
+ return buildFoundations(overrides);
135
+ };
136
+ export const defaultTokens = defaultFoundations;
@@ -0,0 +1,3 @@
1
+ import { useContext } from 'react';
2
+ import { ThemeContext } from './ThemeContext';
3
+ export const useTheme = () => useContext(ThemeContext);
@@ -0,0 +1,5 @@
1
+ export * from './useAriaPress';
2
+ export * from './useAriaToggle';
3
+ export * from './useAriaListBox';
4
+ export * from './useAriaOverlay';
5
+ export {};
@@ -0,0 +1,33 @@
1
+ import { useMemo, useRef } from 'react';
2
+ import { useListBox } from '@react-native-aria/listbox';
3
+ import { useListState } from '@react-stately/list';
4
+ export const useAriaListBox = 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);
21
+ const {
22
+ listBoxProps,
23
+ labelProps
24
+ } = useListBox(resolvedProps, state, ref);
25
+ const resolvedListBoxProps = useMemo(() => listBoxProps, [listBoxProps]);
26
+ const resolvedLabelProps = useMemo(() => labelProps, [labelProps]);
27
+ return {
28
+ state,
29
+ listBoxProps: resolvedListBoxProps,
30
+ labelProps: resolvedLabelProps,
31
+ ref
32
+ };
33
+ };
@@ -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,41 @@
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
+ } = {}) => {
9
+ const [mounted, setMounted] = useState(visible);
10
+ const animated = useRef(new Animated.Value(visible && !appear ? 1 : 0)).current;
11
+ const useNativeDriver = nativeDriverEnabled;
12
+ const animationIdRef = useRef(0);
13
+ useEffect(() => {
14
+ animationIdRef.current += 1;
15
+ const animationId = animationIdRef.current;
16
+ animated.stopAnimation();
17
+ if (visible) {
18
+ setMounted(true);
19
+ Animated.timing(animated, {
20
+ toValue: 1,
21
+ duration,
22
+ easing,
23
+ useNativeDriver
24
+ }).start();
25
+ } else {
26
+ Animated.timing(animated, {
27
+ toValue: 0,
28
+ duration,
29
+ easing,
30
+ useNativeDriver
31
+ }).start(() => {
32
+ if (animationId !== animationIdRef.current) return;
33
+ setMounted(false);
34
+ });
35
+ }
36
+ }, [animated, duration, easing, useNativeDriver, visible]);
37
+ return {
38
+ mounted,
39
+ animated
40
+ };
41
+ };
@@ -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
+ }