@bifrostui/react 2.0.0-alpha.0 → 2.0.0-alpha.10

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 (565) hide show
  1. package/dist/Alert/Alert.js +2 -1
  2. package/dist/Alert/__tests__/fixtures/A11yDemos.d.ts +17 -0
  3. package/dist/Alert/__tests__/fixtures/A11yDemos.js +143 -0
  4. package/dist/Alert/index.css +4 -4
  5. package/dist/Avatar/AvatarGroup.css +8 -8
  6. package/dist/Avatar/index.css +8 -8
  7. package/dist/Backdrop/Backdrop.js +3 -2
  8. package/dist/Backdrop/Backdrop.types.d.ts +4 -0
  9. package/dist/Backdrop/__tests__/fixtures/A11yDemos.d.ts +8 -0
  10. package/dist/Backdrop/__tests__/fixtures/A11yDemos.js +51 -0
  11. package/dist/Backdrop/index.css +2 -2
  12. package/dist/Badge/Badge.js +38 -11
  13. package/dist/Badge/Badge.types.d.ts +30 -1
  14. package/dist/Badge/__tests__/fixtures/A11yDemos.d.ts +25 -0
  15. package/dist/Badge/__tests__/fixtures/A11yDemos.js +110 -0
  16. package/dist/Badge/hooks/useBadgeA11y.d.ts +23 -0
  17. package/dist/Badge/hooks/useBadgeA11y.js +76 -0
  18. package/dist/Badge/hooks/useBadgeDisplay.d.ts +16 -0
  19. package/dist/Badge/hooks/useBadgeDisplay.js +56 -0
  20. package/dist/Button/Button.js +2 -1
  21. package/dist/Button/__tests__/fixtures/A11yDemos.d.ts +23 -0
  22. package/dist/Button/__tests__/fixtures/A11yDemos.js +81 -0
  23. package/dist/Button/index.css +4 -5
  24. package/dist/CSSTransition/CSSTransition.d.ts +4 -0
  25. package/dist/CSSTransition/CSSTransition.js +177 -0
  26. package/dist/CSSTransition/CSSTransition.types.d.ts +13 -0
  27. package/dist/CSSTransition/CSSTransition.types.js +15 -0
  28. package/dist/CSSTransition/demo/CSSTransitionDemo.d.ts +4 -0
  29. package/dist/CSSTransition/demo/CSSTransitionDemo.js +76 -0
  30. package/dist/CSSTransition/demo/index.css +25 -0
  31. package/dist/CSSTransition/index.d.ts +2 -0
  32. package/dist/CSSTransition/index.js +41 -0
  33. package/dist/Calendar/Calendar.js +131 -34
  34. package/dist/Calendar/Calendar.types.d.ts +16 -1
  35. package/dist/Calendar/__tests__/fixtures/A11yDemos.d.ts +2 -0
  36. package/dist/Calendar/__tests__/fixtures/A11yDemos.js +41 -0
  37. package/dist/Calendar/index.css +52 -9
  38. package/dist/Calendar/utils.d.ts +7 -3
  39. package/dist/Calendar/utils.js +33 -23
  40. package/dist/Checkbox/Checkbox.js +5 -4
  41. package/dist/Checkbox/__tests__/fixtures/A11yDemos.d.ts +15 -0
  42. package/dist/Checkbox/__tests__/fixtures/A11yDemos.js +57 -0
  43. package/dist/CitySelector/CitySelector.types.d.ts +0 -1
  44. package/dist/Collapse/Collapse.d.ts +1 -1
  45. package/dist/Collapse/Collapse.js +26 -12
  46. package/dist/Collapse/Collapse.miniapp.d.ts +10 -0
  47. package/dist/Collapse/Collapse.miniapp.js +255 -0
  48. package/dist/Collapse/index.css +40 -1
  49. package/dist/CollapsePanel/index.css +1 -1
  50. package/dist/Countdown/Countdown.js +61 -21
  51. package/dist/Countdown/Countdown.types.d.ts +19 -15
  52. package/dist/Countdown/__tests__/fixtures/A11yDemos.d.ts +23 -0
  53. package/dist/Countdown/__tests__/fixtures/A11yDemos.js +107 -0
  54. package/dist/Countdown/index.css +11 -0
  55. package/dist/DatePicker/DatePicker.d.ts +4 -0
  56. package/dist/DatePicker/DatePicker.js +335 -0
  57. package/dist/DatePicker/DatePicker.types.d.ts +36 -0
  58. package/dist/DatePicker/DatePicker.types.js +15 -0
  59. package/dist/DatePicker/constants.d.ts +9 -0
  60. package/dist/DatePicker/constants.js +37 -0
  61. package/dist/DatePicker/index.d.ts +3 -0
  62. package/dist/DatePicker/index.js +44 -0
  63. package/dist/DesktopDatePicker/DesktopDatePicker.css +61 -0
  64. package/dist/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
  65. package/dist/DesktopDatePicker/DesktopDatePicker.js +280 -0
  66. package/dist/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
  67. package/dist/DesktopDatePicker/DesktopDatePicker.types.js +15 -0
  68. package/dist/DesktopDatePicker/deskTopPickerContainer.css +100 -0
  69. package/dist/DesktopDatePicker/index.css +161 -0
  70. package/dist/DesktopDatePicker/index.d.ts +2 -0
  71. package/dist/DesktopDatePicker/index.js +41 -0
  72. package/dist/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
  73. package/dist/DesktopDatePicker/useGetDatePickerContent.js +343 -0
  74. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
  75. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.js +322 -0
  76. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
  77. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.js +15 -0
  78. package/dist/DesktopDateTimePicker/index.css +66 -0
  79. package/dist/DesktopDateTimePicker/index.d.ts +2 -0
  80. package/dist/DesktopDateTimePicker/index.js +41 -0
  81. package/dist/DesktopPicker/DesktopPicker.d.ts +5 -0
  82. package/dist/DesktopPicker/DesktopPicker.js +243 -0
  83. package/dist/DesktopPicker/DesktopPicker.types.d.ts +61 -0
  84. package/dist/DesktopPicker/DesktopPicker.types.js +15 -0
  85. package/dist/DesktopPicker/index.css +39 -0
  86. package/dist/DesktopPicker/index.d.ts +2 -0
  87. package/dist/DesktopPicker/index.js +41 -0
  88. package/dist/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
  89. package/dist/{Tabs/utils/bound.js → DesktopPicker/utils/calcAfterMounted.js} +7 -14
  90. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
  91. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.js +38 -0
  92. package/dist/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
  93. package/dist/DesktopTimePicker/DesktopTimePicker.js +288 -0
  94. package/dist/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
  95. package/dist/DesktopTimePicker/DesktopTimePicker.types.js +15 -0
  96. package/dist/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
  97. package/dist/DesktopTimePicker/DesktopTimePickerList.js +111 -0
  98. package/dist/DesktopTimePicker/index.css +170 -0
  99. package/dist/DesktopTimePicker/index.d.ts +2 -0
  100. package/dist/DesktopTimePicker/index.js +41 -0
  101. package/dist/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
  102. package/dist/DesktopTimePicker/useGetTimePickerContent.js +249 -0
  103. package/dist/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
  104. package/dist/DesktopTimePicker/utils/scrollUtil.js +27 -0
  105. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
  106. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.js +51 -0
  107. package/dist/DesktopTimePicker/utils/utils.d.ts +28 -0
  108. package/dist/DesktopTimePicker/utils/utils.js +408 -0
  109. package/dist/Dialog/Dialog.d.ts +5 -2
  110. package/dist/Dialog/Dialog.js +56 -34
  111. package/dist/Dialog/Dialog.types.d.ts +50 -22
  112. package/dist/Dialog/FunctionalDialog.d.ts +10 -3
  113. package/dist/Dialog/FunctionalDialog.js +102 -80
  114. package/dist/Dialog/__tests__/fixtures/A11yDemos.d.ts +9 -0
  115. package/dist/Dialog/__tests__/fixtures/A11yDemos.js +78 -0
  116. package/dist/Dialog/index.css +19 -19
  117. package/dist/Dialog/index.d.ts +4 -1
  118. package/dist/Dialog/index.js +9 -2
  119. package/dist/Drawer/Drawer.js +7 -7
  120. package/dist/Drawer/__tests__/fixtures/A11yDemos.d.ts +21 -0
  121. package/dist/Drawer/__tests__/fixtures/A11yDemos.js +148 -0
  122. package/dist/Fade/Fade.js +2 -2
  123. package/dist/Fade/Fade.miniapp.d.ts +10 -0
  124. package/dist/Fade/Fade.miniapp.js +200 -0
  125. package/dist/Fade/index.css +18 -0
  126. package/dist/IconButton/IconButton.js +23 -8
  127. package/dist/IconButton/IconButton.types.d.ts +35 -1
  128. package/dist/IconButton/index.css +3 -0
  129. package/dist/Image/Image.js +17 -10
  130. package/dist/Image/__tests__/fixtures/A11yDemos.d.ts +21 -0
  131. package/dist/Image/__tests__/fixtures/A11yDemos.js +130 -0
  132. package/dist/Image/index.css +3 -8
  133. package/dist/Input/Input.js +5 -3
  134. package/dist/Input/__tests__/fixtures/A11yDemos.d.ts +21 -0
  135. package/dist/Input/__tests__/fixtures/A11yDemos.js +81 -0
  136. package/dist/Input/index.css +8 -8
  137. package/dist/ItemSelector/ItemSelector.types.d.ts +0 -1
  138. package/dist/Modal/Modal.js +47 -47
  139. package/dist/Modal/Modal.miniapp.d.ts +2 -2
  140. package/dist/Modal/Modal.miniapp.js +48 -32
  141. package/dist/Modal/Modal.types.d.ts +26 -2
  142. package/dist/Modal/ModalManager.d.ts +21 -0
  143. package/dist/Modal/ModalManager.js +238 -0
  144. package/dist/Modal/__tests__/fixtures/A11yDemos.d.ts +8 -0
  145. package/dist/Modal/__tests__/fixtures/A11yDemos.js +52 -0
  146. package/dist/Modal/index.css +1 -1
  147. package/dist/Modal/index.d.ts +3 -0
  148. package/dist/Modal/index.js +9 -1
  149. package/dist/Modal/useModal.d.ts +24 -0
  150. package/dist/Modal/useModal.js +190 -0
  151. package/dist/NavBar/index.css +2 -2
  152. package/dist/Picker/Picker.css +4 -0
  153. package/dist/Picker/Picker.js +72 -18
  154. package/dist/Picker/Picker.types.d.ts +15 -2
  155. package/dist/Picker/PickerPanel.css +4 -0
  156. package/dist/Picker/PickerPanel.js +52 -41
  157. package/dist/Picker/__tests__/fixtures/A11yDemos.d.ts +2 -0
  158. package/dist/Picker/__tests__/fixtures/A11yDemos.js +79 -0
  159. package/dist/Picker/index.css +8 -0
  160. package/dist/Picker/utils.d.ts +8 -5
  161. package/dist/Picker/utils.js +9 -12
  162. package/dist/Popover/Popover.js +123 -91
  163. package/dist/Popover/Popover.types.d.ts +44 -7
  164. package/dist/Popover/__tests__/fixtures/A11yDemos.d.ts +25 -0
  165. package/dist/Popover/__tests__/fixtures/A11yDemos.js +175 -0
  166. package/dist/Popover/hooks/index.d.ts +8 -0
  167. package/dist/Popover/hooks/index.js +36 -0
  168. package/dist/Popover/hooks/usePopoverA11y.d.ts +14 -0
  169. package/dist/Popover/hooks/usePopoverA11y.js +66 -0
  170. package/dist/Popover/hooks/usePopoverEvents.d.ts +21 -0
  171. package/dist/Popover/hooks/usePopoverEvents.js +150 -0
  172. package/dist/Popover/hooks/usePopoverPosition.d.ts +17 -0
  173. package/dist/Popover/hooks/usePopoverPosition.js +124 -0
  174. package/dist/Popover/hooks/usePopoverState.d.ts +16 -0
  175. package/dist/Popover/hooks/usePopoverState.js +54 -0
  176. package/dist/Portal/Portal.miniapp.js +20 -11
  177. package/dist/Portal/Portal.types.d.ts +1 -1
  178. package/dist/Portal/PortalCore.js +2 -2
  179. package/dist/Progress/Progress.js +61 -6
  180. package/dist/Progress/Progress.types.d.ts +44 -0
  181. package/dist/Progress/__tests__/fixtures/A11yDemos.d.ts +21 -0
  182. package/dist/Progress/__tests__/fixtures/A11yDemos.js +100 -0
  183. package/dist/Radio/Radio.js +5 -4
  184. package/dist/Radio/RadioGroup.js +1 -1
  185. package/dist/Radio/__tests__/fixtures/A11yDemos.d.ts +15 -0
  186. package/dist/Radio/__tests__/fixtures/A11yDemos.js +57 -0
  187. package/dist/Rating/index.css +8 -12
  188. package/dist/ScrollView/ScrollView.js +48 -196
  189. package/dist/ScrollView/ScrollView.types.d.ts +120 -86
  190. package/dist/ScrollView/__tests__/fixtures/A11yDemos.d.ts +7 -0
  191. package/dist/ScrollView/__tests__/fixtures/A11yDemos.js +319 -0
  192. package/dist/ScrollView/useScrollView.d.ts +10 -0
  193. package/dist/ScrollView/useScrollView.js +300 -0
  194. package/dist/Select/Select.js +73 -39
  195. package/dist/Select/Select.types.d.ts +2 -2
  196. package/dist/Select/SelectOption.js +5 -1
  197. package/dist/Select/__tests__/fixtures/A11yDemos.d.ts +21 -0
  198. package/dist/Select/__tests__/fixtures/A11yDemos.js +154 -0
  199. package/dist/Select/index.css +12 -8
  200. package/dist/Select/selectContext.d.ts +0 -1
  201. package/dist/Slide/Slide.js +2 -2
  202. package/dist/Slide/Slide.miniapp.d.ts +14 -0
  203. package/dist/Slide/Slide.miniapp.js +213 -0
  204. package/dist/Slide/index.css +72 -0
  205. package/dist/Slider/Slider.js +13 -5
  206. package/dist/Stack/demo/index.css +2 -0
  207. package/dist/SwipeAction/SwipeAction.css +79 -0
  208. package/dist/SwipeAction/SwipeAction.d.ts +5 -0
  209. package/dist/SwipeAction/SwipeAction.js +349 -0
  210. package/dist/SwipeAction/SwipeAction.types.d.ts +75 -0
  211. package/dist/SwipeAction/SwipeAction.types.js +15 -0
  212. package/dist/SwipeAction/SwipeActionContext.d.ts +3 -0
  213. package/dist/SwipeAction/SwipeActionContext.js +30 -0
  214. package/dist/SwipeAction/SwipeActionItem.css +31 -0
  215. package/dist/SwipeAction/SwipeActionItem.d.ts +5 -0
  216. package/dist/SwipeAction/SwipeActionItem.js +105 -0
  217. package/dist/SwipeAction/constants.d.ts +9 -0
  218. package/dist/SwipeAction/constants.js +39 -0
  219. package/dist/SwipeAction/index.css +110 -0
  220. package/dist/SwipeAction/index.d.ts +5 -0
  221. package/dist/SwipeAction/index.js +50 -0
  222. package/dist/Swiper/Swiper.js +18 -4
  223. package/dist/Switch/Switch.js +5 -4
  224. package/dist/Switch/__tests__/fixtures/A11yDemos.d.ts +15 -0
  225. package/dist/Switch/__tests__/fixtures/A11yDemos.js +57 -0
  226. package/dist/Tabs/Tab.js +36 -21
  227. package/dist/Tabs/Tab.types.d.ts +1 -1
  228. package/dist/Tabs/TabPanel.d.ts +1 -1
  229. package/dist/Tabs/TabPanel.js +9 -5
  230. package/dist/Tabs/Tabs.css +2 -2
  231. package/dist/Tabs/Tabs.js +87 -64
  232. package/dist/Tabs/Tabs.types.d.ts +1 -1
  233. package/dist/Tabs/TabsContext.d.ts +4 -5
  234. package/dist/Tabs/TabsContext.js +3 -1
  235. package/dist/Tabs/index.css +2 -2
  236. package/dist/Tabs/utils/scroll.d.ts +2 -0
  237. package/dist/Tabs/utils/scroll.js +55 -0
  238. package/dist/Tag/__tests__/fixtures/A11yDemos.d.ts +21 -0
  239. package/dist/Tag/__tests__/fixtures/A11yDemos.js +196 -0
  240. package/dist/TextArea/TextArea.js +50 -7
  241. package/dist/TextArea/TextArea.types.d.ts +28 -0
  242. package/dist/TextArea/__tests__/fixtures/A11yDemos.d.ts +19 -0
  243. package/dist/TextArea/__tests__/fixtures/A11yDemos.js +91 -0
  244. package/dist/TextArea/index.css +4 -4
  245. package/dist/ThemeProvider/ThemeProvider.types.d.ts +2 -2
  246. package/dist/ThemeProvider/ThemeProvider.types.js +0 -12
  247. package/dist/Toast/FunctionalToast.d.ts +2 -2
  248. package/dist/Toast/FunctionalToast.js +180 -85
  249. package/dist/Toast/Toast.d.ts +2 -2
  250. package/dist/Toast/Toast.js +69 -28
  251. package/dist/Toast/Toast.types.d.ts +13 -10
  252. package/dist/Toast/__tests__/fixtures/A11yDemos.d.ts +2 -0
  253. package/dist/Toast/__tests__/fixtures/A11yDemos.js +54 -0
  254. package/dist/Toast/index.css +0 -1
  255. package/dist/Tooltip/Tooltip.js +63 -107
  256. package/dist/Tooltip/Tooltip.types.d.ts +94 -43
  257. package/dist/Tooltip/__tests__/fixtures/A11yDemos.d.ts +25 -0
  258. package/dist/Tooltip/__tests__/fixtures/A11yDemos.js +100 -0
  259. package/dist/Tooltip/useTooltip.d.ts +29 -0
  260. package/dist/Tooltip/useTooltip.js +313 -0
  261. package/dist/Transition/TransitionCore.js +30 -25
  262. package/dist/TransitionGroup/TransitionGroup.d.ts +7 -0
  263. package/dist/TransitionGroup/TransitionGroup.js +132 -0
  264. package/dist/TransitionGroup/TransitionGroup.types.d.ts +47 -0
  265. package/dist/TransitionGroup/TransitionGroup.types.js +15 -0
  266. package/dist/TransitionGroup/demo/TransitionGroupDemo.d.ts +4 -0
  267. package/dist/TransitionGroup/demo/TransitionGroupDemo.js +68 -0
  268. package/dist/TransitionGroup/demo/index.css +33 -0
  269. package/dist/TransitionGroup/index.d.ts +2 -0
  270. package/dist/TransitionGroup/index.js +41 -0
  271. package/dist/TransitionGroup/utils/childMapping.d.ts +27 -0
  272. package/dist/TransitionGroup/utils/childMapping.js +119 -0
  273. package/dist/_.._/benchmarks/components/Button.js +41 -0
  274. package/dist/_.._/benchmarks/components/Input.js +45 -0
  275. package/dist/_.._/benchmarks/components/Tabs.js +50 -0
  276. package/dist/index.d.ts +8 -0
  277. package/dist/index.js +17 -1
  278. package/dist/locales/base.d.ts +40 -1
  279. package/dist/locales/en-US.js +54 -2
  280. package/dist/locales/zh-CN.js +56 -1
  281. package/dist/locales/zh-TW.js +56 -1
  282. package/es/Alert/Alert.js +2 -1
  283. package/es/Alert/__tests__/fixtures/A11yDemos.d.ts +17 -0
  284. package/es/Alert/__tests__/fixtures/A11yDemos.js +107 -0
  285. package/es/Alert/index.css +4 -4
  286. package/es/Avatar/AvatarGroup.css +8 -8
  287. package/es/Avatar/index.css +8 -8
  288. package/es/Backdrop/Backdrop.js +3 -2
  289. package/es/Backdrop/Backdrop.types.d.ts +4 -0
  290. package/es/Backdrop/__tests__/fixtures/A11yDemos.d.ts +8 -0
  291. package/es/Backdrop/__tests__/fixtures/A11yDemos.js +17 -0
  292. package/es/Backdrop/index.css +2 -2
  293. package/es/Badge/Badge.js +38 -11
  294. package/es/Badge/Badge.types.d.ts +30 -1
  295. package/es/Badge/__tests__/fixtures/A11yDemos.d.ts +25 -0
  296. package/es/Badge/__tests__/fixtures/A11yDemos.js +70 -0
  297. package/es/Badge/hooks/useBadgeA11y.d.ts +23 -0
  298. package/es/Badge/hooks/useBadgeA11y.js +53 -0
  299. package/es/Badge/hooks/useBadgeDisplay.d.ts +16 -0
  300. package/es/Badge/hooks/useBadgeDisplay.js +33 -0
  301. package/es/Button/Button.js +2 -1
  302. package/es/Button/__tests__/fixtures/A11yDemos.d.ts +23 -0
  303. package/es/Button/__tests__/fixtures/A11yDemos.js +42 -0
  304. package/es/Button/index.css +4 -5
  305. package/es/CSSTransition/CSSTransition.d.ts +4 -0
  306. package/es/CSSTransition/CSSTransition.js +153 -0
  307. package/es/CSSTransition/CSSTransition.types.d.ts +13 -0
  308. package/es/CSSTransition/CSSTransition.types.js +1 -0
  309. package/es/CSSTransition/demo/CSSTransitionDemo.d.ts +4 -0
  310. package/es/CSSTransition/demo/CSSTransitionDemo.js +47 -0
  311. package/es/CSSTransition/demo/index.css +25 -0
  312. package/es/CSSTransition/index.d.ts +2 -0
  313. package/es/CSSTransition/index.js +6 -0
  314. package/es/Calendar/Calendar.js +131 -34
  315. package/es/Calendar/Calendar.types.d.ts +16 -1
  316. package/es/Calendar/__tests__/fixtures/A11yDemos.d.ts +2 -0
  317. package/es/Calendar/__tests__/fixtures/A11yDemos.js +8 -0
  318. package/es/Calendar/index.css +52 -9
  319. package/es/Calendar/utils.d.ts +7 -3
  320. package/es/Calendar/utils.js +29 -20
  321. package/es/Checkbox/Checkbox.js +5 -4
  322. package/es/Checkbox/__tests__/fixtures/A11yDemos.d.ts +15 -0
  323. package/es/Checkbox/__tests__/fixtures/A11yDemos.js +22 -0
  324. package/es/CitySelector/CitySelector.types.d.ts +0 -1
  325. package/es/Collapse/Collapse.d.ts +1 -1
  326. package/es/Collapse/Collapse.js +26 -12
  327. package/es/Collapse/Collapse.miniapp.d.ts +10 -0
  328. package/es/Collapse/Collapse.miniapp.js +236 -0
  329. package/es/Collapse/index.css +40 -1
  330. package/es/CollapsePanel/index.css +1 -1
  331. package/es/Countdown/Countdown.js +61 -21
  332. package/es/Countdown/Countdown.types.d.ts +19 -15
  333. package/es/Countdown/__tests__/fixtures/A11yDemos.d.ts +23 -0
  334. package/es/Countdown/__tests__/fixtures/A11yDemos.js +68 -0
  335. package/es/Countdown/index.css +11 -0
  336. package/es/DatePicker/DatePicker.d.ts +4 -0
  337. package/es/DatePicker/DatePicker.js +308 -0
  338. package/es/DatePicker/DatePicker.types.d.ts +36 -0
  339. package/es/DatePicker/DatePicker.types.js +1 -0
  340. package/es/DatePicker/constants.d.ts +9 -0
  341. package/es/DatePicker/constants.js +14 -0
  342. package/es/DatePicker/index.d.ts +3 -0
  343. package/es/DatePicker/index.js +8 -0
  344. package/es/DesktopDatePicker/DesktopDatePicker.css +61 -0
  345. package/es/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
  346. package/es/DesktopDatePicker/DesktopDatePicker.js +253 -0
  347. package/es/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
  348. package/es/DesktopDatePicker/DesktopDatePicker.types.js +1 -0
  349. package/es/DesktopDatePicker/deskTopPickerContainer.css +100 -0
  350. package/es/DesktopDatePicker/index.css +161 -0
  351. package/es/DesktopDatePicker/index.d.ts +2 -0
  352. package/es/DesktopDatePicker/index.js +6 -0
  353. package/es/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
  354. package/es/DesktopDatePicker/useGetDatePickerContent.js +316 -0
  355. package/es/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
  356. package/es/DesktopDateTimePicker/DesktopDateTimePicker.js +295 -0
  357. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
  358. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.js +1 -0
  359. package/es/DesktopDateTimePicker/index.css +66 -0
  360. package/es/DesktopDateTimePicker/index.d.ts +2 -0
  361. package/es/DesktopDateTimePicker/index.js +9 -0
  362. package/es/DesktopPicker/DesktopPicker.d.ts +5 -0
  363. package/es/DesktopPicker/DesktopPicker.js +226 -0
  364. package/es/DesktopPicker/DesktopPicker.types.d.ts +61 -0
  365. package/es/DesktopPicker/DesktopPicker.types.js +1 -0
  366. package/es/DesktopPicker/index.css +39 -0
  367. package/es/DesktopPicker/index.d.ts +2 -0
  368. package/es/DesktopPicker/index.js +6 -0
  369. package/es/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
  370. package/es/DesktopPicker/utils/calcAfterMounted.js +6 -0
  371. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
  372. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.js +9 -0
  373. package/es/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
  374. package/es/DesktopTimePicker/DesktopTimePicker.js +261 -0
  375. package/es/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
  376. package/es/DesktopTimePicker/DesktopTimePicker.types.js +1 -0
  377. package/es/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
  378. package/es/DesktopTimePicker/DesktopTimePickerList.js +84 -0
  379. package/es/DesktopTimePicker/index.css +170 -0
  380. package/es/DesktopTimePicker/index.d.ts +2 -0
  381. package/es/DesktopTimePicker/index.js +6 -0
  382. package/es/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
  383. package/es/DesktopTimePicker/useGetTimePickerContent.js +226 -0
  384. package/es/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
  385. package/es/DesktopTimePicker/utils/scrollUtil.js +8 -0
  386. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
  387. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.js +22 -0
  388. package/es/DesktopTimePicker/utils/utils.d.ts +28 -0
  389. package/es/DesktopTimePicker/utils/utils.js +365 -0
  390. package/es/Dialog/Dialog.d.ts +5 -2
  391. package/es/Dialog/Dialog.js +57 -35
  392. package/es/Dialog/Dialog.types.d.ts +50 -22
  393. package/es/Dialog/FunctionalDialog.d.ts +10 -3
  394. package/es/Dialog/FunctionalDialog.js +106 -84
  395. package/es/Dialog/__tests__/fixtures/A11yDemos.d.ts +9 -0
  396. package/es/Dialog/__tests__/fixtures/A11yDemos.js +43 -0
  397. package/es/Dialog/index.css +19 -19
  398. package/es/Dialog/index.d.ts +4 -1
  399. package/es/Dialog/index.js +10 -3
  400. package/es/Drawer/Drawer.js +8 -8
  401. package/es/Drawer/__tests__/fixtures/A11yDemos.d.ts +21 -0
  402. package/es/Drawer/__tests__/fixtures/A11yDemos.js +112 -0
  403. package/es/Fade/Fade.js +2 -2
  404. package/es/Fade/Fade.miniapp.d.ts +10 -0
  405. package/es/Fade/Fade.miniapp.js +179 -0
  406. package/es/Fade/index.css +18 -0
  407. package/es/IconButton/IconButton.js +23 -8
  408. package/es/IconButton/IconButton.types.d.ts +35 -1
  409. package/es/IconButton/index.css +3 -0
  410. package/es/Image/Image.js +17 -10
  411. package/es/Image/__tests__/fixtures/A11yDemos.d.ts +21 -0
  412. package/es/Image/__tests__/fixtures/A11yDemos.js +92 -0
  413. package/es/Image/index.css +3 -8
  414. package/es/Input/Input.js +5 -3
  415. package/es/Input/__tests__/fixtures/A11yDemos.d.ts +21 -0
  416. package/es/Input/__tests__/fixtures/A11yDemos.js +43 -0
  417. package/es/Input/index.css +8 -8
  418. package/es/ItemSelector/ItemSelector.types.d.ts +0 -1
  419. package/es/Modal/Modal.js +48 -48
  420. package/es/Modal/Modal.miniapp.d.ts +2 -2
  421. package/es/Modal/Modal.miniapp.js +49 -33
  422. package/es/Modal/Modal.types.d.ts +26 -2
  423. package/es/Modal/ModalManager.d.ts +21 -0
  424. package/es/Modal/ModalManager.js +214 -0
  425. package/es/Modal/__tests__/fixtures/A11yDemos.d.ts +8 -0
  426. package/es/Modal/__tests__/fixtures/A11yDemos.js +18 -0
  427. package/es/Modal/index.css +1 -1
  428. package/es/Modal/index.d.ts +3 -0
  429. package/es/Modal/index.js +6 -1
  430. package/es/Modal/useModal.d.ts +24 -0
  431. package/es/Modal/useModal.js +169 -0
  432. package/es/NavBar/index.css +2 -2
  433. package/es/Picker/Picker.css +4 -0
  434. package/es/Picker/Picker.js +72 -18
  435. package/es/Picker/Picker.types.d.ts +15 -2
  436. package/es/Picker/PickerPanel.css +4 -0
  437. package/es/Picker/PickerPanel.js +52 -41
  438. package/es/Picker/__tests__/fixtures/A11yDemos.d.ts +2 -0
  439. package/es/Picker/__tests__/fixtures/A11yDemos.js +46 -0
  440. package/es/Picker/index.css +8 -0
  441. package/es/Picker/utils.d.ts +8 -5
  442. package/es/Picker/utils.js +9 -12
  443. package/es/Popover/Popover.js +130 -99
  444. package/es/Popover/Popover.types.d.ts +44 -7
  445. package/es/Popover/__tests__/fixtures/A11yDemos.d.ts +25 -0
  446. package/es/Popover/__tests__/fixtures/A11yDemos.js +135 -0
  447. package/es/Popover/hooks/index.d.ts +8 -0
  448. package/es/Popover/hooks/index.js +10 -0
  449. package/es/Popover/hooks/usePopoverA11y.d.ts +14 -0
  450. package/es/Popover/hooks/usePopoverA11y.js +43 -0
  451. package/es/Popover/hooks/usePopoverEvents.d.ts +21 -0
  452. package/es/Popover/hooks/usePopoverEvents.js +127 -0
  453. package/es/Popover/hooks/usePopoverPosition.d.ts +17 -0
  454. package/es/Popover/hooks/usePopoverPosition.js +105 -0
  455. package/es/Popover/hooks/usePopoverState.d.ts +16 -0
  456. package/es/Popover/hooks/usePopoverState.js +31 -0
  457. package/es/Portal/Portal.miniapp.js +21 -12
  458. package/es/Portal/Portal.types.d.ts +1 -1
  459. package/es/Portal/PortalCore.js +2 -2
  460. package/es/Progress/Progress.js +61 -6
  461. package/es/Progress/Progress.types.d.ts +44 -0
  462. package/es/Progress/__tests__/fixtures/A11yDemos.d.ts +21 -0
  463. package/es/Progress/__tests__/fixtures/A11yDemos.js +62 -0
  464. package/es/Radio/Radio.js +5 -4
  465. package/es/Radio/RadioGroup.js +1 -1
  466. package/es/Radio/__tests__/fixtures/A11yDemos.d.ts +15 -0
  467. package/es/Radio/__tests__/fixtures/A11yDemos.js +22 -0
  468. package/es/Rating/index.css +8 -12
  469. package/es/ScrollView/ScrollView.js +51 -197
  470. package/es/ScrollView/ScrollView.types.d.ts +120 -86
  471. package/es/ScrollView/__tests__/fixtures/A11yDemos.d.ts +7 -0
  472. package/es/ScrollView/__tests__/fixtures/A11yDemos.js +283 -0
  473. package/es/ScrollView/useScrollView.d.ts +10 -0
  474. package/es/ScrollView/useScrollView.js +279 -0
  475. package/es/Select/Select.js +73 -40
  476. package/es/Select/Select.types.d.ts +2 -2
  477. package/es/Select/SelectOption.js +5 -1
  478. package/es/Select/__tests__/fixtures/A11yDemos.d.ts +21 -0
  479. package/es/Select/__tests__/fixtures/A11yDemos.js +118 -0
  480. package/es/Select/index.css +12 -8
  481. package/es/Select/selectContext.d.ts +0 -1
  482. package/es/Slide/Slide.js +2 -2
  483. package/es/Slide/Slide.miniapp.d.ts +14 -0
  484. package/es/Slide/Slide.miniapp.js +192 -0
  485. package/es/Slide/index.css +72 -0
  486. package/es/Slider/Slider.js +16 -6
  487. package/es/Stack/demo/index.css +2 -0
  488. package/es/SwipeAction/SwipeAction.css +79 -0
  489. package/es/SwipeAction/SwipeAction.d.ts +5 -0
  490. package/es/SwipeAction/SwipeAction.js +334 -0
  491. package/es/SwipeAction/SwipeAction.types.d.ts +75 -0
  492. package/es/SwipeAction/SwipeAction.types.js +1 -0
  493. package/es/SwipeAction/SwipeActionContext.d.ts +3 -0
  494. package/es/SwipeAction/SwipeActionContext.js +11 -0
  495. package/es/SwipeAction/SwipeActionItem.css +31 -0
  496. package/es/SwipeAction/SwipeActionItem.d.ts +5 -0
  497. package/es/SwipeAction/SwipeActionItem.js +78 -0
  498. package/es/SwipeAction/constants.d.ts +9 -0
  499. package/es/SwipeAction/constants.js +15 -0
  500. package/es/SwipeAction/index.css +110 -0
  501. package/es/SwipeAction/index.d.ts +5 -0
  502. package/es/SwipeAction/index.js +12 -0
  503. package/es/Swiper/Swiper.js +18 -4
  504. package/es/Switch/Switch.js +5 -4
  505. package/es/Switch/__tests__/fixtures/A11yDemos.d.ts +15 -0
  506. package/es/Switch/__tests__/fixtures/A11yDemos.js +22 -0
  507. package/es/Tabs/Tab.js +36 -21
  508. package/es/Tabs/Tab.types.d.ts +1 -1
  509. package/es/Tabs/TabPanel.d.ts +1 -1
  510. package/es/Tabs/TabPanel.js +8 -4
  511. package/es/Tabs/Tabs.css +2 -2
  512. package/es/Tabs/Tabs.js +87 -64
  513. package/es/Tabs/Tabs.types.d.ts +1 -1
  514. package/es/Tabs/TabsContext.d.ts +4 -5
  515. package/es/Tabs/TabsContext.js +3 -1
  516. package/es/Tabs/index.css +2 -2
  517. package/es/Tabs/utils/scroll.d.ts +2 -0
  518. package/es/Tabs/utils/scroll.js +36 -0
  519. package/es/Tag/__tests__/fixtures/A11yDemos.d.ts +21 -0
  520. package/es/Tag/__tests__/fixtures/A11yDemos.js +160 -0
  521. package/es/TextArea/TextArea.js +51 -8
  522. package/es/TextArea/TextArea.types.d.ts +28 -0
  523. package/es/TextArea/__tests__/fixtures/A11yDemos.d.ts +19 -0
  524. package/es/TextArea/__tests__/fixtures/A11yDemos.js +54 -0
  525. package/es/TextArea/index.css +4 -4
  526. package/es/ThemeProvider/ThemeProvider.types.d.ts +2 -2
  527. package/es/Toast/FunctionalToast.d.ts +2 -2
  528. package/es/Toast/FunctionalToast.js +186 -86
  529. package/es/Toast/Toast.d.ts +2 -2
  530. package/es/Toast/Toast.js +69 -28
  531. package/es/Toast/Toast.types.d.ts +13 -10
  532. package/es/Toast/__tests__/fixtures/A11yDemos.d.ts +2 -0
  533. package/es/Toast/__tests__/fixtures/A11yDemos.js +21 -0
  534. package/es/Toast/index.css +0 -1
  535. package/es/Tooltip/Tooltip.js +64 -114
  536. package/es/Tooltip/Tooltip.types.d.ts +94 -43
  537. package/es/Tooltip/__tests__/fixtures/A11yDemos.d.ts +25 -0
  538. package/es/Tooltip/__tests__/fixtures/A11yDemos.js +60 -0
  539. package/es/Tooltip/useTooltip.d.ts +29 -0
  540. package/es/Tooltip/useTooltip.js +290 -0
  541. package/es/Transition/TransitionCore.js +31 -26
  542. package/es/TransitionGroup/TransitionGroup.d.ts +7 -0
  543. package/es/TransitionGroup/TransitionGroup.js +109 -0
  544. package/es/TransitionGroup/TransitionGroup.types.d.ts +47 -0
  545. package/es/TransitionGroup/TransitionGroup.types.js +1 -0
  546. package/es/TransitionGroup/demo/TransitionGroupDemo.d.ts +4 -0
  547. package/es/TransitionGroup/demo/TransitionGroupDemo.js +39 -0
  548. package/es/TransitionGroup/demo/index.css +33 -0
  549. package/es/TransitionGroup/index.d.ts +2 -0
  550. package/es/TransitionGroup/index.js +6 -0
  551. package/es/TransitionGroup/utils/childMapping.d.ts +27 -0
  552. package/es/TransitionGroup/utils/childMapping.js +93 -0
  553. package/es/_.._/benchmarks/components/Button.js +8 -0
  554. package/es/_.._/benchmarks/components/Input.js +12 -0
  555. package/es/_.._/benchmarks/components/Tabs.js +17 -0
  556. package/es/index.d.ts +8 -0
  557. package/es/index.js +8 -0
  558. package/es/locales/base.d.ts +40 -1
  559. package/es/locales/en-US.js +54 -2
  560. package/es/locales/zh-CN.js +56 -1
  561. package/es/locales/zh-TW.js +56 -1
  562. package/package.json +9 -6
  563. package/dist/Tabs/utils/bound.d.ts +0 -1
  564. package/es/Tabs/utils/bound.d.ts +0 -1
  565. package/es/Tabs/utils/bound.js +0 -13
