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
@@ -2,9 +2,9 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  import React, { memo } from 'react';
3
3
  import { View, StyleSheet } from 'react-native';
4
4
  import { createComponentTokensHook } from '../../design-system';
5
- const createSwiperPagIndicatorTokens = foundations => ({
5
+ const createSwiperPagIndicatorTokens = f => ({
6
6
  colors: {
7
- active: foundations.palette.primary.foreground ?? '#ffffff',
7
+ active: f.palette.primary.foreground ?? '#ffffff',
8
8
  inactive: 'rgba(255,255,255,0.5)'
9
9
  },
10
10
  sizing: {
@@ -12,11 +12,11 @@ const createSwiperPagIndicatorTokens = foundations => ({
12
12
  dotSizeInactive: 6
13
13
  },
14
14
  spacing: {
15
- dotMargin: foundations.spacing.xs
15
+ dotMargin: f.spacing.xs
16
16
  },
17
17
  offset: {
18
- horizontalBottom: foundations.spacing.lg,
19
- verticalRight: foundations.spacing.lg
18
+ horizontalBottom: f.spacing.lg,
19
+ verticalRight: f.spacing.lg
20
20
  },
21
21
  layer: {
22
22
  zIndex: 10,
@@ -36,49 +36,48 @@ const SwiperPagIndicator = /*#__PURE__*/memo(({
36
36
  }) => {
37
37
  const tokens = useSwiperPagIndicatorTokens(tokensOverride);
38
38
  const dots = [];
39
- const resolvedActiveColor = activeColor || tokens.colors.active;
40
- const resolvedInactiveColor = inactiveColor || tokens.colors.inactive;
41
- const dotMargin = tokens.spacing.dotMargin;
42
- const containerPositionStyle = vertical ? [styles.containerVertical, {
39
+ const ac = activeColor || tokens.colors.active;
40
+ const ic = inactiveColor || tokens.colors.inactive;
41
+ const posStyle = vertical ? [S.cv, {
43
42
  right: tokens.offset.verticalRight
44
- }] : [styles.containerHorizontal, {
43
+ }] : [S.ch, {
45
44
  bottom: tokens.offset.horizontalBottom
46
45
  }];
47
46
  for (let i = 0; i < total; i++) {
48
- const isActive = current === i;
49
- const size = isActive ? tokens.sizing.dotSizeActive : tokens.sizing.dotSizeInactive;
47
+ const a = current === i;
48
+ const sz = a ? tokens.sizing.dotSizeActive : tokens.sizing.dotSizeInactive;
50
49
  dots.push(/*#__PURE__*/React.createElement(View, {
51
50
  key: i,
52
- style: [{
53
- marginHorizontal: dotMargin,
54
- marginVertical: dotMargin,
55
- backgroundColor: isActive ? resolvedActiveColor : resolvedInactiveColor,
56
- width: size,
57
- height: size,
58
- borderRadius: size / 2
59
- }]
51
+ style: {
52
+ marginHorizontal: tokens.spacing.dotMargin,
53
+ marginVertical: tokens.spacing.dotMargin,
54
+ backgroundColor: a ? ac : ic,
55
+ width: sz,
56
+ height: sz,
57
+ borderRadius: sz / 2
58
+ }
60
59
  }));
61
60
  }
61
+ ;
62
62
  return /*#__PURE__*/React.createElement(View, _extends({
63
- style: [styles.container, {
63
+ style: [S.c, {
64
64
  zIndex: tokens.layer.zIndex,
65
65
  elevation: tokens.layer.elevation
66
- }, containerPositionStyle, style]
66
+ }, posStyle, style]
67
67
  }, rest), dots);
68
68
  });
69
- SwiperPagIndicator.displayName = 'SwiperPagIndicator';
70
- const styles = StyleSheet.create({
71
- container: {
69
+ const S = StyleSheet.create({
70
+ c: {
72
71
  flexDirection: 'row',
73
72
  alignItems: 'center',
74
73
  justifyContent: 'center'
75
74
  },
76
- containerHorizontal: {
75
+ ch: {
77
76
  position: 'absolute',
78
77
  left: 0,
79
78
  right: 0
80
79
  },
81
- containerVertical: {
80
+ cv: {
82
81
  position: 'absolute',
83
82
  top: 0,
84
83
  bottom: 0,
@@ -1,5 +1,12 @@
1
1
  import { createComponentTokensHook } from '../../design-system';
2
- const createSwiperTokens = _foundations => {
3
- return {};
4
- };
2
+ const createSwiperTokens = _foundations => ({
3
+ defaults: {
4
+ autoplayInterval: 3000,
5
+ scrollEventThrottle: 16
6
+ },
7
+ layer: {
8
+ zIndex: 10,
9
+ elevation: 10
10
+ }
11
+ });
5
12
  export const useSwiperTokens = createComponentTokensHook('swiper', createSwiperTokens);
@@ -5,35 +5,33 @@ import { parseNumber } from '../../utils';
5
5
  import { useSwitchTokens } from './tokens';
6
6
  const SwitchImpl = props => {
7
7
  const {
8
- disabled: disabledProp,
9
- size,
10
- activeColor,
11
- inactiveColor,
12
- activeValue: activeValueProp,
13
- inactiveValue: inactiveValueProp,
8
+ disabled: disP,
9
+ size: szP,
10
+ activeColor: actClrP,
11
+ inactiveColor: inactClrP,
12
+ activeValue: actValP,
13
+ inactiveValue: inactValP,
14
14
  tokensOverride,
15
15
  onClick,
16
16
  style
17
17
  } = props;
18
18
  const tokens = useSwitchTokens(tokensOverride);
19
- const disabled = disabledProp ?? tokens.defaults.disabled;
20
- const activeValue = useMemo(() => activeValueProp ?? tokens.defaults.activeValue, [activeValueProp, tokens.defaults.activeValue]);
21
- const inactiveValue = useMemo(() => inactiveValueProp ?? tokens.defaults.inactiveValue, [inactiveValueProp, tokens.defaults.inactiveValue]);
19
+ const disabled = disP ?? tokens.defaults.disabled;
20
+ const activeValue = actValP ?? tokens.defaults.activeValue;
21
+ const inactiveValue = inactValP ?? tokens.defaults.inactiveValue;
22
22
  const scale = useMemo(() => {
23
23
  if (!tokens.defaults.size) return 1;
24
- if (typeof size === 'string') {
25
- const value = size.toLowerCase();
26
- if (value === 'sm') return 0.75;
27
- if (value === 'md') return 1;
28
- if (value === 'lg') return 1.25;
29
- const numeric = parseNumber(size, tokens.defaults.size);
30
- return Math.max(0, numeric / tokens.defaults.size);
31
- }
32
- if (typeof size === 'number') {
33
- return Math.max(0, size / tokens.defaults.size);
24
+ if (typeof szP === 'string') {
25
+ const v = szP.toLowerCase();
26
+ if (v === 'sm') return 0.75;
27
+ if (v === 'md') return 1;
28
+ if (v === 'lg') return 1.25;
29
+ return Math.max(0, parseNumber(szP, tokens.defaults.size) / tokens.defaults.size);
34
30
  }
31
+ ;
32
+ if (typeof szP === 'number') return Math.max(0, szP / tokens.defaults.size);
35
33
  return 1;
36
- }, [size, tokens.defaults.size]);
34
+ }, [szP, tokens.defaults.size]);
37
35
  const [value, triggerChange] = useControllableValue(props, {
38
36
  valuePropName: 'checked',
39
37
  defaultValuePropName: 'defaultChecked',
@@ -41,8 +39,8 @@ const SwitchImpl = props => {
41
39
  trigger: 'onChange'
42
40
  });
43
41
  const isChecked = Object.is(value, activeValue);
44
- const resolvedActiveColor = useMemo(() => activeColor ?? tokens.colors.activeTrack, [activeColor, tokens.colors.activeTrack]);
45
- const resolvedInactiveColor = useMemo(() => inactiveColor ?? tokens.colors.inactiveTrack, [inactiveColor, tokens.colors.inactiveTrack]);
42
+ const actClr = actClrP ?? tokens.colors.activeTrack;
43
+ const inactClr = inactClrP ?? tokens.colors.inactiveTrack;
46
44
  const handleTouchEnd = useCallback(event => {
47
45
  if (disabled) return;
48
46
  onClick?.(event);
@@ -57,11 +55,11 @@ const SwitchImpl = props => {
57
55
  value: isChecked,
58
56
  disabled: disabled,
59
57
  trackColor: {
60
- false: resolvedInactiveColor,
61
- true: resolvedActiveColor
58
+ false: inactClr,
59
+ true: actClr
62
60
  },
63
61
  thumbColor: tokens.colors.handle,
64
- ios_backgroundColor: resolvedInactiveColor,
62
+ ios_backgroundColor: inactClr,
65
63
  style: [{
66
64
  transform: [{
67
65
  scaleX: scale
@@ -3,24 +3,24 @@ import React, { useCallback, useMemo, useState } from 'react';
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import { mergeTokensOverride } from '../../design-system';
5
5
  import { useControllableValue } from '../../hooks';
6
- import { createHairlineBorderTop } from '../../utils/hairline';
6
+ import { createHairlineView } from '../../utils/hairline';
7
7
  import { SafeAreaView } from '../safe-area-view';
8
8
  import { TabbarContext } from './TabbarContext';
9
9
  import { useTabbarTokens } from './tokens';
10
- const TabbarBase = props => {
10
+ const TabbarBaseImpl = props => {
11
11
  const {
12
12
  children,
13
13
  value,
14
14
  defaultValue,
15
- fixed: fixedProp,
16
- border: borderProp,
15
+ fixed: fixedP,
16
+ border: borderP,
17
17
  zIndex = 1,
18
18
  activeColor,
19
19
  inactiveColor,
20
- background: backgroundProp,
21
- placeholder: placeholderProp,
20
+ background: bgP,
21
+ placeholder: placeP,
22
22
  safeAreaInsetBottom,
23
- iconSize: iconSizeProp,
23
+ iconSize: iconSzP,
24
24
  tokensOverride,
25
25
  style,
26
26
  contentStyle,
@@ -28,31 +28,31 @@ const TabbarBase = props => {
28
28
  ...rest
29
29
  } = props;
30
30
  const tokens = useTabbarTokens(tokensOverride);
31
- const fixed = fixedProp ?? tokens.defaults.fixed;
32
- const border = borderProp ?? tokens.defaults.border;
33
- const background = backgroundProp ?? tokens.colors.background;
34
- const placeholder = placeholderProp ?? tokens.defaults.placeholder;
35
- const iconSize = iconSizeProp ?? tokens.icon.size;
36
- const enableSafeAreaInsetBottom = safeAreaInsetBottom ?? fixed;
31
+ const fixed = fixedP ?? tokens.defaults.fixed;
32
+ const border = borderP ?? tokens.defaults.border;
33
+ const background = bgP ?? tokens.colors.background;
34
+ const placeholder = placeP ?? tokens.defaults.placeholder;
35
+ const iconSize = iconSzP ?? tokens.icon.size;
36
+ const enableSafeBottom = safeAreaInsetBottom ?? fixed;
37
37
  const items = useMemo(() => React.Children.toArray(children).filter(React.isValidElement), [children]);
38
- const firstName = useMemo(() => items.length ? items[0].props.name ?? 0 : undefined, [items]);
38
+ const firstName = items.length ? items[0].props.name ?? 0 : undefined;
39
39
  const [activeValue, setActiveValue] = useControllableValue(props, {
40
40
  defaultValue: firstName,
41
41
  valuePropName: 'value',
42
42
  defaultValuePropName: 'defaultValue',
43
43
  trigger: 'onChange'
44
44
  });
45
- const itemNames = useMemo(() => items.map((item, index) => item.props.name ?? index), [items]);
46
- const currentName = useMemo(() => activeValue === undefined || activeValue === null ? firstName : itemNames.some(name => name === activeValue) ? activeValue : firstName, [activeValue, firstName, itemNames]);
45
+ const itemNames = items.map((item, i) => item.props.name ?? i);
46
+ const currentName = activeValue === undefined || activeValue === null ? firstName : itemNames.some(n => n === activeValue) ? activeValue : firstName;
47
47
  const [barHeight, setBarHeight] = useState(tokens.layout.height);
48
48
  const enablePlaceholder = fixed && placeholder;
49
49
  const handleLayout = useCallback(event => {
50
50
  if (!enablePlaceholder) return;
51
- const nextHeight = event.nativeEvent.layout.height;
52
- setBarHeight(prev => Math.abs(prev - nextHeight) < 0.5 ? prev : nextHeight);
51
+ const h = event.nativeEvent.layout.height;
52
+ setBarHeight(prev => Math.abs(prev - h) < 0.5 ? prev : h);
53
53
  }, [enablePlaceholder]);
54
54
  const onSelect = useCallback((name, index) => setActiveValue(name, index), [setActiveValue]);
55
- const contextValue = useMemo(() => ({
55
+ const ctxVal = useMemo(() => ({
56
56
  activeValue: currentName,
57
57
  activeColor: activeColor ?? tokens.colors.active,
58
58
  inactiveColor: inactiveColor ?? tokens.colors.inactive,
@@ -60,63 +60,71 @@ const TabbarBase = props => {
60
60
  fontWeight: tokens.typography.fontWeight,
61
61
  onSelect
62
62
  }), [activeColor, currentName, inactiveColor, onSelect, tokens.colors.active, tokens.colors.inactive, tokens.typography.fontSize, tokens.typography.fontWeight]);
63
- const clonedChildren = useMemo(() => items.map((item, index) => {
64
- const name = item.props.name ?? index;
63
+ const cloned = useMemo(() => items.map((item, i) => {
64
+ const name = item.props.name ?? i;
65
65
  return /*#__PURE__*/React.cloneElement(item, {
66
66
  key: item.key ?? name,
67
67
  name,
68
- index,
68
+ index: i,
69
69
  iconSize,
70
70
  tokensOverride: mergeTokensOverride(tokensOverride, item.props.tokensOverride)
71
71
  });
72
72
  }), [iconSize, items, tokensOverride]);
73
73
  if (items.length === 0) return null;
74
- const ContentWrapper = enableSafeAreaInsetBottom ? SafeAreaView : View;
75
- const placeholderStyle = useMemo(() => ({
74
+ const ContainerWrap = enableSafeBottom ? SafeAreaView : View;
75
+ const placeStyle = {
76
76
  height: barHeight
77
- }), [barHeight]);
78
- const containerStyle = useMemo(() => [styles.container, fixed && [styles.fixed, {
77
+ };
78
+ const ctrStyle = [S.c, fixed && [S.f, {
79
79
  zIndex
80
- }], style], [fixed, style, zIndex]);
81
- const barStyle = useMemo(() => [styles.bar, {
80
+ }], style];
81
+ const barStyle = [S.b, {
82
82
  backgroundColor: background,
83
83
  paddingHorizontal: tokens.layout.paddingHorizontal,
84
84
  minHeight: tokens.layout.height
85
- }, border ? createHairlineBorderTop(tokens.colors.border) : null, contentStyle], [background, border, contentStyle, tokens.colors.border, tokens.layout.height, tokens.layout.paddingHorizontal]);
86
- const rowStyle = useMemo(() => [styles.row, {
85
+ }, contentStyle];
86
+ const rowStyle = [S.r, {
87
87
  minHeight: tokens.layout.height
88
- }], [tokens.layout.height]);
88
+ }];
89
89
  return /*#__PURE__*/React.createElement(React.Fragment, null, enablePlaceholder && /*#__PURE__*/React.createElement(View, {
90
90
  testID: "rv-tabbar-placeholder",
91
- style: placeholderStyle
91
+ style: placeStyle
92
92
  }), /*#__PURE__*/React.createElement(View, _extends({}, rest, {
93
- style: containerStyle,
93
+ style: ctrStyle,
94
94
  onLayout: handleLayout
95
- }), /*#__PURE__*/React.createElement(ContentWrapper, {
95
+ }), /*#__PURE__*/React.createElement(ContainerWrap, {
96
96
  style: barStyle
97
97
  }, /*#__PURE__*/React.createElement(TabbarContext.Provider, {
98
- value: contextValue
98
+ value: ctxVal
99
99
  }, /*#__PURE__*/React.createElement(View, {
100
100
  style: rowStyle,
101
101
  accessibilityRole: "tablist"
102
- }, clonedChildren)))));
102
+ }, cloned)), border && /*#__PURE__*/React.createElement(View, {
103
+ style: createHairlineView({
104
+ position: 'top',
105
+ color: tokens.colors.border,
106
+ left: 0,
107
+ right: 0
108
+ })
109
+ }))));
103
110
  };
104
- const styles = StyleSheet.create({
105
- container: {
111
+ const S = StyleSheet.create({
112
+ c: {
106
113
  width: '100%'
107
114
  },
108
- bar: {
115
+ b: {
109
116
  width: '100%'
110
117
  },
111
- row: {
118
+ r: {
112
119
  flexDirection: 'row'
113
120
  },
114
- fixed: {
121
+ f: {
115
122
  position: 'absolute',
116
123
  left: 0,
117
124
  right: 0,
118
125
  bottom: 0
119
126
  }
120
127
  });
128
+ const TabbarBase = /*#__PURE__*/React.memo(TabbarBaseImpl);
121
129
  TabbarBase.displayName = 'Tabbar';
122
130
  export default TabbarBase;
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
- import { useContext } from 'react';
1
+ import React, { useContext } from 'react';
3
2
  export const TabbarContext = /*#__PURE__*/React.createContext(null);
4
3
  export const useTabbarContext = () => useContext(TabbarContext);
@@ -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, { useCallback, useMemo } from 'react';
2
+ import React, { useCallback } from 'react';
3
3
  import { Pressable, StyleSheet, Text, View } from 'react-native';
4
4
  import { useAriaPress } from '../../hooks';
5
5
  import { isFunction, isPlainObject, isRenderable, isText } from '../../utils/validate';
6
6
  import Badge from '../badge';
7
7
  import { useTabbarContext } from './TabbarContext';
8
8
  import { useTabbarTokens } from './tokens';
9
- const TabbarItem = props => {
9
+ const TabbarItemImpl = p => {
10
10
  const {
11
11
  name,
12
12
  icon,
@@ -23,114 +23,111 @@ const TabbarItem = props => {
23
23
  iconSize,
24
24
  tokensOverride,
25
25
  ...rest
26
- } = props;
27
- const tokens = useTabbarTokens(tokensOverride);
28
- const context = useTabbarContext();
29
- if (!context) {
30
- return null;
31
- }
32
- const itemName = name ?? index ?? 0;
33
- const isActive = context.activeValue === itemName;
34
- const color = isActive ? context.activeColor : context.inactiveColor;
35
- const resolvedIconSize = iconSize ?? tokens.icon.size;
36
- const applyIconTheme = useCallback(node => {
37
- if (! /*#__PURE__*/React.isValidElement(node)) return node;
38
- const element = node;
39
- const nextProps = {};
40
- const p = element.props ?? {};
41
- if (p['size'] == null) nextProps['size'] = resolvedIconSize;
42
- if (p['fill'] == null) nextProps['fill'] = color;
43
- if (p['color'] == null) nextProps['color'] = color;
44
- if (p['style'] != null) {
45
- nextProps['style'] = [p['style'], {
46
- color
47
- }];
48
- }
49
- return /*#__PURE__*/React.cloneElement(element, nextProps);
50
- }, [color, resolvedIconSize]);
51
- const renderIcon = useCallback(() => {
26
+ } = p;
27
+ const t = useTabbarTokens(tokensOverride);
28
+ const ctx = useTabbarContext();
29
+ if (!ctx) return null;
30
+ const in_ = name ?? index ?? 0;
31
+ const ia = ctx.activeValue === in_;
32
+ const c = ia ? ctx.activeColor : ctx.inactiveColor;
33
+ const ris = iconSize ?? t.icon.size;
34
+ const ait = useCallback(n => {
35
+ if (! /*#__PURE__*/React.isValidElement(n)) return n;
36
+ const e = n;
37
+ const np = {};
38
+ const pr = e.props ?? {};
39
+ if (pr['size'] == null) np['size'] = ris;
40
+ if (pr['fill'] == null) np['fill'] = c;
41
+ if (pr['color'] == null) np['color'] = c;
42
+ if (pr['style'] != null) np['style'] = [pr['style'], {
43
+ color: c
44
+ }];
45
+ return /*#__PURE__*/React.cloneElement(e, np);
46
+ }, [c, ris]);
47
+ const ri = useCallback(() => {
52
48
  if (!icon) return null;
53
- const raw = isFunction(icon) ? icon(isActive) : icon;
54
- return applyIconTheme(raw);
55
- }, [applyIconTheme, icon, isActive]);
56
- const renderLabel = useCallback(() => isFunction(children) ? children(isActive) : children, [children, isActive]);
57
- const ariaPress = useAriaPress({
49
+ const r = isFunction(icon) ? icon(ia) : icon;
50
+ return ait(r);
51
+ }, [ait, icon, ia]);
52
+ const rl = useCallback(() => isFunction(children) ? children(ia) : children, [children, ia]);
53
+ const ap = useAriaPress({
58
54
  disabled,
59
55
  onPress: () => {
60
56
  if (!disabled) {
61
57
  onClick?.();
62
- context.onSelect(itemName, index ?? 0);
58
+ ctx.onSelect(in_, index ?? 0);
63
59
  }
64
60
  },
65
61
  extraProps: {
66
62
  accessibilityRole: 'tab',
67
63
  accessibilityState: {
68
- selected: isActive,
64
+ selected: ia,
69
65
  disabled
70
66
  },
71
- testID: testID ?? `rv-tabbar-item-${itemName}`
67
+ testID: testID ?? `rv-tabbar-item-${in_}`
72
68
  }
73
69
  });
74
- const shouldRenderBadge = useMemo(() => dot || isRenderable(badge), [badge, dot]);
75
- const renderBadge = useCallback(() => {
70
+ const srb = dot || isRenderable(badge);
71
+ const rb = useCallback(() => {
76
72
  if (isRenderable(badge)) {
77
- if (isText(badge)) {
78
- return /*#__PURE__*/React.createElement(Badge, {
79
- content: badge
80
- });
81
- }
73
+ if (isText(badge)) return /*#__PURE__*/React.createElement(Badge, {
74
+ content: badge
75
+ });
82
76
  if (isPlainObject(badge)) {
83
- const badgeProps = badge;
84
- return /*#__PURE__*/React.createElement(Badge, _extends({}, badgeProps, {
85
- dot: dot || badgeProps.dot
77
+ const bp = badge;
78
+ return /*#__PURE__*/React.createElement(Badge, _extends({}, bp, {
79
+ dot: dot || bp.dot
86
80
  }));
87
81
  }
82
+ ;
88
83
  return badge;
89
84
  }
85
+ ;
90
86
  return /*#__PURE__*/React.createElement(Badge, {
91
87
  dot: true
92
88
  });
93
89
  }, [badge, dot]);
94
- const itemStyle = useMemo(() => [styles.item, {
95
- height: tokens.layout.height,
96
- paddingVertical: tokens.layout.paddingVertical,
90
+ const is_ = [S.i, {
91
+ height: t.layout.height,
92
+ paddingVertical: t.layout.paddingVertical,
97
93
  opacity: disabled ? 0.5 : 1
98
- }, style], [disabled, style, tokens.layout.height, tokens.layout.paddingVertical]);
99
- const labelStyle = useMemo(() => [styles.label, {
100
- color,
101
- fontSize: context.fontSize,
102
- fontWeight: context.fontWeight,
103
- lineHeight: context.fontSize
104
- }, textStyle], [color, context.fontSize, context.fontWeight, textStyle]);
105
- return /*#__PURE__*/React.createElement(Pressable, _extends({}, rest, ariaPress.interactionProps, {
106
- style: itemStyle
94
+ }, style];
95
+ const ls = [S.l, {
96
+ color: c,
97
+ fontSize: ctx.fontSize,
98
+ fontWeight: ctx.fontWeight,
99
+ lineHeight: ctx.fontSize
100
+ }, textStyle];
101
+ return /*#__PURE__*/React.createElement(Pressable, _extends({}, rest, ap.interactionProps, {
102
+ style: is_
107
103
  }), /*#__PURE__*/React.createElement(View, {
108
- style: [styles.iconWrapper, iconStyle]
109
- }, renderIcon(), shouldRenderBadge && /*#__PURE__*/React.createElement(View, {
110
- style: styles.badge
111
- }, renderBadge())), isRenderable(children) ? /*#__PURE__*/React.createElement(Text, {
112
- style: labelStyle
113
- }, renderLabel()) : null);
104
+ style: [S.iw, iconStyle]
105
+ }, ri(), srb && /*#__PURE__*/React.createElement(View, {
106
+ style: S.b
107
+ }, rb())), isRenderable(children) ? /*#__PURE__*/React.createElement(Text, {
108
+ style: ls
109
+ }, rl()) : null);
114
110
  };
115
- const styles = StyleSheet.create({
116
- item: {
111
+ const S = StyleSheet.create({
112
+ i: {
117
113
  flex: 1,
118
114
  alignItems: 'center',
119
115
  justifyContent: 'center',
120
116
  gap: 4
121
117
  },
122
- iconWrapper: {
118
+ iw: {
123
119
  alignItems: 'center',
124
120
  justifyContent: 'center'
125
121
  },
126
- badge: {
122
+ b: {
127
123
  position: 'absolute',
128
124
  top: -4,
129
125
  right: -12
130
126
  },
131
- label: {
127
+ l: {
132
128
  includeFontPadding: false
133
129
  }
134
130
  });
131
+ const TabbarItem = /*#__PURE__*/React.memo(TabbarItemImpl);
135
132
  TabbarItem.displayName = 'Tabbar.Item';
136
133
  export default TabbarItem;