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,12 +1,12 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useMemo } from 'react';
2
+ import React from 'react';
3
3
  import { Pressable, Text, View } from 'react-native';
4
4
  import { useAriaPress } from '../../hooks';
5
5
  import { isRenderable, isText } from '../../utils';
6
6
  import Badge from '../badge';
7
7
  import { useSidebarContext } from './SidebarContext';
8
8
  import { useSidebarTokens } from './tokens';
9
- const SidebarItem = props => {
9
+ const SidebarItemImpl = props => {
10
10
  const {
11
11
  title,
12
12
  badge,
@@ -23,18 +23,16 @@ const SidebarItem = props => {
23
23
  ...rest
24
24
  } = props;
25
25
  const tokens = useSidebarTokens(tokensOverride);
26
- const context = useSidebarContext();
27
- if (!context) {
28
- return null;
29
- }
26
+ const ctx = useSidebarContext();
27
+ if (!ctx) return null;
30
28
  const disabled = disabledProp ?? tokens.defaults.disabled;
31
- const isActive = context.activeIndex === index;
32
- const titleColor = useMemo(() => disabled ? tokens.colors.disabled : isActive ? tokens.colors.titleActive : tokens.colors.title, [disabled, isActive, tokens.colors.disabled, tokens.colors.title, tokens.colors.titleActive]);
29
+ const isActive = ctx.activeIndex === index;
30
+ const titleClr = disabled ? tokens.colors.disabled : isActive ? tokens.colors.titleActive : tokens.colors.title;
33
31
  const press = useAriaPress({
34
32
  disabled,
35
33
  onPress: () => {
36
34
  onClick?.(index);
37
- context.onSelect(index);
35
+ ctx.onSelect(index);
38
36
  },
39
37
  extraProps: {
40
38
  accessibilityRole: 'tab',
@@ -45,28 +43,29 @@ const SidebarItem = props => {
45
43
  testID: `rv-sidebar-item-${index}`
46
44
  }
47
45
  });
48
- const indicatorStyle = useMemo(() => [tokens.layout.indicator, {
46
+ const indStyle = [tokens.layout.indicator, {
49
47
  width: tokens.sizing.indicatorWidth,
50
48
  borderRadius: tokens.sizing.indicatorWidth,
51
49
  backgroundColor: tokens.colors.indicator
52
- }], [tokens.colors.indicator, tokens.layout.indicator, tokens.sizing.indicatorWidth]);
53
- const titleNode = useMemo(() => isRenderable(title) ? isText(title) ? /*#__PURE__*/React.createElement(Text, {
50
+ }];
51
+ const titleNode = isRenderable(title) ? isText(title) ? /*#__PURE__*/React.createElement(Text, {
54
52
  style: [tokens.layout.title, {
55
- color: titleColor,
53
+ color: titleClr,
54
+ fontFamily: tokens.typography.fontFamily,
56
55
  fontSize: tokens.typography.fontSize,
57
56
  fontWeight: tokens.typography.fontWeight
58
57
  }, textStyle]
59
- }, title) : title : null, [textStyle, title, titleColor, tokens.layout.title, tokens.typography.fontSize, tokens.typography.fontWeight]);
60
- const badgeNode = useMemo(() => isRenderable(badge) ? /*#__PURE__*/React.createElement(View, {
58
+ }, title) : title : null;
59
+ const badgeNode = isRenderable(badge) ? /*#__PURE__*/React.createElement(View, {
61
60
  style: [tokens.layout.badge, badgeStyle]
62
61
  }, isText(badge) ? /*#__PURE__*/React.createElement(Badge, {
63
62
  content: badge
64
- }) : badge) : null, [badge, badgeStyle, tokens.layout.badge]);
65
- const dotNode = useMemo(() => dot ? /*#__PURE__*/React.createElement(View, {
63
+ }) : badge) : null;
64
+ const dotNode = dot ? /*#__PURE__*/React.createElement(View, {
66
65
  style: [tokens.layout.dot, {
67
66
  backgroundColor: tokens.colors.indicator
68
67
  }]
69
- }) : null, [dot, tokens.colors.indicator, tokens.layout.dot]);
68
+ }) : null;
70
69
  return /*#__PURE__*/React.createElement(Pressable, _extends({}, rest, press.interactionProps, {
71
70
  style: [tokens.layout.item, {
72
71
  height: tokens.sizing.itemHeight
@@ -74,12 +73,12 @@ const SidebarItem = props => {
74
73
  }), /*#__PURE__*/React.createElement(View, {
75
74
  style: tokens.layout.indicatorWrapper
76
75
  }, isActive && /*#__PURE__*/React.createElement(View, {
77
- style: indicatorStyle
76
+ style: indStyle
78
77
  })), /*#__PURE__*/React.createElement(View, {
79
78
  style: tokens.layout.itemContent
80
79
  }, /*#__PURE__*/React.createElement(View, {
81
80
  style: tokens.layout.titleRow
82
81
  }, titleNode, badgeNode, dotNode)));
83
82
  };
84
- SidebarItem.displayName = 'Sidebar.Item';
83
+ const SidebarItem = /*#__PURE__*/React.memo(SidebarItemImpl);
85
84
  export default SidebarItem;
@@ -15,9 +15,7 @@ export const createSidebarTokens = foundations => {
15
15
  container: {
16
16
  flexDirection: 'row'
17
17
  },
18
- side: {
19
- borderRightWidth: borderWidth
20
- },
18
+ side: {},
21
19
  content: {
22
20
  flex: 1,
23
21
  minWidth: 0
@@ -64,8 +62,10 @@ export const createSidebarTokens = foundations => {
64
62
  indicator: palette.primary[600]
65
63
  },
66
64
  typography: {
65
+ fontFamily: typography.fontFamily,
67
66
  fontSize: fontSize.sm,
68
- fontWeight: typography.weight.medium
67
+ fontWeight: typography.weight.medium,
68
+ contentFontSize: fontSize.sm
69
69
  },
70
70
  sizing: {
71
71
  width: 120,
@@ -2,148 +2,142 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  import React, { useEffect, useMemo, useRef } from 'react';
3
3
  import { Animated, StyleSheet, View } from 'react-native';
4
4
  import { nativeDriverEnabled } from '../../platform';
5
+ import { useReducedMotion } from '../../hooks/animation';
5
6
  import { isFiniteNumber, isString } from '../../utils';
6
7
  import { useSkeletonTokens } from './tokens';
7
8
  const normalize = (value, fallback) => isFiniteNumber(value) ? Math.max(0, value) : isString(value) && value.trim() ? value.trim() : fallback;
8
- const resolveSeries = (count, input, fallback) => {
9
- return Array.from({
10
- length: count
11
- }, (_, idx) => normalize(Array.isArray(input) ? input[idx] : input, fallback));
12
- };
13
- const Skeleton = /*#__PURE__*/React.forwardRef((props, ref) => {
9
+ const resolveSeries = (count, input, fallback) => Array.from({
10
+ length: count
11
+ }, (_, idx) => normalize(Array.isArray(input) ? input[idx] : input, fallback));
12
+ const SkeletonImpl = (props, ref) => {
14
13
  const {
15
14
  tokensOverride,
16
15
  isLoaded,
17
- loading: loadingProp,
18
- animate: animateProp,
16
+ loading: loadP,
17
+ animate: animP,
19
18
  startColor,
20
- speed: speedProp,
21
- avatar: avatarProp,
22
- avatarSize: avatarSizeProp,
23
- avatarShape: avatarShapeProp,
24
- title: titleProp,
25
- titleWidth: titleWidthProp,
26
- row: rowProp,
27
- rowWidth: rowWidthProp,
19
+ speed: speedP,
20
+ avatar: avP,
21
+ avatarSize: avSzP,
22
+ avatarShape: avShapeP,
23
+ title: titleP,
24
+ titleWidth: titleWP,
25
+ row: rowP,
26
+ rowWidth: rowWP,
28
27
  rowHeight,
29
- round: roundProp,
28
+ round: roundP,
30
29
  style,
31
30
  children,
32
31
  ...rest
33
32
  } = props;
34
33
  const tokens = useSkeletonTokens(tokensOverride);
35
- const loading = loadingProp ?? (isLoaded != null ? !isLoaded : true);
36
- const animate = animateProp ?? true;
37
- const avatar = avatarProp ?? false;
38
- const avatarSize = avatarSizeProp ?? tokens.defaults.avatarSize;
39
- const avatarShape = avatarShapeProp ?? 'round';
40
- const title = titleProp ?? false;
41
- const titleWidth = titleWidthProp ?? tokens.defaults.titleWidth;
42
- const row = rowProp ?? tokens.defaults.rowCount;
43
- const rowWidth = rowWidthProp ?? tokens.defaults.rowWidth;
44
- const round = roundProp ?? false;
45
- const speed = useMemo(() => {
46
- if (isFiniteNumber(speedProp)) return Math.max(0.01, speedProp);
47
- if (isString(speedProp)) {
48
- const parsed = Number(speedProp);
49
- return Number.isFinite(parsed) && parsed > 0 ? parsed : 1;
50
- }
51
- return 1;
52
- }, [speedProp]);
53
- const duration = useMemo(() => Math.max(0, tokens.animation.duration / speed), [speed, tokens.animation.duration]);
34
+ const reducedMotion = useReducedMotion();
35
+ const loading = loadP ?? (isLoaded != null ? !isLoaded : true);
36
+ const animate = animP ?? true;
37
+ const avatar = avP ?? false;
38
+ const avatarSize = avSzP ?? tokens.defaults.avatarSize;
39
+ const avatarShape = avShapeP ?? 'round';
40
+ const title = titleP ?? false;
41
+ const titleWidth = titleWP ?? tokens.defaults.titleWidth;
42
+ const row = rowP ?? tokens.defaults.rowCount;
43
+ const rowWidth = rowWP ?? tokens.defaults.rowWidth;
44
+ const round = roundP ?? false;
45
+ const speed = isFiniteNumber(speedP) ? Math.max(0.01, speedP) : isString(speedP) && Number.isFinite(Number(speedP)) && Number(speedP) > 0 ? Number(speedP) : 1;
46
+ const duration = Math.max(0, tokens.animation.duration / speed);
54
47
  const blockColor = startColor ?? tokens.colors.block;
55
48
  const rows = isFiniteNumber(row) ? Math.max(0, Math.floor(row)) : 0;
56
49
  const rowWidths = useMemo(() => {
57
50
  const widths = resolveSeries(rows, rowWidth, tokens.defaults.rowWidth);
58
- if (!Array.isArray(rowWidth) && rows > 1 && (props.rowWidth === undefined || isString(props.rowWidth) && props.rowWidth.trim() === '100%')) {
59
- widths[rows - 1] = tokens.defaults.lastRowWidth;
60
- }
51
+ if (!Array.isArray(rowWidth) && rows > 1 && (props.rowWidth === undefined || isString(props.rowWidth) && props.rowWidth.trim() === '100%')) widths[rows - 1] = tokens.defaults.lastRowWidth;
61
52
  return widths;
62
53
  }, [props.rowWidth, rowWidth, rows, tokens.defaults.lastRowWidth, tokens.defaults.rowWidth]);
63
54
  const rowHeights = useMemo(() => resolveSeries(rows, rowHeight, tokens.defaults.rowHeight), [rowHeight, rows, tokens.defaults.rowHeight]);
64
55
  const titleHeight = rowHeights[0] ?? tokens.defaults.rowHeight;
65
- const resolvedAvatarSize = normalize(avatarSize, tokens.defaults.avatarSize);
66
- const resolvedTitleWidth = normalize(titleWidth, tokens.defaults.titleWidth);
56
+ const rAvSz = normalize(avatarSize, tokens.defaults.avatarSize);
57
+ const rTitleW = normalize(titleWidth, tokens.defaults.titleWidth);
67
58
  const animated = useRef(new Animated.Value(0)).current;
68
59
  useEffect(() => {
69
- if (!loading || !animate || duration <= 0) {
60
+ if (!loading || !animate || duration <= 0 || reducedMotion) {
70
61
  animated.setValue(0);
71
62
  return;
72
63
  }
64
+ ;
73
65
  const loop = Animated.loop(Animated.sequence([Animated.timing(animated, {
74
66
  toValue: 1,
75
67
  duration: duration / 2,
76
- useNativeDriver: nativeDriverEnabled
68
+ useNativeDriver: nativeDriverEnabled,
69
+ isInteraction: false
77
70
  }), Animated.timing(animated, {
78
71
  toValue: 0,
79
72
  duration: duration / 2,
80
- useNativeDriver: nativeDriverEnabled
73
+ useNativeDriver: nativeDriverEnabled,
74
+ isInteraction: false
81
75
  })]));
82
76
  loop.start();
83
77
  return () => loop.stop();
84
- }, [animate, animated, duration, loading]);
85
- const animatedStyle = useMemo(() => !loading || !animate ? undefined : {
78
+ }, [animate, animated, duration, loading, reducedMotion]);
79
+ const animStyle = useMemo(() => !loading || !animate ? undefined : {
86
80
  opacity: animated.interpolate({
87
81
  inputRange: [0, 1],
88
82
  outputRange: [tokens.animation.minOpacity, tokens.animation.maxOpacity]
89
83
  })
90
84
  }, [animate, animated, loading, tokens.animation.maxOpacity, tokens.animation.minOpacity]);
91
- const containerStyles = useMemo(() => [styles.container, {
85
+ const ctrStyles = [S.ctr, {
92
86
  gap: tokens.spacing.containerGap
93
- }, style], [style, tokens.spacing.containerGap]);
87
+ }, style];
94
88
  const avatarNode = useMemo(() => !avatar ? null : /*#__PURE__*/React.createElement(Animated.View, {
95
89
  style: [{
96
- width: resolvedAvatarSize,
97
- height: resolvedAvatarSize,
90
+ width: rAvSz,
91
+ height: rAvSz,
98
92
  borderRadius: avatarShape === 'round' ? 999 : tokens.radius,
99
93
  backgroundColor: blockColor
100
- }, animatedStyle]
101
- }), [animatedStyle, avatar, avatarShape, blockColor, resolvedAvatarSize, tokens.radius]);
94
+ }, animStyle]
95
+ }), [animStyle, avatar, avatarShape, blockColor, rAvSz, tokens.radius]);
102
96
  const titleNode = useMemo(() => !title ? null : /*#__PURE__*/React.createElement(Animated.View, {
103
97
  style: [{
104
- width: resolvedTitleWidth,
98
+ width: rTitleW,
105
99
  height: titleHeight,
106
100
  backgroundColor: blockColor,
107
101
  borderRadius: round ? tokens.radius : 0
108
- }, animatedStyle]
109
- }), [animatedStyle, blockColor, resolvedTitleWidth, round, title, titleHeight, tokens.radius]);
102
+ }, animStyle]
103
+ }), [animStyle, blockColor, rTitleW, round, title, titleHeight, tokens.radius]);
110
104
  const rowNodes = useMemo(() => rows <= 0 ? null : /*#__PURE__*/React.createElement(View, {
111
- style: styles.rows
112
- }, rowWidths.map((width, index) => /*#__PURE__*/React.createElement(Animated.View, {
113
- key: index,
114
- testID: `rv-skeleton-row-${index}`,
105
+ style: S.rows
106
+ }, rowWidths.map((w, i) => /*#__PURE__*/React.createElement(Animated.View, {
107
+ key: i,
108
+ testID: `rv-skeleton-row-${i}`,
115
109
  style: [{
116
- width: width,
117
- height: rowHeights[index],
118
- marginTop: index === 0 && !title ? 0 : tokens.spacing.rowGap,
110
+ width: w,
111
+ height: rowHeights[i],
112
+ marginTop: i === 0 && !title ? 0 : tokens.spacing.rowGap,
119
113
  backgroundColor: blockColor,
120
114
  borderRadius: round ? tokens.radius : 0
121
- }, animatedStyle]
122
- }))), [animatedStyle, blockColor, rowHeights, rowWidths, rows, round, title, tokens.radius, tokens.spacing.rowGap]);
123
- if (!loading) {
124
- return /*#__PURE__*/React.createElement(View, _extends({
125
- ref: ref,
126
- style: style
127
- }, rest), children);
128
- }
115
+ }, animStyle]
116
+ }))), [animStyle, blockColor, rowHeights, rowWidths, rows, round, title, tokens.radius, tokens.spacing.rowGap]);
117
+ if (!loading) return /*#__PURE__*/React.createElement(View, _extends({
118
+ ref: ref,
119
+ style: style
120
+ }, rest), children);
129
121
  return /*#__PURE__*/React.createElement(View, _extends({
130
122
  ref: ref,
131
- style: containerStyles
123
+ style: ctrStyles
132
124
  }, rest), avatarNode, /*#__PURE__*/React.createElement(View, {
133
- style: styles.content
125
+ style: S.cnt
134
126
  }, titleNode, rowNodes));
