react-native-system-ui 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (679) hide show
  1. package/README.md +55 -46
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +55 -33
  3. package/dist/cjs/components/area/Area.js +42 -7
  4. package/dist/cjs/components/area/utils.js +37 -33
  5. package/dist/cjs/components/avatar/Avatar.js +4 -4
  6. package/dist/cjs/components/badge/Badge.js +31 -38
  7. package/dist/cjs/components/badge/tokens.js +1 -1
  8. package/dist/cjs/components/button/Button.js +13 -21
  9. package/dist/cjs/components/button/ButtonGroup.js +5 -5
  10. package/dist/cjs/components/button/tokens.js +2 -2
  11. package/dist/cjs/components/calendar/Calendar.js +39 -31
  12. package/dist/cjs/components/cascader/Cascader.js +135 -58
  13. package/dist/cjs/components/cascader/useCascaderExtend.js +19 -19
  14. package/dist/cjs/components/cell/Cell.js +13 -14
  15. package/dist/cjs/components/cell/CellGroup.js +5 -4
  16. package/dist/cjs/components/checkbox/Checkbox.js +24 -27
  17. package/dist/cjs/components/checkbox/CheckboxGroup.js +10 -9
  18. package/dist/cjs/components/circle/Circle.js +56 -78
  19. package/dist/cjs/components/collapse/Collapse.js +66 -60
  20. package/dist/cjs/components/collapse/tokens.js +1 -1
  21. package/dist/cjs/components/config-provider/ConfigProvider.js +7 -6
  22. package/dist/cjs/components/config-provider/useLocale.js +2 -3
  23. package/dist/cjs/components/count-down/CountDown.js +7 -8
  24. package/dist/cjs/components/datetime-picker/DatetimePicker.js +80 -73
  25. package/dist/cjs/components/dialog/Dialog.js +95 -78
  26. package/dist/cjs/components/dialog/imperative.js +20 -21
  27. package/dist/cjs/components/dialog/index.js +5 -1
  28. package/dist/cjs/components/divider/Divider.js +6 -7
  29. package/dist/cjs/components/dropdown-menu/DropdownItem.js +17 -17
  30. package/dist/cjs/components/dropdown-menu/DropdownMenu.js +79 -57
  31. package/dist/cjs/components/dropdown-menu/DropdownMenuContext.js +3 -3
  32. package/dist/cjs/components/empty/Empty.js +6 -6
  33. package/dist/cjs/components/field/Field.js +57 -148
  34. package/dist/cjs/components/field/tokens.js +87 -12
  35. package/dist/cjs/components/field/utils.js +24 -0
  36. package/dist/cjs/components/flex/FlexItem.js +10 -10
  37. package/dist/cjs/components/form/Form.js +78 -36
  38. package/dist/cjs/components/form/FormItem.js +19 -15
  39. package/dist/cjs/components/form/FormList.js +6 -6
  40. package/dist/cjs/components/form/index.js +2 -3
  41. package/dist/cjs/components/form/utils.js +36 -13
  42. package/dist/cjs/components/grid/Grid.js +7 -7
  43. package/dist/cjs/components/grid/GridItem.js +11 -11
  44. package/dist/cjs/components/grid/tokens.js +1 -1
  45. package/dist/cjs/components/image/Image.js +93 -60
  46. package/dist/cjs/components/image-preview/ImagePreview.js +95 -71
  47. package/dist/cjs/components/image-preview/imperative.js +7 -6
  48. package/dist/cjs/components/index-bar/IndexBar.js +213 -105
  49. package/dist/cjs/components/index.js +498 -0
  50. package/dist/cjs/components/input/Input.js +25 -25
  51. package/dist/cjs/components/list/List.js +29 -22
  52. package/dist/cjs/components/loading/Loading.js +6 -6
  53. package/dist/cjs/components/nav-bar/NavBar.js +7 -6
  54. package/dist/cjs/components/nav-bar/tokens.js +71 -68
  55. package/dist/cjs/components/notice-bar/NoticeBar.js +46 -50
  56. package/dist/cjs/components/notify/Notify.js +19 -15
  57. package/dist/cjs/components/notify/defaults.js +15 -0
  58. package/dist/cjs/components/notify/imperative.js +9 -8
  59. package/dist/cjs/components/number-keyboard/NumberKeyboard.js +191 -138
  60. package/dist/cjs/components/number-keyboard/tokens.js +7 -7
  61. package/dist/cjs/components/overlay/Overlay.js +19 -20
  62. package/dist/cjs/components/overlay/OverlayStackStore.js +4 -4
  63. package/dist/cjs/components/overlay/tokens.js +25 -2
  64. package/dist/cjs/components/overlay/useOverlayStack.js +9 -9
  65. package/dist/cjs/components/pagination/Pagination.js +10 -10
  66. package/dist/cjs/components/password-input/PasswordInput.js +57 -52
  67. package/dist/cjs/components/picker/Picker.js +219 -89
  68. package/dist/cjs/components/picker/WheelPicker.js +313 -135
  69. package/dist/cjs/components/picker/utils.js +14 -10
  70. package/dist/cjs/components/popup/Popup.js +184 -213
  71. package/dist/cjs/components/portal/Portal.js +6 -16
  72. package/dist/cjs/components/portal/PortalHost.js +103 -73
  73. package/dist/cjs/components/progress/Progress.js +114 -115
  74. package/dist/cjs/components/pull-refresh/PullRefresh.js +87 -52
  75. package/dist/cjs/components/radio/Radio.js +49 -53
  76. package/dist/cjs/components/radio/RadioGroup.js +9 -10
  77. package/dist/cjs/components/radio/tokens.js +1 -1
  78. package/dist/cjs/components/rate/Rate.js +77 -68
  79. package/dist/cjs/components/rate/tokens.js +1 -3
  80. package/dist/cjs/components/safe-area-view/SafeAreaView.js +63 -0
  81. package/dist/cjs/components/safe-area-view/index.js +12 -0
  82. package/dist/cjs/components/search/Search.js +23 -25
  83. package/dist/cjs/components/selector/Selector.js +128 -88
  84. package/dist/cjs/components/selector/tokens.js +1 -1
  85. package/dist/cjs/components/share-sheet/ShareSheet.js +73 -65
  86. package/dist/cjs/components/sidebar/Sidebar.js +36 -24
  87. package/dist/cjs/components/sidebar/SidebarContext.js +4 -3
  88. package/dist/cjs/components/sidebar/SidebarItem.js +9 -9
  89. package/dist/cjs/components/sidebar/tokens.js +3 -2
  90. package/dist/cjs/components/skeleton/Skeleton.js +72 -53
  91. package/dist/cjs/components/slider/Slider.js +200 -165
  92. package/dist/cjs/components/slider/utils.js +60 -0
  93. package/dist/cjs/components/space/Space.js +25 -26
  94. package/dist/cjs/components/stepper/Stepper.js +127 -103
  95. package/dist/cjs/components/swiper/Swiper.js +238 -341
  96. package/dist/cjs/components/swiper/SwiperItem.js +3 -3
  97. package/dist/cjs/components/swiper/SwiperPagIndicator.js +10 -8
  98. package/dist/cjs/components/swiper/useSwiperWeb.js +212 -0
  99. package/dist/cjs/components/swiper/utils.js +49 -0
  100. package/dist/cjs/components/switch/Switch.js +43 -39
  101. package/dist/cjs/components/switch/tokens.js +7 -5
  102. package/dist/cjs/components/tabbar/Tabbar.js +25 -30
  103. package/dist/cjs/components/tabbar/TabbarContext.js +4 -3
  104. package/dist/cjs/components/tabbar/TabbarItem.js +11 -10
  105. package/dist/cjs/components/tabs/Tabs.js +171 -228
  106. package/dist/cjs/components/tabs/tokens.js +4 -3
  107. package/dist/cjs/components/tabs/useTabsAnimation.js +74 -0
  108. package/dist/cjs/components/tabs/useTabsScroll.js +129 -0
  109. package/dist/cjs/components/tabs/utils.js +34 -0
  110. package/dist/cjs/components/tag/Tag.js +5 -5
  111. package/dist/cjs/components/tag/tokens.js +2 -2
  112. package/dist/cjs/components/toast/Toast.js +23 -11
  113. package/dist/cjs/components/toast/imperative.js +10 -9
  114. package/dist/cjs/components/types.js +1 -0
  115. package/dist/cjs/components/typography/Typography.js +57 -38
  116. package/dist/cjs/components/typography/tokens.js +3 -3
  117. package/dist/cjs/components/uploader/Uploader.js +42 -93
  118. package/dist/cjs/components/uploader/utils.js +72 -0
  119. package/dist/cjs/components/water-mark/WaterMark.js +18 -18
  120. package/dist/cjs/design-system/ThemeProvider.js +3 -3
  121. package/dist/cjs/design-system/createComponentTokensHook.js +4 -5
  122. package/dist/cjs/design-system/tokens.js +1 -0
  123. package/dist/cjs/design-system/useTheme.js +2 -3
  124. package/dist/cjs/hooks/aria/useAriaListBox.js +24 -9
  125. package/dist/cjs/hooks/aria/useAriaOverlay.js +13 -9
  126. package/dist/cjs/hooks/aria/useAriaPress.js +47 -21
  127. package/dist/cjs/hooks/aria/useAriaToggle.js +6 -6
  128. package/dist/cjs/hooks/gesture/useGestureScroll.js +22 -23
  129. package/dist/cjs/hooks/index.js +12 -0
  130. package/dist/cjs/hooks/useControllableValue.js +10 -9
  131. package/dist/cjs/hooks/useCountDown.js +17 -18
  132. package/dist/cjs/hooks/useHairline.js +3 -3
  133. package/dist/cjs/hooks/usePresenceAnimation.js +5 -6
  134. package/dist/cjs/hooks/useSafeAreaPadding.js +41 -0
  135. package/dist/cjs/index.js +22 -0
  136. package/dist/cjs/platform/index.js +11 -0
  137. package/dist/cjs/platform/measure.js +10 -8
  138. package/dist/cjs/platform/runtime.js +19 -0
  139. package/dist/cjs/utils/deepMerge.js +5 -2
  140. package/dist/cjs/utils/hairline.js +6 -3
  141. package/dist/cjs/utils/index.js +115 -0
  142. package/dist/es/components/action-sheet/ActionSheet.js +43 -22
  143. package/dist/es/components/area/Area.js +41 -7
  144. package/dist/es/components/area/utils.js +37 -33
  145. package/dist/es/components/avatar/Avatar.js +3 -3
  146. package/dist/es/components/badge/Badge.js +27 -34
  147. package/dist/es/components/badge/tokens.js +1 -1
  148. package/dist/es/components/button/Button.js +12 -21
  149. package/dist/es/components/button/ButtonGroup.js +4 -4
  150. package/dist/es/components/button/tokens.js +1 -1
  151. package/dist/es/components/calendar/Calendar.js +38 -31
  152. package/dist/es/components/cascader/Cascader.js +136 -60
  153. package/dist/es/components/cascader/useCascaderExtend.js +17 -16
  154. package/dist/es/components/cell/Cell.js +4 -5
  155. package/dist/es/components/cell/CellGroup.js +3 -2
  156. package/dist/es/components/checkbox/Checkbox.js +22 -25
  157. package/dist/es/components/checkbox/CheckboxGroup.js +9 -8
  158. package/dist/es/components/circle/Circle.js +53 -74
  159. package/dist/es/components/collapse/Collapse.js +61 -55
  160. package/dist/es/components/collapse/tokens.js +1 -1
  161. package/dist/es/components/config-provider/ConfigProvider.js +7 -5
  162. package/dist/es/components/config-provider/useLocale.js +2 -2
  163. package/dist/es/components/count-down/CountDown.js +4 -5
  164. package/dist/es/components/datetime-picker/DatetimePicker.js +61 -55
  165. package/dist/es/components/dialog/Dialog.js +94 -78
  166. package/dist/es/components/dialog/imperative.js +14 -16
  167. package/dist/es/components/dialog/index.js +5 -1
  168. package/dist/es/components/divider/Divider.js +3 -4
  169. package/dist/es/components/dropdown-menu/DropdownItem.js +11 -11
  170. package/dist/es/components/dropdown-menu/DropdownMenu.js +78 -57
  171. package/dist/es/components/dropdown-menu/DropdownMenuContext.js +2 -2
  172. package/dist/es/components/empty/Empty.js +3 -3
  173. package/dist/es/components/field/Field.js +54 -146
  174. package/dist/es/components/field/tokens.js +81 -12
  175. package/dist/es/components/field/utils.js +17 -0
  176. package/dist/es/components/flex/FlexItem.js +3 -3
  177. package/dist/es/components/form/Form.js +77 -35
  178. package/dist/es/components/form/FormItem.js +14 -10
  179. package/dist/es/components/form/FormList.js +5 -5
  180. package/dist/es/components/form/index.js +2 -2
  181. package/dist/es/components/form/utils.js +34 -11
  182. package/dist/es/components/grid/Grid.js +4 -4
  183. package/dist/es/components/grid/GridItem.js +5 -6
  184. package/dist/es/components/grid/tokens.js +1 -1
  185. package/dist/es/components/image/Image.js +88 -55
  186. package/dist/es/components/image-preview/ImagePreview.js +94 -71
  187. package/dist/es/components/image-preview/imperative.js +6 -6
  188. package/dist/es/components/index-bar/IndexBar.js +212 -104
  189. package/dist/es/components/index.js +74 -2
  190. package/dist/es/components/input/Input.js +24 -25
  191. package/dist/es/components/list/List.js +28 -22
  192. package/dist/es/components/loading/Loading.js +5 -5
  193. package/dist/es/components/nav-bar/NavBar.js +6 -5
  194. package/dist/es/components/nav-bar/tokens.js +71 -68
  195. package/dist/es/components/notice-bar/NoticeBar.js +45 -49
  196. package/dist/es/components/notify/Notify.js +19 -15
  197. package/dist/es/components/notify/defaults.js +9 -0
  198. package/dist/es/components/notify/imperative.js +5 -5
  199. package/dist/es/components/number-keyboard/NumberKeyboard.js +191 -139
  200. package/dist/es/components/number-keyboard/tokens.js +7 -7
  201. package/dist/es/components/overlay/Overlay.js +18 -20
  202. package/dist/es/components/overlay/OverlayStackStore.js +2 -2
  203. package/dist/es/components/overlay/tokens.js +25 -2
  204. package/dist/es/components/overlay/useOverlayStack.js +9 -8
  205. package/dist/es/components/pagination/Pagination.js +9 -9
  206. package/dist/es/components/password-input/PasswordInput.js +56 -51
  207. package/dist/es/components/picker/Picker.js +209 -81
  208. package/dist/es/components/picker/WheelPicker.js +304 -126
  209. package/dist/es/components/picker/utils.js +13 -9
  210. package/dist/es/components/popup/Popup.js +184 -214
  211. package/dist/es/components/portal/Portal.js +6 -15
  212. package/dist/es/components/portal/PortalHost.js +103 -73
  213. package/dist/es/components/progress/Progress.js +112 -112
  214. package/dist/es/components/pull-refresh/PullRefresh.js +86 -51
  215. package/dist/es/components/radio/Radio.js +46 -49
  216. package/dist/es/components/radio/RadioGroup.js +8 -9
  217. package/dist/es/components/radio/tokens.js +1 -1
  218. package/dist/es/components/rate/Rate.js +67 -57
  219. package/dist/es/components/rate/tokens.js +1 -3
  220. package/dist/es/components/safe-area-view/SafeAreaView.js +43 -0
  221. package/dist/es/components/safe-area-view/index.js +1 -0
  222. package/dist/es/components/search/Search.js +22 -25
  223. package/dist/es/components/selector/Selector.js +128 -87
  224. package/dist/es/components/selector/tokens.js +1 -1
  225. package/dist/es/components/share-sheet/ShareSheet.js +72 -65
  226. package/dist/es/components/sidebar/Sidebar.js +34 -22
  227. package/dist/es/components/sidebar/SidebarContext.js +2 -1
  228. package/dist/es/components/sidebar/SidebarItem.js +7 -7
  229. package/dist/es/components/sidebar/tokens.js +3 -2
  230. package/dist/es/components/skeleton/Skeleton.js +70 -51
  231. package/dist/es/components/slider/Slider.js +197 -162
  232. package/dist/es/components/slider/utils.js +49 -0
  233. package/dist/es/components/space/Space.js +21 -21
  234. package/dist/es/components/stepper/Stepper.js +105 -81
  235. package/dist/es/components/swiper/Swiper.js +229 -332
  236. package/dist/es/components/swiper/SwiperItem.js +2 -2
  237. package/dist/es/components/swiper/SwiperPagIndicator.js +9 -7
  238. package/dist/es/components/swiper/useSwiperWeb.js +193 -0
  239. package/dist/es/components/swiper/utils.js +37 -0
  240. package/dist/es/components/switch/Switch.js +42 -37
  241. package/dist/es/components/switch/tokens.js +7 -5
  242. package/dist/es/components/tabbar/Tabbar.js +25 -30
  243. package/dist/es/components/tabbar/TabbarContext.js +2 -1
  244. package/dist/es/components/tabbar/TabbarItem.js +11 -10
  245. package/dist/es/components/tabs/Tabs.js +170 -227
  246. package/dist/es/components/tabs/tokens.js +4 -3
  247. package/dist/es/components/tabs/useTabsAnimation.js +55 -0
  248. package/dist/es/components/tabs/useTabsScroll.js +110 -0
  249. package/dist/es/components/tabs/utils.js +19 -0
  250. package/dist/es/components/tag/Tag.js +3 -3
  251. package/dist/es/components/tag/tokens.js +1 -1
  252. package/dist/es/components/toast/Toast.js +22 -11
  253. package/dist/es/components/toast/imperative.js +6 -6
  254. package/dist/es/components/types.js +1 -0
  255. package/dist/es/components/typography/Typography.js +54 -35
  256. package/dist/es/components/typography/tokens.js +3 -3
  257. package/dist/es/components/uploader/Uploader.js +35 -87
  258. package/dist/es/components/uploader/utils.js +60 -0
  259. package/dist/es/components/water-mark/WaterMark.js +13 -13
  260. package/dist/es/design-system/ThemeProvider.js +2 -2
  261. package/dist/es/design-system/createComponentTokensHook.js +2 -2
  262. package/dist/es/design-system/tokens.js +1 -0
  263. package/dist/es/design-system/useTheme.js +2 -2
  264. package/dist/es/hooks/aria/useAriaListBox.js +22 -6
  265. package/dist/es/hooks/aria/useAriaOverlay.js +5 -6
  266. package/dist/es/hooks/aria/useAriaPress.js +35 -21
  267. package/dist/es/hooks/aria/useAriaToggle.js +4 -3
  268. package/dist/es/hooks/gesture/useGestureScroll.js +20 -20
  269. package/dist/es/hooks/index.js +1 -0
  270. package/dist/es/hooks/useControllableValue.js +10 -8
  271. package/dist/es/hooks/useCountDown.js +17 -17
  272. package/dist/es/hooks/useHairline.js +2 -2
  273. package/dist/es/hooks/usePresenceAnimation.js +5 -5
  274. package/dist/es/hooks/useSafeAreaPadding.js +23 -0
  275. package/dist/es/index.js +2 -4
  276. package/dist/es/platform/index.js +1 -0
  277. package/dist/es/platform/measure.js +10 -8
  278. package/dist/es/platform/runtime.js +4 -0
  279. package/dist/es/utils/deepMerge.js +5 -2
  280. package/dist/es/utils/hairline.js +6 -3
  281. package/dist/es/utils/index.js +12 -0
  282. package/dist/types/components/action-sheet/ActionSheet.d.ts +4 -0
  283. package/dist/types/components/action-sheet/index.d.ts +4 -0
  284. package/dist/types/components/action-sheet/tokens.d.ts +4 -0
  285. package/dist/types/components/area/Area.d.ts +4 -0
  286. package/dist/types/components/area/index.d.ts +3 -0
  287. package/dist/types/components/area/utils.d.ts +2 -0
  288. package/dist/types/components/avatar/Avatar.d.ts +5 -0
  289. package/dist/types/components/avatar/index.d.ts +3 -0
  290. package/dist/types/components/avatar/tokens.d.ts +4 -0
  291. package/dist/types/components/badge/Badge.d.ts +4 -0
  292. package/dist/types/components/badge/index.d.ts +3 -0
  293. package/dist/types/components/badge/tokens.d.ts +2 -0
  294. package/dist/types/components/button/Button.d.ts +5 -0
  295. package/dist/types/components/button/ButtonContext.d.ts +16 -0
  296. package/dist/types/components/button/ButtonGroup.d.ts +10 -0
  297. package/dist/types/components/button/index.d.ts +6 -0
  298. package/dist/types/components/button/tokens.d.ts +2 -0
  299. package/dist/types/components/calendar/Calendar.d.ts +4 -0
  300. package/dist/types/components/calendar/index.d.ts +3 -0
  301. package/dist/types/components/calendar/tokens.d.ts +4 -0
  302. package/dist/types/components/cascader/Cascader.d.ts +4 -0
  303. package/dist/types/components/cascader/index.d.ts +4 -0
  304. package/dist/types/components/cascader/tokens.d.ts +4 -0
  305. package/dist/types/components/cascader/useCascaderExtend.d.ts +12 -0
  306. package/dist/types/components/cascader/utils.d.ts +6 -0
  307. package/dist/types/components/cell/Cell.d.ts +4 -0
  308. package/dist/types/components/cell/CellContext.d.ts +7 -0
  309. package/dist/types/components/cell/CellGroup.d.ts +3 -0
  310. package/dist/types/components/cell/index.d.ts +8 -0
  311. package/dist/types/components/cell/tokens.d.ts +4 -0
  312. package/dist/types/components/checkbox/Checkbox.d.ts +5 -0
  313. package/dist/types/components/checkbox/CheckboxContext.d.ts +16 -0
  314. package/dist/types/components/checkbox/CheckboxGroup.d.ts +8 -0
  315. package/dist/types/components/checkbox/index.d.ts +7 -0
  316. package/dist/types/components/checkbox/tokens.d.ts +2 -0
  317. package/dist/types/components/circle/Circle.d.ts +5 -0
  318. package/dist/types/components/circle/index.d.ts +3 -0
  319. package/dist/types/components/circle/tokens.d.ts +4 -0
  320. package/dist/types/components/collapse/Collapse.d.ts +45 -0
  321. package/dist/types/components/collapse/index.d.ts +3 -0
  322. package/dist/types/components/collapse/tokens.d.ts +4 -0
  323. package/dist/types/components/config-provider/ConfigProvider.d.ts +3 -0
  324. package/dist/types/components/config-provider/LocaleContext.d.ts +75 -0
  325. package/dist/types/components/config-provider/index.d.ts +5 -0
  326. package/dist/types/components/config-provider/locale/base.d.ts +74 -0
  327. package/dist/types/components/config-provider/locale/en-US.d.ts +74 -0
  328. package/dist/types/components/config-provider/locale/zh-CN.d.ts +74 -0
  329. package/dist/types/components/config-provider/useLocale.d.ts +74 -0
  330. package/dist/types/components/count-down/CountDown.d.ts +4 -0
  331. package/dist/types/components/count-down/index.d.ts +4 -0
  332. package/dist/types/components/count-down/tokens.d.ts +4 -0
  333. package/dist/types/components/datetime-picker/DatetimePicker.d.ts +4 -0
  334. package/dist/types/components/datetime-picker/index.d.ts +3 -0
  335. package/dist/types/components/dialog/Dialog.d.ts +4 -0
  336. package/dist/types/components/dialog/imperative.d.ts +23 -0
  337. package/dist/types/components/dialog/index.d.ts +5 -0
  338. package/dist/types/components/dialog/tokens.d.ts +46 -0
  339. package/dist/types/components/divider/Divider.d.ts +3 -0
  340. package/dist/types/components/divider/index.d.ts +3 -0
  341. package/dist/types/components/divider/tokens.d.ts +4 -0
  342. package/dist/types/components/dropdown-menu/DropdownItem.d.ts +4 -0
  343. package/dist/types/components/dropdown-menu/DropdownMenu.d.ts +4 -0
  344. package/dist/types/components/dropdown-menu/DropdownMenuContext.d.ts +17 -0
  345. package/dist/types/components/dropdown-menu/index.d.ts +8 -0
  346. package/dist/types/components/dropdown-menu/tokens.d.ts +35 -0
  347. package/dist/types/components/empty/Empty.d.ts +3 -0
  348. package/dist/types/components/empty/index.d.ts +3 -0
  349. package/dist/types/components/empty/tokens.d.ts +4 -0
  350. package/dist/types/components/field/Field.d.ts +4 -0
  351. package/dist/types/components/field/index.d.ts +7 -0
  352. package/dist/types/components/field/tokens.d.ts +131 -0
  353. package/dist/types/components/field/utils.d.ts +4 -0
  354. package/dist/types/components/flex/Flex.d.ts +3 -0
  355. package/dist/types/components/flex/FlexContext.d.ts +8 -0
  356. package/dist/types/components/flex/FlexItem.d.ts +3 -0
  357. package/dist/types/components/flex/index.d.ts +8 -0
  358. package/dist/types/components/flex/tokens.d.ts +2 -0
  359. package/dist/types/components/form/Form.d.ts +6 -0
  360. package/dist/types/components/form/FormContext.d.ts +17 -0
  361. package/dist/types/components/form/FormItem.d.ts +4 -0
  362. package/dist/types/components/form/FormList.d.ts +18 -0
  363. package/dist/types/components/form/index.d.ts +17 -0
  364. package/dist/types/components/form/utils.d.ts +6 -0
  365. package/dist/types/components/grid/Grid.d.ts +3 -0
  366. package/dist/types/components/grid/GridContext.d.ts +17 -0
  367. package/dist/types/components/grid/GridItem.d.ts +3 -0
  368. package/dist/types/components/grid/index.d.ts +5 -0
  369. package/dist/types/components/grid/tokens.d.ts +4 -0
  370. package/dist/types/components/image/Image.d.ts +5 -0
  371. package/dist/types/components/image/index.d.ts +4 -0
  372. package/dist/types/components/image/tokens.d.ts +2 -0
  373. package/dist/types/components/image-preview/ImagePreview.d.ts +4 -0
  374. package/dist/types/components/image-preview/imperative.d.ts +5 -0
  375. package/dist/types/components/image-preview/index.d.ts +6 -0
  376. package/dist/types/components/image-preview/tokens.d.ts +10 -0
  377. package/dist/types/components/index-bar/IndexAnchor.d.ts +4 -0
  378. package/dist/types/components/index-bar/IndexBar.d.ts +4 -0
  379. package/dist/types/components/index-bar/index.d.ts +9 -0
  380. package/dist/types/components/index-bar/tokens.d.ts +22 -0
  381. package/dist/types/components/index.d.ts +138 -0
  382. package/dist/types/components/input/Input.d.ts +8 -0
  383. package/dist/types/components/input/index.d.ts +4 -0
  384. package/dist/types/components/input/tokens.d.ts +2 -0
  385. package/dist/types/components/list/List.d.ts +4 -0
  386. package/dist/types/components/list/index.d.ts +3 -0
  387. package/dist/types/components/list/tokens.d.ts +4 -0
  388. package/dist/types/components/loading/Loading.d.ts +3 -0
  389. package/dist/types/components/loading/index.d.ts +3 -0
  390. package/dist/types/components/loading/tokens.d.ts +4 -0
  391. package/dist/types/components/nav-bar/NavBar.d.ts +4 -0
  392. package/dist/types/components/nav-bar/index.d.ts +4 -0
  393. package/dist/types/components/nav-bar/tokens.d.ts +4 -0
  394. package/dist/types/components/notice-bar/NoticeBar.d.ts +3 -0
  395. package/dist/types/components/notice-bar/index.d.ts +3 -0
  396. package/dist/types/components/notice-bar/tokens.d.ts +23 -0
  397. package/dist/types/components/notify/Notify.d.ts +5 -0
  398. package/dist/types/components/notify/defaults.d.ts +10 -0
  399. package/dist/types/components/notify/imperative.d.ts +22 -0
  400. package/dist/types/components/notify/index.d.ts +15 -0
  401. package/dist/types/components/notify/tokens.d.ts +4 -0
  402. package/dist/types/components/number-keyboard/NumberKeyboard.d.ts +4 -0
  403. package/dist/types/components/number-keyboard/index.d.ts +4 -0
  404. package/dist/types/components/number-keyboard/tokens.d.ts +36 -0
  405. package/dist/types/components/overlay/Overlay.d.ts +4 -0
  406. package/dist/types/components/overlay/OverlayStackStore.d.ts +39 -0
  407. package/dist/types/components/overlay/index.d.ts +6 -0
  408. package/dist/types/components/overlay/tokens.d.ts +4 -0
  409. package/dist/types/components/overlay/useOverlayStack.d.ts +10 -0
  410. package/dist/types/components/pagination/Pagination.d.ts +5 -0
  411. package/dist/types/components/pagination/index.d.ts +5 -0
  412. package/dist/types/components/pagination/tokens.d.ts +2 -0
  413. package/dist/types/components/password-input/PasswordInput.d.ts +39 -0
  414. package/dist/types/components/password-input/index.d.ts +2 -0
  415. package/dist/types/components/picker/Picker.d.ts +16 -0
  416. package/dist/types/components/picker/WheelPicker.d.ts +21 -0
  417. package/dist/types/components/picker/index.d.ts +4 -0
  418. package/dist/types/components/picker/tokens.d.ts +37 -0
  419. package/dist/types/components/picker/utils.d.ts +17 -0
  420. package/dist/types/components/popup/Popup.d.ts +44 -0
  421. package/dist/types/components/popup/index.d.ts +4 -0
  422. package/dist/types/components/popup/tokens.d.ts +46 -0
  423. package/dist/types/components/portal/Portal.d.ts +13 -0
  424. package/dist/types/components/portal/PortalContext.d.ts +7 -0
  425. package/dist/types/components/portal/PortalHost.d.ts +25 -0
  426. package/dist/types/components/portal/index.d.ts +3 -0
  427. package/dist/types/components/progress/Progress.d.ts +4 -0
  428. package/dist/types/components/progress/index.d.ts +3 -0
  429. package/dist/types/components/progress/tokens.d.ts +4 -0
  430. package/dist/types/components/pull-refresh/PullRefresh.d.ts +5 -0
  431. package/dist/types/components/pull-refresh/index.d.ts +4 -0
  432. package/dist/types/components/pull-refresh/tokens.d.ts +10 -0
  433. package/dist/types/components/radio/Radio.d.ts +3 -0
  434. package/dist/types/components/radio/RadioContext.d.ts +13 -0
  435. package/dist/types/components/radio/RadioGroup.d.ts +3 -0
  436. package/dist/types/components/radio/index.d.ts +7 -0
  437. package/dist/types/components/radio/tokens.d.ts +2 -0
  438. package/dist/types/components/rate/Rate.d.ts +4 -0
  439. package/dist/types/components/rate/index.d.ts +4 -0
  440. package/dist/types/components/rate/tokens.d.ts +4 -0
  441. package/dist/types/components/safe-area-view/SafeAreaView.d.ts +10 -0
  442. package/dist/types/components/safe-area-view/index.d.ts +2 -0
  443. package/dist/types/components/search/Search.d.ts +4 -0
  444. package/dist/types/components/search/index.d.ts +4 -0
  445. package/dist/types/components/search/tokens.d.ts +40 -0
  446. package/dist/types/components/selector/Selector.d.ts +7 -0
  447. package/dist/types/components/selector/index.d.ts +4 -0
  448. package/dist/types/components/selector/tokens.d.ts +2 -0
  449. package/dist/types/components/share-sheet/ShareSheet.d.ts +4 -0
  450. package/dist/types/components/share-sheet/index.d.ts +4 -0
  451. package/dist/types/components/share-sheet/tokens.d.ts +26 -0
  452. package/dist/types/components/sidebar/Sidebar.d.ts +4 -0
  453. package/dist/types/components/sidebar/SidebarContext.d.ts +7 -0
  454. package/dist/types/components/sidebar/SidebarItem.d.ts +4 -0
  455. package/dist/types/components/sidebar/index.d.ts +8 -0
  456. package/dist/types/components/sidebar/tokens.d.ts +4 -0
  457. package/dist/types/components/skeleton/Skeleton.d.ts +5 -0
  458. package/dist/types/components/skeleton/index.d.ts +5 -0
  459. package/dist/types/components/skeleton/tokens.d.ts +2 -0
  460. package/dist/types/components/slider/Slider.d.ts +4 -0
  461. package/dist/types/components/slider/index.d.ts +3 -0
  462. package/dist/types/components/slider/tokens.d.ts +28 -0
  463. package/dist/types/components/slider/utils.d.ts +42 -0
  464. package/dist/types/components/space/Space.d.ts +3 -0
  465. package/dist/types/components/space/index.d.ts +3 -0
  466. package/dist/types/components/space/tokens.d.ts +3 -0
  467. package/dist/types/components/stepper/Stepper.d.ts +4 -0
  468. package/dist/types/components/stepper/index.d.ts +4 -0
  469. package/dist/types/components/stepper/tokens.d.ts +43 -0
  470. package/dist/types/components/swiper/Swiper.d.ts +7 -0
  471. package/dist/types/components/swiper/SwiperItem.d.ts +5 -0
  472. package/dist/types/components/swiper/SwiperPagIndicator.d.ts +36 -0
  473. package/dist/types/components/swiper/index.d.ts +14 -0
  474. package/dist/types/components/swiper/useSwiperWeb.d.ts +41 -0
  475. package/dist/types/components/swiper/utils.d.ts +17 -0
  476. package/dist/types/components/switch/Switch.d.ts +7 -0
  477. package/dist/types/components/switch/index.d.ts +4 -0
  478. package/dist/types/components/switch/tokens.d.ts +2 -0
  479. package/dist/types/components/tabbar/Tabbar.d.ts +4 -0
  480. package/dist/types/components/tabbar/TabbarContext.d.ts +13 -0
  481. package/dist/types/components/tabbar/TabbarItem.d.ts +4 -0
  482. package/dist/types/components/tabbar/index.d.ts +9 -0
  483. package/dist/types/components/tabbar/tokens.d.ts +28 -0
  484. package/dist/types/components/tabs/TabPane.d.ts +4 -0
  485. package/dist/types/components/tabs/Tabs.d.ts +4 -0
  486. package/dist/types/components/tabs/index.d.ts +8 -0
  487. package/dist/types/components/tabs/tokens.d.ts +87 -0
  488. package/dist/types/components/tabs/useTabsAnimation.d.ts +30 -0
  489. package/dist/types/components/tabs/useTabsScroll.d.ts +23 -0
  490. package/dist/types/components/tabs/utils.d.ts +5 -0
  491. package/dist/types/components/tag/Tag.d.ts +3 -0
  492. package/dist/types/components/tag/index.d.ts +3 -0
  493. package/dist/types/components/tag/tokens.d.ts +4 -0
  494. package/dist/types/components/toast/Toast.d.ts +36 -0
  495. package/dist/types/components/toast/imperative.d.ts +22 -0
  496. package/dist/types/components/toast/index.d.ts +15 -0
  497. package/dist/types/components/toast/tokens.d.ts +24 -0
  498. package/dist/types/components/types.d.ts +59 -0
  499. package/dist/types/components/typography/Typography.d.ts +11 -0
  500. package/dist/types/components/typography/index.d.ts +3 -0
  501. package/dist/types/components/typography/tokens.d.ts +2 -0
  502. package/dist/types/components/uploader/Uploader.d.ts +4 -0
  503. package/dist/types/components/uploader/index.d.ts +5 -0
  504. package/dist/types/components/uploader/tokens.d.ts +17 -0
  505. package/dist/types/components/uploader/utils.d.ts +11 -0
  506. package/dist/types/components/water-mark/WaterMark.d.ts +4 -0
  507. package/dist/types/components/water-mark/index.d.ts +5 -0
  508. package/dist/types/components/water-mark/tokens.d.ts +2 -0
  509. package/dist/types/design-system/ThemeContext.d.ts +14 -0
  510. package/dist/types/design-system/ThemeProvider.d.ts +14 -0
  511. package/dist/types/design-system/createComponentTokensHook.d.ts +4 -0
  512. package/dist/types/design-system/index.d.ts +10 -0
  513. package/dist/types/design-system/mergeTokensOverride.d.ts +2 -0
  514. package/dist/types/design-system/presets.d.ts +8 -0
  515. package/dist/types/design-system/tokens.d.ts +74 -0
  516. package/dist/types/design-system/useTheme.d.ts +1 -0
  517. package/dist/types/hooks/aria/index.d.ts +4 -0
  518. package/dist/types/hooks/aria/useAriaListBox.d.ts +20 -0
  519. package/dist/types/hooks/aria/useAriaOverlay.d.ts +24 -0
  520. package/dist/types/hooks/aria/useAriaPress.d.ts +39 -0
  521. package/dist/types/hooks/aria/useAriaToggle.d.ts +15 -0
  522. package/dist/types/hooks/gesture/index.d.ts +1 -0
  523. package/dist/types/hooks/gesture/useGestureScroll.d.ts +32 -0
  524. package/dist/types/hooks/index.d.ts +8 -0
  525. package/dist/types/hooks/useControllableValue.d.ts +9 -0
  526. package/dist/types/hooks/useCountDown.d.ts +23 -0
  527. package/dist/types/hooks/useHairline.d.ts +31 -0
  528. package/dist/types/hooks/usePresenceAnimation.d.ts +15 -0
  529. package/dist/types/hooks/useSafeAreaPadding.d.ts +13 -0
  530. package/dist/types/index.d.ts +4 -0
  531. package/dist/types/platform/animation.d.ts +1 -0
  532. package/dist/types/platform/history.d.ts +1 -0
  533. package/dist/types/platform/index.d.ts +5 -0
  534. package/dist/types/platform/measure.d.ts +7 -0
  535. package/dist/types/platform/runtime.d.ts +3 -0
  536. package/dist/types/platform/scrollLock.d.ts +2 -0
  537. package/dist/types/types.d.ts +4 -0
  538. package/dist/types/utils/array.d.ts +1 -0
  539. package/dist/types/utils/color.d.ts +5 -0
  540. package/dist/types/utils/createPlatformShadow.d.ts +11 -0
  541. package/dist/types/utils/date.d.ts +13 -0
  542. package/dist/types/utils/deepMerge.d.ts +3 -0
  543. package/dist/types/utils/hairline.d.ts +20 -0
  544. package/dist/types/utils/index.d.ts +10 -0
  545. package/dist/types/utils/number.d.ts +11 -0
  546. package/dist/types/utils/promise.d.ts +1 -0
  547. package/dist/types/utils/string.d.ts +3 -0
  548. package/dist/types/utils/validate.d.ts +14 -0
  549. package/package.json +411 -14
  550. package/dist/cjs/components/action-sheet/types.d.ts +0 -96
  551. package/dist/cjs/components/area/types.d.ts +0 -27
  552. package/dist/cjs/components/avatar/types.d.ts +0 -64
  553. package/dist/cjs/components/badge/types.d.ts +0 -61
  554. package/dist/cjs/components/button/types.d.ts +0 -145
  555. package/dist/cjs/components/calendar/types.d.ts +0 -115
  556. package/dist/cjs/components/cascader/types.d.ts +0 -159
  557. package/dist/cjs/components/cell/types.d.ts +0 -117
  558. package/dist/cjs/components/checkbox/types.d.ts +0 -108
  559. package/dist/cjs/components/circle/types.d.ts +0 -94
  560. package/dist/cjs/components/collapse/types.d.ts +0 -47
  561. package/dist/cjs/components/config-provider/locale/types.d.ts +0 -3
  562. package/dist/cjs/components/config-provider/types.d.ts +0 -10
  563. package/dist/cjs/components/count-down/types.d.ts +0 -33
  564. package/dist/cjs/components/datetime-picker/types.d.ts +0 -46
  565. package/dist/cjs/components/dialog/types.d.ts +0 -83
  566. package/dist/cjs/components/divider/types.d.ts +0 -50
  567. package/dist/cjs/components/dropdown-menu/types.d.ts +0 -89
  568. package/dist/cjs/components/empty/types.d.ts +0 -48
  569. package/dist/cjs/components/field/types.d.ts +0 -112
  570. package/dist/cjs/components/flex/types.d.ts +0 -42
  571. package/dist/cjs/components/form/types.d.ts +0 -80
  572. package/dist/cjs/components/grid/types.d.ts +0 -82
  573. package/dist/cjs/components/image/types.d.ts +0 -56
  574. package/dist/cjs/components/image-preview/types.d.ts +0 -67
  575. package/dist/cjs/components/index-bar/types.d.ts +0 -43
  576. package/dist/cjs/components/input/types.d.ts +0 -49
  577. package/dist/cjs/components/list/types.d.ts +0 -48
  578. package/dist/cjs/components/loading/types.d.ts +0 -53
  579. package/dist/cjs/components/nav-bar/types.d.ts +0 -69
  580. package/dist/cjs/components/notice-bar/types.d.ts +0 -29
  581. package/dist/cjs/components/notify/types.d.ts +0 -63
  582. package/dist/cjs/components/number-keyboard/types.d.ts +0 -40
  583. package/dist/cjs/components/pagination/types.d.ts +0 -75
  584. package/dist/cjs/components/password-input/types.d.ts +0 -65
  585. package/dist/cjs/components/picker/core.js +0 -41
  586. package/dist/cjs/components/picker/styles.js +0 -75
  587. package/dist/cjs/components/picker/types.d.ts +0 -70
  588. package/dist/cjs/components/picker/usePickerValue.js +0 -74
  589. package/dist/cjs/components/progress/types.d.ts +0 -53
  590. package/dist/cjs/components/pull-refresh/types.d.ts +0 -29
  591. package/dist/cjs/components/radio/types.d.ts +0 -96
  592. package/dist/cjs/components/rate/types.d.ts +0 -54
  593. package/dist/cjs/components/search/types.d.ts +0 -84
  594. package/dist/cjs/components/selector/types.d.ts +0 -80
  595. package/dist/cjs/components/share-sheet/types.d.ts +0 -30
  596. package/dist/cjs/components/sidebar/types.d.ts +0 -66
  597. package/dist/cjs/components/skeleton/types.d.ts +0 -46
  598. package/dist/cjs/components/slider/types.d.ts +0 -39
  599. package/dist/cjs/components/space/types.d.ts +0 -47
  600. package/dist/cjs/components/stepper/types.d.ts +0 -58
  601. package/dist/cjs/components/swipe-cell/SwipeCell.js +0 -399
  602. package/dist/cjs/components/swipe-cell/index.js +0 -9
  603. package/dist/cjs/components/swiper/types.d.ts +0 -83
  604. package/dist/cjs/components/switch/types.d.ts +0 -71
  605. package/dist/cjs/components/tabbar/types.d.ts +0 -51
  606. package/dist/cjs/components/tabs/types.d.ts +0 -71
  607. package/dist/cjs/components/tag/types.d.ts +0 -67
  608. package/dist/cjs/components/theme.d.ts +0 -113
  609. package/dist/cjs/components/typography/types.d.ts +0 -77
  610. package/dist/cjs/components/uploader/types.d.ts +0 -90
  611. package/dist/cjs/components/water-mark/types.d.ts +0 -60
  612. package/dist/cjs/index.d.ts +0 -16
  613. package/dist/client-CDqbgn-w.mjs +0 -31965
  614. package/dist/es/components/action-sheet/types.d.ts +0 -96
  615. package/dist/es/components/area/types.d.ts +0 -27
  616. package/dist/es/components/avatar/types.d.ts +0 -64
  617. package/dist/es/components/badge/types.d.ts +0 -61
  618. package/dist/es/components/button/types.d.ts +0 -145
  619. package/dist/es/components/calendar/types.d.ts +0 -115
  620. package/dist/es/components/cascader/types.d.ts +0 -159
  621. package/dist/es/components/cell/types.d.ts +0 -117
  622. package/dist/es/components/checkbox/types.d.ts +0 -108
  623. package/dist/es/components/circle/types.d.ts +0 -94
  624. package/dist/es/components/collapse/types.d.ts +0 -47
  625. package/dist/es/components/config-provider/locale/types.d.ts +0 -3
  626. package/dist/es/components/config-provider/types.d.ts +0 -10
  627. package/dist/es/components/count-down/types.d.ts +0 -33
  628. package/dist/es/components/datetime-picker/types.d.ts +0 -46
  629. package/dist/es/components/dialog/types.d.ts +0 -83
  630. package/dist/es/components/divider/types.d.ts +0 -50
  631. package/dist/es/components/dropdown-menu/types.d.ts +0 -89
  632. package/dist/es/components/empty/types.d.ts +0 -48
  633. package/dist/es/components/field/types.d.ts +0 -112
  634. package/dist/es/components/flex/types.d.ts +0 -42
  635. package/dist/es/components/form/types.d.ts +0 -80
  636. package/dist/es/components/grid/types.d.ts +0 -82
  637. package/dist/es/components/image/types.d.ts +0 -56
  638. package/dist/es/components/image-preview/types.d.ts +0 -67
  639. package/dist/es/components/index-bar/types.d.ts +0 -43
  640. package/dist/es/components/input/types.d.ts +0 -49
  641. package/dist/es/components/list/types.d.ts +0 -48
  642. package/dist/es/components/loading/types.d.ts +0 -53
  643. package/dist/es/components/nav-bar/types.d.ts +0 -69
  644. package/dist/es/components/notice-bar/types.d.ts +0 -29
  645. package/dist/es/components/notify/types.d.ts +0 -63
  646. package/dist/es/components/number-keyboard/types.d.ts +0 -40
  647. package/dist/es/components/pagination/types.d.ts +0 -75
  648. package/dist/es/components/password-input/types.d.ts +0 -65
  649. package/dist/es/components/picker/core.js +0 -31
  650. package/dist/es/components/picker/styles.js +0 -63
  651. package/dist/es/components/picker/types.d.ts +0 -70
  652. package/dist/es/components/picker/usePickerValue.js +0 -60
  653. package/dist/es/components/progress/types.d.ts +0 -53
  654. package/dist/es/components/pull-refresh/types.d.ts +0 -29
  655. package/dist/es/components/radio/types.d.ts +0 -96
  656. package/dist/es/components/rate/types.d.ts +0 -54
  657. package/dist/es/components/search/types.d.ts +0 -84
  658. package/dist/es/components/selector/types.d.ts +0 -80
  659. package/dist/es/components/share-sheet/types.d.ts +0 -30
  660. package/dist/es/components/sidebar/types.d.ts +0 -66
  661. package/dist/es/components/skeleton/types.d.ts +0 -46
  662. package/dist/es/components/slider/types.d.ts +0 -39
  663. package/dist/es/components/space/types.d.ts +0 -47
  664. package/dist/es/components/stepper/types.d.ts +0 -58
  665. package/dist/es/components/swipe-cell/SwipeCell.js +0 -380
  666. package/dist/es/components/swipe-cell/index.js +0 -2
  667. package/dist/es/components/swiper/types.d.ts +0 -83
  668. package/dist/es/components/switch/types.d.ts +0 -71
  669. package/dist/es/components/tabbar/types.d.ts +0 -51
  670. package/dist/es/components/tabs/types.d.ts +0 -71
  671. package/dist/es/components/tag/types.d.ts +0 -67
  672. package/dist/es/components/theme.d.ts +0 -113
  673. package/dist/es/components/typography/types.d.ts +0 -77
  674. package/dist/es/components/uploader/types.d.ts +0 -90
  675. package/dist/es/components/water-mark/types.d.ts +0 -60
  676. package/dist/es/index.d.ts +0 -16
  677. package/dist/react-native-system-ui.es.mjs +0 -1194
  678. package/dist/react-native-system-ui.js +0 -33977
  679. package/dist/react-native-system-ui.min.js +0 -1
