react-native-system-ui 0.0.7 → 1.0.1

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 (411) hide show
  1. package/README.md +46 -31
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +128 -142
  3. package/dist/cjs/components/action-sheet/tokens.js +16 -27
  4. package/dist/cjs/components/area/Area.js +57 -70
  5. package/dist/cjs/components/area/tokens.js +6 -3
  6. package/dist/cjs/components/avatar/Avatar.js +38 -36
  7. package/dist/cjs/components/badge/Badge.js +68 -73
  8. package/dist/cjs/components/badge/tokens.js +6 -8
  9. package/dist/cjs/components/button/Button.js +135 -176
  10. package/dist/cjs/components/button/ButtonGroup.js +11 -45
  11. package/dist/cjs/components/button/tokens.js +1 -8
  12. package/dist/cjs/components/calendar/Calendar.js +212 -223
  13. package/dist/cjs/components/calendar/tokens.js +3 -3
  14. package/dist/cjs/components/cascader/Cascader.js +257 -267
  15. package/dist/cjs/components/cascader/tokens.js +2 -2
  16. package/dist/cjs/components/cascader/useCascaderExtend.js +25 -29
  17. package/dist/cjs/components/cell/Cell.js +94 -104
  18. package/dist/cjs/components/cell/CellGroup.js +37 -49
  19. package/dist/cjs/components/checkbox/Checkbox.js +140 -132
  20. package/dist/cjs/components/checkbox/CheckboxGroup.js +21 -51
  21. package/dist/cjs/components/checkbox/tokens.js +7 -10
  22. package/dist/cjs/components/circle/Circle.js +87 -74
  23. package/dist/cjs/components/collapse/Collapse.js +88 -104
  24. package/dist/cjs/components/config-provider/ConfigProvider.js +17 -4
  25. package/dist/cjs/components/config-provider/DirectionContext.js +15 -0
  26. package/dist/cjs/components/config-provider/index.js +7 -0
  27. package/dist/cjs/components/config-provider/locale/en-US.js +32 -0
  28. package/dist/cjs/components/config-provider/locale/zh-CN.js +32 -0
  29. package/dist/cjs/components/config-provider/useDirection.js +16 -0
  30. package/dist/cjs/components/count-down/CountDown.js +32 -27
  31. package/dist/cjs/components/datetime-picker/DatetimePicker.js +80 -104
  32. package/dist/cjs/components/datetime-picker/tokens.js +14 -3
  33. package/dist/cjs/components/dialog/Dialog.js +159 -121
  34. package/dist/cjs/components/dialog/imperative.js +24 -43
  35. package/dist/cjs/components/dialog/tokens.js +1 -0
  36. package/dist/cjs/components/divider/Divider.js +57 -62
  37. package/dist/cjs/components/empty/Empty.js +53 -52
  38. package/dist/cjs/components/error-boundary/ErrorBoundary.js +74 -0
  39. package/dist/cjs/components/error-boundary/index.js +19 -0
  40. package/dist/cjs/components/field/Field.js +109 -106
  41. package/dist/cjs/components/flex/Flex.js +32 -32
  42. package/dist/cjs/components/flex/FlexItem.js +27 -27
  43. package/dist/cjs/components/form/Form.js +178 -196
  44. package/dist/cjs/components/form/FormItem.js +87 -109
  45. package/dist/cjs/components/form/FormList.js +57 -45
  46. package/dist/cjs/components/form/tokens.js +6 -3
  47. package/dist/cjs/components/form/utils.js +15 -34
  48. package/dist/cjs/components/grid/Grid.js +44 -43
  49. package/dist/cjs/components/grid/GridItem.js +92 -86
  50. package/dist/cjs/components/image/Image.js +76 -79
  51. package/dist/cjs/components/image/tokens.js +5 -3
  52. package/dist/cjs/components/image-preview/ImagePreview.js +125 -113
  53. package/dist/cjs/components/image-preview/imperative.js +4 -13
  54. package/dist/cjs/components/image-preview/tokens.js +3 -1
  55. package/dist/cjs/components/index.js +13 -0
  56. package/dist/cjs/components/input/Input.js +40 -35
  57. package/dist/cjs/components/loading/Loading.js +32 -33
  58. package/dist/cjs/components/nav-bar/NavBar.js +88 -100
  59. package/dist/cjs/components/nav-bar/tokens.js +4 -10
  60. package/dist/cjs/components/notice-bar/NoticeBar.js +81 -80
  61. package/dist/cjs/components/notice-bar/tokens.js +3 -1
  62. package/dist/cjs/components/notify/Notify.js +89 -84
  63. package/dist/cjs/components/notify/imperative.js +32 -55
  64. package/dist/cjs/components/notify/tokens.js +2 -11
  65. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +277 -283
  66. package/dist/cjs/components/number-keyboard/tokens.js +7 -1
  67. package/dist/cjs/components/overlay/Overlay.js +37 -52
  68. package/dist/cjs/components/overlay/tokens.js +5 -3
  69. package/dist/cjs/components/password-input/PasswordInput.js +114 -95
  70. package/dist/cjs/components/picker/Picker.js +465 -454
  71. package/dist/cjs/components/picker/tokens.js +1 -1
  72. package/dist/cjs/components/popup/Popup.js +269 -299
  73. package/dist/cjs/components/popup/tokens.js +1 -0
  74. package/dist/cjs/components/portal/Portal.js +12 -30
  75. package/dist/cjs/components/portal/PortalHost.js +151 -234
  76. package/dist/cjs/components/progress/Progress.js +103 -101
  77. package/dist/cjs/components/progress/tokens.js +1 -0
  78. package/dist/cjs/components/radio/Radio.js +98 -91
  79. package/dist/cjs/components/radio/RadioGroup.js +13 -45
  80. package/dist/cjs/components/radio/tokens.js +7 -10
  81. package/dist/cjs/components/safe-area-view/SafeAreaView.js +22 -26
  82. package/dist/cjs/components/search/Search.js +65 -57
  83. package/dist/cjs/components/selector/Selector.js +21 -27
  84. package/dist/cjs/components/share-sheet/ShareSheet.js +165 -161
  85. package/dist/cjs/components/share-sheet/tokens.js +3 -1
  86. package/dist/cjs/components/sidebar/Sidebar.js +51 -51
  87. package/dist/cjs/components/sidebar/SidebarContext.js +1 -2
  88. package/dist/cjs/components/sidebar/SidebarItem.js +19 -21
  89. package/dist/cjs/components/sidebar/tokens.js +4 -4
  90. package/dist/cjs/components/skeleton/Skeleton.js +71 -77
  91. package/dist/cjs/components/skeleton/tokens.js +1 -2
  92. package/dist/cjs/components/slider/Slider.js +156 -135
  93. package/dist/cjs/components/space/Space.js +57 -76
  94. package/dist/cjs/components/space/tokens.js +7 -1
  95. package/dist/cjs/components/stepper/Stepper.js +182 -158
  96. package/dist/cjs/components/stepper/tokens.js +1 -0
  97. package/dist/cjs/components/swiper/Swiper.js +256 -255
  98. package/dist/cjs/components/swiper/SwiperPagIndicator.js +26 -27
  99. package/dist/cjs/components/swiper/tokens.js +10 -3
  100. package/dist/cjs/components/switch/Switch.js +23 -25
  101. package/dist/cjs/components/tabbar/Tabbar.js +48 -40
  102. package/dist/cjs/components/tabbar/TabbarContext.js +1 -2
  103. package/dist/cjs/components/tabbar/TabbarItem.js +65 -68
  104. package/dist/cjs/components/tabs/Tabs.js +402 -439
  105. package/dist/cjs/components/tabs/tokens.js +3 -1
  106. package/dist/cjs/components/tag/Tag.js +68 -59
  107. package/dist/cjs/components/toast/Toast.js +91 -90
  108. package/dist/cjs/components/toast/imperative.js +16 -41
  109. package/dist/cjs/components/toast/tokens.js +1 -0
  110. package/dist/cjs/components/typography/Typography.js +25 -25
  111. package/dist/cjs/components/water-mark/WaterMark.js +80 -78
  112. package/dist/cjs/design-system/Text.js +38 -0
  113. package/dist/cjs/design-system/ThemeProvider.js +5 -11
  114. package/dist/cjs/design-system/createComponentTokensHook.js +11 -13
  115. package/dist/cjs/design-system/index.js +7 -0
  116. package/dist/cjs/design-system/mergeTokensOverride.js +1 -4
  117. package/dist/cjs/design-system/presets.js +2 -3
  118. package/dist/cjs/design-system/tokens.js +2 -11
  119. package/dist/cjs/hooks/animation/index.js +25 -0
  120. package/dist/cjs/hooks/animation/useAnimatedTransition.js +72 -0
  121. package/dist/cjs/hooks/animation/useReducedMotion.js +75 -0
  122. package/dist/cjs/hooks/aria/useAriaListBox.js +8 -16
  123. package/dist/cjs/hooks/aria/useAriaOverlay.js +3 -3
  124. package/dist/cjs/hooks/aria/useAriaPress.js +8 -21
  125. package/dist/cjs/hooks/aria/useAriaToggle.js +3 -3
  126. package/dist/cjs/hooks/gesture/useGestureScroll.js +60 -61
  127. package/dist/cjs/hooks/index.js +12 -0
  128. package/dist/cjs/hooks/overlay/OverlayStackStore.js +49 -69
  129. package/dist/cjs/hooks/overlay/useOverlayStack.js +13 -19
  130. package/dist/cjs/hooks/useControllableValue.js +13 -24
  131. package/dist/cjs/hooks/useCountDown.js +30 -38
  132. package/dist/cjs/hooks/useHairline.js +17 -29
  133. package/dist/cjs/hooks/useSafeAreaPadding.js +1 -4
  134. package/dist/cjs/index.js +67 -1
  135. package/dist/cjs/platform/animation.js +10 -2
  136. package/dist/cjs/platform/measure.js +21 -37
  137. package/dist/cjs/utils/color.js +20 -39
  138. package/dist/cjs/utils/compare.js +7 -12
  139. package/dist/cjs/utils/createPlatformShadow.js +28 -39
  140. package/dist/cjs/utils/date.js +20 -50
  141. package/dist/cjs/utils/deepMerge.js +16 -26
  142. package/dist/cjs/utils/hairline.js +75 -71
  143. package/dist/cjs/utils/index.js +22 -0
  144. package/dist/cjs/utils/number.js +21 -29
  145. package/dist/cjs/utils/render.js +21 -0
  146. package/dist/cjs/utils/rtl.js +25 -0
  147. package/dist/cjs/utils/string.js +8 -25
  148. package/dist/cjs/utils/validate.js +2 -4
  149. package/dist/es/components/action-sheet/ActionSheet.js +130 -144
  150. package/dist/es/components/action-sheet/tokens.js +16 -27
  151. package/dist/es/components/area/Area.js +58 -71
  152. package/dist/es/components/area/tokens.js +6 -3
  153. package/dist/es/components/avatar/Avatar.js +38 -36
  154. package/dist/es/components/avatar/index.js +1 -2
  155. package/dist/es/components/badge/Badge.js +70 -75
  156. package/dist/es/components/badge/tokens.js +6 -8
  157. package/dist/es/components/button/Button.js +136 -177
  158. package/dist/es/components/button/ButtonGroup.js +12 -46
  159. package/dist/es/components/button/tokens.js +2 -3
  160. package/dist/es/components/calendar/Calendar.js +214 -225
  161. package/dist/es/components/calendar/tokens.js +3 -3
  162. package/dist/es/components/cascader/Cascader.js +260 -270
  163. package/dist/es/components/cascader/tokens.js +2 -2
  164. package/dist/es/components/cascader/useCascaderExtend.js +25 -29
  165. package/dist/es/components/cell/Cell.js +95 -105
  166. package/dist/es/components/cell/CellGroup.js +37 -48
  167. package/dist/es/components/checkbox/Checkbox.js +141 -133
  168. package/dist/es/components/checkbox/CheckboxGroup.js +22 -52
  169. package/dist/es/components/checkbox/tokens.js +7 -10
  170. package/dist/es/components/circle/Circle.js +87 -73
  171. package/dist/es/components/collapse/Collapse.js +90 -105
  172. package/dist/es/components/config-provider/ConfigProvider.js +11 -4
  173. package/dist/es/components/config-provider/DirectionContext.js +2 -0
  174. package/dist/es/components/config-provider/index.js +1 -0
  175. package/dist/es/components/config-provider/locale/en-US.js +32 -0
  176. package/dist/es/components/config-provider/locale/zh-CN.js +32 -0
  177. package/dist/es/components/config-provider/useDirection.js +3 -0
  178. package/dist/es/components/count-down/CountDown.js +35 -30
  179. package/dist/es/components/datetime-picker/DatetimePicker.js +80 -104
  180. package/dist/es/components/datetime-picker/tokens.js +14 -3
  181. package/dist/es/components/dialog/Dialog.js +160 -121
  182. package/dist/es/components/dialog/imperative.js +24 -43
  183. package/dist/es/components/dialog/tokens.js +1 -0
  184. package/dist/es/components/divider/Divider.js +59 -63
  185. package/dist/es/components/empty/Empty.js +54 -52
  186. package/dist/es/components/error-boundary/ErrorBoundary.js +62 -0
  187. package/dist/es/components/error-boundary/index.js +1 -0
  188. package/dist/es/components/field/Field.js +109 -106
  189. package/dist/es/components/flex/Flex.js +32 -31
  190. package/dist/es/components/flex/FlexItem.js +28 -27
  191. package/dist/es/components/form/Form.js +179 -197
  192. package/dist/es/components/form/FormItem.js +86 -107
  193. package/dist/es/components/form/FormList.js +57 -45
  194. package/dist/es/components/form/tokens.js +6 -3
  195. package/dist/es/components/form/utils.js +15 -34
  196. package/dist/es/components/grid/Grid.js +44 -42
  197. package/dist/es/components/grid/GridItem.js +94 -87
  198. package/dist/es/components/image/Image.js +79 -82
  199. package/dist/es/components/image/tokens.js +5 -3
  200. package/dist/es/components/image-preview/ImagePreview.js +125 -113
  201. package/dist/es/components/image-preview/imperative.js +4 -13
  202. package/dist/es/components/image-preview/tokens.js +3 -1
  203. package/dist/es/components/index.js +3 -1
  204. package/dist/es/components/input/Input.js +41 -36
  205. package/dist/es/components/loading/Loading.js +34 -34
  206. package/dist/es/components/nav-bar/NavBar.js +88 -100
  207. package/dist/es/components/nav-bar/tokens.js +4 -4
  208. package/dist/es/components/notice-bar/NoticeBar.js +81 -79
  209. package/dist/es/components/notice-bar/tokens.js +3 -1
  210. package/dist/es/components/notify/Notify.js +93 -87
  211. package/dist/es/components/notify/imperative.js +33 -56
  212. package/dist/es/components/notify/tokens.js +2 -5
  213. package/dist/es/components/number-keyboard/NumberKeyboard.js +277 -283
  214. package/dist/es/components/number-keyboard/tokens.js +7 -1
  215. package/dist/es/components/overlay/Overlay.js +36 -51
  216. package/dist/es/components/overlay/tokens.js +5 -3
  217. package/dist/es/components/password-input/PasswordInput.js +114 -95
  218. package/dist/es/components/picker/Picker.js +465 -454
  219. package/dist/es/components/picker/tokens.js +1 -1
  220. package/dist/es/components/popup/Popup.js +269 -298
  221. package/dist/es/components/popup/tokens.js +1 -0
  222. package/dist/es/components/portal/Portal.js +13 -30
  223. package/dist/es/components/portal/PortalHost.js +152 -234
  224. package/dist/es/components/progress/Progress.js +103 -101
  225. package/dist/es/components/progress/tokens.js +1 -0
  226. package/dist/es/components/radio/Radio.js +100 -93
  227. package/dist/es/components/radio/RadioGroup.js +15 -46
  228. package/dist/es/components/radio/tokens.js +7 -10
  229. package/dist/es/components/safe-area-view/SafeAreaView.js +22 -25
  230. package/dist/es/components/search/Search.js +66 -58
  231. package/dist/es/components/selector/Selector.js +21 -27
  232. package/dist/es/components/share-sheet/ShareSheet.js +167 -163
  233. package/dist/es/components/share-sheet/tokens.js +3 -1
  234. package/dist/es/components/sidebar/Sidebar.js +53 -53
  235. package/dist/es/components/sidebar/SidebarContext.js +1 -2
  236. package/dist/es/components/sidebar/SidebarItem.js +19 -20
  237. package/dist/es/components/sidebar/tokens.js +4 -4
  238. package/dist/es/components/skeleton/Skeleton.js +71 -77
  239. package/dist/es/components/skeleton/tokens.js +1 -2
  240. package/dist/es/components/slider/Slider.js +156 -134
  241. package/dist/es/components/space/Space.js +59 -78
  242. package/dist/es/components/space/tokens.js +7 -1
  243. package/dist/es/components/stepper/Stepper.js +183 -159
  244. package/dist/es/components/stepper/tokens.js +1 -0
  245. package/dist/es/components/swiper/Swiper.js +258 -257
  246. package/dist/es/components/swiper/SwiperPagIndicator.js +26 -27
  247. package/dist/es/components/swiper/tokens.js +10 -3
  248. package/dist/es/components/switch/Switch.js +23 -25
  249. package/dist/es/components/tabbar/Tabbar.js +49 -41
  250. package/dist/es/components/tabbar/TabbarContext.js +1 -2
  251. package/dist/es/components/tabbar/TabbarItem.js +66 -69
  252. package/dist/es/components/tabs/Tabs.js +403 -440
  253. package/dist/es/components/tabs/tokens.js +3 -1
  254. package/dist/es/components/tag/Tag.js +71 -61
  255. package/dist/es/components/toast/Toast.js +94 -91
  256. package/dist/es/components/toast/imperative.js +16 -41
  257. package/dist/es/components/toast/tokens.js +1 -0
  258. package/dist/es/components/typography/Typography.js +25 -25
  259. package/dist/es/components/water-mark/WaterMark.js +81 -79
  260. package/dist/es/design-system/Text.js +19 -0
  261. package/dist/es/design-system/ThemeProvider.js +5 -11
  262. package/dist/es/design-system/createComponentTokensHook.js +11 -13
  263. package/dist/es/design-system/index.js +1 -0
  264. package/dist/es/design-system/mergeTokensOverride.js +1 -4
  265. package/dist/es/design-system/presets.js +2 -3
  266. package/dist/es/design-system/tokens.js +1 -9
  267. package/dist/es/hooks/animation/index.js +2 -0
  268. package/dist/es/hooks/animation/useAnimatedTransition.js +53 -0
  269. package/dist/es/hooks/animation/useReducedMotion.js +54 -0
  270. package/dist/es/hooks/aria/useAriaListBox.js +8 -16
  271. package/dist/es/hooks/aria/useAriaOverlay.js +3 -3
  272. package/dist/es/hooks/aria/useAriaPress.js +8 -21
  273. package/dist/es/hooks/aria/useAriaToggle.js +3 -3
  274. package/dist/es/hooks/gesture/useGestureScroll.js +60 -61
  275. package/dist/es/hooks/index.js +1 -0
  276. package/dist/es/hooks/overlay/OverlayStackStore.js +49 -69
  277. package/dist/es/hooks/overlay/useOverlayStack.js +13 -19
  278. package/dist/es/hooks/useControllableValue.js +13 -24
  279. package/dist/es/hooks/useCountDown.js +30 -38
  280. package/dist/es/hooks/useHairline.js +16 -28
  281. package/dist/es/hooks/useSafeAreaPadding.js +1 -4
  282. package/dist/es/index.js +8 -1
  283. package/dist/es/platform/animation.js +9 -1
  284. package/dist/es/platform/measure.js +21 -37
  285. package/dist/es/utils/color.js +18 -35
  286. package/dist/es/utils/compare.js +7 -12
  287. package/dist/es/utils/createPlatformShadow.js +28 -39
  288. package/dist/es/utils/date.js +20 -50
  289. package/dist/es/utils/deepMerge.js +16 -26
  290. package/dist/es/utils/hairline.js +74 -65
  291. package/dist/es/utils/index.js +2 -0
  292. package/dist/es/utils/number.js +21 -29
  293. package/dist/es/utils/render.js +7 -0
  294. package/dist/es/utils/rtl.js +17 -0
  295. package/dist/es/utils/string.js +8 -25
  296. package/dist/es/utils/validate.js +1 -2
  297. package/dist/types/components/action-sheet/ActionSheet.d.ts +1 -1
  298. package/dist/types/components/area/Area.d.ts +1 -1
  299. package/dist/types/components/area/tokens.d.ts +4 -0
  300. package/dist/types/components/avatar/Avatar.d.ts +1 -1
  301. package/dist/types/components/avatar/index.d.ts +1 -2
  302. package/dist/types/components/badge/Badge.d.ts +1 -1
  303. package/dist/types/components/button/Button.d.ts +1 -1
  304. package/dist/types/components/button/index.d.ts +1 -1
  305. package/dist/types/components/calendar/Calendar.d.ts +1 -1
  306. package/dist/types/components/cascader/Cascader.d.ts +1 -1
  307. package/dist/types/components/cell/Cell.d.ts +1 -1
  308. package/dist/types/components/cell/CellGroup.d.ts +1 -1
  309. package/dist/types/components/cell/index.d.ts +2 -2
  310. package/dist/types/components/checkbox/Checkbox.d.ts +1 -1
  311. package/dist/types/components/circle/Circle.d.ts +1 -1
  312. package/dist/types/components/collapse/Collapse.d.ts +1 -2
  313. package/dist/types/components/config-provider/DirectionContext.d.ts +3 -0
  314. package/dist/types/components/config-provider/index.d.ts +2 -1
  315. package/dist/types/components/config-provider/locale/en-US.d.ts +32 -0
  316. package/dist/types/components/config-provider/locale/zh-CN.d.ts +32 -0
  317. package/dist/types/components/config-provider/useDirection.d.ts +1 -0
  318. package/dist/types/components/count-down/CountDown.d.ts +1 -1
  319. package/dist/types/components/datetime-picker/DatetimePicker.d.ts +1 -1
  320. package/dist/types/components/datetime-picker/tokens.d.ts +12 -0
  321. package/dist/types/components/dialog/Dialog.d.ts +1 -1
  322. package/dist/types/components/dialog/tokens.d.ts +1 -0
  323. package/dist/types/components/divider/Divider.d.ts +1 -1
  324. package/dist/types/components/empty/Empty.d.ts +1 -1
  325. package/dist/types/components/error-boundary/ErrorBoundary.d.ts +6 -0
  326. package/dist/types/components/error-boundary/index.d.ts +2 -0
  327. package/dist/types/components/field/Field.d.ts +1 -1
  328. package/dist/types/components/flex/Flex.d.ts +1 -1
  329. package/dist/types/components/flex/FlexItem.d.ts +1 -1
  330. package/dist/types/components/flex/index.d.ts +2 -2
  331. package/dist/types/components/form/Form.d.ts +1 -1
  332. package/dist/types/components/form/FormItem.d.ts +2 -1
  333. package/dist/types/components/form/index.d.ts +2 -2
  334. package/dist/types/components/form/tokens.d.ts +4 -0
  335. package/dist/types/components/grid/Grid.d.ts +1 -1
  336. package/dist/types/components/grid/GridItem.d.ts +1 -1
  337. package/dist/types/components/grid/index.d.ts +2 -2
  338. package/dist/types/components/image/Image.d.ts +1 -1
  339. package/dist/types/components/image-preview/ImagePreview.d.ts +1 -1
  340. package/dist/types/components/image-preview/tokens.d.ts +1 -0
  341. package/dist/types/components/index.d.ts +4 -1
  342. package/dist/types/components/input/Input.d.ts +3 -3
  343. package/dist/types/components/loading/Loading.d.ts +1 -1
  344. package/dist/types/components/nav-bar/NavBar.d.ts +1 -1
  345. package/dist/types/components/nav-bar/tokens.d.ts +1 -1
  346. package/dist/types/components/notice-bar/NoticeBar.d.ts +1 -1
  347. package/dist/types/components/notice-bar/tokens.d.ts +1 -0
  348. package/dist/types/components/notify/Notify.d.ts +2 -2
  349. package/dist/types/components/notify/index.d.ts +1 -1
  350. package/dist/types/components/number-keyboard/tokens.d.ts +5 -0
  351. package/dist/types/components/overlay/Overlay.d.ts +1 -5
  352. package/dist/types/components/overlay/tokens.d.ts +3 -0
  353. package/dist/types/components/password-input/PasswordInput.d.ts +1 -1
  354. package/dist/types/components/picker/Picker.d.ts +6 -6
  355. package/dist/types/components/popup/Popup.d.ts +3 -42
  356. package/dist/types/components/popup/tokens.d.ts +1 -0
  357. package/dist/types/components/portal/Portal.d.ts +9 -6
  358. package/dist/types/components/portal/PortalHost.d.ts +1 -1
  359. package/dist/types/components/radio/RadioGroup.d.ts +1 -1
  360. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +1 -1
  361. package/dist/types/components/search/Search.d.ts +1 -1
  362. package/dist/types/components/share-sheet/ShareSheet.d.ts +1 -1
  363. package/dist/types/components/share-sheet/tokens.d.ts +1 -0
  364. package/dist/types/components/sidebar/Sidebar.d.ts +1 -1
  365. package/dist/types/components/sidebar/SidebarContext.d.ts +1 -1
  366. package/dist/types/components/sidebar/SidebarItem.d.ts +1 -1
  367. package/dist/types/components/sidebar/index.d.ts +2 -2
  368. package/dist/types/components/skeleton/Skeleton.d.ts +1 -1
  369. package/dist/types/components/slider/Slider.d.ts +1 -1
  370. package/dist/types/components/stepper/Stepper.d.ts +1 -1
  371. package/dist/types/components/stepper/tokens.d.ts +1 -0
  372. package/dist/types/components/swiper/Swiper.d.ts +1 -1
  373. package/dist/types/components/swiper/index.d.ts +1 -1
  374. package/dist/types/components/swiper/tokens.d.ts +8 -0
  375. package/dist/types/components/tabbar/Tabbar.d.ts +2 -2
  376. package/dist/types/components/tabbar/TabbarContext.d.ts +1 -1
  377. package/dist/types/components/tabbar/TabbarItem.d.ts +2 -2
  378. package/dist/types/components/tabs/Tabs.d.ts +1 -1
  379. package/dist/types/components/tabs/index.d.ts +1 -1
  380. package/dist/types/components/tabs/tokens.d.ts +1 -0
  381. package/dist/types/components/tag/Tag.d.ts +1 -1
  382. package/dist/types/components/toast/Toast.d.ts +2 -2
  383. package/dist/types/components/toast/index.d.ts +1 -1
  384. package/dist/types/components/toast/tokens.d.ts +1 -0
  385. package/dist/types/components/water-mark/WaterMark.d.ts +1 -1
  386. package/dist/types/design-system/Text.d.ts +3 -0
  387. package/dist/types/design-system/index.d.ts +1 -0
  388. package/dist/types/design-system/tokens.d.ts +0 -1
  389. package/dist/types/hooks/animation/index.d.ts +3 -0
  390. package/dist/types/hooks/animation/useAnimatedTransition.d.ts +13 -0
  391. package/dist/types/hooks/animation/useReducedMotion.d.ts +3 -0
  392. package/dist/types/hooks/aria/useAriaOverlay.d.ts +1 -1
  393. package/dist/types/hooks/gesture/useGestureScroll.d.ts +11 -10
  394. package/dist/types/hooks/index.d.ts +1 -0
  395. package/dist/types/hooks/overlay/OverlayStackStore.d.ts +8 -8
  396. package/dist/types/hooks/useCountDown.d.ts +1 -1
  397. package/dist/types/hooks/useHairline.d.ts +1 -1
  398. package/dist/types/index.d.ts +5 -0
  399. package/dist/types/platform/animation.d.ts +8 -0
  400. package/dist/types/platform/measure.d.ts +1 -1
  401. package/dist/types/utils/color.d.ts +0 -2
  402. package/dist/types/utils/compare.d.ts +1 -1
  403. package/dist/types/utils/createPlatformShadow.d.ts +2 -2
  404. package/dist/types/utils/date.d.ts +2 -2
  405. package/dist/types/utils/hairline.d.ts +5 -10
  406. package/dist/types/utils/index.d.ts +2 -0
  407. package/dist/types/utils/number.d.ts +2 -2
  408. package/dist/types/utils/render.d.ts +5 -0
  409. package/dist/types/utils/rtl.d.ts +5 -0
  410. package/dist/types/utils/validate.d.ts +0 -1
  411. package/package.json +25 -4