@@ -1,156 +1,61 @@
1
- import { useForkRef } from "@bifrostui/utils";
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
2
32
  import clsx from "clsx";
3
- import React, { forwardRef, useCallback, useEffect, useRef } from "react";
33
+ import React, { forwardRef } from "react";
4
34
  import "./index.css";
5
- function easeOutScroll(from, to, callback) {
6
- if (from === to || typeof from !== "number") {
7
- return;
8
- }
9
- const change = to - from;
10
- const dur = 500;
11
- const sTime = +/* @__PURE__ */ new Date();
12
- function linear(t, b, c, d) {
13
- return c * t / d + b;
14
- }
15
- const isLarger = to >= from;
16
- function step() {
17
- const stepFrom = linear(+/* @__PURE__ */ new Date() - sTime, from, change, dur);
18
- if (isLarger && stepFrom >= to || !isLarger && to >= stepFrom) {
19
- callback == null ? void 0 : callback(to);
20
- return;
21
- }
22
- callback == null ? void 0 : callback(stepFrom);
23
- requestAnimationFrame(step);
24
- }
25
- step();
26
- }
35
+ import { useScrollView } from "./useScrollView";
27
36
  const classes = {
28
37
  root: "bui-scroll"
29
38
  };
30
39
  const ScrollView = forwardRef(
31
40
  (props, ref) => {
32
- const {
41
+ const _a = props, {
33
42
  className,
34
43
  style = {},
35
- onScroll,
36
- onScrollToUpper,
37
- onScrollToLower,
38
- scrollTop: scrollTopProp,
39
- scrollLeft: scrollLeftProp,
40
44
  scrollX,
41
45
  scrollY,
42
- scrollIntoView,
43
- onTouchMove: propsOnTouchMove,
44
- scrollIntoViewAlignment,
45
46
  children
46
- } = props;
47
- const container = useRef(null);
48
- const handleRef = useForkRef(ref, container);
49
- const onTouchMove = (e) => {
50
- };
51
- const scrollVertical = useCallback((top, isAnimation) => {
52
- if (top === void 0)
53
- return;
54
- if (isAnimation) {
55
- easeOutScroll(container.current.scrollTop, top, (pos) => {
56
- if (container.current)
57
- container.current.scrollTop = pos;
58
- });
59
- } else if (container.current)
60
- container.current.scrollTop = top;
61
- }, []);
62
- const scrollHorizontal = useCallback((left, isAnimation) => {
63
- if (left === void 0)
64
- return;
65
- if (isAnimation) {
66
- easeOutScroll(container.current.scrollLeft, left, (pos) => {
67
- if (container.current)
68
- container.current.scrollLeft = pos;
69
- });
70
- } else if (container.current)
71
- container.current.scrollLeft = left;
72
- }, []);
73
- const handleScroll = useCallback(
74
- (isInit = false) => {
75
- var _a, _b;
76
- const isAnimation = props == null ? void 0 : props.scrollWithAnimation;
77
- if (scrollIntoView && typeof scrollIntoView === "string" && ((_b = (_a = container == null ? void 0 : container.current) == null ? void 0 : _a.querySelector) == null ? void 0 : _b.call(_a, `#${scrollIntoView}`))) {
78
- const doScrollIntoView = (id, alignment = "start", _isAnimation = isAnimation) => {
79
- const target = container.current.querySelector(`#${id}`);
80
- if (scrollY) {
81
- const start = target.offsetTop;
82
- const end = target.offsetTop + target.offsetHeight - container.current.clientHeight;
83
- let nearest;
84
- if (container.current.scrollTop < end)
85
- nearest = end;
86
- else if (container.current.scrollTop > start)
87
- nearest = start;
88
- const center = (start + end) / 2;
89
- scrollVertical(
90
- { start, end, nearest, center }[alignment],
91
- _isAnimation
92
- );
93
- }
94
- if (scrollX) {
95
- const start = target.offsetLeft;
96
- const end = target.offsetLeft + target.offsetWidth - container.current.clientWidth;
97
- let nearest;
98
- if (container.current.scrollTop < end)
99
- nearest = end;
100
- else if (container.current.scrollTop > start)
101
- nearest = start;
102
- const center = (start + end) / 2;
103
- scrollHorizontal(
104
- { start, end, nearest, center }[alignment],
105
- _isAnimation
106
- );
107
- }
108
- };
109
- if (isInit) {
110
- setTimeout(
111
- () => doScrollIntoView(
112
- scrollIntoView,
113
- scrollIntoViewAlignment,
114
- isAnimation
115
- ),
116
- 500
117
- );
118
- } else {
119
- doScrollIntoView(
120
- scrollIntoView,
121
- scrollIntoViewAlignment,
122
- isAnimation
123
- );
124
- }
125
- } else {
126
- if (scrollY && typeof scrollTopProp === "number" && scrollTopProp !== container.current.scrollTop) {
127
- if (isInit) {
128
- setTimeout(() => scrollVertical(scrollTopProp, isAnimation), 10);
129
- } else {
130
- scrollVertical(scrollTopProp, isAnimation);
131
- }
132
- }
133
- if (scrollX && typeof scrollLeftProp === "number" && scrollLeftProp !== container.current.scrollLeft) {
134
- if (isInit) {
135
- setTimeout(
136
- () => scrollHorizontal(scrollLeftProp, isAnimation),
137
- 10
138
- );
139
- } else {
140
- scrollHorizontal(scrollLeftProp, isAnimation);
141
- }
142
- }
143
- }
144
- },
145
- [scrollIntoView, scrollY, scrollTopProp, scrollX, scrollLeftProp]
146
- );
147
- useEffect(() => {
148
- handleScroll(true);
149
- }, []);
150
- useEffect(() => {
151
- handleScroll();
152
- }, [scrollIntoView, scrollY, scrollTopProp, scrollX, scrollLeftProp]);
153
- let { upperThreshold = 50, lowerThreshold = 50 } = props;
47
+ } = _a, otherProps = __objRest(_a, [
48
+ "className",
49
+ "style",
50
+ "scrollX",
51
+ "scrollY",
52
+ "children"
53
+ ]);
54
+ const { getRootProps } = useScrollView(__spreadProps(__spreadValues({}, otherProps), {
55
+ scrollX,
56
+ scrollY,
57
+ ref
58
+ }));
154
59
  const cls = clsx(
155
60
  classes.root,
156
61
  {
@@ -159,62 +64,11 @@ const ScrollView = forwardRef(
159
64
  },
160
65
  className
161
66
  );
162
- upperThreshold = Number(upperThreshold);
163
- lowerThreshold = Number(lowerThreshold);
164
- const upperLowerStatus = useRef(0);
165
- const upperAndLower = (e) => {
166
- if (!container.current)
167
- return;
168
- const {
169
- offsetWidth,
170
- offsetHeight,
171
- scrollLeft,
172
- scrollTop,
173
- scrollHeight,
174
- scrollWidth
175
- } = container.current;
176
- if (onScrollToLower && (scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight || scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth)) {
177
- if (upperLowerStatus.current !== -1)
178
- onScrollToLower(e);
179
- upperLowerStatus.current = -1;
180
- } else if (onScrollToUpper && (scrollY && scrollTop <= upperThreshold || scrollX && scrollLeft <= upperThreshold)) {
181
- if (upperLowerStatus.current !== 1)
182
- onScrollToUpper(e);
183
- upperLowerStatus.current = 1;
184
- } else {
185
- upperLowerStatus.current = 0;
186
- }
187
- };
188
- const onScrollHandler = (e) => {
189
- const { scrollLeft, scrollTop, scrollHeight, scrollWidth } = container.current;
190
- Object.defineProperty(e, "detail", {
191
- enumerable: true,
192
- writable: true,
193
- value: {
194
- scrollLeft,
195
- scrollTop,
196
- scrollHeight,
197
- scrollWidth
198
- }
199
- });
200
- upperAndLower(e);
201
- onScroll == null ? void 0 : onScroll(e);
202
- };
203
- const onTouchMoveHandler = (e) => {
204
- var _a;
205
- (_a = propsOnTouchMove || onTouchMove) == null ? void 0 : _a(e);
206
- };
207
- return /* @__PURE__ */ React.createElement(
208
- "div",
209
- {
210
- ref: handleRef,
211
- style,
212
- className: cls,
213
- onScroll: onScrollHandler,
214
- onTouchMove: onTouchMoveHandler
215
- },
216
- children
217
- );
67
+ const rootProps = getRootProps({
68
+ style,
69
+ className: cls
70
+ });
71
+ return /* @__PURE__ */ React.createElement("div", __spreadValues({}, rootProps), children);
218
72
  }
219
73
  );
220
74
  ScrollView.displayName = "BuiScrollView";
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
2
  import { OverrideProps } from '@bifrostui/types';
3
- interface ScrollViewScrollEvent extends Event {
3
+ /**
4
+ * 滚动事件详情
5
+ */
6
+ export interface ScrollViewScrollEvent extends Event {
4
7
  detail?: {
5
8
  scrollLeft: number;
6
9
  scrollTop: number;
@@ -11,7 +14,10 @@ interface ScrollViewScrollEvent extends Event {
11
14
  isDrag?: boolean;
12
15
  };
13
16
  }
14
- interface ScrollViewDragEvent extends Event {
17
+ /**
18
+ * 拖拽事件详情
19
+ */
20
+ export interface ScrollViewDragEvent extends Event {
15
21
  detail?: {
16
22
  /** 横向滚动条位置 */
17
23
  scrollLeft?: number;
@@ -21,175 +27,191 @@ interface ScrollViewDragEvent extends Event {
21
27
  velocity?: number;
22
28
  };
23
29
  }
30
+ /**
31
+ * ScrollIntoView 对齐方式
32
+ */
33
+ export type ScrollIntoViewAlignment = 'start' | 'center' | 'end' | 'nearest';
34
+ /**
35
+ * ScrollView 组件属性
36
+ */
24
37
  export type ScrollViewProps<D extends React.ElementType = 'div', P = {}> = OverrideProps<{
25
38
  props: P & {
26
39
  /**
27
40
  * 允许横向滚动
28
41
  * @default false
29
- * @type {boolean}
30
42
  */
31
43
  scrollX?: boolean;
32
44
  /**
33
45
  * 允许纵向滚动
34
46
  * @default false
35
- * @type {boolean}
36
47
  */
37
48
  scrollY?: boolean;
38
- /**
39
- * 距顶部/左边多远时(单位px),触发 scrolltoupper 事件
40
- * @default 50
41
- * @type {number}
42
- */
43
- upperThreshold?: number;
44
- /**
45
- * 距底部/右边多远时(单位px),触发 scrolltolower 事件
46
- * @default 50
47
- * @type {number}
48
- */
49
- lowerThreshold?: number;
50
49
  /**
51
50
  * 设置竖向滚动条位置
52
- * @type {number}
53
51
  */
54
52
  scrollTop?: number;
55
53
  /**
56
54
  * 设置横向滚动条位置
57
- * @type {number}
58
55
  */
59
56
  scrollLeft?: number;
60
57
  /**
61
- * 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
62
- * @type {string}
58
+ * 滚动到指定元素(元素id,不能以数字开头)
63
59
  */
64
60
  scrollIntoView?: string;
61
+ /**
62
+ * 指定 scroll-into-view 目标节点在视口内的位置
63
+ * @default 'start'
64
+ */
65
+ scrollIntoViewAlignment?: ScrollIntoViewAlignment;
65
66
  /**
66
67
  * 在设置滚动条位置时使用动画过渡
67
68
  * @default false
68
- * @type {boolean}
69
69
  */
70
70
  scrollWithAnimation?: boolean;
71
- /** 指定 scroll-into-view 目标节点在视口内的位置。
72
- * start - 目标节点显示在视口开始处
73
- * center - 目标节点显示在视口中间
74
- * end - 目标节点显示在视口结束处
75
- * nearest - 目标节点在就近的视口边缘显示,若节点已在视口内则不触发滚动
76
- * @default 'start'
71
+ /**
72
+ * scroll-with-animation设置为 true 时,可以设置 scroll-animation-duration 来控制动画的执行时间,单位 ms。
77
73
  */
78
- scrollIntoViewAlignment?: ScrollLogicalPosition;
74
+ scrollAnimationDuration?: number;
79
75
  /**
80
76
  * 滚动条返回顶部,只支持竖向
77
+ * 仅小程序可用
81
78
  * @default false
82
- * @type {boolean}
83
79
  */
84
80
  enableBackToTop?: boolean;
85
- /** 启用 flexbox 布局。开启后,当前节点声明了 `display: flex` 就会成为 flex container,并作用于其孩子节点。
81
+ /**
82
+ * 启用 flexbox 布局。开启后,当前节点声明了 `display: flex` 就会成为 flex container,并作用于其孩子节点。
86
83
  * 仅小程序可用
87
84
  * @default false
88
85
  */
89
86
  enableFlex?: boolean;
90
- /** 开启 scroll anchoring 特性,即控制滚动位置不随内容变化而抖动,仅在 iOS 下生效,安卓下可参考 CSS `overflow-anchor` 属性。
87
+ /**
88
+ * 开启 scroll anchoring 特性,即控制滚动位置不随内容变化而抖动,仅在 iOS 下生效,安卓下可参考 CSS `overflow-anchor` 属性。
91
89
  * 仅小程序可用
92
90
  * @default false
93
91
  */
94
92
  scrollAnchoring?: boolean;
95
- /** 开启自定义下拉刷新
96
- * 仅小程序可用
97
- * @default false
98
- */
99
- refresherEnabled?: boolean;
100
- /** 设置自定义下拉刷新默认样式,支持设置 `black | white | none`, none 表示不使用默认样式
101
- * 仅小程序可用
102
- * @default 'black'
103
- */
104
- refresherDefaultStyle?: string;
105
- /** 设置自定义下拉刷新区域背景颜色
106
- * 仅小程序可用
107
- * @default '#FFF'
108
- */
109
- refresherBackground?: string;
110
- /** 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发
111
- * 仅小程序可用
112
- * @default false
113
- */
114
- refresherTriggered?: boolean;
115
- /** 启用 scroll-view 增强特性
93
+ /**
94
+ * 启用 scroll-view 增强特性
116
95
  * 仅小程序可用
117
96
  * @default false
118
97
  */
119
98
  enhanced?: boolean;
120
- /** iOS 下 scroll-view 边界弹性控制 (同时开启 enhanced 属性后生效)
99
+ /**
100
+ * iOS 下 scroll-view 边界弹性控制 (同时开启 enhanced 属性后生效)
121
101
  * 仅小程序可用
122
102
  * @default true
123
103
  */
124
104
  bounces?: boolean;
125
- /** 滚动条显隐控制 (同时开启 enhanced 属性后生效)
105
+ /**
106
+ * 滚动条显隐控制 (同时开启 enhanced 属性后生效)
126
107
  * 仅小程序可用
127
108
  * @default true
128
109
  */
129
110
  showScrollbar?: boolean;
130
- /** 分页滑动效果 (同时开启 enhanced 属性后生效)
111
+ /**
112
+ * 分页滑动效果 (同时开启 enhanced 属性后生效)
131
113
  * 仅小程序可用
132
114
  * @default false
133
115
  */
134
116
  pagingEnabled?: boolean;
135
- /** boolean false 滑动减速速率控制 (同时开启 enhanced 属性后生效)
117
+ /**
118
+ * 滑动减速速率控制 (同时开启 enhanced 属性后生效)
136
119
  * 仅小程序可用
137
120
  * @default false
138
121
  */
139
122
  fastDeceleration?: boolean;
140
- /** 当 scroll-with-animation设置为 true 时,可以设置 scroll-animation-duration 来控制动画的执行时间,单位 ms。
141
- * 仅小程序可用
142
- */
143
- scrollAnimationDuration?: number;
144
- /** 纵向滚动时,当滚动到顶部或底部时,强制禁止触发页面滚动,仍然只触发 scroll-view 自身的滚动。
123
+ /**
124
+ * 纵向滚动时,当滚动到顶部或底部时,强制禁止触发页面滚动,仍然只触发 scroll-view 自身的滚动。
145
125
  * 仅小程序可用
146
126
  * @default false
147
127
  */
148
128
  trapScroll?: string;
149
- /** 发生滚动前,对滚动方向进行判断,当方向是顶部/左边时,如果值为always将始终禁止滚动,如果值为out-of-bounds 且当前已经滚动到顶部/左边,禁止滚动。
129
+ /**
130
+ * 发生滚动前,对滚动方向进行判断,当方向是顶部/左边时,如果值为always将始终禁止滚动,如果值为out-of-bounds 且当前已经滚动到顶部/左边,禁止滚动。
150
131
  * 仅小程序可用
151
132
  */
152
133
  disableLowerScroll?: string;
153
- /** 发生滚动前,对滚动方向进行判断,当方向是底部/右边时,如果值为always将始终禁止滚动,如果值为out-of-bounds 且当前已经滚动到底部/右边,禁止滚动。
134
+ /**
135
+ * 发生滚动前,对滚动方向进行判断,当方向是底部/右边时,如果值为always将始终禁止滚动,如果值为out-of-bounds 且当前已经滚动到底部/右边,禁止滚动。
154
136
  * 仅小程序可用
155
137
  */
156
138
  disableUpperScroll?: string;
157
- /** 无障碍访问,(属性)元素的额外描述
139
+ /**
140
+ * 无障碍访问,(属性)元素的额外描述
158
141
  * 仅小程序可用
159
142
  */
160
143
  ariaLabel?: string;
161
- /** 开启 passive 特性,能优化一定的滚动性能
144
+ /**
145
+ * 开启 passive 特性,能优化一定的滚动性能
162
146
  * 仅小程序可用
163
147
  * @default false
164
148
  */
165
149
  enablePassive?: string;
166
- /** 渲染模式
150
+ /**
151
+ * 渲染模式
167
152
  * list - 列表模式。只会渲染在屏节点,会根据直接子节点是否在屏来按需渲染,若只有一个直接子节点则性能会退化
168
153
  * custom - 自定义模式。只会渲染在屏节点,子节点可以是 sticky-section list-view grid-view 等组件
169
154
  * 仅小程序可用
170
155
  * @default 'list'
171
156
  */
172
157
  type?: 'list' | 'custom';
173
- /** 是否反向滚动。一般初始滚动位置是在顶部,反向滚动则是在底部。
158
+ /**
159
+ * 是否反向滚动。一般初始滚动位置是在顶部,反向滚动则是在底部。
174
160
  * 仅小程序可用
175
161
  * @default false
176
162
  */
177
163
  reverse?: boolean;
178
- /** 指定视口外渲染区域的距离,默认情况下视口外节点不渲染。指定 cache-extent 可优化滚动体验和加载速度,但会提高内存占用且影响首屏速度,可按需启用。
164
+ /**
165
+ * 指定视口外渲染区域的距离,默认情况下视口外节点不渲染。指定 cache-extent 可优化滚动体验和加载速度,但会提高内存占用且影响首屏速度,可按需启用。
179
166
  * 仅小程序可用
180
167
  */
181
168
  cacheExtent?: number;
182
- /** 只 scroll-into-view 到 cacheExtent 以内的目标节点,性能更佳
169
+ /**
170
+ * 只 scroll-into-view 到 cacheExtent 以内的目标节点,性能更佳
183
171
  * 仅小程序可用
184
172
  * @default false
185
173
  */
186
174
  scrollIntoViewWithinExtent?: boolean;
187
175
  /**
188
- * 滚动到顶部/左边,会触发 scrolltoupper 事件
176
+ * 开启自定义下拉刷新
177
+ * 仅小程序可用
178
+ * @default false
179
+ */
180
+ refresherEnabled?: boolean;
181
+ /**
182
+ * 设置自定义下拉刷新默认样式,支持设置 `black | white | none`, none 表示不使用默认样式
183
+ * 仅小程序可用
184
+ * @default 'black'
185
+ */
186
+ refresherDefaultStyle?: string;
187
+ /**
188
+ * 设置自定义下拉刷新区域背景颜色
189
+ * 仅小程序可用
190
+ * @default '#FFF'
191
+ */
192
+ refresherBackground?: string;
193
+ /**
194
+ * 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发
195
+ * 仅小程序可用
196
+ * @default false
197
+ */
198
+ refresherTriggered?: boolean;
199
+ /**
200
+ * 距顶部/左边多远时(单位px),触发 onScrollToUpper 事件
201
+ * @default 50
202
+ */
203
+ upperThreshold?: number;
204
+ /**
205
+ * 距底部/右边多远时(单位px),触发 onScrollToLower 事件
206
+ * @default 50
207
+ */
208
+ lowerThreshold?: number;
209
+ /**
210
+ * 滚动到顶部/左边时触发
189
211
  */
190
212
  onScrollToUpper?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void;
191
213
  /**
192
- * 滚动到底部/右边,会触发 scrolltolower 事件
214
+ * 滚动到底部/右边时触发
193
215
  */
194
216
  onScrollToLower?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void;
195
217
  /**
@@ -197,62 +219,74 @@ export type ScrollViewProps<D extends React.ElementType = 'div', P = {}> = Overr
197
219
  */
198
220
  onScroll?: (e: React.SyntheticEvent<HTMLDivElement, ScrollViewScrollEvent>) => void;
199
221
  /**
200
- * 触摸后移动
222
+ * 触摸移动时触发
201
223
  */
202
224
  onTouchMove?: (e: React.SyntheticEvent<HTMLDivElement, TouchEvent>) => void;
203
- /** 滚动开始事件
225
+ /**
226
+ * 滚动开始事件
204
227
  * 仅小程序可用
205
228
  */
206
229
  onScrollStart?: (e: React.SyntheticEvent<HTMLDivElement, ScrollViewScrollEvent>) => void;
207
- /** 滚动结束事件
230
+ /**
231
+ * 滚动结束事件
208
232
  * 仅小程序可用
209
233
  */
210
234
  onScrollEnd?: (e: React.SyntheticEvent<HTMLDivElement, ScrollViewScrollEvent>) => void;
211
- /** 自定义下拉刷新控件被下拉
235
+ /**
236
+ * 自定义下拉刷新控件被下拉
212
237
  * 仅小程序可用
213
238
  */
214
239
  onRefresherPulling?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void;
215
- /** 自定义下拉刷新被触发
240
+ /**
241
+ * 自定义下拉刷新被触发
216
242
  * 仅小程序可用
217
243
  */
218
244
  onRefresherRefresh?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void;
219
- /** 自定义下拉刷新被复位
245
+ /**
246
+ * 自定义下拉刷新被复位
220
247
  * 仅小程序可用
221
248
  */
222
249
  onRefresherRestore?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void;
223
- /** 自定义下拉刷新被中止
250
+ /**
251
+ * 自定义下拉刷新被中止
224
252
  * 仅小程序可用
225
253
  */
226
254
  onRefresherAbort?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void;
227
- /** 自定义下拉刷新即将触发刷新(拖动超过 refresher-threshold 时)的事件
255
+ /**
256
+ * 自定义下拉刷新即将触发刷新(拖动超过 refresher-threshold 时)的事件
228
257
  * 仅小程序可用
229
258
  */
230
259
  onRefresherWillRefresh?: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void;
231
- /** 滑动开始事件 (同时开启 enhanced 属性后生效)
260
+ /**
261
+ * 滑动开始事件 (同时开启 enhanced 属性后生效)
232
262
  * 仅小程序可用
233
263
  */
234
264
  onDragStart?: (e: React.SyntheticEvent<HTMLDivElement, ScrollViewDragEvent>) => void;
235
- /** 滑动事件 (同时开启 enhanced 属性后生效)
265
+ /**
266
+ * 滑动事件 (同时开启 enhanced 属性后生效)
236
267
  * 仅小程序可用
237
268
  */
238
269
  onDragging?: (e: React.SyntheticEvent<HTMLDivElement, ScrollViewDragEvent>) => void;
239
- /** 滑动结束事件 (同时开启 enhanced 属性后生效)
270
+ /**
271
+ * 滑动结束事件 (同时开启 enhanced 属性后生效)
240
272
  * 仅小程序可用
241
273
  */
242
274
  onDragEnd?: (e: React.SyntheticEvent<HTMLDivElement, ScrollViewDragEvent>) => void;
243
- /** 触摸动作开始。
275
+ /**
276
+ * 触摸动作开始。
244
277
  * 仅小程序可用
245
278
  */
246
279
  onTouchStart?: (e: React.SyntheticEvent<HTMLDivElement, TouchEvent>) => void;
247
- /** 触摸动作结束。
280
+ /**
281
+ * 触摸动作结束。
248
282
  * 仅小程序可用
249
283
  */
250
284
  onTouchEnd?: (e: React.SyntheticEvent<HTMLDivElement, TouchEvent>) => void;
251
- /** 触摸动作被打断,如来电提醒、弹窗。
285
+ /**
286
+ * 触摸动作被打断,如来电提醒、弹窗。
252
287
  * 仅小程序可用
253
288
  */
254
289
  onTouchCancel?: (e: React.SyntheticEvent<HTMLDivElement, TouchEvent>) => void;
255
290
  };
256
291
  defaultComponent: D;
257
292
  }, D>;
258
- export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare const BasicScrollViewDemo: React.FC;
3
+ export declare const HorizontalScrollViewDemo: React.FC;
4
+ export declare const ScrollEventsDemo: React.FC;
5
+ export declare const ControlledScrollDemo: React.FC;
6
+ export declare const BidirectionalScrollDemo: React.FC;
7
+ export declare const ThresholdTestDemo: React.FC;