@@ -22,25 +22,12 @@ var _number = require("../../utils/number");
22
22
  var _validate = require("../../utils/validate");
23
23
  var _SwiperItem = _interopRequireDefault(require("./SwiperItem"));
24
24
  var _SwiperPagIndicator = _interopRequireDefault(require("./SwiperPagIndicator"));
25
+ var _utils = require("./utils");
26
+ var _useSwiperWeb = require("./useSwiperWeb");
25
27
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
28
  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); }
27
29
  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); }
28
- const FALLBACK_WIDTH = 375;
29
- const FALLBACK_HEIGHT = 667;
30
- const runAfterFrames = (frames, fn) => {
31
- const raf = typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame : cb => setTimeout(cb, 16);
32
- let left = Math.max(1, frames);
33
- const step = () => {
34
- left -= 1;
35
- if (left <= 0) {
36
- fn();
37
- return;
38
- }
39
- raf(step);
40
- };
41
- raf(step);
42
- };
43
- const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
30
+ const SwiperImpl = (props, ref) => {
44
31
  const {
45
32
  initialSwipe = 0,
46
33
  touchable = true,
@@ -64,16 +51,16 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
64
51
  renderItem,
65
52
  testID
66
53
  } = props;
67
- const initialSwipeValue = (0, _validate.isFiniteNumber)(initialSwipe) ? initialSwipe : 0;
68
- const durationMs = (0, _validate.isFiniteNumber)(duration) ? Math.max(0, duration) : 0;
69
- const slideSizePct = (0, _validate.isFiniteNumber)(slideSize) ? (0, _number.clamp)(slideSize, 1, 100) : 100;
70
- const trackOffsetPct = (0, _validate.isFiniteNumber)(trackOffset) ? (0, _number.clamp)(trackOffset, 0, 100) : 0;
54
+ const initialSwipeValue = (0, _utils.getInitialSwipeValue)(initialSwipe);
55
+ const durationMs = (0, _utils.getDurationMs)(duration);
56
+ const slideSizePct = (0, _utils.getSlideSizePct)(slideSize);
57
+ const trackOffsetPct = (0, _utils.getTrackOffsetPct)(trackOffset);
71
58
  const {
72
59
  width: windowWidth,
73
60
  height: windowHeight
74
61
  } = (0, _reactNative().useWindowDimensions)();
75
- const viewportWidth = windowWidth || FALLBACK_WIDTH;
76
- const viewportHeight = windowHeight || FALLBACK_HEIGHT;
62
+ const viewportWidth = windowWidth || _utils.FALLBACK_WIDTH;
63
+ const viewportHeight = windowHeight || _utils.FALLBACK_HEIGHT;
77
64
  const [containerLayout, setContainerLayout] = (0, _react().useState)({
78
65
  width: 0,
79
66
  height: 0
@@ -85,14 +72,32 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
85
72
  const nativeMomentumRef = (0, _react().useRef)(false);
86
73
  const prevIndexRef = (0, _react().useRef)(initialSwipeValue);
87
74
  const currentDisplayIndexRef = (0, _react().useRef)(initialSwipeValue);
75
+ const desiredIndexRef = (0, _react().useRef)(initialSwipeValue);
88
76
  const isWeb = _reactNative().Platform.OS === 'web';
89
77
  const nativeQueuedScrollRef = (0, _react().useRef)(null);
78
+ const nativeScrollSeqRef = (0, _react().useRef)(0);
79
+ const nativeScrollEndTimerRef = (0, _react().useRef)(null);
80
+ const scrollToIndexSafe = (0, _react().useCallback)((index, animated) => {
81
+ try {
82
+ flatListRef.current?.scrollToIndex({
83
+ index,
84
+ animated
85
+ });
86
+ } catch {}
87
+ }, []);
88
+ const clearNativeScrollEndTimer = (0, _react().useCallback)(() => {
89
+ if (nativeScrollEndTimerRef.current) {
90
+ clearTimeout(nativeScrollEndTimerRef.current);
91
+ nativeScrollEndTimerRef.current = null;
92
+ }
93
+ }, []);
90
94
  const validChildren = (0, _react().useMemo)(() => {
91
95
  if (children) {
92
- return _react().default.Children.toArray(children).filter(child => {
93
- if (! /*#__PURE__*/_react().default.isValidElement(child)) return false;
96
+ return _react().Children.toArray(children).filter(child => {
97
+ if (! /*#__PURE__*/(0, _react().isValidElement)(child)) return false;
98
+ if (child.type === _SwiperItem.default) return true;
94
99
  const type = child.type;
95
- return type === _SwiperItem.default || type?.displayName === 'SwiperItem';
100
+ return type.displayName === 'SwiperItem';
96
101
  });
97
102
  }
98
103
  return [];
@@ -117,12 +122,7 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
117
122
  if (!shouldLoop || count <= 1) {
118
123
  return itemsData;
119
124
  }
120
- return [...itemsData.slice(-1),
121
- // 末尾的复制
122
- ...itemsData,
123
- // 原始数据
124
- ...itemsData.slice(0, 1) // 开头的复制
125
- ];
125
+ return [...itemsData.slice(-1), ...itemsData, ...itemsData.slice(0, 1)];
126
126
  }, [shouldLoop, itemsData, count]);
127
127
  const displayData = shouldLoop ? loopData : itemsData;
128
128
  const displayCount = displayData.length;
@@ -132,19 +132,16 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
132
132
  if (index === displayCount - 1) return 0;
133
133
  return index - 1;
134
134
  }, [shouldLoop, count, displayCount]);
135
- const handleContainerLayout = e => {
135
+ const handleContainerLayout = (0, _react().useCallback)(e => {
136
136
  const {
137
137
  width,
138
138
  height
139
139
  } = e.nativeEvent.layout;
140
- setContainerLayout(prev => {
141
- if (prev.width === width && prev.height === height) return prev;
142
- return {
143
- width,
144
- height
145
- };
140
+ setContainerLayout(prev => prev.width === width && prev.height === height ? prev : {
141
+ width,
142
+ height
146
143
  });
147
- };
144
+ }, []);
148
145
  const containerWidth = containerLayout.width || viewportWidth;
149
146
  const containerHeight = containerLayout.height || viewportHeight;
150
147
  const crossAxisMeasured = vertical ? containerLayout.width : containerLayout.height;
@@ -175,14 +172,12 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
175
172
  const nonLoopSnapOffsets = (0, _react().useMemo)(() => {
176
173
  if (!stuckAtBoundaryEnabled || count <= 1) return null;
177
174
  const offsets = new Array(count);
178
- for (let i = 0; i < count; i += 1) {
179
- if (i === 0) offsets[i] = nonLoopMinOffset;else if (i === count - 1) offsets[i] = nonLoopMaxOffset;else offsets[i] = slideSizeValue * i;
180
- }
175
+ for (let i = 0; i < count; i += 1) offsets[i] = i === 0 ? nonLoopMinOffset : i === count - 1 ? nonLoopMaxOffset : slideSizeValue * i;
181
176
  return offsets;
182
177
  }, [count, nonLoopMaxOffset, nonLoopMinOffset, slideSizeValue, stuckAtBoundaryEnabled]);
183
178
  const getInitialIndex = (0, _react().useCallback)(() => {
184
179
  const initial = (0, _number.clamp)(initialSwipeValue, 0, count - 1);
185
- return shouldLoop ? initial + 1 : initial; // +1 因为循环模式下第一个是复制的末尾
180
+ return shouldLoop ? initial + 1 : initial;
186
181
  }, [initialSwipeValue, count, shouldLoop]);
187
182
  const [current, setCurrent] = (0, _react().useState)(() => getInitialIndex());
188
183
  const [indicatorIndex, setIndicatorIndex] = (0, _react().useState)(() => getDisplayIndex(getInitialIndex()));
@@ -193,12 +188,20 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
193
188
  const autoHeightEnabled = autoHeight && !vertical;
194
189
  const [autoHeightValue, setAutoHeightValue] = (0, _react().useState)(undefined);
195
190
  const measuredHeightsRef = (0, _react().useRef)({});
196
- const webOffsetRef = (0, _react().useRef)(0);
197
- const startOffsetRef = (0, _react().useRef)(0);
198
- const panLockRef = (0, _react().useRef)(false);
199
- const webTranslateXAnim = (0, _react().useRef)(new (_reactNative().Animated.Value)(0)).current;
200
- const webTranslateYAnim = (0, _react().useRef)(new (_reactNative().Animated.Value)(0)).current;
201
- const panLatestRef = (0, _react().useRef)({
191
+ const swipeToRef = (0, _react().useRef)(() => {});
192
+ const onDragStartRef = (0, _react().useRef)(() => {});
193
+ const onDragEndRef = (0, _react().useRef)(() => {});
194
+ const {
195
+ webOffsetRef,
196
+ webTranslateXAnim,
197
+ webTranslateYAnim,
198
+ webTrackTransform,
199
+ panResponder,
200
+ stopWebSnapAnim,
201
+ cancelWebRaf,
202
+ webSnapAnimRef
203
+ } = (0, _useSwiperWeb.useSwiperWeb)({
204
+ isWeb,
202
205
  enabledState,
203
206
  touchable,
204
207
  vertical,
@@ -208,97 +211,53 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
208
211
  slideSizeValue,
209
212
  nonLoopMinOffset,
210
213
  nonLoopMaxOffset,
211
- maxOffsetLoop: Math.max(0, displayCount - 1) * slideSizeValue,
212
- duration: durationMs,
213
- preventScroll
214
+ durationMs,
215
+ preventScroll,
216
+ trackOffsetPx,
217
+ swipeToRef,
218
+ onDragStart: () => onDragStartRef.current(),
219
+ onDragEnd: () => onDragEndRef.current()
214
220
  });
215
- panLatestRef.current = {
216
- enabledState,
217
- touchable,
218
- vertical,
219
- count,
220
- shouldLoop,
221
- displayCount,
222
- slideSizeValue,
223
- nonLoopMinOffset,
224
- nonLoopMaxOffset,
225
- maxOffsetLoop: Math.max(0, displayCount - 1) * slideSizeValue,
226
- duration: durationMs,
227
- preventScroll
228
- };
229
- const webRafIdRef = (0, _react().useRef)(null);
230
- const webPendingOffsetRef = (0, _react().useRef)(null);
231
- const flushWebTranslate = () => {
232
- const pending = webPendingOffsetRef.current;
233
- if (pending == null) return;
234
- webPendingOffsetRef.current = null;
235
- const latest = panLatestRef.current;
236
- (latest.vertical ? webTranslateYAnim : webTranslateXAnim).setValue(pending);
237
- };
238
- const scheduleWebTranslate = next => {
239
- webPendingOffsetRef.current = next;
240
- if (webRafIdRef.current != null) return;
241
- webRafIdRef.current = requestAnimationFrame(() => {
242
- webRafIdRef.current = null;
243
- flushWebTranslate();
244
- });
245
- };
246
- const cancelWebRaf = () => {
247
- if (webRafIdRef.current != null) {
248
- cancelAnimationFrame(webRafIdRef.current);
249
- webRafIdRef.current = null;
250
- }
251
- webPendingOffsetRef.current = null;
252
- };
253
- const webSnapAnimRef = (0, _react().useRef)(null);
254
- const stopWebSnapAnim = () => {
255
- const anim = webSnapAnimRef.current;
256
- if (anim) {
257
- anim.stop();
258
- webSnapAnimRef.current = null;
259
- }
260
- const latest = panLatestRef.current;
261
- const activeAnim = latest.vertical ? webTranslateYAnim : webTranslateXAnim;
262
- let nextOffset = webOffsetRef.current;
263
- activeAnim.stopAnimation(value => {
264
- if (typeof value === 'number') {
265
- nextOffset = value;
266
- }
267
- });
268
- (latest.vertical ? webTranslateXAnim : webTranslateYAnim).stopAnimation();
269
- webOffsetRef.current = nextOffset;
270
- };
271
221
  (0, _react().useEffect)(() => {
272
222
  return () => {
273
223
  cancelWebRaf();
274
224
  stopWebSnapAnim();
225
+ clearNativeScrollEndTimer();
275
226
  };
276
- }, []);
277
- const webTrackTransform = (0, _react().useMemo)(() => {
278
- if (vertical) {
279
- return trackOffsetPx ? [{
280
- translateY: trackOffsetPx
281
- }, {
282
- translateY: webTranslateYAnim
283
- }] : [{
284
- translateY: webTranslateYAnim
285
- }];
227
+ }, [cancelWebRaf, stopWebSnapAnim, clearNativeScrollEndTimer]);
228
+ const finishNativeScroll = (0, _react().useCallback)(() => {
229
+ clearNativeScrollEndTimer();
230
+ isScrollingRef.current = false;
231
+ nativeMomentumRef.current = false;
232
+ const queued = nativeQueuedScrollRef.current;
233
+ if (queued && flatListRef.current) {
234
+ nativeQueuedScrollRef.current = null;
235
+ const nextRealIndex = getDisplayIndex(queued.index);
236
+ (0, _utils.runAfterFrames)(1, () => {
237
+ swipeToRef.current(nextRealIndex, queued.animated);
238
+ });
286
239
  }
287
- return trackOffsetPx ? [{
288
- translateX: trackOffsetPx
289
- }, {
290
- translateX: webTranslateXAnim
291
- }] : [{
292
- translateX: webTranslateXAnim
293
- }];
294
- }, [trackOffsetPx, vertical, webTranslateXAnim, webTranslateYAnim]);
240
+ }, [clearNativeScrollEndTimer, getDisplayIndex]);
241
+ const scheduleNativeScrollFallback = (0, _react().useCallback)(() => {
242
+ clearNativeScrollEndTimer();
243
+ const seq = nativeScrollSeqRef.current + 1;
244
+ nativeScrollSeqRef.current = seq;
245
+ const timeout = Math.max(700, durationMs + 500);
246
+ nativeScrollEndTimerRef.current = setTimeout(() => {
247
+ if (nativeScrollSeqRef.current !== seq) return;
248
+ if (isDraggingRef.current) return;
249
+ if (!isScrollingRef.current) return;
250
+ finishNativeScroll();
251
+ }, timeout);
252
+ }, [clearNativeScrollEndTimer, durationMs, finishNativeScroll]);
295
253
  (0, _react().useEffect)(() => {
296
254
  setEnabledState(enabled);
297
255
  }, [enabled]);
298
256
  const currentRef = (0, _react().useRef)(current);
299
257
  (0, _react().useEffect)(() => {
300
258
  currentRef.current = current;
301
- }, [current]);
259
+ desiredIndexRef.current = getDisplayIndex(current);
260
+ }, [current, getDisplayIndex]);
302
261
  const handleItemLayout = (0, _react().useCallback)((displayIndex, e) => {
303
262
  if (!autoHeightEnabled) return;
304
263
  const height = e.nativeEvent.layout.height;
@@ -338,42 +297,42 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
338
297
  const lastAligned = nativeLastAlignedMainAxisRef.current;
339
298
  if (lastAligned > 0 && Math.abs(mainAxisMeasured - lastAligned) < 0.5) return;
340
299
  nativeLastAlignedMainAxisRef.current = mainAxisMeasured;
341
- runAfterFrames(2, () => {
342
- try {
343
- flatListRef.current?.scrollToIndex({
344
- index: currentRef.current,
345
- animated: false
346
- });
347
- } catch {}
300
+ (0, _utils.runAfterFrames)(2, () => {
301
+ scrollToIndexSafe(currentRef.current, false);
348
302
  });
349
303
  }, [isWeb, count, vertical, containerLayout.height, containerLayout.width]);
350
304
  const swipeTo = (0, _react().useCallback)((index, animated = true) => {
351
305
  if (count === 0) return;
352
- const clampedIndex = (0, _number.clamp)(index, 0, count - 1);
306
+ const targetRealIndex = (0, _number.clamp)(index, 0, count - 1);
307
+ const fromRealIndex = desiredIndexRef.current;
308
+ desiredIndexRef.current = targetRealIndex;
353
309
  const currentIndex = currentRef.current;
354
- const displayIndex = getDisplayIndex(currentIndex);
355
310
  let targetIndex;
356
311
  let needsJump = false;
357
312
  let jumpOffset = null;
358
313
  let jumpDisplayIndex = null;
359
314
  if (shouldLoop) {
360
- if (displayIndex === count - 1 && clampedIndex === 0) {
315
+ if (fromRealIndex === count - 1 && targetRealIndex === 0) {
361
316
  targetIndex = displayCount - 1;
362
317
  needsJump = true;
363
318
  jumpOffset = -1 * slideSizeValue;
364
319
  jumpDisplayIndex = 1;
365
- } else if (displayIndex === 0 && clampedIndex === count - 1) {
320
+ } else if (fromRealIndex === 0 && targetRealIndex === count - 1) {
366
321
  targetIndex = 0;
367
322
  needsJump = true;
368
323
  jumpOffset = -count * slideSizeValue;
369
324
  jumpDisplayIndex = count;
370
325
  } else {
371
- targetIndex = clampedIndex + 1; // 循环模式下需要偏移
326
+ targetIndex = targetRealIndex + 1;
372
327
  }
373
328
  } else {
374
- targetIndex = clampedIndex;
329
+ targetIndex = targetRealIndex;
375
330
  }
376
331
  if (isWeb) {
332
+ if (!needsJump && targetIndex === currentIndex) {
333
+ if (autoplay && enabledState) startAutoplay();
334
+ return;
335
+ }
377
336
  stopWebSnapAnim();
378
337
  const offset = shouldLoop ? -targetIndex * slideSizeValue : -1 * (nonLoopSnapOffsets?.[targetIndex] ?? slideSizeValue * targetIndex);
379
338
  webOffsetRef.current = offset;
@@ -391,6 +350,7 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
391
350
  finished
392
351
  }) => {
393
352
  webSnapAnimRef.current = null;
353
+ if (autoplay && enabledState) startAutoplay();
394
354
  if (!finished || jumpOffset === null || jumpDisplayIndex === null) return;
395
355
  webOffsetRef.current = jumpOffset;
396
356
  if (vertical) {
@@ -409,6 +369,7 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
409
369
  }
410
370
  webOffsetRef.current = jumpOffset;
411
371
  setCurrentSafe(jumpDisplayIndex);
372
+ if (autoplay && enabledState) startAutoplay();
412
373
  }
413
374
  } else {
414
375
  const animValue = vertical ? webTranslateYAnim : webTranslateXAnim;
@@ -422,82 +383,103 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
422
383
  webSnapAnimRef.current = anim;
423
384
  anim.start(() => {
424
385
  webSnapAnimRef.current = null;
386
+ if (autoplay && enabledState) startAutoplay();
425
387
  });
426
388
  } else {
427
389
  animValue.setValue(offset);
390
+ if (autoplay && enabledState) startAutoplay();
428
391
  }
429
392
  setCurrentSafe(targetIndex);
430
393
  }
431
394
  } else if (flatListRef.current) {
432
- if (isScrollingRef.current && animated) {
395
+ if (!needsJump && targetIndex === currentIndex) {
396
+ finishNativeScroll();
397
+ if (autoplay && enabledState) startAutoplay();
398
+ return;
399
+ }
400
+ if (isDraggingRef.current && animated) {
433
401
  nativeQueuedScrollRef.current = {
434
402
  index: targetIndex,
435
403
  animated
436
404
  };
437
405
  return;
438
406
  }
439
- isScrollingRef.current = true;
440
- try {
441
- flatListRef.current.scrollToIndex({
442
- index: targetIndex,
443
- animated
444
- });
445
- } catch {
446
- isScrollingRef.current = false;
407
+ if (isScrollingRef.current && animated) {
447
408
  nativeQueuedScrollRef.current = {
448
409
  index: targetIndex,
449
410
  animated
450
411
  };
412
+ scheduleNativeScrollFallback();
413
+ scrollToIndexSafe(targetIndex, true);
451
414
  return;
452
415
  }
416
+ isScrollingRef.current = true;
417
+ if (animated) {
418
+ scheduleNativeScrollFallback();
419
+ } else {
420
+ clearNativeScrollEndTimer();
421
+ }
422
+ scrollToIndexSafe(targetIndex, animated);
423
+ if (!animated) {
424
+ setCurrentSafe(targetIndex);
425
+ if (autoplay && enabledState) startAutoplay();
426
+ }
453
427
  if (needsJump && jumpDisplayIndex != null && !animated) {
454
- runAfterFrames(2, () => {
428
+ (0, _utils.runAfterFrames)(2, () => {
455
429
  flatListRef.current?.scrollToIndex({
456
430
  index: jumpDisplayIndex,
457
431
  animated: false
458
432
  });
459
433
  setCurrentSafe(jumpDisplayIndex);
460
434
  });
461
- } else if (!animated) {
462
- setCurrentSafe(targetIndex);
463
435
  }
464
436
  if (!animated) {
465
- runAfterFrames(1, () => {
466
- isScrollingRef.current = false;
467
- const queued = nativeQueuedScrollRef.current;
468
- if (queued && flatListRef.current) {
469
- nativeQueuedScrollRef.current = null;
470
- swipeTo(getDisplayIndex(queued.index), queued.animated);
471
- }
437
+ (0, _utils.runAfterFrames)(1, () => {
438
+ finishNativeScroll();
472
439
  });
473
440
  }
474
441
  }
475
- }, [count, shouldLoop, isWeb, slideSizeValue, vertical, webTranslateXAnim, webTranslateYAnim, nonLoopSnapOffsets, getDisplayIndex, displayCount, stopWebSnapAnim, setCurrentSafe, durationMs]);
476
- const swipeToRef = (0, _react().useRef)(swipeTo);
442
+ }, [count, shouldLoop, isWeb, slideSizeValue, vertical, webTranslateXAnim, webTranslateYAnim, nonLoopSnapOffsets, displayCount, stopWebSnapAnim, setCurrentSafe, durationMs, clearNativeScrollEndTimer, finishNativeScroll, scheduleNativeScrollFallback]);
477
443
  (0, _react().useEffect)(() => {
478
444
  swipeToRef.current = swipeTo;
479
445
  }, [swipeTo]);
480
446
  const swipeNext = (0, _react().useCallback)(() => {
481
447
  if (count === 0) return;
482
- const displayIndex = getDisplayIndex(currentRef.current);
483
- const nextIndex = displayIndex === count - 1 ? 0 : displayIndex + 1;
484
- swipeTo(nextIndex);
485
- }, [count, getDisplayIndex, swipeTo]);
448
+ const baseIndex = desiredIndexRef.current;
449
+ swipeTo(baseIndex === count - 1 ? 0 : baseIndex + 1);
450
+ }, [count, swipeTo]);
486
451
  const swipePrev = (0, _react().useCallback)(() => {
487
452
  if (count === 0) return;
488
- const displayIndex = getDisplayIndex(currentRef.current);
489
- const prevIndex = displayIndex === 0 ? count - 1 : displayIndex - 1;
490
- swipeTo(prevIndex);
491
- }, [count, getDisplayIndex, swipeTo]);
453
+ const baseIndex = desiredIndexRef.current;
454
+ swipeTo(baseIndex === 0 ? count - 1 : baseIndex - 1);
455
+ }, [count, swipeTo]);
456
+ const stopAutoplay = (0, _react().useCallback)(() => {
457
+ if (autoplayTimerRef.current) {
458
+ clearTimeout(autoplayTimerRef.current);
459
+ autoplayTimerRef.current = null;
460
+ }
461
+ }, []);
462
+ const startAutoplay = (0, _react().useCallback)(delay => {
463
+ if (!autoplay || count <= 1 || !enabledState) return;
464
+ if (isDraggingRef.current || isScrollingRef.current) return;
465
+ stopAutoplay();
466
+ const interval = (0, _validate.isFiniteNumber)(autoplay) && Math.max(0, autoplay) || 5000;
467
+ autoplayTimerRef.current = setTimeout(() => {
468
+ if (isDraggingRef.current || isScrollingRef.current) return;
469
+ swipeNext();
470
+ startAutoplay();
471
+ }, delay ?? interval);
472
+ }, [autoplay, count, enabledState, swipeNext, stopAutoplay]);
492
473
  const handleNativeScrollEndByOffset = (0, _react().useCallback)(offset => {
493
474
  if (count === 0) return;
475
+ clearNativeScrollEndTimer();
494
476
  isScrollingRef.current = false;
495
477
  nativeMomentumRef.current = false;
496
478
  if (!slideSizeValue) return;
497
479
  let index = Math.round(offset / slideSizeValue);
498
480
  if (shouldLoop) {
499
481
  if (index === 0) {
500
- runAfterFrames(2, () => {
482
+ (0, _utils.runAfterFrames)(2, () => {
501
483
  flatListRef.current?.scrollToIndex({
502
484
  index: count,
503
485
  animated: false
@@ -505,7 +487,7 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
505
487
  });
506
488
  index = count;
507
489
  } else if (index === displayCount - 1) {
508
- runAfterFrames(2, () => {
490
+ (0, _utils.runAfterFrames)(2, () => {
509
491
  flatListRef.current?.scrollToIndex({
510
492
  index: 1,
511
493
  animated: false
@@ -517,36 +499,38 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
517
499
  index = (0, _number.clamp)(index, 0, count - 1);
518
500
  }
519
501
  setCurrentSafe(index);
502
+ desiredIndexRef.current = getDisplayIndex(index);
520
503
  const queued = nativeQueuedScrollRef.current;
521
504
  if (queued && flatListRef.current) {
522
505
  nativeQueuedScrollRef.current = null;
523
506
  const nextDisplayIndex = getDisplayIndex(queued.index);
524
- runAfterFrames(1, () => {
507
+ (0, _utils.runAfterFrames)(1, () => {
525
508
  swipeTo(nextDisplayIndex, queued.animated);
526
509
  });
510
+ } else if (autoplay && enabledState) {
511
+ startAutoplay();
527
512
  }
528
- }, [count, displayCount, getDisplayIndex, setCurrentSafe, shouldLoop, slideSizeValue, swipeTo]);
513
+ }, [clearNativeScrollEndTimer, count, displayCount, getDisplayIndex, setCurrentSafe, shouldLoop, slideSizeValue, swipeTo, autoplay, enabledState, startAutoplay]);
529
514
  const handleScrollEnd = (0, _react().useCallback)(event => {
530
515
  if (count === 0) return;
531
516
  const {
532
517
  contentOffset
533
518
  } = event.nativeEvent;
534
- const offset = vertical ? contentOffset.y : contentOffset.x;
535
- handleNativeScrollEndByOffset(offset);
519
+ handleNativeScrollEndByOffset(vertical ? contentOffset.y : contentOffset.x);
536
520
  }, [count, handleNativeScrollEndByOffset, vertical]);
537
521
  const handleScrollBeginDrag = () => {
538
522
  isDraggingRef.current = true;
539
523
  isScrollingRef.current = true;
524
+ stopAutoplay();
540
525
  };
541
526
  const handleScrollEndDrag = event => {
542
527
  isDraggingRef.current = false;
543
528
  const {
544
529
  contentOffset
545
530
  } = event.nativeEvent;
546
- const offset = vertical ? contentOffset.y : contentOffset.x;
547
- runAfterFrames(1, () => {
531
+ (0, _utils.runAfterFrames)(1, () => {
548
532
  if (nativeMomentumRef.current) return;
549
- handleNativeScrollEndByOffset(offset);
533
+ handleNativeScrollEndByOffset(vertical ? contentOffset.y : contentOffset.x);
550
534
  });
551
535
  };
552
536
  const handleMomentumScrollBegin = () => {
@@ -555,6 +539,7 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
555
539
  };
556
540
  const indicatorRafIdRef = (0, _react().useRef)(null);
557
541
  const indicatorPendingRef = (0, _react().useRef)(null);
542
+ const canUseRaf = typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function';
558
543
  const flushIndicator = () => {
559
544
  const next = indicatorPendingRef.current;
560
545
  if (next == null) return;
@@ -564,10 +549,17 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
564
549
  const scheduleIndicator = next => {
565
550
  indicatorPendingRef.current = next;
566
551
  if (indicatorRafIdRef.current != null) return;
567
- indicatorRafIdRef.current = requestAnimationFrame(() => {
552
+ if (canUseRaf) {
553
+ indicatorRafIdRef.current = requestAnimationFrame(() => {
554
+ indicatorRafIdRef.current = null;
555
+ flushIndicator();
556
+ });
557
+ return;
558
+ }
559
+ indicatorRafIdRef.current = setTimeout(() => {
568
560
  indicatorRafIdRef.current = null;
569
561
  flushIndicator();
570
- });
562
+ }, 16);
571
563
  };
572
564
  (0, _react().useEffect)(() => {
573
565
  setIndicatorIndex(prev => {
@@ -578,46 +570,38 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
578
570
  (0, _react().useEffect)(() => {
579
571
  return () => {
580
572
  if (indicatorRafIdRef.current != null) {
581
- cancelAnimationFrame(indicatorRafIdRef.current);
573
+ if (canUseRaf) {
574
+ cancelAnimationFrame(indicatorRafIdRef.current);
575
+ } else {
576
+ clearTimeout(indicatorRafIdRef.current);
577
+ }
582
578
  indicatorRafIdRef.current = null;
583
579
  }
584
580
  indicatorPendingRef.current = null;
585
581
  };
586
582
  }, []);
587
583
  const handleScroll = (0, _react().useCallback)(event => {
588
- if (isWeb) return;
589
- if (count <= 1) return;
590
- if (!slideSizeValue) return;
584
+ if (isWeb || count <= 1 || !slideSizeValue) return;
591
585
  const {
592
586
  contentOffset
593
587
  } = event.nativeEvent;
594
588
  const offset = vertical ? contentOffset.y : contentOffset.x;
595
- let displayIndex = Math.round(offset / slideSizeValue);
596
- displayIndex = shouldLoop ? (0, _number.clamp)(displayIndex, 0, displayCount - 1) : (0, _number.clamp)(displayIndex, 0, count - 1);
589
+ const displayIndex = shouldLoop ? (0, _number.clamp)(Math.round(offset / slideSizeValue), 0, displayCount - 1) : (0, _number.clamp)(Math.round(offset / slideSizeValue), 0, count - 1);
597
590
  scheduleIndicator(getDisplayIndex(displayIndex));
598
591
  }, [count, displayCount, getDisplayIndex, isWeb, scheduleIndicator, shouldLoop, slideSizeValue, vertical]);
599
592
  (0, _react().useEffect)(() => {
600
- const stop = () => {
601
- if (autoplayTimerRef.current) {
602
- clearTimeout(autoplayTimerRef.current);
603
- autoplayTimerRef.current = null;
604
- }
593
+ onDragStartRef.current = () => {
594
+ isDraggingRef.current = true;
595
+ stopAutoplay();
605
596
  };
606
- if (!autoplay || count <= 1 || !enabledState) {
607
- stop();
608
- return;
609
- }
610
- const interval = (0, _validate.isFiniteNumber)(autoplay) ? Math.max(0, autoplay) : 5000;
611
- const tick = () => {
612
- if (!isDraggingRef.current && !isScrollingRef.current) {
613
- swipeNext();
614
- }
615
- autoplayTimerRef.current = setTimeout(tick, interval);
597
+ onDragEndRef.current = () => {
598
+ isDraggingRef.current = false;
616
599
  };
617
- stop();
618
- autoplayTimerRef.current = setTimeout(tick, interval);
619
- return stop;
620
- }, [autoplay, count, enabledState, swipeNext]);
600
+ }, [stopAutoplay]);
601
+ (0, _react().useEffect)(() => {
602
+ startAutoplay();
603
+ return stopAutoplay;
604
+ }, [startAutoplay, stopAutoplay]);
621
605
  (0, _react().useImperativeHandle)(ref, () => ({
622
606
  activeIndex: getDisplayIndex(current),
623
607
  swipeTo: (index, animated = true) => {
@@ -642,22 +626,18 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
642
626
  }), [current, count, getDisplayIndex, swipeTo, swipeNext, swipePrev]);
643
627
  const renderIndicator = () => {
644
628
  if (indicator === false || count <= 1) return null;
645
- const currentIndex = indicatorIndex;
646
- if (typeof indicator === 'function') {
647
- return indicator(count, currentIndex);
648
- }
629
+ if (typeof indicator === 'function') return indicator(count, indicatorIndex);
649
630
  return /*#__PURE__*/_react().default.createElement(_SwiperPagIndicator.default, _extends({}, indicatorProps, {
650
631
  total: count,
651
- current: currentIndex,
632
+ current: indicatorIndex,
652
633
  vertical: vertical
653
634
  }));
654
635
  };
655
636
  (0, _react().useEffect)(() => {
656
637
  if (!onChange || count <= 0) return;
657
638
  const nextDisplay = getDisplayIndex(current);
658
- const prevDisplay = currentDisplayIndexRef.current;
659
- if (nextDisplay === prevDisplay) return;
660
- prevIndexRef.current = prevDisplay;
639
+ if (nextDisplay === currentDisplayIndexRef.current) return;
640
+ prevIndexRef.current = currentDisplayIndexRef.current;
661
641
  currentDisplayIndexRef.current = nextDisplay;
662
642
  onChange(nextDisplay);
663
643
  }, [current, onChange, count, getDisplayIndex]);
@@ -665,36 +645,38 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
665
645
  item,
666
646
  index
667
647
  }) => {
668
- if (item.type === 'child') {
669
- const child = validChildren[item.index];
670
- if (!child) return null;
671
- if (!autoHeightEnabled) {
672
- return /*#__PURE__*/_react().default.cloneElement(child, {
673
- style: [child.props.style, itemSizeStyle]
674
- });
675
- }
676
- const nextChild = /*#__PURE__*/_react().default.cloneElement(child, {
677
- style: [child.props.style, styles.autoHeightChild]
648
+ const marker = item;
649
+ if (marker.type !== 'child') return null;
650
+ const childIndex = typeof marker.index === 'number' ? marker.index : -1;
651
+ const child = validChildren[childIndex];
652
+ if (!child) return null;
653
+ if (!autoHeightEnabled) {
654
+ const element = child;
655
+ return /*#__PURE__*/(0, _react().cloneElement)(element, {
656
+ style: [element.props.style, itemSizeStyle]
678
657
  });
679
- return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
680
- style: itemSizeStyle,
681
- onLayout: e => handleItemLayout(index, e),
682
- collapsable: false
683
- }, nextChild);
684
658
  }
685
- return null;
659
+ const element = child;
660
+ return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
661
+ style: itemSizeStyle,
662
+ onLayout: e => handleItemLayout(index, e),
663
+ collapsable: false
664
+ }, /*#__PURE__*/(0, _react().cloneElement)(element, {
665
+ style: [element.props.style, styles.autoHeightChild]
666
+ }));
686
667
  }, [validChildren, itemSizeStyle, autoHeightEnabled, handleItemLayout]);
687
668
  const renderDataItem = (0, _react().useCallback)(info => {
688
669
  if (!renderItem) return null;
689
670
  const item = renderItem(info);
690
671
  if (!item) return null;
672
+ const itemIndex = info.index;
691
673
  return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
692
674
  style: itemSizeStyle,
693
- onLayout: autoHeightEnabled ? e => handleItemLayout(info.index, e) : undefined,
675
+ onLayout: autoHeightEnabled ? e => handleItemLayout(itemIndex, e) : undefined,
694
676
  collapsable: false
695
677
  }, item);
696
678
  }, [renderItem, itemSizeStyle, autoHeightEnabled, handleItemLayout]);
697
- const getItemKey = (0, _react().useCallback)((item, index) => {
679
+ const getItemKey = (0, _react().useCallback)((_item, index) => {
698
680
  if (shouldLoop && count > 1) {
699
681
  if (index === 0) return `loop-last-${count - 1}`;
700
682
  if (index === displayCount - 1) return `loop-first-0`;
@@ -711,101 +693,22 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
711
693
  };
712
694
  }, [nonLoopSnapOffsets, shouldLoop, slideSizeValue]);
713
695
  const snapToOffsets = (0, _react().useMemo)(() => {
714
- if (slideSizePct === 100 && trackOffsetPct === 0) {
715
- return undefined; // 使用 snapToInterval
716
- }
717
- if (!shouldLoop && nonLoopSnapOffsets) {
718
- return nonLoopSnapOffsets;
719
- }
696
+ if (slideSizePct === 100 && trackOffsetPct === 0) return undefined;
697
+ if (!shouldLoop && nonLoopSnapOffsets) return nonLoopSnapOffsets;
720
698
  return displayData.map((_, index) => slideSizeValue * index);
721
699
  }, [displayData, nonLoopSnapOffsets, shouldLoop, slideSizePct, slideSizeValue, trackOffsetPct]);
722
- const panResponder = (0, _react().useMemo)(() => {
723
- if (!isWeb) return null;
724
- return _reactNative().PanResponder.create({
725
- onStartShouldSetPanResponder: () => {
726
- const latest = panLatestRef.current;
727
- return !!latest.enabledState && !!latest.touchable && latest.count > 1;
728
- },
729
- onMoveShouldSetPanResponder: (_, gestureState) => {
730
- const latest = panLatestRef.current;
731
- if (!latest.enabledState || !latest.touchable || latest.count <= 1) return false;
732
- if (latest.vertical) {
733
- return Math.abs(gestureState.dy) > Math.abs(gestureState.dx);
734
- }
735
- return Math.abs(gestureState.dx) > Math.abs(gestureState.dy);
736
- },
737
- onPanResponderGrant: () => {
738
- const latest = panLatestRef.current;
739
- if (!latest.enabledState || !latest.touchable || latest.count <= 1) return;
740
- panLockRef.current = true;
741
- isDraggingRef.current = true;
742
- cancelWebRaf();
743
- stopWebSnapAnim();
744
- startOffsetRef.current = webOffsetRef.current;
745
- },
746
- onPanResponderMove: (event, gestureState) => {
747
- if (!panLockRef.current) return;
748
- const latest = panLatestRef.current;
749
- if (latest.preventScroll) {
750
- ;
751
- event.preventDefault?.();
752
- event.stopPropagation?.();
753
- event.nativeEvent?.preventDefault?.();
754
- event.nativeEvent?.stopPropagation?.();
755
- }
756
- const delta = latest.vertical ? gestureState.dy : gestureState.dx;
757
- const nextRaw = startOffsetRef.current + delta;
758
- const next = latest.shouldLoop ? (0, _number.clamp)(nextRaw, -latest.maxOffsetLoop, 0) : (0, _number.clamp)(nextRaw, -latest.nonLoopMaxOffset, -latest.nonLoopMinOffset);
759
- webOffsetRef.current = next;
760
- scheduleWebTranslate(next);
761
- },
762
- onPanResponderRelease: (_, gestureState) => {
763
- const latest = panLatestRef.current;
764
- panLockRef.current = false;
765
- isDraggingRef.current = false;
766
- cancelWebRaf();
767
- flushWebTranslate();
768
- const distance = latest.vertical ? gestureState.dy : gestureState.dx;
769
- const velocity = latest.vertical ? gestureState.vy : gestureState.vx;
770
- const dir = velocity !== 0 ? velocity > 0 ? 1 : -1 : distance !== 0 ? distance > 0 ? 1 : -1 : 0;
771
- const velocityOffset = Math.min(Math.abs(velocity) * 2000, latest.slideSizeValue) * dir;
772
- let targetOffset = startOffsetRef.current + distance + velocityOffset;
773
- targetOffset = latest.shouldLoop ? (0, _number.clamp)(targetOffset, -latest.maxOffsetLoop, 0) : (0, _number.clamp)(targetOffset, -latest.nonLoopMaxOffset, -latest.nonLoopMinOffset);
774
- const targetIndex = Math.round(-targetOffset / latest.slideSizeValue);
775
- const displayIndex = latest.shouldLoop ? (0, _number.clamp)(targetIndex, 0, latest.displayCount - 1) : (0, _number.clamp)(targetIndex, 0, latest.count - 1);
776
- const realIndex = latest.shouldLoop ? displayIndex === 0 ? latest.count - 1 : displayIndex === latest.displayCount - 1 ? 0 : displayIndex - 1 : displayIndex;
777
- swipeToRef.current(realIndex, true);
778
- },
779
- onPanResponderTerminationRequest: () => false,
780
- onPanResponderTerminate: () => {
781
- panLockRef.current = false;
782
- isDraggingRef.current = false;
783
- cancelWebRaf();
784
- stopWebSnapAnim();
785
- }
786
- });
787
- }, [isWeb, webTranslateXAnim, webTranslateYAnim]);
788
700
  (0, _react().useEffect)(() => {
789
701
  if (!isWeb) return;
790
702
  const initialIndex = getInitialIndex();
791
703
  const initialOffset = shouldLoop ? -initialIndex * slideSizeValue : -1 * (nonLoopSnapOffsets?.[initialIndex] ?? slideSizeValue * initialIndex);
792
704
  webOffsetRef.current = initialOffset;
793
- if (vertical) {
794
- webTranslateYAnim.setValue(initialOffset);
795
- } else {
796
- webTranslateXAnim.setValue(initialOffset);
797
- }
705
+ if (vertical) webTranslateYAnim.setValue(initialOffset);else webTranslateXAnim.setValue(initialOffset);
798
706
  }, [isWeb, getInitialIndex, nonLoopSnapOffsets, shouldLoop, slideSizeValue, vertical, webTranslateXAnim, webTranslateYAnim]);
799
707
  (0, _react().useEffect)(() => {
800
- if (!isWeb) return;
801
- if (count === 0) return;
708
+ if (!isWeb || count === 0) return;
802
709
  const offset = shouldLoop ? -currentRef.current * slideSizeValue : -1 * (nonLoopSnapOffsets?.[currentRef.current] ?? slideSizeValue * currentRef.current);
803
710
  webOffsetRef.current = offset;
804
- if (vertical) {
805
- webTranslateYAnim.setValue(offset);
806
- } else {
807
- webTranslateXAnim.setValue(offset);
808
- }
711
+ if (vertical) webTranslateYAnim.setValue(offset);else webTranslateXAnim.setValue(offset);
809
712
  }, [isWeb, count, nonLoopSnapOffsets, shouldLoop, slideSizeValue, vertical, webTranslateXAnim, webTranslateYAnim]);
810
713
  if (count === 0) {
811
714
  return null;
@@ -828,20 +731,16 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
828
731
  height: vertical ? displayCount * slideSizeValue : '100%',
829
732
  transform: webTrackTransform
830
733
  }]
831
- }), displayData.map((item, index) => {
832
- const key = getItemKey(item, index);
833
- const content = data ? renderDataItem({
834
- item,
835
- index
836
- }) : renderChildItem({
837
- item,
838
- index
839
- });
840
- return /*#__PURE__*/_react().default.createElement(_reactNative().View, {
841
- key: key,
842
- style: [itemSizeStyle, styles.webSlideWrapper]
843
- }, content);
844
- }))), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
734
+ }), displayData.map((item, index) => /*#__PURE__*/_react().default.createElement(_reactNative().View, {
735
+ key: getItemKey(item, index),
736
+ style: [itemSizeStyle, styles.webSlideWrapper]
737
+ }, data && renderDataItem({
738
+ item,
739
+ index
740
+ }) || renderChildItem({
741
+ item,
742
+ index
743
+ }))))), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
845
744
  pointerEvents: "none",
846
745
  style: styles.indicatorOverlay
847
746
  }, renderIndicator()));
@@ -863,7 +762,7 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
863
762
  maxToRenderPerBatch: 3,
864
763
  windowSize: 5,
865
764
  updateCellsBatchingPeriod: 16,
866
- snapToInterval: slideSizePct === 100 && trackOffsetPct === 0 ? slideSizeValue : undefined,
765
+ snapToInterval: slideSizePct === 100 && trackOffsetPct === 0 && slideSizeValue || undefined,
867
766
  snapToOffsets: snapToOffsets,
868
767
  snapToAlignment: "start",
869
768
  decelerationRate: "fast",
@@ -885,13 +784,10 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
885
784
  onScrollToIndexFailed: info => {
886
785
  nativeMomentumRef.current = false;
887
786
  isScrollingRef.current = false;
888
- runAfterFrames(2, () => {
787
+ (0, _utils.runAfterFrames)(2, () => {
889
788
  try {
890
789
  isScrollingRef.current = true;
891
- flatListRef.current?.scrollToIndex({
892
- index: info.index,
893
- animated: false
894
- });
790
+ scrollToIndexSafe(info.index, false);
895
791
  setCurrentSafe(info.index);
896
792
  } finally {
897
793
  isScrollingRef.current = false;
@@ -899,25 +795,26 @@ const Swiper = /*#__PURE__*/_react().default.forwardRef((props, ref) => {
899
795
  if (queued && flatListRef.current) {
900
796
  nativeQueuedScrollRef.current = null;
901
797
  const nextDisplayIndex = getDisplayIndex(queued.index);
902
- runAfterFrames(1, () => {
798
+ (0, _utils.runAfterFrames)(1, () => {
903
799
  swipeTo(nextDisplayIndex, queued.animated);
904
800
  });
905
801
  }
906
802
  }
907
803
  });
908
804
  },
909
- style: isWeb ? {
805
+ style: isWeb && {
910
806
  cursor: 'grab'
911
- } : undefined,
912
- contentContainerStyle: [isWeb ? {
807
+ } || undefined,
808
+ contentContainerStyle: [isWeb && {
913
809
  userSelect: 'none'
914
- } : undefined, !isWeb ? nativeTrackContentPaddingStyle : undefined],
810
+ } || undefined, !isWeb && nativeTrackContentPaddingStyle || undefined],
915
811
  testID: `${testID}-flatlist`
916
812
  }), /*#__PURE__*/_react().default.createElement(_reactNative().View, {
917
813
  pointerEvents: "none",
918
814
  style: styles.indicatorOverlay
919
815
  }, renderIndicator()));
920
- });
816
+ };
817
+ const Swiper = /*#__PURE__*/(0, _react().forwardRef)(SwiperImpl);
921
818
  Swiper.displayName = 'Swiper';
922
819
  const styles = _reactNative().StyleSheet.create({
923
820
  container: {