react-native-system-ui 0.0.4 → 0.0.6

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 (371) hide show
  1. package/dist/cjs/components/action-sheet/ActionSheet.js +28 -22
  2. package/dist/cjs/components/area/Area.js +72 -6
  3. package/dist/cjs/components/area/tokens.js +11 -0
  4. package/dist/cjs/components/avatar/Avatar.js +42 -10
  5. package/dist/cjs/components/badge/Badge.js +10 -10
  6. package/dist/cjs/components/badge/tokens.js +4 -0
  7. package/dist/cjs/components/button/Button.js +16 -65
  8. package/dist/cjs/components/button/ButtonContext.js +7 -10
  9. package/dist/cjs/components/button/ButtonGroup.js +13 -15
  10. package/dist/cjs/components/button/tokens.js +1 -5
  11. package/dist/cjs/components/calendar/Calendar.js +23 -12
  12. package/dist/cjs/components/cascader/Cascader.js +18 -13
  13. package/dist/cjs/components/cell/Cell.js +3 -3
  14. package/dist/cjs/components/cell/CellGroup.js +26 -21
  15. package/dist/cjs/components/checkbox/Checkbox.js +5 -4
  16. package/dist/cjs/components/checkbox/CheckboxContext.js +7 -10
  17. package/dist/cjs/components/checkbox/CheckboxGroup.js +24 -21
  18. package/dist/cjs/components/circle/Circle.js +6 -6
  19. package/dist/cjs/components/collapse/Collapse.js +10 -10
  20. package/dist/cjs/components/config-provider/locale/en-US.js +66 -4
  21. package/dist/cjs/components/config-provider/locale/zh-CN.js +74 -2
  22. package/dist/cjs/components/config-provider/tokens.js +11 -0
  23. package/dist/cjs/components/count-down/CountDown.js +6 -6
  24. package/dist/cjs/components/datetime-picker/DatetimePicker.js +6 -6
  25. package/dist/cjs/components/datetime-picker/tokens.js +11 -0
  26. package/dist/cjs/components/dialog/Dialog.js +39 -34
  27. package/dist/cjs/components/dialog/tokens.js +1 -4
  28. package/dist/cjs/components/divider/Divider.js +36 -1
  29. package/dist/cjs/components/field/Field.js +303 -201
  30. package/dist/cjs/components/flex/Flex.js +7 -3
  31. package/dist/cjs/components/flex/FlexContext.js +7 -14
  32. package/dist/cjs/components/form/Form.js +112 -122
  33. package/dist/cjs/components/form/FormContext.js +7 -10
  34. package/dist/cjs/components/form/FormItem.js +30 -4
  35. package/dist/cjs/components/form/FormList.js +16 -3
  36. package/dist/cjs/components/form/tokens.js +11 -0
  37. package/dist/cjs/components/form/utils.js +2 -1
  38. package/dist/cjs/components/grid/Grid.js +45 -31
  39. package/dist/cjs/components/grid/GridContext.js +7 -10
  40. package/dist/cjs/components/grid/GridItem.js +22 -22
  41. package/dist/cjs/components/image/Image.js +17 -13
  42. package/dist/cjs/components/image-preview/ImagePreview.js +43 -41
  43. package/dist/cjs/components/index.js +43 -141
  44. package/dist/cjs/components/input/Input.js +19 -5
  45. package/dist/cjs/components/loading/Loading.js +10 -139
  46. package/dist/cjs/components/loading/tokens.js +0 -24
  47. package/dist/cjs/components/notice-bar/NoticeBar.js +45 -41
  48. package/dist/cjs/components/notify/Notify.js +72 -30
  49. package/dist/cjs/components/notify/imperative.js +2 -2
  50. package/dist/cjs/components/notify/tokens.js +11 -1
  51. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +6 -6
  52. package/dist/cjs/components/overlay/Overlay.js +70 -77
  53. package/dist/cjs/components/overlay/index.js +13 -27
  54. package/dist/cjs/components/overlay/tokens.js +4 -31
  55. package/dist/cjs/components/password-input/PasswordInput.js +2 -41
  56. package/dist/cjs/components/password-input/tokens.js +53 -0
  57. package/dist/cjs/components/picker/Picker.js +618 -38
  58. package/dist/cjs/components/popup/Popup.js +60 -47
  59. package/dist/cjs/components/portal/Portal.js +39 -31
  60. package/dist/cjs/components/portal/PortalHost.js +258 -213
  61. package/dist/cjs/components/portal/tokens.js +11 -0
  62. package/dist/cjs/components/progress/Progress.js +77 -36
  63. package/dist/cjs/components/progress/index.js +6 -0
  64. package/dist/cjs/components/radio/Radio.js +35 -12
  65. package/dist/cjs/components/radio/RadioContext.js +7 -10
  66. package/dist/cjs/components/radio/RadioGroup.js +23 -20
  67. package/dist/cjs/components/safe-area-view/tokens.js +11 -0
  68. package/dist/cjs/components/search/Search.js +16 -16
  69. package/dist/cjs/components/selector/Selector.js +6 -6
  70. package/dist/cjs/components/share-sheet/ShareSheet.js +50 -46
  71. package/dist/cjs/components/sidebar/Sidebar.js +27 -22
  72. package/dist/cjs/components/sidebar/SidebarItem.js +27 -22
  73. package/dist/cjs/components/skeleton/Skeleton.js +34 -21
  74. package/dist/cjs/components/slider/Slider.js +135 -78
  75. package/dist/cjs/components/stepper/Stepper.js +12 -10
  76. package/dist/cjs/components/swiper/Swiper.js +247 -710
  77. package/dist/cjs/components/swiper/SwiperItem.js +5 -33
  78. package/dist/cjs/components/swiper/tokens.js +11 -0
  79. package/dist/cjs/components/switch/Switch.js +46 -98
  80. package/dist/cjs/components/switch/tokens.js +1 -55
  81. package/dist/cjs/components/tabbar/Tabbar.js +26 -22
  82. package/dist/cjs/components/tabbar/TabbarItem.js +23 -22
  83. package/dist/cjs/components/tabbar/tokens.js +0 -2
  84. package/dist/cjs/components/tabs/Tabs.js +268 -94
  85. package/dist/cjs/components/tabs/index.js +4 -5
  86. package/dist/cjs/components/toast/Toast.js +72 -27
  87. package/dist/cjs/components/toast/imperative.js +2 -2
  88. package/dist/cjs/hooks/gesture/useGestureScroll.js +1 -2
  89. package/dist/cjs/hooks/index.js +12 -12
  90. package/dist/cjs/hooks/overlay/index.js +27 -0
  91. package/dist/cjs/hooks/useHairline.js +0 -4
  92. package/dist/cjs/platform/scrollLock.js +1 -1
  93. package/dist/cjs/utils/compare.js +26 -0
  94. package/dist/cjs/utils/index.js +11 -0
  95. package/dist/es/components/action-sheet/ActionSheet.js +29 -23
  96. package/dist/es/components/area/Area.js +73 -7
  97. package/dist/es/components/area/tokens.js +5 -0
  98. package/dist/es/components/avatar/Avatar.js +42 -10
  99. package/dist/es/components/badge/Badge.js +11 -11
  100. package/dist/es/components/badge/tokens.js +4 -0
  101. package/dist/es/components/button/Button.js +17 -65
  102. package/dist/es/components/button/ButtonContext.js +1 -2
  103. package/dist/es/components/button/ButtonGroup.js +10 -12
  104. package/dist/es/components/button/tokens.js +1 -5
  105. package/dist/es/components/calendar/Calendar.js +24 -13
  106. package/dist/es/components/cascader/Cascader.js +16 -11
  107. package/dist/es/components/cell/Cell.js +4 -4
  108. package/dist/es/components/cell/CellGroup.js +25 -20
  109. package/dist/es/components/checkbox/Checkbox.js +5 -4
  110. package/dist/es/components/checkbox/CheckboxContext.js +1 -2
  111. package/dist/es/components/checkbox/CheckboxGroup.js +24 -21
  112. package/dist/es/components/circle/Circle.js +7 -7
  113. package/dist/es/components/collapse/Collapse.js +11 -11
  114. package/dist/es/components/config-provider/locale/en-US.js +66 -4
  115. package/dist/es/components/config-provider/locale/zh-CN.js +74 -2
  116. package/dist/es/components/config-provider/tokens.js +5 -0
  117. package/dist/es/components/count-down/CountDown.js +7 -7
  118. package/dist/es/components/datetime-picker/DatetimePicker.js +7 -7
  119. package/dist/es/components/datetime-picker/tokens.js +5 -0
  120. package/dist/es/components/dialog/Dialog.js +40 -35
  121. package/dist/es/components/dialog/tokens.js +1 -4
  122. package/dist/es/components/divider/Divider.js +36 -1
  123. package/dist/es/components/field/Field.js +304 -202
  124. package/dist/es/components/flex/Flex.js +5 -1
  125. package/dist/es/components/flex/FlexContext.js +1 -6
  126. package/dist/es/components/form/Form.js +89 -99
  127. package/dist/es/components/form/FormContext.js +1 -2
  128. package/dist/es/components/form/FormItem.js +32 -6
  129. package/dist/es/components/form/FormList.js +18 -5
  130. package/dist/es/components/form/tokens.js +5 -0
  131. package/dist/es/components/form/utils.js +1 -0
  132. package/dist/es/components/grid/Grid.js +43 -29
  133. package/dist/es/components/grid/GridContext.js +1 -2
  134. package/dist/es/components/grid/GridItem.js +24 -24
  135. package/dist/es/components/image/Image.js +18 -14
  136. package/dist/es/components/image-preview/ImagePreview.js +44 -42
  137. package/dist/es/components/index.js +2 -17
  138. package/dist/es/components/input/Input.js +20 -6
  139. package/dist/es/components/loading/Loading.js +10 -139
  140. package/dist/es/components/loading/tokens.js +0 -24
  141. package/dist/es/components/notice-bar/NoticeBar.js +46 -42
  142. package/dist/es/components/notify/Notify.js +72 -30
  143. package/dist/es/components/notify/imperative.js +2 -2
  144. package/dist/es/components/notify/tokens.js +5 -1
  145. package/dist/es/components/number-keyboard/NumberKeyboard.js +7 -7
  146. package/dist/es/components/overlay/Overlay.js +58 -75
  147. package/dist/es/components/overlay/index.js +3 -4
  148. package/dist/es/components/overlay/tokens.js +3 -29
  149. package/dist/es/components/password-input/PasswordInput.js +1 -40
  150. package/dist/es/components/password-input/tokens.js +41 -0
  151. package/dist/es/components/picker/Picker.js +610 -34
  152. package/dist/es/components/popup/Popup.js +62 -49
  153. package/dist/es/components/portal/Portal.js +37 -31
  154. package/dist/es/components/portal/PortalHost.js +257 -211
  155. package/dist/es/components/portal/tokens.js +5 -0
  156. package/dist/es/components/progress/Progress.js +76 -36
  157. package/dist/es/components/progress/index.js +2 -1
  158. package/dist/es/components/radio/Radio.js +37 -14
  159. package/dist/es/components/radio/RadioContext.js +1 -2
  160. package/dist/es/components/radio/RadioGroup.js +23 -20
  161. package/dist/es/components/safe-area-view/tokens.js +5 -0
  162. package/dist/es/components/search/Search.js +17 -17
  163. package/dist/es/components/selector/Selector.js +7 -7
  164. package/dist/es/components/share-sheet/ShareSheet.js +51 -47
  165. package/dist/es/components/sidebar/Sidebar.js +26 -21
  166. package/dist/es/components/sidebar/SidebarItem.js +26 -22
  167. package/dist/es/components/skeleton/Skeleton.js +35 -22
  168. package/dist/es/components/slider/Slider.js +132 -75
  169. package/dist/es/components/stepper/Stepper.js +13 -11
  170. package/dist/es/components/swiper/Swiper.js +248 -711
  171. package/dist/es/components/swiper/SwiperItem.js +1 -21
  172. package/dist/es/components/swiper/tokens.js +5 -0
  173. package/dist/es/components/switch/Switch.js +49 -101
  174. package/dist/es/components/switch/tokens.js +1 -49
  175. package/dist/es/components/tabbar/Tabbar.js +27 -23
  176. package/dist/es/components/tabbar/TabbarItem.js +22 -22
  177. package/dist/es/components/tabbar/tokens.js +0 -2
  178. package/dist/es/components/tabs/Tabs.js +264 -90
  179. package/dist/es/components/tabs/index.js +1 -2
  180. package/dist/es/components/toast/Toast.js +72 -28
  181. package/dist/es/components/toast/imperative.js +2 -2
  182. package/dist/es/hooks/gesture/useGestureScroll.js +1 -2
  183. package/dist/es/hooks/index.js +1 -1
  184. package/dist/es/hooks/overlay/index.js +3 -0
  185. package/dist/es/hooks/useHairline.js +0 -4
  186. package/dist/es/platform/scrollLock.js +1 -1
  187. package/dist/es/utils/compare.js +18 -0
  188. package/dist/es/utils/index.js +1 -1
  189. package/dist/types/components/area/tokens.d.ts +3 -0
  190. package/dist/types/components/avatar/Avatar.d.ts +4 -2
  191. package/dist/types/components/button/ButtonContext.d.ts +2 -16
  192. package/dist/types/components/button/ButtonGroup.d.ts +14 -1
  193. package/dist/types/components/button/index.d.ts +1 -1
  194. package/dist/types/components/checkbox/CheckboxContext.d.ts +2 -16
  195. package/dist/types/components/checkbox/CheckboxGroup.d.ts +15 -1
  196. package/dist/types/components/collapse/Collapse.d.ts +0 -1
  197. package/dist/types/components/config-provider/LocaleContext.d.ts +2 -74
  198. package/dist/types/components/config-provider/tokens.d.ts +3 -0
  199. package/dist/types/components/config-provider/useLocale.d.ts +1 -74
  200. package/dist/types/components/datetime-picker/tokens.d.ts +3 -0
  201. package/dist/types/components/flex/Flex.d.ts +6 -0
  202. package/dist/types/components/flex/FlexContext.d.ts +2 -8
  203. package/dist/types/components/form/Form.d.ts +15 -1
  204. package/dist/types/components/form/FormContext.d.ts +2 -17
  205. package/dist/types/components/form/tokens.d.ts +3 -0
  206. package/dist/types/components/form/utils.d.ts +1 -0
  207. package/dist/types/components/grid/Grid.d.ts +16 -1
  208. package/dist/types/components/grid/GridContext.d.ts +2 -17
  209. package/dist/types/components/index.d.ts +3 -33
  210. package/dist/types/components/loading/index.d.ts +1 -1
  211. package/dist/types/components/notify/Notify.d.ts +1 -0
  212. package/dist/types/components/overlay/Overlay.d.ts +6 -1
  213. package/dist/types/components/overlay/index.d.ts +2 -3
  214. package/dist/types/components/overlay/tokens.d.ts +2 -3
  215. package/dist/types/components/password-input/PasswordInput.d.ts +0 -39
  216. package/dist/types/components/password-input/tokens.d.ts +40 -0
  217. package/dist/types/components/picker/Picker.d.ts +18 -2
  218. package/dist/types/components/picker/index.d.ts +1 -1
  219. package/dist/types/components/portal/Portal.d.ts +4 -6
  220. package/dist/types/components/portal/PortalHost.d.ts +1 -15
  221. package/dist/types/components/portal/tokens.d.ts +3 -0
  222. package/dist/types/components/progress/Progress.d.ts +4 -0
  223. package/dist/types/components/progress/index.d.ts +2 -1
  224. package/dist/types/components/radio/RadioContext.d.ts +2 -13
  225. package/dist/types/components/radio/RadioGroup.d.ts +12 -1
  226. package/dist/types/components/safe-area-view/tokens.d.ts +3 -0
  227. package/dist/types/components/swiper/Swiper.d.ts +4 -2
  228. package/dist/types/components/swiper/SwiperItem.d.ts +1 -5
  229. package/dist/types/components/swiper/tokens.d.ts +3 -0
  230. package/dist/types/components/tabs/Tabs.d.ts +8 -4
  231. package/dist/types/components/tabs/index.d.ts +3 -1
  232. package/dist/types/components/toast/Toast.d.ts +1 -4
  233. package/dist/types/hooks/aria/useAriaListBox.d.ts +0 -6
  234. package/dist/types/hooks/aria/useAriaOverlay.d.ts +0 -10
  235. package/dist/types/hooks/aria/useAriaPress.d.ts +0 -20
  236. package/dist/types/hooks/aria/useAriaToggle.d.ts +0 -3
  237. package/dist/types/hooks/index.d.ts +1 -1
  238. package/dist/types/hooks/overlay/index.d.ts +2 -0
  239. package/dist/types/hooks/useHairline.d.ts +0 -21
  240. package/dist/types/utils/compare.d.ts +2 -0
  241. package/dist/types/utils/index.d.ts +1 -0
  242. package/package.json +10 -48
  243. package/dist/cjs/components/area/utils.js +0 -74
  244. package/dist/cjs/components/cascader/utils.js +0 -20
  245. package/dist/cjs/components/config-provider/locale/base.js +0 -80
  246. package/dist/cjs/components/dropdown-menu/DropdownItem.js +0 -288
  247. package/dist/cjs/components/dropdown-menu/DropdownMenu.js +0 -340
  248. package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +0 -21
  249. package/dist/cjs/components/dropdown-menu/index.js +0 -25
  250. package/dist/cjs/components/dropdown-menu/tokens.js +0 -67
  251. package/dist/cjs/components/field/utils.js +0 -24
  252. package/dist/cjs/components/index-bar/IndexAnchor.js +0 -74
  253. package/dist/cjs/components/index-bar/IndexBar.js +0 -436
  254. package/dist/cjs/components/index-bar/index.js +0 -25
  255. package/dist/cjs/components/index-bar/tokens.js +0 -45
  256. package/dist/cjs/components/list/List.js +0 -165
  257. package/dist/cjs/components/list/index.js +0 -9
  258. package/dist/cjs/components/list/tokens.js +0 -39
  259. package/dist/cjs/components/notify/defaults.js +0 -15
  260. package/dist/cjs/components/pagination/Pagination.js +0 -160
  261. package/dist/cjs/components/pagination/index.js +0 -22
  262. package/dist/cjs/components/pagination/tokens.js +0 -103
  263. package/dist/cjs/components/picker/WheelPicker.js +0 -492
  264. package/dist/cjs/components/picker/utils.js +0 -138
  265. package/dist/cjs/components/pull-refresh/PullRefresh.js +0 -378
  266. package/dist/cjs/components/pull-refresh/index.js +0 -16
  267. package/dist/cjs/components/pull-refresh/tokens.js +0 -22
  268. package/dist/cjs/components/rate/Rate.js +0 -269
  269. package/dist/cjs/components/rate/index.js +0 -15
  270. package/dist/cjs/components/rate/tokens.js +0 -60
  271. package/dist/cjs/components/slider/utils.js +0 -60
  272. package/dist/cjs/components/swiper/useSwiperWeb.js +0 -209
  273. package/dist/cjs/components/swiper/utils.js +0 -49
  274. package/dist/cjs/components/tabs/TabPane.js +0 -9
  275. package/dist/cjs/components/tabs/useTabsAnimation.js +0 -74
  276. package/dist/cjs/components/tabs/useTabsScroll.js +0 -133
  277. package/dist/cjs/components/tabs/utils.js +0 -34
  278. package/dist/cjs/components/types.js +0 -1
  279. package/dist/cjs/components/uploader/Uploader.js +0 -557
  280. package/dist/cjs/components/uploader/index.js +0 -22
  281. package/dist/cjs/components/uploader/tokens.js +0 -58
  282. package/dist/cjs/components/uploader/utils.js +0 -72
  283. package/dist/cjs/hooks/usePresenceAnimation.js +0 -70
  284. package/dist/es/components/area/utils.js +0 -67
  285. package/dist/es/components/cascader/utils.js +0 -13
  286. package/dist/es/components/config-provider/locale/base.js +0 -74
  287. package/dist/es/components/dropdown-menu/DropdownItem.js +0 -269
  288. package/dist/es/components/dropdown-menu/DropdownMenu.js +0 -320
  289. package/dist/es/components/dropdown-menu/DropdownMenuContext.js +0 -7
  290. package/dist/es/components/dropdown-menu/index.js +0 -7
  291. package/dist/es/components/dropdown-menu/tokens.js +0 -61
  292. package/dist/es/components/field/utils.js +0 -17
  293. package/dist/es/components/index-bar/IndexAnchor.js +0 -55
  294. package/dist/es/components/index-bar/IndexBar.js +0 -417
  295. package/dist/es/components/index-bar/index.js +0 -7
  296. package/dist/es/components/index-bar/tokens.js +0 -39
  297. package/dist/es/components/list/List.js +0 -145
  298. package/dist/es/components/list/index.js +0 -2
  299. package/dist/es/components/list/tokens.js +0 -32
  300. package/dist/es/components/notify/defaults.js +0 -9
  301. package/dist/es/components/pagination/Pagination.js +0 -141
  302. package/dist/es/components/pagination/index.js +0 -4
  303. package/dist/es/components/pagination/tokens.js +0 -91
  304. package/dist/es/components/picker/WheelPicker.js +0 -473
  305. package/dist/es/components/picker/utils.js +0 -127
  306. package/dist/es/components/pull-refresh/PullRefresh.js +0 -359
  307. package/dist/es/components/pull-refresh/index.js +0 -3
  308. package/dist/es/components/pull-refresh/tokens.js +0 -16
  309. package/dist/es/components/rate/Rate.js +0 -250
  310. package/dist/es/components/rate/index.js +0 -3
  311. package/dist/es/components/rate/tokens.js +0 -53
  312. package/dist/es/components/slider/utils.js +0 -49
  313. package/dist/es/components/swiper/useSwiperWeb.js +0 -190
  314. package/dist/es/components/swiper/utils.js +0 -37
  315. package/dist/es/components/tabs/TabPane.js +0 -3
  316. package/dist/es/components/tabs/useTabsAnimation.js +0 -55
  317. package/dist/es/components/tabs/useTabsScroll.js +0 -114
  318. package/dist/es/components/tabs/utils.js +0 -19
  319. package/dist/es/components/types.js +0 -1
  320. package/dist/es/components/uploader/Uploader.js +0 -537
  321. package/dist/es/components/uploader/index.js +0 -4
  322. package/dist/es/components/uploader/tokens.js +0 -52
  323. package/dist/es/components/uploader/utils.js +0 -60
  324. package/dist/es/hooks/usePresenceAnimation.js +0 -51
  325. package/dist/types/components/area/utils.d.ts +0 -2
  326. package/dist/types/components/cascader/utils.d.ts +0 -6
  327. package/dist/types/components/config-provider/locale/base.d.ts +0 -74
  328. package/dist/types/components/dropdown-menu/DropdownItem.d.ts +0 -4
  329. package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +0 -4
  330. package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +0 -17
  331. package/dist/types/components/dropdown-menu/index.d.ts +0 -8
  332. package/dist/types/components/dropdown-menu/tokens.d.ts +0 -52
  333. package/dist/types/components/field/utils.d.ts +0 -4
  334. package/dist/types/components/index-bar/IndexAnchor.d.ts +0 -4
  335. package/dist/types/components/index-bar/IndexBar.d.ts +0 -4
  336. package/dist/types/components/index-bar/index.d.ts +0 -9
  337. package/dist/types/components/index-bar/tokens.d.ts +0 -31
  338. package/dist/types/components/list/List.d.ts +0 -4
  339. package/dist/types/components/list/index.d.ts +0 -3
  340. package/dist/types/components/list/tokens.d.ts +0 -4
  341. package/dist/types/components/notify/defaults.d.ts +0 -10
  342. package/dist/types/components/pagination/Pagination.d.ts +0 -5
  343. package/dist/types/components/pagination/index.d.ts +0 -5
  344. package/dist/types/components/pagination/tokens.d.ts +0 -2
  345. package/dist/types/components/picker/WheelPicker.d.ts +0 -21
  346. package/dist/types/components/picker/utils.d.ts +0 -17
  347. package/dist/types/components/pull-refresh/PullRefresh.d.ts +0 -5
  348. package/dist/types/components/pull-refresh/index.d.ts +0 -4
  349. package/dist/types/components/pull-refresh/tokens.d.ts +0 -10
  350. package/dist/types/components/rate/Rate.d.ts +0 -4
  351. package/dist/types/components/rate/index.d.ts +0 -4
  352. package/dist/types/components/rate/tokens.d.ts +0 -4
  353. package/dist/types/components/slider/utils.d.ts +0 -42
  354. package/dist/types/components/swiper/useSwiperWeb.d.ts +0 -41
  355. package/dist/types/components/swiper/utils.d.ts +0 -17
  356. package/dist/types/components/tabs/TabPane.d.ts +0 -4
  357. package/dist/types/components/tabs/useTabsAnimation.d.ts +0 -30
  358. package/dist/types/components/tabs/useTabsScroll.d.ts +0 -23
  359. package/dist/types/components/tabs/utils.d.ts +0 -5
  360. package/dist/types/components/types.d.ts +0 -59
  361. package/dist/types/components/uploader/Uploader.d.ts +0 -4
  362. package/dist/types/components/uploader/index.d.ts +0 -5
  363. package/dist/types/components/uploader/tokens.d.ts +0 -42
  364. package/dist/types/components/uploader/utils.d.ts +0 -11
  365. package/dist/types/hooks/usePresenceAnimation.d.ts +0 -20
  366. /package/dist/cjs/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  367. /package/dist/cjs/{components → hooks}/overlay/useOverlayStack.js +0 -0
  368. /package/dist/es/{components → hooks}/overlay/OverlayStackStore.js +0 -0
  369. /package/dist/es/{components → hooks}/overlay/useOverlayStack.js +0 -0
  370. /package/dist/types/{components → hooks}/overlay/OverlayStackStore.d.ts +0 -0
  371. /package/dist/types/{components → hooks}/overlay/useOverlayStack.d.ts +0 -0
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.TabPane = void 0;
7
7
  function _react() {
8
8
  const data = _interopRequireWildcard(require("react"));
9
9
  _react = function () {
@@ -22,11 +22,191 @@ var _hooks = require("../../hooks");
22
22
  var _number = require("../../utils/number");
23
23
  var _validate = require("../../utils/validate");
24
24
  var _tokens = require("./tokens");
25
- var _utils = require("./utils");
26
- var _useTabsAnimation = require("./useTabsAnimation");
27
- var _useTabsScroll = require("./useTabsScroll");
28
25
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
29
26
  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); }