@@ -1,18 +1,19 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import React from 'react';
3
- import { ActivityIndicator, Text, View } from 'react-native';
4
- import { isText } from '../../utils/validate';
3
+ import { ActivityIndicator, View } from 'react-native';
4
+ import { renderTextOrNode } from '../../utils';
5
+ import { isRenderable, isText } from '../../utils/validate';
5
6
  import { useLoadingTokens } from './tokens';
6
- export const Loading = props => {
7
+ const LoadingImpl = props => {
7
8
  const {
8
9
  tokensOverride,
9
- color: colorProp,
10
- size: sizeProp,
11
- textSize: textSizeProp,
12
- textColor: textColorProp,
13
- vertical: verticalProp,
14
- accessibilityLabel,
15
- ['aria-label']: ariaLabel,
10
+ color: clrP,
11
+ size: sizeP,
12
+ textSize: tsP,
13
+ textColor: tcP,
14
+ vertical: vertP,
15
+ accessibilityLabel: accP,
16
+ ['aria-label']: ariaP,
16
17
  style,
17
18
  textStyle,
18
19
  contentStyle,
@@ -20,38 +21,37 @@ export const Loading = props => {
20
21
  ...rest
21
22
  } = props;
22
23
  const tokens = useLoadingTokens(tokensOverride);
23
- const color = colorProp ?? tokens.colors.indicator;
24
- const size = sizeProp ?? tokens.defaults.size;
25
- const textSize = textSizeProp ?? tokens.defaults.textSize;
26
- const textColor = textColorProp ?? tokens.colors.text;
27
- const vertical = verticalProp ?? tokens.defaults.vertical;
28
- const resolvedAccessibilityLabel = ariaLabel ?? accessibilityLabel ?? 'loading';
29
- const indicator = /*#__PURE__*/React.createElement(ActivityIndicator, {
24
+ const clr = clrP ?? tokens.colors.indicator;
25
+ const size = sizeP ?? tokens.defaults.size;
26
+ const ts = tsP ?? tokens.defaults.textSize;
27
+ const tc = tcP ?? tokens.colors.text;
28
+ const vert = vertP ?? tokens.defaults.vertical;
29
+ const acc = ariaP ?? accP ?? 'loading';
30
+ const ind = /*#__PURE__*/React.createElement(ActivityIndicator, {
30
31
  testID: "rv-loading-spinner",
31
32
  size: size,
32
- color: color,
33
- accessibilityLabel: resolvedAccessibilityLabel
33
+ color: clr,
34
+ accessibilityLabel: acc
34
35
  });
35
- const hasChildren = children !== undefined && children !== null && children !== false;
36
- const textSpacingStyle = {
37
- marginLeft: vertical ? 0 : tokens.spacing.gap,
38
- marginTop: vertical ? tokens.spacing.gap : 0
36
+ const txtSp = {
37
+ marginLeft: vert ? 0 : tokens.spacing.gap,
38
+ marginTop: vert ? tokens.spacing.gap : 0
39
39
  };
40
- const textNode = hasChildren && (isText(children) ? /*#__PURE__*/React.createElement(Text, {
41
- style: [tokens.layout.text, textSpacingStyle, {
42
- fontSize: textSize,
43
- color: textColor
44
- }, textStyle]
45
- }, children) : /*#__PURE__*/React.createElement(View, {
46
- style: textSpacingStyle
47
- }, children));
40
+ const txtNode = isRenderable(children) && /*#__PURE__*/React.createElement(View, {
41
+ style: isText(children) ? undefined : txtSp
42
+ }, renderTextOrNode(children, [tokens.layout.text, txtSp, {
43
+ fontSize: ts,
44
+ color: tc
45
+ }, textStyle].filter(Boolean)));
48
46
  return /*#__PURE__*/React.createElement(View, _extends({
47
+ accessibilityRole: "progressbar",
49
48
  style: [tokens.layout.container, {
50
- flexDirection: vertical ? 'column' : 'row',
51
- justifyContent: vertical ? 'center' : 'flex-start'
49
+ flexDirection: vert ? 'column' : 'row',
50
+ justifyContent: vert ? 'center' : 'flex-start'
52
51
  }, style]
53
52
  }, rest), /*#__PURE__*/React.createElement(View, {
54
53
  style: contentStyle
55
- }, indicator), textNode);
54
+ }, ind), txtNode);
56
55
  };
56
+ export const Loading = /*#__PURE__*/React.memo(LoadingImpl);
57
57
  Loading.displayName = 'Loading';
@@ -3,11 +3,13 @@ import React, { useCallback, useState } from 'react';
3
3
  import { Pressable, Text, View } from 'react-native';
4
4
  import { ArrowLeft } from 'react-native-system-icon';
5
5
  import { useAriaPress } from '../../hooks';
6
- import { createHairlineBorderBottom } from '../../utils/hairline';
7
- import { isRenderable, isText } from '../../utils/validate';
6
+ import { useLocale } from '../config-provider/useLocale';
7
+ import { useDirection } from '../config-provider/useDirection';
8
+ import { createHairlineView } from '../../utils/hairline';
9
+ import { isRenderable, isText, renderTextOrNode } from '../../utils';
8
10
  import { SafeAreaView } from '../safe-area-view';
9
11
  import { useNavBarTokens } from './tokens';
10
- const NavBarBase = props => {
12
+ const NavBarBaseImpl = props => {
11
13
  const {
12
14
  tokensOverride,
13
15
  title,
@@ -17,13 +19,13 @@ const NavBarBase = props => {
17
19
  rightText,
18
20
  leftIcon,
19
21
  rightIcon,
20
- leftArrow: leftArrowProp,
21
- fixed: fixedProp,
22
- placeholder: placeholderProp,
23
- zIndex: zIndexProp,
24
- border: borderProp,
25
- safeAreaInsetTop: safeAreaInsetTopProp,
26
- background: backgroundProp,
22
+ leftArrow: leftArrP,
23
+ fixed: fixedP,
24
+ placeholder: placeP,
25
+ zIndex: zIdxP,
26
+ border: borderP,
27
+ safeAreaInsetTop: safeTopP,
28
+ background: bgP,
27
29
  tintColor,
28
30
  titleStyle,
29
31
  descriptionStyle,
@@ -35,33 +37,33 @@ const NavBarBase = props => {
35
37
  style,
36
38
  ...rest
37
39
  } = props;
40
+ const locale = useLocale();
41
+ const dir = useDirection();
38
42
  const tokens = useNavBarTokens(tokensOverride);
39
- const leftArrow = leftArrowProp ?? tokens.defaults.leftArrow;
40
- const fixed = fixedProp ?? tokens.defaults.fixed;
41
- const placeholder = placeholderProp ?? tokens.defaults.placeholder;
42
- const zIndex = zIndexProp ?? tokens.defaults.zIndex;
43
- const border = borderProp ?? tokens.defaults.border;
44
- const safeAreaInsetTop = safeAreaInsetTopProp ?? fixed;
45
- const background = backgroundProp ?? tokens.colors.background;
43
+ const leftArrow = leftArrP ?? tokens.defaults.leftArrow;
44
+ const fixed = fixedP ?? tokens.defaults.fixed;
45
+ const placeholder = placeP ?? tokens.defaults.placeholder;
46
+ const zIndex = zIdxP ?? tokens.defaults.zIndex;
47
+ const border = borderP ?? tokens.defaults.border;
48
+ const safeAreaInsetTop = safeTopP ?? fixed;
49
+ const background = bgP ?? tokens.colors.background;
46
50
  const handlePressLeft = onPressLeft ?? onClickLeft;
47
51
  const handlePressRight = onPressRight ?? onClickRight;
48
52
  const [height, setHeight] = useState(tokens.sizing.height);
49
53
  const enablePlaceholder = fixed && placeholder;
50
54
  const handleLayout = useCallback(event => {
51
55
  if (!enablePlaceholder) return;
52
- const nextHeight = event.nativeEvent.layout.height;
53
- setHeight(prev => Math.abs(prev - nextHeight) < 0.5 ? prev : nextHeight);
56
+ const nextH = event.nativeEvent.layout.height;
57
+ setHeight(prev => Math.abs(prev - nextH) < 0.5 ? prev : nextH);
54
58
  }, [enablePlaceholder]);
55
59
  const resolvedColor = tintColor ?? tokens.colors.text;
56
60
  const sideColor = tintColor ?? tokens.colors.icon;
57
- const leftAccessibilityLabel = isText(leftText) ? String(leftText) : '返回';
58
- const rightAccessibilityLabel = isText(rightText) ? String(rightText) : '操作';
59
61
  const leftPress = useAriaPress({
60
62
  disabled: !handlePressLeft,
61
63
  onPress: handlePressLeft,
62
64
  extraProps: {
63
65
  accessibilityRole: 'button',
64
- accessibilityLabel: leftAccessibilityLabel
66
+ accessibilityLabel: isText(leftText) ? `${leftText}` : locale?.vanNavBar?.back ?? 'Back'
65
67
  }
66
68
  });
67
69
  const rightPress = useAriaPress({
@@ -69,33 +71,41 @@ const NavBarBase = props => {
69
71
  onPress: handlePressRight,
70
72
  extraProps: {
71
73
  accessibilityRole: 'button',
72
- accessibilityLabel: rightAccessibilityLabel
74
+ accessibilityLabel: isText(rightText) ? `${rightText}` : locale?.vanNavBar?.action ?? 'Actions'
73
75
  }
74
76
  });
75
- const renderLeft = () => {
76
- const arrowNode = leftArrow === true ? /*#__PURE__*/React.createElement(ArrowLeft, {
77
+ const renderSide = side => {
78
+ const isLeft = side === 'left';
79
+ const sideText = isLeft ? leftText : rightText;
80
+ const sideIcon = isLeft ? leftIcon : rightIcon;
81
+ const press = isLeft ? leftPress : rightPress;
82
+ const handler = isLeft ? handlePressLeft : handlePressRight;
83
+ const arrowNode = isLeft ? leftArrow === true ? /*#__PURE__*/React.createElement(ArrowLeft, {
77
84
  size: 18,
78
85
  fill: sideColor,
79
- color: sideColor
80
- }) : isRenderable(leftArrow) && leftArrow;
81
- const hasAction = !!handlePressLeft || isRenderable(arrowNode) || isRenderable(leftText) || isRenderable(leftIcon);
82
- if (!hasAction) {
83
- return /*#__PURE__*/React.createElement(View, {
84
- style: tokens.layout.sidePlaceholder
85
- });
86
- }
87
- const content = /*#__PURE__*/React.createElement(React.Fragment, null, arrowNode, leftIcon, isRenderable(leftText) ? isText(leftText) ? /*#__PURE__*/React.createElement(Text, {
86
+ color: sideColor,
87
+ style: dir === 'rtl' ? {
88
+ transform: [{
89
+ scaleX: -1
90
+ }]
91
+ } : undefined
92
+ }) : isRenderable(leftArrow) && leftArrow : null;
93
+ const hasAction = !!handler || isRenderable(arrowNode) || isRenderable(sideText) || isRenderable(sideIcon);
94
+ if (!hasAction) return /*#__PURE__*/React.createElement(View, {
95
+ style: tokens.layout.sidePlaceholder
96
+ });
97
+ const content = /*#__PURE__*/React.createElement(React.Fragment, null, arrowNode, isRenderable(sideIcon) ? sideIcon : null, isRenderable(sideText) ? isText(sideText) ? /*#__PURE__*/React.createElement(Text, {
88
98
  numberOfLines: 1,
89
99
  style: [tokens.layout.sideText, {
90
- color: sideColor
100
+ color: sideColor,
101
+ fontFamily: tokens.typography.fontFamily
91
102
  }]
92
- }, leftText) : leftText : null);
93
- if (!handlePressLeft) {
94
- return /*#__PURE__*/React.createElement(View, {
95
- testID: "rv-navbar-left",
96
- style: [tokens.layout.side, sideStyle]
97
- }, content);
98
- }
103
+ }, sideText) : sideText : null);
104
+ const sideStyles = [tokens.layout.side, !isLeft && tokens.layout.rightAlign, sideStyle];
105
+ if (!handler) return /*#__PURE__*/React.createElement(View, {
106
+ testID: `rv-navbar-${side}`,
107
+ style: sideStyles
108
+ }, content);
99
109
  return /*#__PURE__*/React.createElement(Pressable, _extends({
100
110
  hitSlop: {
101
111
  top: 8,
@@ -103,81 +113,59 @@ const NavBarBase = props => {
103
113
  bottom: 8,
104
114
  left: 8
105
115
  },
106
- testID: "rv-navbar-left",
107
- style: [tokens.layout.side, sideStyle]
108
- }, leftPress.interactionProps), content);
109
- };
110
- const renderRight = () => {
111
- const hasAction = !!handlePressRight || isRenderable(rightText) || isRenderable(rightIcon);
112
- if (!hasAction) {
113
- return /*#__PURE__*/React.createElement(View, {
114
- style: tokens.layout.sidePlaceholder
115
- });
116
- }
117
- const content = /*#__PURE__*/React.createElement(React.Fragment, null, isRenderable(rightText) ? isText(rightText) ? /*#__PURE__*/React.createElement(Text, {
118
- numberOfLines: 1,
119
- style: [tokens.layout.sideText, {
120
- color: sideColor
121
- }]
122
- }, rightText) : rightText : null, rightIcon);
123
- if (!handlePressRight) {
124
- return /*#__PURE__*/React.createElement(View, {
125
- testID: "rv-navbar-right",
126
- style: [tokens.layout.side, tokens.layout.rightAlign, sideStyle]
127
- }, content);
128
- }
129
- return /*#__PURE__*/React.createElement(Pressable, _extends({
130
- hitSlop: {
131
- top: 8,
132
- right: 8,
133
- bottom: 8,
134
- left: 8
135
- },
136
- testID: "rv-navbar-right",
137
- style: [tokens.layout.side, tokens.layout.rightAlign, sideStyle]
138
- }, rightPress.interactionProps), content);
116
+ testID: `rv-navbar-${side}`,
117
+ style: sideStyles
118
+ }, press.interactionProps), content);
139
119
  };
140
120
  const centerContent = isRenderable(children) ? children : /*#__PURE__*/React.createElement(View, {
141
121
  style: tokens.layout.titleWrapper
142
- }, isRenderable(title) ? isText(title) ? /*#__PURE__*/React.createElement(Text, {
143
- style: [tokens.layout.title, {
144
- color: resolvedColor,
145
- fontSize: tokens.typography.titleSize,
146
- fontWeight: tokens.typography.titleWeight
147
- }, titleStyle],
122
+ }, isRenderable(title) && renderTextOrNode(title, [tokens.layout.title, {
123
+ color: resolvedColor,
124
+ fontFamily: tokens.typography.fontFamily,
125
+ fontSize: tokens.typography.titleSize,
126
+ fontWeight: tokens.typography.titleWeight
127
+ }, titleStyle], {
148
128
  numberOfLines: 1
149
- }, title) : title : null, isRenderable(description) ? isText(description) ? /*#__PURE__*/React.createElement(Text, {
150
- style: [tokens.layout.description, {
151
- color: tintColor ?? tokens.colors.description,
152
- fontSize: tokens.typography.descriptionSize
153
- }, descriptionStyle],
129
+ }), isRenderable(description) && renderTextOrNode(description, [tokens.layout.description, {
130
+ color: tintColor ?? tokens.colors.description,
131
+ fontFamily: tokens.typography.fontFamily,
132
+ fontSize: tokens.typography.descriptionSize
133
+ }, descriptionStyle], {
154
134
  numberOfLines: 1
155
- }, description) : description : null);
156
- const bar = /*#__PURE__*/React.createElement(View, {
135
+ }));
136
+ const navbarBar = /*#__PURE__*/React.createElement(View, {
157
137
  style: [tokens.layout.bar, {
158
138
  backgroundColor: background
159
- }, border ? createHairlineBorderBottom(tokens.colors.border) : null],
139
+ }],
160
140
  onLayout: safeAreaInsetTop ? undefined : handleLayout
161
- }, renderLeft(), /*#__PURE__*/React.createElement(View, {
141
+ }, renderSide('left'), /*#__PURE__*/React.createElement(View, {
162
142
  style: tokens.layout.center
163
- }, centerContent), renderRight());
164
- const wrapped = safeAreaInsetTop ? /*#__PURE__*/React.createElement(SafeAreaView, {
143
+ }, centerContent), renderSide('right'), border && /*#__PURE__*/React.createElement(View, {
144
+ style: createHairlineView({
145
+ position: 'bottom',
146
+ color: tokens.colors.border,
147
+ left: 0,
148
+ right: 0
149
+ })
150
+ }));
151
+ const wrappedBar = safeAreaInsetTop ? /*#__PURE__*/React.createElement(SafeAreaView, {
165
152
  onLayout: handleLayout,
166
153
  style: {
167
154
  backgroundColor: background
168
155
  }
169
- }, bar) : bar;
170
- const navContent = /*#__PURE__*/React.createElement(View, _extends({}, rest, {
171
- style: [tokens.layout.container, fixed && [tokens.layout.fixed, {
172
- zIndex
173
- }], style]
174
- }), wrapped);
175
- return /*#__PURE__*/React.createElement(React.Fragment, null, enablePlaceholder ? /*#__PURE__*/React.createElement(View, {
156
+ }, navbarBar) : navbarBar;
157
+ return /*#__PURE__*/React.createElement(React.Fragment, null, enablePlaceholder && /*#__PURE__*/React.createElement(View, {
176
158
  testID: "rv-navbar-placeholder",
177
159
  style: {
178
160
  height
179
161
  }
180
- }) : null, navContent);
162
+ }), /*#__PURE__*/React.createElement(View, _extends({}, rest, {
163
+ accessibilityRole: 'navigation',
164
+ style: [tokens.layout.container, fixed && [tokens.layout.fixed, {
165
+ zIndex
166
+ }], style]
167
+ }), wrappedBar));
181
168
  };
169
+ const NavBarBase = /*#__PURE__*/React.memo(NavBarBaseImpl);
182
170
  NavBarBase.displayName = 'NavBar';
183
171
  export default NavBarBase;
@@ -1,11 +1,10 @@
1
- import { Platform } from 'react-native';
2
1
  import { createComponentTokensHook } from '../../design-system';
3
2
  export const createNavBarTokens = ({
4
3
  palette,
5
4
  spacing,
6
- fontSize
5
+ fontSize,
6
+ typography
7
7
  }) => {
8
- const fixedPosition = Platform.OS === 'web' ? 'fixed' : 'absolute';
9
8
  return {
10
9
  defaults: {
11
10
  fixed: false,
@@ -57,7 +56,7 @@ export const createNavBarTokens = ({
57
56
  includeFontPadding: false
58
57
  },
59
58
  fixed: {
60
- position: fixedPosition,
59
+ position: 'absolute',
61
60
  top: 0,
62
61
  left: 0,
63
62
  right: 0
@@ -71,6 +70,7 @@ export const createNavBarTokens = ({
71
70
  icon: palette.default[700]
72
71
  },
73
72
  typography: {
73
+ fontFamily: typography.fontFamily,
74
74
  titleSize: fontSize.lg,
75
75
  titleWeight: '600',
76
76
  descriptionSize: fontSize.sm