135
- });
136
- const styles = StyleSheet.create({
137
- container: {
127
+ };
128
+ const S = StyleSheet.create({
129
+ ctr: {
138
130
  flexDirection: 'row',
139
131
  alignItems: 'flex-start'
140
132
  },
141
- content: {
133
+ cnt: {
142
134
  flex: 1
143
135
  },
144
136
  rows: {
145
137
  width: '100%'
146
138
  }
147
139
  });
148
- Skeleton.displayName = 'Skeleton';
140
+ const SkeletonForwardRef = /*#__PURE__*/React.forwardRef(SkeletonImpl);
141
+ SkeletonForwardRef.displayName = 'Skeleton';
142
+ const Skeleton = /*#__PURE__*/React.memo(SkeletonForwardRef);
149
143
  export default Skeleton;
@@ -5,7 +5,6 @@ const createTokens = foundations => {
5
5
  spacing,
6
6
  radii
7
7
  } = foundations;
8
- const surfaceMuted = palette.default[100];
9
8
  return {
10
9
  defaults: {
11
10
  rowCount: 3,
@@ -16,7 +15,7 @@ const createTokens = foundations => {
16
15
  titleWidth: '40%'
17
16
  },
18
17
  colors: {
19
- block: surfaceMuted,
18
+ block: palette.default[100],
20
19
  highlight: '#ffffff'
21
20
  },
22
21
  radius: radii.sm,