27
+ const TabPane = () => null;
28
+ exports.TabPane = TabPane;
29
+ TabPane.displayName = 'Tabs.TabPane';
30
+ const canUseRaf = typeof requestAnimationFrame !== 'undefined' && (0, _validate.isFunction)(requestAnimationFrame) && typeof cancelAnimationFrame !== 'undefined' && (0, _validate.isFunction)(cancelAnimationFrame);
31
+ const requestFrame = canUseRaf ? cb => requestAnimationFrame(cb) : cb => setTimeout(cb, 16);
32
+ const cancelFrame = id => {
33
+ if (id == null) return;
34
+ if (canUseRaf) {
35
+ cancelAnimationFrame(id);
36
+ } else {
37
+ clearTimeout(id);
38
+ }
39
+ };
40
+ const isTabPaneElement = child => {
41
+ if (! /*#__PURE__*/_react().default.isValidElement(child)) return false;
42
+ if (child.type === TabPane) return true;
43
+ const type = child.type;
44
+ return type.displayName === 'Tabs.TabPane';
45
+ };
46
+ const useTabsAnimation = ({
47
+ type,
48
+ animated,
49
+ scrollable,
50
+ align,
51
+ panes,
52
+ nameIndexMap,
53
+ resolvedLineWidth,
54
+ resolvedDuration,
55
+ currentName,
56
+ layoutMap,
57
+ navContainerWidthRef
58
+ }) => {
59
+ const indicatorX = (0, _react().useRef)(new (_reactNative().Animated.Value)(0)).current;
60
+ const indicatorWidth = (0, _react().useRef)(new (_reactNative().Animated.Value)(0)).current;
61
+ const indicatorInitializedRef = (0, _react().useRef)(false);
62
+ const animateIndicator = (0, _react().useCallback)((name, immediate) => {
63
+ if (name == null || type !== 'line') return false;
64
+ const shouldUseEqualWidth = !scrollable && align !== 'start' && navContainerWidthRef.current > 0 && panes.length > 0;
65
+ const index = nameIndexMap.get(name) ?? -1;
66
+ const equalTabWidth = shouldUseEqualWidth ? navContainerWidthRef.current / panes.length : 0;
67
+ const layout = shouldUseEqualWidth ? {
68
+ x: Math.max(index, 0) * equalTabWidth,
69
+ width: equalTabWidth
70
+ } : layoutMap.current.get(name);
71
+ if (!layout || index < 0) {
72
+ return false;
73
+ }
74
+ const timing = (value, toValue) => _reactNative().Animated.timing(value, {
75
+ toValue,
76
+ duration: immediate || !animated ? 0 : resolvedDuration,
77
+ useNativeDriver: false
78
+ });
79
+ const targetWidth = resolvedLineWidth ?? layout.width;
80
+ const targetX = resolvedLineWidth ? layout.x + (layout.width - targetWidth) / 2 : layout.x;
81
+ _reactNative().Animated.parallel([timing(indicatorX, targetX), timing(indicatorWidth, targetWidth)]).start();
82
+ return true;
83
+ }, [align, animated, indicatorWidth, indicatorX, nameIndexMap, panes.length, resolvedDuration, resolvedLineWidth, scrollable, type, layoutMap, navContainerWidthRef]);
84
+ (0, _react().useEffect)(() => {
85
+ if (currentName == null) return;
86
+ const shouldAnimate = indicatorInitializedRef.current;
87
+ const didAnimate = animateIndicator(currentName, !shouldAnimate);
88
+ if (didAnimate && !indicatorInitializedRef.current) {
89
+ indicatorInitializedRef.current = true;
90
+ }
91
+ }, [animateIndicator, currentName]);
92
+ return {
93
+ indicatorX,
94
+ indicatorWidth,
95
+ indicatorInitializedRef,
96
+ animateIndicator
97
+ };
98
+ };
99
+ const useTabsScroll = ({
100
+ scrollable,
101
+ animated,
102
+ currentName,
103
+ resolvedDuration,
104
+ layoutMap,
105
+ navContainerWidthRef,
106
+ navContentWidthRef
107
+ }) => {
108
+ const navScrollRef = (0, _react().useRef)(null);
109
+ const navScrollX = (0, _react().useRef)(new (_reactNative().Animated.Value)(0)).current;
110
+ const navScrollAnimRef = (0, _react().useRef)(null);
111
+ const navAutoScrollingRef = (0, _react().useRef)(false);
112
+ const navLastScrollXRef = (0, _react().useRef)(0);
113
+ const navAutoScrollFrameRef = (0, _react().useRef)(null);
114
+ const scrollIntoView = (0, _react().useCallback)(immediate => {
115
+ if (!scrollable || currentName == null) return;
116
+ const layout = layoutMap.current.get(currentName);
117
+ const containerWidth = navContainerWidthRef.current;
118
+ if (!layout || !containerWidth) return;
119
+ const contentWidth = navContentWidthRef.current;
120
+ const targetX = layout.x - (containerWidth - layout.width) / 2;
121
+ const maxScroll = Math.max(contentWidth - containerWidth, 0);
122
+ const clampedX = Math.max(0, Math.min(targetX, maxScroll));
123
+ if (maxScroll <= 0) {
124
+ return;
125
+ }
126
+ if (Math.abs(clampedX - navLastScrollXRef.current) < 1) {
127
+ return;
128
+ }
129
+ if (navScrollAnimRef.current) {
130
+ navScrollAnimRef.current.stop();
131
+ navScrollAnimRef.current = null;
132
+ }
133
+ cancelFrame(navAutoScrollFrameRef.current);
134
+ navAutoScrollFrameRef.current = null;
135
+ if (immediate || !animated) {
136
+ navAutoScrollingRef.current = true;
137
+ navScrollX.setValue(clampedX);
138
+ navAutoScrollFrameRef.current = requestFrame(() => {
139
+ navAutoScrollFrameRef.current = null;
140
+ navAutoScrollingRef.current = false;
141
+ });
142
+ return;
143
+ }
144
+ navScrollX.setValue(navLastScrollXRef.current);
145
+ navAutoScrollingRef.current = true;
146
+ navScrollAnimRef.current = _reactNative().Animated.timing(navScrollX, {
147
+ toValue: clampedX,
148
+ duration: resolvedDuration,
149
+ useNativeDriver: false
150
+ });
151
+ navScrollAnimRef.current.start(({
152
+ finished
153
+ }) => {
154
+ navScrollAnimRef.current = null;
155
+ navAutoScrollingRef.current = false;
156
+ if (!finished) {
157
+ return;
158
+ }
159
+ navLastScrollXRef.current = clampedX;
160
+ });
161
+ }, [animated, currentName, navScrollX, resolvedDuration, scrollable, layoutMap, navContainerWidthRef, navContentWidthRef]);
162
+ (0, _react().useEffect)(() => {
163
+ if (!scrollable) return;
164
+ const listenerId = navScrollX.addListener(({
165
+ value
166
+ }) => {
167
+ const prev = navLastScrollXRef.current;
168
+ navLastScrollXRef.current = value;
169
+ if (Math.abs(value - prev) < 0.5) {
170
+ return;
171
+ }
172
+ navScrollRef.current?.scrollTo({
173
+ x: value,
174
+ y: 0,
175
+ animated: false
176
+ });
177
+ });
178
+ return () => {
179
+ navScrollX.removeListener(listenerId);
180
+ };
181
+ }, [navScrollX, scrollable]);
182
+ (0, _react().useEffect)(() => {
183
+ return () => {
184
+ cancelFrame(navAutoScrollFrameRef.current);
185
+ navAutoScrollFrameRef.current = null;
186
+ };
187
+ }, []);
188
+ const handleNavScrollBeginDrag = (0, _react().useCallback)(event => {
189
+ navAutoScrollingRef.current = false;
190
+ if (navScrollAnimRef.current) {
191
+ navScrollAnimRef.current.stop();
192
+ navScrollAnimRef.current = null;
193
+ }
194
+ navLastScrollXRef.current = event.nativeEvent.contentOffset.x;
195
+ }, []);
196
+ const handleNavScroll = (0, _react().useCallback)(event => {
197
+ if (navAutoScrollingRef.current) {
198
+ return;
199
+ }
200
+ navLastScrollXRef.current = event.nativeEvent.contentOffset.x;
201
+ }, []);
202
+ return {
203
+ navScrollRef,
204
+ navScrollX,
205
+ scrollIntoView,
206
+ handleNavScrollBeginDrag,
207
+ handleNavScroll
208
+ };
209
+ };
30
210
  const TabBarItemInner = ({
31
211
  pane,
32
212
  isActive,
@@ -67,8 +247,9 @@ const TabBarItemInner = ({
67
247
  const textColor = pane.disabled ? tokens.colors.textDisabled : isActive ? activeTitleColor : inactiveTitleColor;
68
248
  const descriptionColor = isDisabled ? tokens.colors.textDisabled : isJumbo ? isActive ? tokens.colors.jumboDescriptionActive : tokens.colors.jumboDescription : isActive ? tokens.colors.descriptionActive : tokens.colors.description;
69
249
  const shouldFlex = !scrollable && (align !== 'start' || isCard);
70
- const horizontalPadding = isCard || isJumbo || isCapsule ? 0 : tokens.tabList.paddingHorizontal;
71
- const verticalPadding = isCard || isJumbo || isCapsule ? 0 : tokens.tabList.paddingVertical;
250
+ const isCompactType = isCard || isJumbo || isCapsule;
251
+ const horizontalPadding = isCompactType ? 0 : tokens.tabList.paddingHorizontal;
252
+ const verticalPadding = isCompactType ? 0 : tokens.tabList.paddingVertical;
72
253
  const labelWrapperStyles = [styles.labelWrapper];
73
254
  const labelTextWrapperStyles = isCapsule ? [{
74
255
  flex: 1,
@@ -105,6 +286,34 @@ const TabBarItemInner = ({
105
286
  alignItems: 'center'
106
287
  });
107
288
  }
289
+ const titleTextStyle = [styles.title, {
290
+ color: textColor,
291
+ fontSize: isJumbo ? tokens.typography.jumboTitleSize : tokens.typography.titleSize,
292
+ fontWeight: isActive ? tokens.typography.titleActiveWeight : tokens.typography.titleWeight,
293
+ lineHeight: isJumbo ? tokens.typography.jumboLineHeight : undefined,
294
+ textAlign: 'center'
295
+ }, ellipsis && !isJumbo ? styles.ellipsis : null, titleStyle];
296
+ const titleNode = /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
297
+ style: titleTextStyle,
298
+ numberOfLines: ellipsis && !isJumbo ? 1 : undefined
299
+ }, renderTitle);
300
+ const descriptionMarginTop = isJumbo ? tokens.spacing.jumboDescriptionMarginTop : tokens.spacing.descriptionMarginTop;
301
+ const descriptionJumboStyle = isJumbo ? {
302
+ backgroundColor: isActive ? tokens.colors.jumboDescriptionActiveBackground : tokens.colors.jumboDescriptionBackground,
303
+ paddingHorizontal: tokens.jumbo.descriptionPaddingHorizontal,
304
+ paddingVertical: tokens.jumbo.descriptionPaddingVertical,
305
+ borderRadius: tokens.jumbo.descriptionRadius
306
+ } : null;
307
+ const descriptionTextStyle = [styles.descriptionText, {
308
+ color: descriptionColor,
309
+ fontSize: tokens.typography.descriptionSize,
310
+ marginTop: descriptionMarginTop,
311
+ textAlign: 'center'
312
+ }, descriptionJumboStyle, descriptionStyle];
313
+ const descriptionViewStyle = [styles.descriptionView, {
314
+ marginTop: descriptionMarginTop,
315
+ alignItems: 'center'
316
+ }, descriptionJumboStyle];
108
317
  return /*#__PURE__*/_react().default.createElement(_reactNative().Pressable, _extends({}, ariaPress.interactionProps, {
109
318
  onLayout: event => onLayout(pane.name, event),
110
319
  style: [styles.tabItem, shouldFlex ? styles.flexItem : null, {
@@ -119,52 +328,10 @@ const TabBarItemInner = ({
119
328
  style: labelWrapperStyles
120
329
  }, labelTextWrapperStyles ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
121
330
  style: labelTextWrapperStyles
122
- }, /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
123
- style: [styles.title, {
124
- color: textColor,
125
- fontSize: isJumbo ? tokens.typography.jumboTitleSize : tokens.typography.titleSize,
126
- fontWeight: isActive ? tokens.typography.titleActiveWeight : tokens.typography.titleWeight,
127
- lineHeight: isJumbo ? tokens.typography.jumboLineHeight : undefined,
128
- textAlign: 'center'
129
- }, ellipsis && !isJumbo ? styles.ellipsis : null, titleStyle],
130
- numberOfLines: ellipsis && !isJumbo ? 1 : undefined
131
- }, renderTitle)) : /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
132
- style: [styles.title, {
133
- color: textColor,
134
- fontSize: isJumbo ? tokens.typography.jumboTitleSize : tokens.typography.titleSize,
135
- fontWeight: isActive ? tokens.typography.titleActiveWeight : tokens.typography.titleWeight,
136
- lineHeight: isJumbo ? tokens.typography.jumboLineHeight : undefined,
137
- textAlign: 'center'
138
- }, ellipsis && !isJumbo ? styles.ellipsis : null, titleStyle],
139
- numberOfLines: ellipsis && !isJumbo ? 1 : undefined
140
- }, renderTitle), (0, _validate.isRenderable)(renderDescription) && ((0, _validate.isText)(renderDescription) ? /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
141
- style: [styles.descriptionText, isJumbo ? {
142
- color: descriptionColor,
143
- fontSize: tokens.typography.descriptionSize,
144
- marginTop: tokens.spacing.jumboDescriptionMarginTop,
145
- textAlign: 'center',
146
- backgroundColor: isActive ? tokens.colors.jumboDescriptionActiveBackground : tokens.colors.jumboDescriptionBackground,
147
- paddingHorizontal: tokens.jumbo.descriptionPaddingHorizontal,
148
- paddingVertical: tokens.jumbo.descriptionPaddingVertical,
149
- borderRadius: tokens.jumbo.descriptionRadius
150
- } : {
151
- color: descriptionColor,
152
- fontSize: tokens.typography.descriptionSize,
153
- marginTop: tokens.spacing.descriptionMarginTop,
154
- textAlign: 'center'
155
- }, descriptionStyle]
331
+ }, titleNode) : titleNode, (0, _validate.isRenderable)(renderDescription) && ((0, _validate.isText)(renderDescription) ? /*#__PURE__*/_react().default.createElement(_reactNative().Text, {
332
+ style: descriptionTextStyle
156
333
  }, renderDescription) : /*#__PURE__*/_react().default.createElement(_reactNative().View, {
157
- style: [styles.descriptionView, isJumbo ? {
158
- marginTop: tokens.spacing.jumboDescriptionMarginTop,
159
- alignItems: 'center',
160
- backgroundColor: isActive ? tokens.colors.jumboDescriptionActiveBackground : tokens.colors.jumboDescriptionBackground,
161
- paddingHorizontal: tokens.jumbo.descriptionPaddingHorizontal,
162
- paddingVertical: tokens.jumbo.descriptionPaddingVertical,
163
- borderRadius: tokens.jumbo.descriptionRadius
164
- } : {
165
- marginTop: tokens.spacing.descriptionMarginTop,
166
- alignItems: 'center'
167
- }]
334
+ style: descriptionViewStyle
168
335
  }, renderDescription)), (0, _validate.isRenderable)(pane.badge) && /*#__PURE__*/_react().default.createElement(_reactNative().View, {
169
336
  style: [styles.badge, {
170
337
  marginTop: tokens.spacing.badgeMarginTop
@@ -234,7 +401,7 @@ const TabsBaseInner = (props, ref) => {
234
401
  preventScroll: true
235
402
  };
236
403
  const isSwipeable = !!swipeableConfig;
237
- const panes = (() => {
404
+ const panes = (0, _react().useMemo)(() => {
238
405
  const result = [];
239
406
  let paneIndex = 0;
240
407
  const walk = nodes => {
@@ -245,7 +412,7 @@ const TabsBaseInner = (props, ref) => {
245
412
  walk(element.props.children);
246
413
  return;
247
414
  }
248
- if (!(0, _utils.isTabPaneElement)(element)) {
415
+ if (!isTabPaneElement(element)) {
249
416
  return;
250
417
  }
251
418
  const paneProps = element.props;
@@ -261,7 +428,7 @@ const TabsBaseInner = (props, ref) => {
261
428
  };
262
429
  walk(children);
263
430
  return result;
264
- })();
431
+ }, [children]);
265
432
  const firstPaneName = panes[0]?.name;
266
433
  const [activeValue, setActiveValue] = (0, _hooks.useControllableValue)(props, {
267
434
  defaultValue: firstPaneName,
@@ -274,13 +441,13 @@ const TabsBaseInner = (props, ref) => {
274
441
  (0, _react().useEffect)(() => {
275
442
  currentNameRef.current = currentName;
276
443
  }, [currentName]);
277
- const nameIndexMap = (() => {
444
+ const nameIndexMap = (0, _react().useMemo)(() => {
278
445
  const map = new Map();
279
446
  panes.forEach(pane => {
280
447
  map.set(pane.name, pane.index);
281
448
  });
282
449
  return map;
283
- })();
450
+ }, [panes]);
284
451
  const activeIndex = currentName == null ? -1 : nameIndexMap.get(currentName) ?? -1;
285
452
  const visitedRef = (0, _react().useRef)(new Set());
286
453
  (0, _react().useEffect)(() => {
@@ -325,7 +492,7 @@ const TabsBaseInner = (props, ref) => {
325
492
  const [swipeableHeight, setSwipeableHeight] = (0, _react().useState)(undefined);
326
493
  (0, _react().useEffect)(() => {
327
494
  return () => {
328
- (0, _utils.cancelFrame)(navContentSizeSyncFrameRef.current);
495
+ cancelFrame(navContentSizeSyncFrameRef.current);
329
496
  navContentSizeSyncFrameRef.current = null;
330
497
  };
331
498
  }, []);
@@ -337,7 +504,7 @@ const TabsBaseInner = (props, ref) => {
337
504
  indicatorWidth,
338
505
  indicatorInitializedRef,
339
506
  animateIndicator
340
- } = (0, _useTabsAnimation.useTabsAnimation)({
507
+ } = useTabsAnimation({
341
508
  type,
342
509
  animated,
343
510
  scrollable,
@@ -356,7 +523,7 @@ const TabsBaseInner = (props, ref) => {
356
523
  scrollIntoView,
357
524
  handleNavScrollBeginDrag,
358
525
  handleNavScroll
359
- } = (0, _useTabsScroll.useTabsScroll)({
526
+ } = useTabsScroll({
360
527
  scrollable,
361
528
  animated,
362
529
  currentName,
@@ -504,20 +671,23 @@ const TabsBaseInner = (props, ref) => {
504
671
  if (panes.length === 0) {
505
672
  return null;
506
673
  }
507
- const indicatorNode = showIndicator ? /*#__PURE__*/_react().default.createElement(_reactNative().Animated.View, {
508
- testID: "rv-tabs-indicator",
509
- style: [styles.indicator, {
510
- height: resolvedLineHeight,
511
- borderRadius: indicatorCornerRadius,
512
- backgroundColor: indicatorColor,
513
- width: indicatorWidth,
514
- bottom: indicatorBottom,
515
- transform: [{
516
- translateX: indicatorX
674
+ const indicatorNode = (0, _react().useMemo)(() => {
675
+ if (!showIndicator) return null;
676
+ return /*#__PURE__*/_react().default.createElement(_reactNative().Animated.View, {
677
+ testID: "rv-tabs-indicator",
678
+ style: [styles.indicator, {
679
+ height: resolvedLineHeight,
680
+ borderRadius: indicatorCornerRadius,
681
+ backgroundColor: indicatorColor,
682
+ width: indicatorWidth,
683
+ bottom: indicatorBottom,
684
+ transform: [{
685
+ translateX: indicatorX
686
+ }]
517
687
  }]
518
- }]
519
- }) : null;
520
- const navItems = panes.map(pane => /*#__PURE__*/_react().default.createElement(TabBarItem, {
688
+ });
689
+ }, [indicatorBottom, indicatorColor, indicatorCornerRadius, indicatorWidth, indicatorX, resolvedLineHeight, showIndicator]);
690
+ const navItems = (0, _react().useMemo)(() => panes.map(pane => /*#__PURE__*/_react().default.createElement(TabBarItem, {
521
691
  key: pane.key,
522
692
  pane: pane,
523
693
  isActive: pane.name === currentName,
@@ -535,7 +705,22 @@ const TabsBaseInner = (props, ref) => {
535
705
  onSelect: handleSelect,
536
706
  onLayout: handleTabLayout,
537
707
  isLast: pane.index === panes.length - 1
538
- }));
708
+ })), [align, color, currentName, descriptionStyle, ellipsis, handleSelect, handleTabLayout, panes, scrollable, tabStyle, titleActiveColor, titleInactiveColor, titleStyle, tokens, type]);
709
+ const handleNavContentSizeChange = (0, _react().useCallback)(w => {
710
+ const prev = navContentWidthRef.current;
711
+ navContentWidthRef.current = w;
712
+ if (prev === 0 || firstRenderRef.current) {
713
+ scrollIntoView(true);
714
+ return;
715
+ }
716
+ if (Math.abs(w - prev) > 1) {
717
+ cancelFrame(navContentSizeSyncFrameRef.current);
718
+ navContentSizeSyncFrameRef.current = requestFrame(() => {
719
+ navContentSizeSyncFrameRef.current = null;
720
+ scrollIntoView();
721
+ });
722
+ }
723
+ }, [scrollIntoView]);
539
724
  const navBody = scrollable ? /*#__PURE__*/_react().default.createElement(_reactNative().ScrollView, {
540
725
  horizontal: true,
541
726
  ref: navScrollRef,
@@ -544,21 +729,7 @@ const TabsBaseInner = (props, ref) => {
544
729
  scrollEventThrottle: 16,
545
730
  onScrollBeginDrag: handleNavScrollBeginDrag,
546
731
  onScroll: handleNavScroll,
547
- onContentSizeChange: w => {
548
- const prev = navContentWidthRef.current;
549
- navContentWidthRef.current = w;
550
- if (prev === 0 || firstRenderRef.current) {
551
- scrollIntoView(true);
552
- return;
553
- }
554
- if (Math.abs(w - prev) > 1) {
555
- (0, _utils.cancelFrame)(navContentSizeSyncFrameRef.current);
556
- navContentSizeSyncFrameRef.current = (0, _utils.requestFrame)(() => {
557
- navContentSizeSyncFrameRef.current = null;
558
- scrollIntoView();
559
- });
560
- }
561
- },
732
+ onContentSizeChange: handleNavContentSizeChange,
562
733
  contentContainerStyle: styles.navContent
563
734
  }, navItems, indicatorNode) : /*#__PURE__*/_react().default.createElement(_reactNative().View, {
564
735
  accessibilityRole: "tablist",
@@ -592,7 +763,7 @@ const TabsBaseInner = (props, ref) => {
592
763
  paddingHorizontal: tokens.spacing.navSidePaddingHorizontal
593
764
  }]
594
765
  }, navRight));
595
- const paneNodes = panes.map(pane => {
766
+ const paneNodes = (0, _react().useMemo)(() => panes.map(pane => {
596
767
  const isActive = pane.name === currentName;
597
768
  const shouldRender = !lazyRender || isActive || visitedRef.current.has(pane.name);
598
769
  if (!shouldRender && !isSwipeable) {
@@ -609,11 +780,11 @@ const TabsBaseInner = (props, ref) => {
609
780
  onLayout: layoutHandler,
610
781
  style: paneStyles
611
782
  }, paneContent);
612
- });
613
- const baseContentStyle = [styles.content, contentStyle];
614
- const swipeableContentStyle = [styles.content, contentStyle, swipeableConfig?.autoHeight && swipeableHeight !== undefined && {
783
+ }), [containerWidth, currentName, handlePaneLayout, isSwipeable, lazyRender, lazyRenderPlaceholder, panes, swipeableConfig?.autoHeight]);
784
+ const baseContentStyle = (0, _react().useMemo)(() => [styles.content, contentStyle], [contentStyle]);
785
+ const swipeableContentStyle = (0, _react().useMemo)(() => [styles.content, contentStyle, swipeableConfig?.autoHeight && swipeableHeight !== undefined && {
615
786
  height: swipeableHeight
616
- }];
787
+ }], [contentStyle, swipeableConfig?.autoHeight, swipeableHeight]);
617
788
  const contentNode = isSwipeable ? /*#__PURE__*/_react().default.createElement(_reactNative().View, {
618
789
  style: swipeableContentStyle
619
790
  }, /*#__PURE__*/_react().default.createElement(_reactNative().Animated.ScrollView, {
@@ -720,4 +891,7 @@ const styles = _reactNative().StyleSheet.create({
720
891
  });
721
892
  const TabsBase = /*#__PURE__*/_react().default.forwardRef(TabsBaseInner);
722
893
  TabsBase.displayName = 'Tabs';
723
- var _default = exports.default = TabsBase;
894
+ const TabsWithPane = Object.assign(TabsBase, {
895
+ TabPane
896
+ });
897
+ var _default = exports.default = TabsWithPane;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  Object.defineProperty(exports, "TabPane", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _TabPane.default;
9
+ return _Tabs.TabPane;
10
10
  }
11
11
  });
12
12
  exports.default = void 0;
@@ -16,11 +16,10 @@ Object.defineProperty(exports, "useTabsTokens", {
16
16
  return _tokens.useTabsTokens;
17
17
  }
18
18
  });
19
- var _Tabs = _interopRequireDefault(require("./Tabs"));
20
- var _TabPane = _interopRequireDefault(require("./TabPane"));
19
+ var _Tabs = _interopRequireWildcard(require("./Tabs"));
21
20
  var _tokens = require("./tokens");
22
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
22
  const Tabs = Object.assign(_Tabs.default, {
24
- TabPane: _TabPane.default
23
+ TabPane: _Tabs.TabPane
25
24
  });
26
25
  var _default = exports.default = Tabs;