@draftbit/core 48.5.5-ee2f75.2 → 48.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (864) hide show
  1. package/README.md +32 -32
  2. package/lib/commonjs/Provider.js +1 -1
  3. package/lib/commonjs/components/AccordionGroup.js +1 -1
  4. package/lib/commonjs/components/ActionSheet/ActionSheet.js +1 -1
  5. package/lib/commonjs/components/ActionSheet/ActionSheetCancel.js +1 -1
  6. package/lib/commonjs/components/ActionSheet/ActionSheetItem.js +1 -1
  7. package/lib/commonjs/components/AspectRatio.js +1 -1
  8. package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
  9. package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js +1 -1
  10. package/lib/commonjs/components/Button.js +1 -1
  11. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  12. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +1 -1
  13. package/lib/commonjs/components/Checkbox/CheckboxRow.js +1 -1
  14. package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
  15. package/lib/commonjs/components/DatePicker/DatePickerComponent.js +1 -1
  16. package/lib/commonjs/components/DatePicker/DatePickerComponent.web.js +1 -1
  17. package/lib/commonjs/components/DeckSwiper/DeckSwiper.js +1 -1
  18. package/lib/commonjs/components/DeckSwiper/DeckSwiperCard.js +1 -1
  19. package/lib/commonjs/components/Divider.js +1 -1
  20. package/lib/commonjs/components/Elevation.js +1 -1
  21. package/lib/commonjs/components/FormRow.js +1 -1
  22. package/lib/commonjs/components/IconButton.js +1 -1
  23. package/lib/commonjs/components/Image.js +1 -1
  24. package/lib/commonjs/components/Layout/AspectRatio.js +1 -1
  25. package/lib/commonjs/components/Layout/Center.js +1 -1
  26. package/lib/commonjs/components/Layout/Circle.js +1 -1
  27. package/lib/commonjs/components/Layout/HStack.js +1 -1
  28. package/lib/commonjs/components/Layout/Spacer.js +1 -1
  29. package/lib/commonjs/components/Layout/Square.js +1 -1
  30. package/lib/commonjs/components/Layout/VStack.js +1 -1
  31. package/lib/commonjs/components/Layout/ZStack.js +1 -1
  32. package/lib/commonjs/components/Markdown.js +1 -1
  33. package/lib/commonjs/components/MediaPlayer/AudioPlayer/AudioPlayerWithInterface.js +1 -1
  34. package/lib/commonjs/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.js +1 -1
  35. package/lib/commonjs/components/MediaPlayer/AudioPlayer/index.js +1 -1
  36. package/lib/commonjs/components/MediaPlayer/VideoPlayer/VideoPlayer.js +1 -1
  37. package/lib/commonjs/components/NumberInput.js +1 -1
  38. package/lib/commonjs/components/Picker/NativePicker.js +1 -1
  39. package/lib/commonjs/components/Picker/PickerInputContainer.js +1 -1
  40. package/lib/commonjs/components/Picker/dropdown/DropDownPicker.js +1 -1
  41. package/lib/commonjs/components/Picker/dropdown/MultiSelectPicker.js +1 -1
  42. package/lib/commonjs/components/Picker/index.js +1 -1
  43. package/lib/commonjs/components/PinInput/CustomPinInputCell.js +1 -1
  44. package/lib/commonjs/components/PinInput/PinInput.js +1 -1
  45. package/lib/commonjs/components/PinInput/PinInputText.js +1 -1
  46. package/lib/commonjs/components/Portal/Portal.js +1 -1
  47. package/lib/commonjs/components/Portal/PortalHost.js +1 -1
  48. package/lib/commonjs/components/Portal/PortalManager.js +1 -1
  49. package/lib/commonjs/components/Pressable.js +1 -1
  50. package/lib/commonjs/components/Progress/CircularProgress/CircularProgress.js +1 -1
  51. package/lib/commonjs/components/Progress/CircularProgress/index.js +1 -1
  52. package/lib/commonjs/components/Progress/IndeterminateProgress.js +1 -1
  53. package/lib/commonjs/components/Progress/LinearProgress/LinearProgress.js +1 -1
  54. package/lib/commonjs/components/Progress/LinearProgress/index.js +1 -1
  55. package/lib/commonjs/components/ProgressIndicator.js +1 -1
  56. package/lib/commonjs/components/RadioButton/RadioButton.js +1 -1
  57. package/lib/commonjs/components/RadioButton/RadioButtonGroup.js +1 -1
  58. package/lib/commonjs/components/RadioButton/RadioButtonRow.js +1 -1
  59. package/lib/commonjs/components/Row.js +1 -1
  60. package/lib/commonjs/components/SVG.js +1 -1
  61. package/lib/commonjs/components/ScreenContainer.js +1 -1
  62. package/lib/commonjs/components/SectionList/SectionHeader.js +1 -1
  63. package/lib/commonjs/components/SectionList/SectionList.js +1 -1
  64. package/lib/commonjs/components/Shadow.js +1 -1
  65. package/lib/commonjs/components/Slider.js +1 -1
  66. package/lib/commonjs/components/StarRating.js +1 -1
  67. package/lib/commonjs/components/StepIndicator.js +1 -1
  68. package/lib/commonjs/components/Stepper.js +1 -1
  69. package/lib/commonjs/components/Surface.js +1 -1
  70. package/lib/commonjs/components/SwipeableItem/SwipeableItem.js +1 -1
  71. package/lib/commonjs/components/SwipeableItem/SwipeableList.js +1 -1
  72. package/lib/commonjs/components/Swiper/Swiper.js +1 -1
  73. package/lib/commonjs/components/Swiper/SwiperItem.js +1 -1
  74. package/lib/commonjs/components/Switch.js +1 -1
  75. package/lib/commonjs/components/TabView/TabView.js +1 -1
  76. package/lib/commonjs/components/TabView/TabViewItem.js +1 -1
  77. package/lib/commonjs/components/Table/Table.js +1 -1
  78. package/lib/commonjs/components/Table/TableCell.js +1 -1
  79. package/lib/commonjs/components/Table/TableRow.js +1 -1
  80. package/lib/commonjs/components/Text.js +1 -1
  81. package/lib/commonjs/components/TextField.js +1 -1
  82. package/lib/commonjs/components/TextInput.js +1 -1
  83. package/lib/commonjs/components/Touchable.js +1 -1
  84. package/lib/commonjs/components/Typography.js +1 -1
  85. package/lib/commonjs/components/YoutubePlayer/YoutubePlayer.js +1 -1
  86. package/lib/commonjs/components/YoutubePlayer/YoutubePlayer.native.js +1 -1
  87. package/lib/commonjs/deprecated-components/AccordionItem.js +1 -1
  88. package/lib/commonjs/deprecated-components/AnimatedCircularProgress.js +1 -1
  89. package/lib/commonjs/deprecated-components/AvatarEdit.js +1 -1
  90. package/lib/commonjs/deprecated-components/Banner.js +1 -1
  91. package/lib/commonjs/deprecated-components/Card.js +1 -1
  92. package/lib/commonjs/deprecated-components/CheckboxGroup.js +1 -1
  93. package/lib/commonjs/deprecated-components/CircleImage.js +1 -1
  94. package/lib/commonjs/deprecated-components/CircularProgress.js +1 -1
  95. package/lib/commonjs/deprecated-components/Container.js +1 -1
  96. package/lib/commonjs/deprecated-components/DeprecatedButton.js +1 -1
  97. package/lib/commonjs/deprecated-components/DeprecatedCardWrapper.js +1 -1
  98. package/lib/commonjs/deprecated-components/DeprecatedFAB.js +1 -1
  99. package/lib/commonjs/deprecated-components/FAB.js +1 -1
  100. package/lib/commonjs/deprecated-components/FieldSearchBarFull.js +1 -1
  101. package/lib/commonjs/deprecated-components/Layout.js +1 -1
  102. package/lib/commonjs/deprecated-components/ProgressBar.js +1 -1
  103. package/lib/commonjs/deprecated-components/ProgressCircle.js +1 -1
  104. package/lib/commonjs/deprecated-components/RadioButtonFieldGroup.js +1 -1
  105. package/lib/commonjs/deprecated-components/RowBodyIcon.js +1 -1
  106. package/lib/commonjs/deprecated-components/RowHeadlineImageCaption.js +1 -1
  107. package/lib/commonjs/deprecated-components/RowHeadlineImageIcon.js +1 -1
  108. package/lib/commonjs/deprecated-components/ToggleButton.js +1 -1
  109. package/lib/typescript/src/Provider.d.ts +10 -10
  110. package/lib/typescript/src/Provider.js +9 -9
  111. package/lib/typescript/src/components/AccordionGroup.d.ts +21 -21
  112. package/lib/typescript/src/components/AccordionGroup.js +44 -44
  113. package/lib/typescript/src/components/ActionSheet/ActionSheet.d.ts +8 -8
  114. package/lib/typescript/src/components/ActionSheet/ActionSheet.js +45 -45
  115. package/lib/typescript/src/components/ActionSheet/ActionSheetCancel.d.ts +10 -10
  116. package/lib/typescript/src/components/ActionSheet/ActionSheetCancel.js +6 -6
  117. package/lib/typescript/src/components/ActionSheet/ActionSheetItem.d.ts +10 -10
  118. package/lib/typescript/src/components/ActionSheet/ActionSheetItem.js +30 -30
  119. package/lib/typescript/src/components/ActionSheet/index.d.ts +3 -3
  120. package/lib/typescript/src/components/ActionSheet/index.js +3 -3
  121. package/lib/typescript/src/components/AspectRatio.d.ts +8 -8
  122. package/lib/typescript/src/components/AspectRatio.js +18 -18
  123. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts +28 -28
  124. package/lib/typescript/src/components/BottomSheet/BottomSheet.js +71 -71
  125. package/lib/typescript/src/components/BottomSheet/BottomSheetComponent.d.ts +169 -169
  126. package/lib/typescript/src/components/BottomSheet/BottomSheetComponent.js +437 -437
  127. package/lib/typescript/src/components/BottomSheet/index.d.ts +1 -1
  128. package/lib/typescript/src/components/BottomSheet/index.js +1 -1
  129. package/lib/typescript/src/components/Button.d.ts +12 -12
  130. package/lib/typescript/src/components/Button.js +120 -120
  131. package/lib/typescript/src/components/Checkbox/Checkbox.d.ts +19 -19
  132. package/lib/typescript/src/components/Checkbox/Checkbox.js +62 -62
  133. package/lib/typescript/src/components/Checkbox/CheckboxGroupRow.d.ts +21 -21
  134. package/lib/typescript/src/components/Checkbox/CheckboxGroupRow.js +76 -76
  135. package/lib/typescript/src/components/Checkbox/CheckboxRow.d.ts +17 -17
  136. package/lib/typescript/src/components/Checkbox/CheckboxRow.js +77 -77
  137. package/lib/typescript/src/components/Checkbox/context.d.ts +13 -13
  138. package/lib/typescript/src/components/Checkbox/context.js +14 -14
  139. package/lib/typescript/src/components/Checkbox/index.d.ts +2 -2
  140. package/lib/typescript/src/components/Checkbox/index.js +2 -2
  141. package/lib/typescript/src/components/Config.d.ts +35 -35
  142. package/lib/typescript/src/components/Config.js +64 -64
  143. package/lib/typescript/src/components/DatePicker/DatePicker.d.ts +33 -33
  144. package/lib/typescript/src/components/DatePicker/DatePicker.js +394 -389
  145. package/lib/typescript/src/components/DatePicker/DatePicker.js.map +1 -1
  146. package/lib/typescript/src/components/DatePicker/DatePickerComponent.d.ts +4 -4
  147. package/lib/typescript/src/components/DatePicker/DatePickerComponent.js +13 -13
  148. package/lib/typescript/src/components/DatePicker/DatePickerComponent.web.d.ts +4662 -4662
  149. package/lib/typescript/src/components/DatePicker/DatePickerComponent.web.js +30 -30
  150. package/lib/typescript/src/components/DatePicker/DatePickerComponentType.d.ts +11 -11
  151. package/lib/typescript/src/components/DatePicker/DatePickerComponentType.js +1 -1
  152. package/lib/typescript/src/components/DeckSwiper/DeckSwiper.d.ts +27 -27
  153. package/lib/typescript/src/components/DeckSwiper/DeckSwiper.js +90 -90
  154. package/lib/typescript/src/components/DeckSwiper/DeckSwiperCard.d.ts +11 -11
  155. package/lib/typescript/src/components/DeckSwiper/DeckSwiperCard.js +20 -20
  156. package/lib/typescript/src/components/DeckSwiper/index.d.ts +2 -2
  157. package/lib/typescript/src/components/DeckSwiper/index.js +2 -2
  158. package/lib/typescript/src/components/Divider.d.ts +12 -12
  159. package/lib/typescript/src/components/Divider.js +13 -13
  160. package/lib/typescript/src/components/Elevation.d.ts +11 -11
  161. package/lib/typescript/src/components/Elevation.js +20 -20
  162. package/lib/typescript/src/components/FormRow.d.ts +13 -13
  163. package/lib/typescript/src/components/FormRow.js +19 -19
  164. package/lib/typescript/src/components/IconButton.d.ts +20 -20
  165. package/lib/typescript/src/components/IconButton.js +35 -35
  166. package/lib/typescript/src/components/Image.d.ts +4 -4
  167. package/lib/typescript/src/components/Image.js +47 -47
  168. package/lib/typescript/src/components/Layout/AspectRatio.d.ts +7 -7
  169. package/lib/typescript/src/components/Layout/AspectRatio.js +6 -6
  170. package/lib/typescript/src/components/Layout/Center.d.ts +4 -4
  171. package/lib/typescript/src/components/Layout/Center.js +14 -14
  172. package/lib/typescript/src/components/Layout/Circle.d.ts +7 -7
  173. package/lib/typescript/src/components/Layout/Circle.js +15 -15
  174. package/lib/typescript/src/components/Layout/HStack.d.ts +4 -4
  175. package/lib/typescript/src/components/Layout/HStack.js +11 -11
  176. package/lib/typescript/src/components/Layout/LayoutCommon.d.ts +15 -15
  177. package/lib/typescript/src/components/Layout/LayoutCommon.js +7 -7
  178. package/lib/typescript/src/components/Layout/Spacer.d.ts +11 -11
  179. package/lib/typescript/src/components/Layout/Spacer.js +14 -14
  180. package/lib/typescript/src/components/Layout/Square.d.ts +7 -7
  181. package/lib/typescript/src/components/Layout/Square.js +24 -24
  182. package/lib/typescript/src/components/Layout/VStack.d.ts +4 -4
  183. package/lib/typescript/src/components/Layout/VStack.js +11 -11
  184. package/lib/typescript/src/components/Layout/ZStack.d.ts +7 -7
  185. package/lib/typescript/src/components/Layout/ZStack.js +57 -57
  186. package/lib/typescript/src/components/Layout/index.d.ts +8 -8
  187. package/lib/typescript/src/components/Layout/index.js +8 -8
  188. package/lib/typescript/src/components/Markdown.d.ts +7 -7
  189. package/lib/typescript/src/components/Markdown.js +10 -10
  190. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/AudioPlayerCommon.d.ts +22 -22
  191. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/AudioPlayerCommon.js +1 -1
  192. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/AudioPlayerWithInterface.d.ts +7 -7
  193. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/AudioPlayerWithInterface.js +125 -125
  194. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.d.ts +9 -9
  195. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.js +92 -92
  196. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/index.d.ts +11 -11
  197. package/lib/typescript/src/components/MediaPlayer/AudioPlayer/index.js +14 -14
  198. package/lib/typescript/src/components/MediaPlayer/MediaPlaybackWrapper.d.ts +15 -15
  199. package/lib/typescript/src/components/MediaPlayer/MediaPlaybackWrapper.js +41 -41
  200. package/lib/typescript/src/components/MediaPlayer/MediaPlayerCommon.d.ts +23 -23
  201. package/lib/typescript/src/components/MediaPlayer/MediaPlayerCommon.js +23 -23
  202. package/lib/typescript/src/components/MediaPlayer/VideoPlayer/VideoPlayer.d.ts +15 -15
  203. package/lib/typescript/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js +74 -74
  204. package/lib/typescript/src/components/MediaPlayer/VideoPlayer/index.d.ts +2 -2
  205. package/lib/typescript/src/components/MediaPlayer/VideoPlayer/index.js +1 -1
  206. package/lib/typescript/src/components/NumberInput.d.ts +11 -11
  207. package/lib/typescript/src/components/NumberInput.js +59 -59
  208. package/lib/typescript/src/components/Picker/NativePicker.d.ts +6 -6
  209. package/lib/typescript/src/components/Picker/NativePicker.js +94 -94
  210. package/lib/typescript/src/components/Picker/PickerCommon.d.ts +46 -46
  211. package/lib/typescript/src/components/Picker/PickerCommon.js +24 -24
  212. package/lib/typescript/src/components/Picker/PickerInputContainer.d.ts +11 -11
  213. package/lib/typescript/src/components/Picker/PickerInputContainer.js +36 -36
  214. package/lib/typescript/src/components/Picker/dropdown/DropDownPicker.d.ts +6 -6
  215. package/lib/typescript/src/components/Picker/dropdown/DropDownPicker.js +66 -64
  216. package/lib/typescript/src/components/Picker/dropdown/DropDownPicker.js.map +1 -1
  217. package/lib/typescript/src/components/Picker/dropdown/MultiSelectPicker.d.ts +6 -6
  218. package/lib/typescript/src/components/Picker/dropdown/MultiSelectPicker.js +8 -8
  219. package/lib/typescript/src/components/Picker/dropdown/PickerItem.d.ts +14 -14
  220. package/lib/typescript/src/components/Picker/dropdown/PickerItem.js +8 -8
  221. package/lib/typescript/src/components/Picker/index.d.ts +10 -10
  222. package/lib/typescript/src/components/Picker/index.js +17 -17
  223. package/lib/typescript/src/components/PinInput/CustomPinInputCell.d.ts +12 -12
  224. package/lib/typescript/src/components/PinInput/CustomPinInputCell.js +10 -10
  225. package/lib/typescript/src/components/PinInput/PinInput.d.ts +26 -26
  226. package/lib/typescript/src/components/PinInput/PinInput.js +80 -80
  227. package/lib/typescript/src/components/PinInput/PinInputText.d.ts +13 -13
  228. package/lib/typescript/src/components/PinInput/PinInputText.js +13 -13
  229. package/lib/typescript/src/components/PinInput/index.d.ts +3 -3
  230. package/lib/typescript/src/components/PinInput/index.js +3 -3
  231. package/lib/typescript/src/components/Portal/Portal.d.ts +42 -42
  232. package/lib/typescript/src/components/Portal/Portal.js +35 -35
  233. package/lib/typescript/src/components/Portal/PortalConsumer.d.ts +15 -15
  234. package/lib/typescript/src/components/Portal/PortalConsumer.js +27 -27
  235. package/lib/typescript/src/components/Portal/PortalHost.d.ts +47 -47
  236. package/lib/typescript/src/components/Portal/PortalHost.js +107 -107
  237. package/lib/typescript/src/components/Portal/PortalManager.d.ts +18 -18
  238. package/lib/typescript/src/components/Portal/PortalManager.js +32 -32
  239. package/lib/typescript/src/components/Pressable.d.ts +9 -9
  240. package/lib/typescript/src/components/Pressable.js +12 -12
  241. package/lib/typescript/src/components/Progress/CircularProgress/CircularProgress.d.ts +6 -6
  242. package/lib/typescript/src/components/Progress/CircularProgress/CircularProgress.js +102 -102
  243. package/lib/typescript/src/components/Progress/CircularProgress/index.d.ts +6 -6
  244. package/lib/typescript/src/components/Progress/CircularProgress/index.js +13 -13
  245. package/lib/typescript/src/components/Progress/IndeterminateProgress.d.ts +7 -7
  246. package/lib/typescript/src/components/Progress/IndeterminateProgress.js +38 -38
  247. package/lib/typescript/src/components/Progress/LinearProgress/LinearProgress.d.ts +6 -6
  248. package/lib/typescript/src/components/Progress/LinearProgress/LinearProgress.js +55 -55
  249. package/lib/typescript/src/components/Progress/LinearProgress/index.d.ts +6 -6
  250. package/lib/typescript/src/components/Progress/LinearProgress/index.js +13 -13
  251. package/lib/typescript/src/components/Progress/ProgressCommon.d.ts +40 -40
  252. package/lib/typescript/src/components/Progress/ProgressCommon.js +1 -1
  253. package/lib/typescript/src/components/ProgressIndicator.d.ts +23 -23
  254. package/lib/typescript/src/components/ProgressIndicator.js +27 -27
  255. package/lib/typescript/src/components/RadioButton/RadioButton.d.ts +17 -17
  256. package/lib/typescript/src/components/RadioButton/RadioButton.js +17 -17
  257. package/lib/typescript/src/components/RadioButton/RadioButtonGroup.d.ts +15 -15
  258. package/lib/typescript/src/components/RadioButton/RadioButtonGroup.js +43 -43
  259. package/lib/typescript/src/components/RadioButton/RadioButtonRow.d.ts +21 -21
  260. package/lib/typescript/src/components/RadioButton/RadioButtonRow.js +76 -76
  261. package/lib/typescript/src/components/RadioButton/context.d.ts +13 -13
  262. package/lib/typescript/src/components/RadioButton/context.js +14 -14
  263. package/lib/typescript/src/components/RadioButton/index.d.ts +3 -3
  264. package/lib/typescript/src/components/RadioButton/index.js +3 -3
  265. package/lib/typescript/src/components/Row.d.ts +20 -20
  266. package/lib/typescript/src/components/Row.js +48 -48
  267. package/lib/typescript/src/components/SVG.d.ts +8 -8
  268. package/lib/typescript/src/components/SVG.js +13 -13
  269. package/lib/typescript/src/components/ScreenContainer.d.ts +17 -17
  270. package/lib/typescript/src/components/ScreenContainer.js +35 -35
  271. package/lib/typescript/src/components/SectionList/SectionHeader.d.ts +15 -15
  272. package/lib/typescript/src/components/SectionList/SectionHeader.js +13 -13
  273. package/lib/typescript/src/components/SectionList/SectionList.d.ts +22 -22
  274. package/lib/typescript/src/components/SectionList/SectionList.js +110 -110
  275. package/lib/typescript/src/components/SectionList/index.d.ts +2 -2
  276. package/lib/typescript/src/components/SectionList/index.js +2 -2
  277. package/lib/typescript/src/components/Shadow.d.ts +23 -23
  278. package/lib/typescript/src/components/Shadow.js +25 -25
  279. package/lib/typescript/src/components/Slider.d.ts +27 -27
  280. package/lib/typescript/src/components/Slider.js +63 -63
  281. package/lib/typescript/src/components/StarRating.d.ts +20 -20
  282. package/lib/typescript/src/components/StarRating.js +50 -50
  283. package/lib/typescript/src/components/StepIndicator.d.ts +53 -53
  284. package/lib/typescript/src/components/StepIndicator.js +346 -346
  285. package/lib/typescript/src/components/Stepper.d.ts +19 -19
  286. package/lib/typescript/src/components/Stepper.js +41 -41
  287. package/lib/typescript/src/components/Surface.d.ts +12 -12
  288. package/lib/typescript/src/components/Surface.js +32 -32
  289. package/lib/typescript/src/components/SwipeableItem/SwipeableItem.d.ts +43 -43
  290. package/lib/typescript/src/components/SwipeableItem/SwipeableItem.js +118 -118
  291. package/lib/typescript/src/components/SwipeableItem/SwipeableItemButton.d.ts +5 -5
  292. package/lib/typescript/src/components/SwipeableItem/SwipeableItemButton.js +5 -5
  293. package/lib/typescript/src/components/SwipeableItem/SwipeableItemCommon.d.ts +31 -31
  294. package/lib/typescript/src/components/SwipeableItem/SwipeableItemCommon.js +43 -43
  295. package/lib/typescript/src/components/SwipeableItem/SwipeableList.d.ts +17 -17
  296. package/lib/typescript/src/components/SwipeableItem/SwipeableList.js +28 -28
  297. package/lib/typescript/src/components/SwipeableItem/index.d.ts +3 -3
  298. package/lib/typescript/src/components/SwipeableItem/index.js +3 -3
  299. package/lib/typescript/src/components/Swiper/Swiper.d.ts +29 -29
  300. package/lib/typescript/src/components/Swiper/Swiper.js +73 -73
  301. package/lib/typescript/src/components/Swiper/SwiperItem.d.ts +8 -8
  302. package/lib/typescript/src/components/Swiper/SwiperItem.js +9 -9
  303. package/lib/typescript/src/components/Swiper/index.d.ts +2 -2
  304. package/lib/typescript/src/components/Swiper/index.js +2 -2
  305. package/lib/typescript/src/components/Switch.d.ts +50 -50
  306. package/lib/typescript/src/components/Switch.js +56 -56
  307. package/lib/typescript/src/components/TabView/TabView.d.ts +27 -27
  308. package/lib/typescript/src/components/TabView/TabView.js +49 -54
  309. package/lib/typescript/src/components/TabView/TabView.js.map +1 -1
  310. package/lib/typescript/src/components/TabView/TabViewItem.d.ts +10 -10
  311. package/lib/typescript/src/components/TabView/TabViewItem.js +11 -11
  312. package/lib/typescript/src/components/TabView/index.d.ts +2 -2
  313. package/lib/typescript/src/components/TabView/index.js +2 -2
  314. package/lib/typescript/src/components/Table/Table.d.ts +18 -18
  315. package/lib/typescript/src/components/Table/Table.js +93 -93
  316. package/lib/typescript/src/components/Table/TableCell.d.ts +9 -9
  317. package/lib/typescript/src/components/Table/TableCell.js +33 -33
  318. package/lib/typescript/src/components/Table/TableCommon.d.ts +19 -19
  319. package/lib/typescript/src/components/Table/TableCommon.js +12 -12
  320. package/lib/typescript/src/components/Table/TableRow.d.ts +14 -14
  321. package/lib/typescript/src/components/Table/TableRow.js +39 -39
  322. package/lib/typescript/src/components/Table/index.d.ts +3 -3
  323. package/lib/typescript/src/components/Table/index.js +3 -3
  324. package/lib/typescript/src/components/Text.d.ts +19 -19
  325. package/lib/typescript/src/components/Text.js +33 -33
  326. package/lib/typescript/src/components/TextField.d.ts +72 -72
  327. package/lib/typescript/src/components/TextField.js +413 -413
  328. package/lib/typescript/src/components/TextInput.d.ts +8 -8
  329. package/lib/typescript/src/components/TextInput.js +14 -14
  330. package/lib/typescript/src/components/Touchable.d.ts +9 -9
  331. package/lib/typescript/src/components/Touchable.js +12 -12
  332. package/lib/typescript/src/components/Touchable.web.d.ts +2 -2
  333. package/lib/typescript/src/components/Touchable.web.js +2 -2
  334. package/lib/typescript/src/components/Typography.d.ts +21 -21
  335. package/lib/typescript/src/components/Typography.js +36 -36
  336. package/lib/typescript/src/components/YoutubePlayer/YoutubePlayer.d.ts +4 -4
  337. package/lib/typescript/src/components/YoutubePlayer/YoutubePlayer.js +20 -20
  338. package/lib/typescript/src/components/YoutubePlayer/YoutubePlayer.native.d.ts +4 -4
  339. package/lib/typescript/src/components/YoutubePlayer/YoutubePlayer.native.js +9 -9
  340. package/lib/typescript/src/components/YoutubePlayer/YoutubePlayerProps.d.ts +7 -7
  341. package/lib/typescript/src/components/YoutubePlayer/YoutubePlayerProps.js +1 -1
  342. package/lib/typescript/src/components/YoutubePlayer/index.d.ts +1 -1
  343. package/lib/typescript/src/components/YoutubePlayer/index.js +1 -1
  344. package/lib/typescript/src/components/useAuthState.d.ts +4 -4
  345. package/lib/typescript/src/components/useAuthState.js +34 -34
  346. package/lib/typescript/src/constants.d.ts +1 -1
  347. package/lib/typescript/src/constants.js +10 -10
  348. package/lib/typescript/src/deprecated-components/AccordionItem.d.ts +15 -15
  349. package/lib/typescript/src/deprecated-components/AccordionItem.js +35 -35
  350. package/lib/typescript/src/deprecated-components/AnimatedCircularProgress.d.ts +16 -16
  351. package/lib/typescript/src/deprecated-components/AnimatedCircularProgress.js +46 -46
  352. package/lib/typescript/src/deprecated-components/AvatarEdit.d.ts +15 -15
  353. package/lib/typescript/src/deprecated-components/AvatarEdit.js +33 -33
  354. package/lib/typescript/src/deprecated-components/Banner.d.ts +22 -22
  355. package/lib/typescript/src/deprecated-components/Banner.js +112 -112
  356. package/lib/typescript/src/deprecated-components/Card.d.ts +42 -42
  357. package/lib/typescript/src/deprecated-components/Card.js +60 -60
  358. package/lib/typescript/src/deprecated-components/CheckboxGroup.d.ts +17 -17
  359. package/lib/typescript/src/deprecated-components/CheckboxGroup.js +24 -24
  360. package/lib/typescript/src/deprecated-components/CircleImage.d.ts +12 -12
  361. package/lib/typescript/src/deprecated-components/CircleImage.js +11 -11
  362. package/lib/typescript/src/deprecated-components/CircularProgress.d.ts +45 -45
  363. package/lib/typescript/src/deprecated-components/CircularProgress.js +84 -84
  364. package/lib/typescript/src/deprecated-components/Container.d.ts +20 -20
  365. package/lib/typescript/src/deprecated-components/Container.js +46 -46
  366. package/lib/typescript/src/deprecated-components/DeprecatedButton.d.ts +53 -53
  367. package/lib/typescript/src/deprecated-components/DeprecatedButton.js +86 -86
  368. package/lib/typescript/src/deprecated-components/DeprecatedCardWrapper.d.ts +14 -14
  369. package/lib/typescript/src/deprecated-components/DeprecatedCardWrapper.js +21 -21
  370. package/lib/typescript/src/deprecated-components/DeprecatedFAB.d.ts +55 -55
  371. package/lib/typescript/src/deprecated-components/DeprecatedFAB.js +117 -117
  372. package/lib/typescript/src/deprecated-components/FAB.d.ts +19 -22
  373. package/lib/typescript/src/deprecated-components/FAB.js +49 -49
  374. package/lib/typescript/src/deprecated-components/FieldSearchBarFull.d.ts +19 -19
  375. package/lib/typescript/src/deprecated-components/FieldSearchBarFull.js +56 -56
  376. package/lib/typescript/src/deprecated-components/Layout.d.ts +60 -60
  377. package/lib/typescript/src/deprecated-components/Layout.js +68 -68
  378. package/lib/typescript/src/deprecated-components/ProgressBar.d.ts +37 -37
  379. package/lib/typescript/src/deprecated-components/ProgressBar.js +121 -121
  380. package/lib/typescript/src/deprecated-components/ProgressCircle.d.ts +20 -20
  381. package/lib/typescript/src/deprecated-components/ProgressCircle.js +16 -16
  382. package/lib/typescript/src/deprecated-components/RadioButtonFieldGroup.d.ts +12 -12
  383. package/lib/typescript/src/deprecated-components/RadioButtonFieldGroup.js +20 -20
  384. package/lib/typescript/src/deprecated-components/RowBodyIcon.d.ts +15 -15
  385. package/lib/typescript/src/deprecated-components/RowBodyIcon.js +11 -11
  386. package/lib/typescript/src/deprecated-components/RowHeadlineImageCaption.d.ts +15 -15
  387. package/lib/typescript/src/deprecated-components/RowHeadlineImageCaption.js +15 -15
  388. package/lib/typescript/src/deprecated-components/RowHeadlineImageIcon.d.ts +17 -17
  389. package/lib/typescript/src/deprecated-components/RowHeadlineImageIcon.js +17 -17
  390. package/lib/typescript/src/deprecated-components/ToggleButton.d.ts +24 -24
  391. package/lib/typescript/src/deprecated-components/ToggleButton.js +42 -42
  392. package/lib/typescript/src/hooks.d.ts +2 -2
  393. package/lib/typescript/src/hooks.js +24 -24
  394. package/lib/typescript/src/index.d.ts +64 -64
  395. package/lib/typescript/src/index.js +65 -65
  396. package/lib/typescript/src/interfaces/Icon.d.ts +21 -21
  397. package/lib/typescript/src/interfaces/Icon.js +8 -8
  398. package/lib/typescript/src/styles/DarkTheme.d.ts +3 -3
  399. package/lib/typescript/src/styles/DarkTheme.js +26 -26
  400. package/lib/typescript/src/styles/DefaultTheme.d.ts +1553 -1553
  401. package/lib/typescript/src/styles/DefaultTheme.js +111 -111
  402. package/lib/typescript/src/styles/fonts.d.ts +5 -5
  403. package/lib/typescript/src/styles/fonts.js +62 -62
  404. package/lib/typescript/src/styles/overlay.d.ts +2 -2
  405. package/lib/typescript/src/styles/overlay.js +60 -60
  406. package/lib/typescript/src/styles/shadow.d.ts +23 -23
  407. package/lib/typescript/src/styles/shadow.js +51 -51
  408. package/lib/typescript/src/theming.d.ts +8 -8
  409. package/lib/typescript/src/theming.js +3 -3
  410. package/lib/typescript/src/utilities.d.ts +48 -48
  411. package/lib/typescript/src/utilities.js +200 -200
  412. package/lib/typescript/tsconfig.tsbuildinfo +1 -1
  413. package/package.json +105 -106
  414. package/src/Provider.tsx +22 -22
  415. package/src/components/AccordionGroup.tsx +111 -111
  416. package/src/components/ActionSheet/ActionSheet.tsx +69 -69
  417. package/src/components/ActionSheet/ActionSheetCancel.tsx +28 -28
  418. package/src/components/ActionSheet/ActionSheetItem.tsx +59 -59
  419. package/src/components/ActionSheet/index.tsx +3 -3
  420. package/src/components/AspectRatio.tsx +40 -40
  421. package/src/components/BottomSheet/BottomSheet.tsx +160 -160
  422. package/src/components/BottomSheet/BottomSheetComponent.tsx +895 -895
  423. package/src/components/BottomSheet/index.ts +1 -1
  424. package/src/components/Button.tsx +224 -224
  425. package/src/components/Checkbox/Checkbox.tsx +135 -135
  426. package/src/components/Checkbox/CheckboxGroupRow.tsx +152 -152
  427. package/src/components/Checkbox/CheckboxRow.tsx +157 -157
  428. package/src/components/Checkbox/context.ts +22 -22
  429. package/src/components/Checkbox/index.ts +2 -2
  430. package/src/components/Config.ts +82 -82
  431. package/src/components/DatePicker/DatePicker.tsx +604 -593
  432. package/src/components/DatePicker/DatePickerComponent.tsx +43 -43
  433. package/src/components/DatePicker/DatePickerComponent.web.tsx +63 -63
  434. package/src/components/DatePicker/DatePickerComponentType.ts +12 -12
  435. package/src/components/DeckSwiper/DeckSwiper.tsx +181 -181
  436. package/src/components/DeckSwiper/DeckSwiperCard.tsx +37 -37
  437. package/src/components/DeckSwiper/index.tsx +2 -2
  438. package/src/components/Divider.tsx +32 -32
  439. package/src/components/Elevation.tsx +48 -48
  440. package/src/components/FormRow.tsx +47 -47
  441. package/src/components/IconButton.tsx +88 -88
  442. package/src/components/Image.tsx +91 -91
  443. package/src/components/Layout/AspectRatio.tsx +16 -16
  444. package/src/components/Layout/Center.tsx +19 -19
  445. package/src/components/Layout/Circle.tsx +32 -32
  446. package/src/components/Layout/HStack.tsx +14 -14
  447. package/src/components/Layout/LayoutCommon.ts +25 -25
  448. package/src/components/Layout/Spacer.tsx +34 -34
  449. package/src/components/Layout/Square.tsx +41 -41
  450. package/src/components/Layout/VStack.tsx +14 -14
  451. package/src/components/Layout/ZStack.tsx +99 -99
  452. package/src/components/Layout/index.tsx +8 -8
  453. package/src/components/Markdown.tsx +22 -22
  454. package/src/components/MediaPlayer/AudioPlayer/AudioPlayerCommon.ts +25 -25
  455. package/src/components/MediaPlayer/AudioPlayer/AudioPlayerWithInterface.tsx +219 -219
  456. package/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.tsx +142 -142
  457. package/src/components/MediaPlayer/AudioPlayer/index.tsx +30 -30
  458. package/src/components/MediaPlayer/MediaPlaybackWrapper.tsx +68 -68
  459. package/src/components/MediaPlayer/MediaPlayerCommon.ts +52 -52
  460. package/src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx +138 -138
  461. package/src/components/MediaPlayer/VideoPlayer/index.ts +2 -2
  462. package/src/components/NumberInput.tsx +103 -103
  463. package/src/components/Picker/NativePicker.tsx +158 -158
  464. package/src/components/Picker/PickerCommon.ts +86 -86
  465. package/src/components/Picker/PickerInputContainer.tsx +90 -90
  466. package/src/components/Picker/dropdown/DropDownPicker.tsx +157 -155
  467. package/src/components/Picker/dropdown/MultiSelectPicker.tsx +16 -16
  468. package/src/components/Picker/dropdown/PickerItem.tsx +19 -19
  469. package/src/components/Picker/index.tsx +27 -27
  470. package/src/components/PinInput/CustomPinInputCell.tsx +19 -19
  471. package/src/components/PinInput/PinInput.tsx +172 -172
  472. package/src/components/PinInput/PinInputText.tsx +37 -37
  473. package/src/components/PinInput/index.tsx +3 -3
  474. package/src/components/Portal/Portal.tsx +59 -59
  475. package/src/components/Portal/PortalConsumer.tsx +46 -46
  476. package/src/components/Portal/PortalHost.tsx +144 -144
  477. package/src/components/Portal/PortalManager.tsx +54 -54
  478. package/src/components/Pressable.tsx +44 -44
  479. package/src/components/Progress/CircularProgress/CircularProgress.tsx +205 -205
  480. package/src/components/Progress/CircularProgress/index.tsx +28 -28
  481. package/src/components/Progress/IndeterminateProgress.tsx +76 -76
  482. package/src/components/Progress/LinearProgress/LinearProgress.tsx +133 -133
  483. package/src/components/Progress/LinearProgress/index.tsx +25 -25
  484. package/src/components/Progress/ProgressCommon.ts +44 -44
  485. package/src/components/ProgressIndicator.tsx +71 -71
  486. package/src/components/RadioButton/RadioButton.tsx +63 -63
  487. package/src/components/RadioButton/RadioButtonGroup.tsx +79 -79
  488. package/src/components/RadioButton/RadioButtonRow.tsx +150 -150
  489. package/src/components/RadioButton/context.tsx +21 -21
  490. package/src/components/RadioButton/index.tsx +3 -3
  491. package/src/components/Row.tsx +108 -108
  492. package/src/components/SVG.tsx +35 -35
  493. package/src/components/ScreenContainer.tsx +86 -86
  494. package/src/components/SectionList/SectionHeader.tsx +37 -37
  495. package/src/components/SectionList/SectionList.tsx +205 -205
  496. package/src/components/SectionList/index.tsx +2 -2
  497. package/src/components/Shadow.tsx +74 -74
  498. package/src/components/Slider.tsx +137 -137
  499. package/src/components/StarRating.tsx +118 -118
  500. package/src/components/StepIndicator.tsx +494 -494
  501. package/src/components/Stepper.tsx +101 -101
  502. package/src/components/Surface.tsx +68 -68
  503. package/src/components/SwipeableItem/SwipeableItem.tsx +330 -330
  504. package/src/components/SwipeableItem/SwipeableItemButton.tsx +11 -11
  505. package/src/components/SwipeableItem/SwipeableItemCommon.ts +81 -81
  506. package/src/components/SwipeableItem/SwipeableList.tsx +62 -62
  507. package/src/components/SwipeableItem/index.tsx +3 -3
  508. package/src/components/Swiper/Swiper.tsx +142 -142
  509. package/src/components/Swiper/SwiperItem.tsx +19 -19
  510. package/src/components/Swiper/index.tsx +2 -2
  511. package/src/components/Switch.tsx +149 -149
  512. package/src/components/TabView/TabView.tsx +151 -156
  513. package/src/components/TabView/TabViewItem.tsx +24 -24
  514. package/src/components/TabView/index.tsx +2 -2
  515. package/src/components/Table/Table.tsx +176 -176
  516. package/src/components/Table/TableCell.tsx +69 -69
  517. package/src/components/Table/TableCommon.ts +40 -40
  518. package/src/components/Table/TableRow.tsx +83 -83
  519. package/src/components/Table/index.tsx +3 -3
  520. package/src/components/Text.tsx +65 -65
  521. package/src/components/TextField.tsx +616 -616
  522. package/src/components/TextInput.tsx +35 -35
  523. package/src/components/Touchable.tsx +40 -40
  524. package/src/components/Touchable.web.tsx +3 -3
  525. package/src/components/Typography.tsx +67 -67
  526. package/src/components/YoutubePlayer/YoutubePlayer.native.tsx +28 -28
  527. package/src/components/YoutubePlayer/YoutubePlayer.tsx +36 -36
  528. package/src/components/YoutubePlayer/YoutubePlayerProps.ts +8 -8
  529. package/src/components/YoutubePlayer/index.ts +1 -1
  530. package/src/components/useAuthState.tsx +41 -41
  531. package/src/constants.ts +13 -13
  532. package/src/deprecated-components/AccordionItem.tsx +77 -77
  533. package/src/deprecated-components/AnimatedCircularProgress.tsx +104 -104
  534. package/src/deprecated-components/AvatarEdit.tsx +67 -67
  535. package/src/deprecated-components/Banner.tsx +207 -207
  536. package/src/deprecated-components/Card.tsx +164 -164
  537. package/src/deprecated-components/CheckboxGroup.tsx +53 -53
  538. package/src/deprecated-components/CircleImage.tsx +36 -36
  539. package/src/deprecated-components/CircularProgress.tsx +191 -191
  540. package/src/deprecated-components/Container.tsx +126 -126
  541. package/src/deprecated-components/DeprecatedButton.tsx +193 -193
  542. package/src/deprecated-components/DeprecatedCardWrapper.tsx +49 -49
  543. package/src/deprecated-components/DeprecatedFAB.tsx +234 -234
  544. package/src/deprecated-components/FAB.tsx +111 -111
  545. package/src/deprecated-components/FieldSearchBarFull.tsx +129 -129
  546. package/src/deprecated-components/Layout.tsx +192 -192
  547. package/src/deprecated-components/ProgressBar.tsx +194 -194
  548. package/src/deprecated-components/ProgressCircle.tsx +67 -67
  549. package/src/deprecated-components/RadioButtonFieldGroup.tsx +46 -46
  550. package/src/deprecated-components/RowBodyIcon.tsx +50 -50
  551. package/src/deprecated-components/RowHeadlineImageCaption.tsx +52 -52
  552. package/src/deprecated-components/RowHeadlineImageIcon.tsx +64 -64
  553. package/src/deprecated-components/ToggleButton.tsx +97 -97
  554. package/src/hooks.ts +31 -31
  555. package/src/index.tsx +103 -103
  556. package/src/interfaces/Icon.ts +31 -31
  557. package/src/styles/DarkTheme.tsx +30 -30
  558. package/src/styles/DefaultTheme.tsx +114 -114
  559. package/src/styles/fonts.tsx +67 -67
  560. package/src/styles/overlay.tsx +69 -69
  561. package/src/styles/shadow.tsx +55 -55
  562. package/src/theming.tsx +6 -6
  563. package/src/utilities.ts +295 -295
  564. package/LICENSE +0 -21
  565. package/src/Provider.js +0 -10
  566. package/src/Provider.js.map +0 -1
  567. package/src/components/AccordionGroup.js +0 -45
  568. package/src/components/AccordionGroup.js.map +0 -1
  569. package/src/components/ActionSheet/ActionSheet.js +0 -46
  570. package/src/components/ActionSheet/ActionSheet.js.map +0 -1
  571. package/src/components/ActionSheet/ActionSheetCancel.js +0 -7
  572. package/src/components/ActionSheet/ActionSheetCancel.js.map +0 -1
  573. package/src/components/ActionSheet/ActionSheetItem.js +0 -31
  574. package/src/components/ActionSheet/ActionSheetItem.js.map +0 -1
  575. package/src/components/ActionSheet/index.js +0 -4
  576. package/src/components/ActionSheet/index.js.map +0 -1
  577. package/src/components/AspectRatio.js +0 -19
  578. package/src/components/AspectRatio.js.map +0 -1
  579. package/src/components/BottomSheet/BottomSheet.js +0 -72
  580. package/src/components/BottomSheet/BottomSheet.js.map +0 -1
  581. package/src/components/BottomSheet/BottomSheetComponent.js +0 -438
  582. package/src/components/BottomSheet/BottomSheetComponent.js.map +0 -1
  583. package/src/components/BottomSheet/index.js +0 -2
  584. package/src/components/BottomSheet/index.js.map +0 -1
  585. package/src/components/Button.js +0 -121
  586. package/src/components/Button.js.map +0 -1
  587. package/src/components/Checkbox/Checkbox.js +0 -63
  588. package/src/components/Checkbox/Checkbox.js.map +0 -1
  589. package/src/components/Checkbox/CheckboxGroupRow.js +0 -77
  590. package/src/components/Checkbox/CheckboxGroupRow.js.map +0 -1
  591. package/src/components/Checkbox/CheckboxRow.js +0 -78
  592. package/src/components/Checkbox/CheckboxRow.js.map +0 -1
  593. package/src/components/Checkbox/context.js +0 -15
  594. package/src/components/Checkbox/context.js.map +0 -1
  595. package/src/components/Checkbox/index.js +0 -3
  596. package/src/components/Checkbox/index.js.map +0 -1
  597. package/src/components/Config.js +0 -65
  598. package/src/components/Config.js.map +0 -1
  599. package/src/components/DatePicker/DatePicker.js +0 -390
  600. package/src/components/DatePicker/DatePicker.js.map +0 -1
  601. package/src/components/DatePicker/DatePickerComponent.js +0 -14
  602. package/src/components/DatePicker/DatePickerComponent.js.map +0 -1
  603. package/src/components/DatePicker/DatePickerComponent.web.js +0 -31
  604. package/src/components/DatePicker/DatePickerComponent.web.js.map +0 -1
  605. package/src/components/DatePicker/DatePickerComponentType.js +0 -2
  606. package/src/components/DatePicker/DatePickerComponentType.js.map +0 -1
  607. package/src/components/DeckSwiper/DeckSwiper.js +0 -91
  608. package/src/components/DeckSwiper/DeckSwiper.js.map +0 -1
  609. package/src/components/DeckSwiper/DeckSwiperCard.js +0 -21
  610. package/src/components/DeckSwiper/DeckSwiperCard.js.map +0 -1
  611. package/src/components/DeckSwiper/index.js +0 -3
  612. package/src/components/DeckSwiper/index.js.map +0 -1
  613. package/src/components/Divider.js +0 -14
  614. package/src/components/Divider.js.map +0 -1
  615. package/src/components/Elevation.js +0 -21
  616. package/src/components/Elevation.js.map +0 -1
  617. package/src/components/FormRow.js +0 -20
  618. package/src/components/FormRow.js.map +0 -1
  619. package/src/components/IconButton.js +0 -36
  620. package/src/components/IconButton.js.map +0 -1
  621. package/src/components/Image.js +0 -48
  622. package/src/components/Image.js.map +0 -1
  623. package/src/components/Layout/AspectRatio.js +0 -7
  624. package/src/components/Layout/AspectRatio.js.map +0 -1
  625. package/src/components/Layout/Center.js +0 -15
  626. package/src/components/Layout/Center.js.map +0 -1
  627. package/src/components/Layout/Circle.js +0 -16
  628. package/src/components/Layout/Circle.js.map +0 -1
  629. package/src/components/Layout/HStack.js +0 -12
  630. package/src/components/Layout/HStack.js.map +0 -1
  631. package/src/components/Layout/LayoutCommon.js +0 -8
  632. package/src/components/Layout/LayoutCommon.js.map +0 -1
  633. package/src/components/Layout/Spacer.js +0 -15
  634. package/src/components/Layout/Spacer.js.map +0 -1
  635. package/src/components/Layout/Square.js +0 -25
  636. package/src/components/Layout/Square.js.map +0 -1
  637. package/src/components/Layout/VStack.js +0 -12
  638. package/src/components/Layout/VStack.js.map +0 -1
  639. package/src/components/Layout/ZStack.js +0 -58
  640. package/src/components/Layout/ZStack.js.map +0 -1
  641. package/src/components/Layout/index.js +0 -9
  642. package/src/components/Layout/index.js.map +0 -1
  643. package/src/components/Markdown.js +0 -11
  644. package/src/components/Markdown.js.map +0 -1
  645. package/src/components/MediaPlayer/AudioPlayer/AudioPlayerCommon.js +0 -2
  646. package/src/components/MediaPlayer/AudioPlayer/AudioPlayerCommon.js.map +0 -1
  647. package/src/components/MediaPlayer/AudioPlayer/AudioPlayerWithInterface.js +0 -126
  648. package/src/components/MediaPlayer/AudioPlayer/AudioPlayerWithInterface.js.map +0 -1
  649. package/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.js +0 -93
  650. package/src/components/MediaPlayer/AudioPlayer/HeadlessAudioPlayer.js.map +0 -1
  651. package/src/components/MediaPlayer/AudioPlayer/index.js +0 -15
  652. package/src/components/MediaPlayer/AudioPlayer/index.js.map +0 -1
  653. package/src/components/MediaPlayer/MediaPlaybackWrapper.js +0 -42
  654. package/src/components/MediaPlayer/MediaPlaybackWrapper.js.map +0 -1
  655. package/src/components/MediaPlayer/MediaPlayerCommon.js +0 -24
  656. package/src/components/MediaPlayer/MediaPlayerCommon.js.map +0 -1
  657. package/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js +0 -75
  658. package/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js.map +0 -1
  659. package/src/components/MediaPlayer/VideoPlayer/index.js +0 -2
  660. package/src/components/MediaPlayer/VideoPlayer/index.js.map +0 -1
  661. package/src/components/NumberInput.js +0 -60
  662. package/src/components/NumberInput.js.map +0 -1
  663. package/src/components/Picker/NativePicker.js +0 -95
  664. package/src/components/Picker/NativePicker.js.map +0 -1
  665. package/src/components/Picker/PickerCommon.js +0 -25
  666. package/src/components/Picker/PickerCommon.js.map +0 -1
  667. package/src/components/Picker/PickerInputContainer.js +0 -37
  668. package/src/components/Picker/PickerInputContainer.js.map +0 -1
  669. package/src/components/Picker/dropdown/DropDownPicker.js +0 -65
  670. package/src/components/Picker/dropdown/DropDownPicker.js.map +0 -1
  671. package/src/components/Picker/dropdown/MultiSelectPicker.js +0 -9
  672. package/src/components/Picker/dropdown/MultiSelectPicker.js.map +0 -1
  673. package/src/components/Picker/dropdown/PickerItem.js +0 -9
  674. package/src/components/Picker/dropdown/PickerItem.js.map +0 -1
  675. package/src/components/Picker/index.js +0 -18
  676. package/src/components/Picker/index.js.map +0 -1
  677. package/src/components/PinInput/CustomPinInputCell.js +0 -11
  678. package/src/components/PinInput/CustomPinInputCell.js.map +0 -1
  679. package/src/components/PinInput/PinInput.js +0 -81
  680. package/src/components/PinInput/PinInput.js.map +0 -1
  681. package/src/components/PinInput/PinInputText.js +0 -14
  682. package/src/components/PinInput/PinInputText.js.map +0 -1
  683. package/src/components/PinInput/index.js +0 -4
  684. package/src/components/PinInput/index.js.map +0 -1
  685. package/src/components/Portal/Portal.js +0 -36
  686. package/src/components/Portal/Portal.js.map +0 -1
  687. package/src/components/Portal/PortalConsumer.js +0 -28
  688. package/src/components/Portal/PortalConsumer.js.map +0 -1
  689. package/src/components/Portal/PortalHost.js +0 -108
  690. package/src/components/Portal/PortalHost.js.map +0 -1
  691. package/src/components/Portal/PortalManager.js +0 -33
  692. package/src/components/Portal/PortalManager.js.map +0 -1
  693. package/src/components/Pressable.js +0 -13
  694. package/src/components/Pressable.js.map +0 -1
  695. package/src/components/Progress/CircularProgress/CircularProgress.js +0 -103
  696. package/src/components/Progress/CircularProgress/CircularProgress.js.map +0 -1
  697. package/src/components/Progress/CircularProgress/index.js +0 -14
  698. package/src/components/Progress/CircularProgress/index.js.map +0 -1
  699. package/src/components/Progress/IndeterminateProgress.js +0 -39
  700. package/src/components/Progress/IndeterminateProgress.js.map +0 -1
  701. package/src/components/Progress/LinearProgress/LinearProgress.js +0 -56
  702. package/src/components/Progress/LinearProgress/LinearProgress.js.map +0 -1
  703. package/src/components/Progress/LinearProgress/index.js +0 -14
  704. package/src/components/Progress/LinearProgress/index.js.map +0 -1
  705. package/src/components/Progress/ProgressCommon.js +0 -2
  706. package/src/components/Progress/ProgressCommon.js.map +0 -1
  707. package/src/components/ProgressIndicator.js +0 -28
  708. package/src/components/ProgressIndicator.js.map +0 -1
  709. package/src/components/RadioButton/RadioButton.js +0 -18
  710. package/src/components/RadioButton/RadioButton.js.map +0 -1
  711. package/src/components/RadioButton/RadioButtonGroup.js +0 -44
  712. package/src/components/RadioButton/RadioButtonGroup.js.map +0 -1
  713. package/src/components/RadioButton/RadioButtonRow.js +0 -77
  714. package/src/components/RadioButton/RadioButtonRow.js.map +0 -1
  715. package/src/components/RadioButton/context.js +0 -15
  716. package/src/components/RadioButton/context.js.map +0 -1
  717. package/src/components/RadioButton/index.js +0 -4
  718. package/src/components/RadioButton/index.js.map +0 -1
  719. package/src/components/Row.js +0 -49
  720. package/src/components/Row.js.map +0 -1
  721. package/src/components/SVG.js +0 -14
  722. package/src/components/SVG.js.map +0 -1
  723. package/src/components/ScreenContainer.js +0 -36
  724. package/src/components/ScreenContainer.js.map +0 -1
  725. package/src/components/SectionList/SectionHeader.js +0 -14
  726. package/src/components/SectionList/SectionHeader.js.map +0 -1
  727. package/src/components/SectionList/SectionList.js +0 -111
  728. package/src/components/SectionList/SectionList.js.map +0 -1
  729. package/src/components/SectionList/index.js +0 -3
  730. package/src/components/SectionList/index.js.map +0 -1
  731. package/src/components/Shadow.js +0 -26
  732. package/src/components/Shadow.js.map +0 -1
  733. package/src/components/Slider.js +0 -64
  734. package/src/components/Slider.js.map +0 -1
  735. package/src/components/StarRating.js +0 -51
  736. package/src/components/StarRating.js.map +0 -1
  737. package/src/components/StepIndicator.js +0 -347
  738. package/src/components/StepIndicator.js.map +0 -1
  739. package/src/components/Stepper.js +0 -42
  740. package/src/components/Stepper.js.map +0 -1
  741. package/src/components/Surface.js +0 -33
  742. package/src/components/Surface.js.map +0 -1
  743. package/src/components/SwipeableItem/SwipeableItem.js +0 -119
  744. package/src/components/SwipeableItem/SwipeableItem.js.map +0 -1
  745. package/src/components/SwipeableItem/SwipeableItemButton.js +0 -6
  746. package/src/components/SwipeableItem/SwipeableItemButton.js.map +0 -1
  747. package/src/components/SwipeableItem/SwipeableItemCommon.js +0 -44
  748. package/src/components/SwipeableItem/SwipeableItemCommon.js.map +0 -1
  749. package/src/components/SwipeableItem/SwipeableList.js +0 -29
  750. package/src/components/SwipeableItem/SwipeableList.js.map +0 -1
  751. package/src/components/SwipeableItem/index.js +0 -4
  752. package/src/components/SwipeableItem/index.js.map +0 -1
  753. package/src/components/Swiper/Swiper.js +0 -74
  754. package/src/components/Swiper/Swiper.js.map +0 -1
  755. package/src/components/Swiper/SwiperItem.js +0 -10
  756. package/src/components/Swiper/SwiperItem.js.map +0 -1
  757. package/src/components/Swiper/index.js +0 -3
  758. package/src/components/Swiper/index.js.map +0 -1
  759. package/src/components/Switch.js +0 -57
  760. package/src/components/Switch.js.map +0 -1
  761. package/src/components/TabView/TabView.js +0 -55
  762. package/src/components/TabView/TabView.js.map +0 -1
  763. package/src/components/TabView/TabViewItem.js +0 -12
  764. package/src/components/TabView/TabViewItem.js.map +0 -1
  765. package/src/components/TabView/index.js +0 -3
  766. package/src/components/TabView/index.js.map +0 -1
  767. package/src/components/Table/Table.js +0 -94
  768. package/src/components/Table/Table.js.map +0 -1
  769. package/src/components/Table/TableCell.js +0 -34
  770. package/src/components/Table/TableCell.js.map +0 -1
  771. package/src/components/Table/TableCommon.js +0 -13
  772. package/src/components/Table/TableCommon.js.map +0 -1
  773. package/src/components/Table/TableRow.js +0 -40
  774. package/src/components/Table/TableRow.js.map +0 -1
  775. package/src/components/Table/index.js +0 -4
  776. package/src/components/Table/index.js.map +0 -1
  777. package/src/components/Text.js +0 -34
  778. package/src/components/Text.js.map +0 -1
  779. package/src/components/TextField.js +0 -414
  780. package/src/components/TextField.js.map +0 -1
  781. package/src/components/TextInput.js +0 -15
  782. package/src/components/TextInput.js.map +0 -1
  783. package/src/components/Touchable.js +0 -13
  784. package/src/components/Touchable.js.map +0 -1
  785. package/src/components/Touchable.web.js +0 -3
  786. package/src/components/Touchable.web.js.map +0 -1
  787. package/src/components/Typography.js +0 -37
  788. package/src/components/Typography.js.map +0 -1
  789. package/src/components/YoutubePlayer/YoutubePlayer.js +0 -21
  790. package/src/components/YoutubePlayer/YoutubePlayer.js.map +0 -1
  791. package/src/components/YoutubePlayer/YoutubePlayer.native.js +0 -10
  792. package/src/components/YoutubePlayer/YoutubePlayer.native.js.map +0 -1
  793. package/src/components/YoutubePlayer/YoutubePlayerProps.js +0 -2
  794. package/src/components/YoutubePlayer/YoutubePlayerProps.js.map +0 -1
  795. package/src/components/YoutubePlayer/index.js +0 -2
  796. package/src/components/YoutubePlayer/index.js.map +0 -1
  797. package/src/components/useAuthState.js +0 -35
  798. package/src/components/useAuthState.js.map +0 -1
  799. package/src/constants.js +0 -11
  800. package/src/constants.js.map +0 -1
  801. package/src/deprecated-components/AccordionItem.js +0 -36
  802. package/src/deprecated-components/AccordionItem.js.map +0 -1
  803. package/src/deprecated-components/AnimatedCircularProgress.js +0 -47
  804. package/src/deprecated-components/AnimatedCircularProgress.js.map +0 -1
  805. package/src/deprecated-components/AvatarEdit.js +0 -34
  806. package/src/deprecated-components/AvatarEdit.js.map +0 -1
  807. package/src/deprecated-components/Banner.js +0 -113
  808. package/src/deprecated-components/Banner.js.map +0 -1
  809. package/src/deprecated-components/Card.js +0 -61
  810. package/src/deprecated-components/Card.js.map +0 -1
  811. package/src/deprecated-components/CheckboxGroup.js +0 -25
  812. package/src/deprecated-components/CheckboxGroup.js.map +0 -1
  813. package/src/deprecated-components/CircleImage.js +0 -12
  814. package/src/deprecated-components/CircleImage.js.map +0 -1
  815. package/src/deprecated-components/CircularProgress.js +0 -85
  816. package/src/deprecated-components/CircularProgress.js.map +0 -1
  817. package/src/deprecated-components/Container.js +0 -47
  818. package/src/deprecated-components/Container.js.map +0 -1
  819. package/src/deprecated-components/DeprecatedButton.js +0 -87
  820. package/src/deprecated-components/DeprecatedButton.js.map +0 -1
  821. package/src/deprecated-components/DeprecatedCardWrapper.js +0 -22
  822. package/src/deprecated-components/DeprecatedCardWrapper.js.map +0 -1
  823. package/src/deprecated-components/DeprecatedFAB.js +0 -118
  824. package/src/deprecated-components/DeprecatedFAB.js.map +0 -1
  825. package/src/deprecated-components/FAB.js +0 -50
  826. package/src/deprecated-components/FAB.js.map +0 -1
  827. package/src/deprecated-components/FieldSearchBarFull.js +0 -57
  828. package/src/deprecated-components/FieldSearchBarFull.js.map +0 -1
  829. package/src/deprecated-components/Layout.js +0 -69
  830. package/src/deprecated-components/Layout.js.map +0 -1
  831. package/src/deprecated-components/ProgressBar.js +0 -122
  832. package/src/deprecated-components/ProgressBar.js.map +0 -1
  833. package/src/deprecated-components/ProgressCircle.js +0 -17
  834. package/src/deprecated-components/ProgressCircle.js.map +0 -1
  835. package/src/deprecated-components/RadioButtonFieldGroup.js +0 -21
  836. package/src/deprecated-components/RadioButtonFieldGroup.js.map +0 -1
  837. package/src/deprecated-components/RowBodyIcon.js +0 -12
  838. package/src/deprecated-components/RowBodyIcon.js.map +0 -1
  839. package/src/deprecated-components/RowHeadlineImageCaption.js +0 -16
  840. package/src/deprecated-components/RowHeadlineImageCaption.js.map +0 -1
  841. package/src/deprecated-components/RowHeadlineImageIcon.js +0 -18
  842. package/src/deprecated-components/RowHeadlineImageIcon.js.map +0 -1
  843. package/src/deprecated-components/ToggleButton.js +0 -43
  844. package/src/deprecated-components/ToggleButton.js.map +0 -1
  845. package/src/hooks.js +0 -25
  846. package/src/hooks.js.map +0 -1
  847. package/src/index.js +0 -66
  848. package/src/index.js.map +0 -1
  849. package/src/interfaces/Icon.js +0 -9
  850. package/src/interfaces/Icon.js.map +0 -1
  851. package/src/styles/DarkTheme.js +0 -27
  852. package/src/styles/DarkTheme.js.map +0 -1
  853. package/src/styles/DefaultTheme.js +0 -112
  854. package/src/styles/DefaultTheme.js.map +0 -1
  855. package/src/styles/fonts.js +0 -63
  856. package/src/styles/fonts.js.map +0 -1
  857. package/src/styles/overlay.js +0 -61
  858. package/src/styles/overlay.js.map +0 -1
  859. package/src/styles/shadow.js +0 -52
  860. package/src/styles/shadow.js.map +0 -1
  861. package/src/theming.js +0 -4
  862. package/src/theming.js.map +0 -1
  863. package/src/utilities.js +0 -201
  864. package/src/utilities.js.map +0 -1
@@ -1,895 +1,895 @@
1
- /**
2
- * Slightly modfied version as taken from https://github.com/rgommezz/react-native-scroll-bottom-sheet
3
- * Main previously breaking change:
4
- * const node = this.props.innerRef.current?.getNode() ==> const node = this.props.innerRef.current as any
5
- */
6
-
7
- /**
8
- * Copyright (c) 2020 Raul Gomez Acuna
9
- *
10
- * This source code is licensed under the MIT license found in the
11
- * LICENSE file in the root directory of this source tree.
12
- *
13
- */
14
-
15
- import React, { Component, RefObject } from "react";
16
- import {
17
- Dimensions,
18
- FlatList,
19
- FlatListProps,
20
- Platform,
21
- ScrollView,
22
- ScrollViewProps,
23
- SectionList,
24
- SectionListProps,
25
- StyleSheet,
26
- View,
27
- ViewStyle,
28
- } from "react-native";
29
- import Animated, {
30
- abs,
31
- add,
32
- and,
33
- call,
34
- Clock,
35
- clockRunning,
36
- cond,
37
- Easing as EasingDeprecated,
38
- // @ts-ignore: this property is only present in Reanimated 2
39
- EasingNode,
40
- eq,
41
- event,
42
- Extrapolate,
43
- greaterOrEq,
44
- greaterThan,
45
- multiply,
46
- not,
47
- onChange,
48
- or,
49
- set,
50
- startClock,
51
- stopClock,
52
- sub,
53
- spring,
54
- timing,
55
- Value,
56
- } from "react-native-reanimated";
57
- import {
58
- NativeViewGestureHandler,
59
- PanGestureHandler,
60
- PanGestureHandlerProperties,
61
- State as GestureState,
62
- TapGestureHandler,
63
- } from "react-native-gesture-handler";
64
- import { Assign } from "utility-types";
65
-
66
- const {
67
- //@ts-ignore
68
- interpolate: interpolateDeprecated,
69
- // @ts-ignore: this property is only present in Reanimated 2
70
- interpolateNode,
71
- } = Animated;
72
-
73
- const interpolate: typeof interpolateDeprecated =
74
- interpolateNode ?? interpolateDeprecated;
75
- //@ts-ignore
76
- const Easing: typeof EasingDeprecated = EasingNode ?? EasingDeprecated;
77
-
78
- const FlatListComponentType = "FlatList" as const;
79
- const ScrollViewComponentType = "ScrollView" as const;
80
- const SectionListComponentType = "SectionList" as const;
81
- const TimingAnimationType = "timing" as const;
82
- const SpringAnimationType = "spring" as const;
83
-
84
- const DEFAULT_SPRING_PARAMS = {
85
- damping: 50,
86
- mass: 0.3,
87
- stiffness: 121.6,
88
- overshootClamping: true,
89
- restSpeedThreshold: 0.3,
90
- restDisplacementThreshold: 0.3,
91
- };
92
-
93
- const { height: windowHeight } = Dimensions.get("window");
94
- const IOS_NORMAL_DECELERATION_RATE = 0.998;
95
- const ANDROID_NORMAL_DECELERATION_RATE = 0.985;
96
- const DEFAULT_ANIMATION_DURATION = 250;
97
- const DEFAULT_EASING = Easing.inOut(Easing.linear);
98
- const imperativeScrollOptions = {
99
- [FlatListComponentType]: {
100
- method: "scrollToIndex",
101
- args: {
102
- index: 0,
103
- viewPosition: 0,
104
- viewOffset: 1000,
105
- animated: true,
106
- },
107
- },
108
- [ScrollViewComponentType]: {
109
- method: "scrollTo",
110
- args: {
111
- x: 0,
112
- y: 0,
113
- animated: true,
114
- },
115
- },
116
- [SectionListComponentType]: {
117
- method: "scrollToLocation",
118
- args: {
119
- itemIndex: 0,
120
- sectionIndex: 0,
121
- viewPosition: 0,
122
- viewOffset: 1000,
123
- animated: true,
124
- },
125
- },
126
- };
127
-
128
- type AnimatedScrollableComponent = FlatList | ScrollView | SectionList;
129
-
130
- type FlatListOption<T> = Assign<
131
- { componentType: typeof FlatListComponentType },
132
- FlatListProps<T>
133
- >;
134
- type ScrollViewOption = Assign<
135
- { componentType: typeof ScrollViewComponentType },
136
- ScrollViewProps
137
- >;
138
- type SectionListOption<T> = Assign<
139
- { componentType: typeof SectionListComponentType },
140
- SectionListProps<T>
141
- >;
142
-
143
- interface TimingParams {
144
- clock: Animated.Clock;
145
- from: Animated.Node<number>;
146
- to: Animated.Node<number>;
147
- position: Animated.Value<number>;
148
- finished: Animated.Value<number>;
149
- frameTime: Animated.Value<number>;
150
- velocity: Animated.Node<number>;
151
- }
152
-
153
- type CommonProps = {
154
- /**
155
- * Array of numbers that indicate the different resting positions of the bottom sheet (in dp or %), starting from the top.
156
- * If a percentage is used, that would translate to the relative amount of the total window height.
157
- * For instance, if 50% is used, that'd be windowHeight * 0.5. If you wanna take into account safe areas during
158
- * the calculation, such as status bars and notches, please use 'topInset' prop
159
- */
160
- snapPoints: Array<string | number>;
161
- /**
162
- * Index that references the initial resting position of the drawer, starting from the top
163
- */
164
- initialSnapIndex: number;
165
- /**
166
- * Render prop for the handle
167
- */
168
- renderHandle: () => React.ReactNode;
169
- /**
170
- * Callback that is executed right after the drawer settles on one of the snapping points.
171
- * The new index is provided on the callback
172
- * @param index
173
- */
174
- onSettle?: (index: number) => void;
175
- /**
176
- * Animated value that tracks the position of the drawer, being:
177
- * 0 => closed
178
- * 1 => fully opened
179
- */
180
- animatedPosition?: Animated.Value<number>;
181
- /**
182
- * This value is useful if you want to take into consideration safe area insets
183
- * when applying percentages for snapping points. We recommend using react-native-safe-area-context
184
- * library for that.
185
- * @see https://github.com/th3rdwave/react-native-safe-area-context#usage, insets.top
186
- */
187
- topInset: number;
188
- /**
189
- * Reference to FlatList, ScrollView or SectionList in order to execute its imperative methods.
190
- */
191
- innerRef: RefObject<FlatList | ScrollView | SectionList>;
192
- /*
193
- * Style to be applied to the container.
194
- */
195
- containerStyle?: Animated.AnimateStyle<ViewStyle>;
196
- /*
197
- * Factor of resistance when the gesture is released. A value of 0 offers maximum
198
- * acceleration, whereas 1 acts as the opposite. Defaults to 0.95
199
- */
200
- friction: number;
201
- /*
202
- * Allow drawer to be dragged beyond lowest snap point
203
- */
204
- enableOverScroll: boolean;
205
- };
206
-
207
- type TimingAnimationProps = {
208
- animationType: typeof TimingAnimationType;
209
- /**
210
- * Configuration for the timing reanimated function
211
- */
212
- animationConfig?: Partial<Animated.TimingConfig>;
213
- };
214
-
215
- type SpringAnimationProps = {
216
- animationType: typeof SpringAnimationType;
217
- /**
218
- * Configuration for the spring reanimated function
219
- */
220
- animationConfig?: Partial<Animated.SpringConfig>;
221
- };
222
-
223
- type Props<T> = CommonProps &
224
- (FlatListOption<T> | ScrollViewOption | SectionListOption<T>) &
225
- (TimingAnimationProps | SpringAnimationProps);
226
-
227
- export class ScrollBottomSheet<T extends any> extends Component<Props<T>> {
228
- static defaultProps = {
229
- topInset: 0,
230
- friction: 0.95,
231
- animationType: "timing",
232
- innerRef: React.createRef<AnimatedScrollableComponent>(),
233
- enableOverScroll: false,
234
- };
235
-
236
- /**
237
- * Gesture Handler references
238
- */
239
- private masterDrawer = React.createRef<TapGestureHandler>();
240
- private drawerHandleRef = React.createRef<PanGestureHandler>();
241
- private drawerContentRef = React.createRef<PanGestureHandler>();
242
- private scrollComponentRef = React.createRef<NativeViewGestureHandler>();
243
-
244
- /**
245
- * ScrollView prop
246
- */
247
- private onScrollBeginDrag: ScrollViewProps["onScrollBeginDrag"];
248
- /**
249
- * Pan gesture handler events for drawer handle and content
250
- */
251
- private onHandleGestureEvent: PanGestureHandlerProperties["onGestureEvent"];
252
- private onDrawerGestureEvent: PanGestureHandlerProperties["onGestureEvent"];
253
- /**
254
- * Main Animated Value that drives the top position of the UI drawer at any point in time
255
- */
256
- private translateY: Animated.Node<number>;
257
- /**
258
- * Animated value that keeps track of the position: 0 => closed, 1 => opened
259
- */
260
- private position: Animated.Node<number>;
261
- /**
262
- * Flag to indicate imperative snapping
263
- */
264
- private isManuallySetValue: Animated.Value<number> = new Value(0);
265
- /**
266
- * Manual snapping amount
267
- */
268
- private manualYOffset: Animated.Value<number> = new Value(0);
269
- /**
270
- * Keeps track of the current index
271
- */
272
- private nextSnapIndex: Animated.Value<number>;
273
- /**
274
- * Deceleration rate of the scroll component. This is used only on Android to
275
- * compensate the unexpected glide it gets sometimes.
276
- */
277
- private decelerationRate: Animated.Value<number>;
278
- private prevSnapIndex = -1;
279
- private dragY = new Value(0);
280
- private prevDragY = new Value(0);
281
- private tempDestSnapPoint = new Value(0);
282
- private isAndroid = new Value(Number(Platform.OS === "android"));
283
- private animationClock = new Clock();
284
- private animationPosition = new Value(0);
285
- private animationFinished = new Value(0);
286
- private animationFrameTime = new Value(0);
287
- private velocityY = new Value(0);
288
- private lastStartScrollY: Animated.Value<number> = new Value(0);
289
- private prevTranslateYOffset: Animated.Value<number>;
290
- private translationY: Animated.Value<number>;
291
- private destSnapPoint = new Value(0);
292
-
293
- private lastSnap: Animated.Value<number>;
294
- private dragWithHandle = new Value(0);
295
- private scrollUpAndPullDown = new Value(0);
296
- private didGestureFinish: Animated.Node<0 | 1>;
297
- private didScrollUpAndPullDown: Animated.Node<number>;
298
- private setTranslationY: Animated.Node<number>;
299
- private extraOffset: Animated.Node<number>;
300
- private calculateNextSnapPoint: (
301
- i?: number
302
- ) => number | Animated.Node<number>;
303
-
304
- private scrollComponent: React.ComponentType<
305
- FlatListProps<T> | ScrollViewProps | SectionListProps<T>
306
- >;
307
-
308
- convertPercentageToDp = (str: string) =>
309
- (Number(str.split("%")[0]) * (windowHeight - this.props.topInset)) / 100;
310
-
311
- constructor(props: Props<T>) {
312
- super(props);
313
- const { initialSnapIndex, animationType } = props;
314
-
315
- const animationDriver = animationType === "timing" ? 0 : 1;
316
- const animationDuration =
317
- (props.animationType === "timing" && props.animationConfig?.duration) ||
318
- DEFAULT_ANIMATION_DURATION;
319
-
320
- const ScrollComponent = this.getScrollComponent();
321
- // @ts-ignore
322
- this.scrollComponent = Animated.createAnimatedComponent(ScrollComponent);
323
-
324
- const snapPoints = this.getNormalisedSnapPoints();
325
- const openPosition = snapPoints[0];
326
- const closedPosition = this.props.enableOverScroll
327
- ? windowHeight
328
- : snapPoints[snapPoints.length - 1];
329
- const initialSnap = snapPoints[initialSnapIndex];
330
- this.nextSnapIndex = new Value(initialSnapIndex);
331
-
332
- const initialDecelerationRate = Platform.select({
333
- android:
334
- props.initialSnapIndex === 0 ? ANDROID_NORMAL_DECELERATION_RATE : 0,
335
- ios: IOS_NORMAL_DECELERATION_RATE,
336
- });
337
- this.decelerationRate = new Value(initialDecelerationRate);
338
-
339
- //@ts-ignore
340
- const handleGestureState = new Value<GestureState>(-1);
341
- //@ts-ignore
342
- const handleOldGestureState = new Value<GestureState>(-1);
343
- //@ts-ignore
344
- const drawerGestureState = new Value<GestureState>(-1);
345
- //@ts-ignore
346
- const drawerOldGestureState = new Value<GestureState>(-1);
347
-
348
- const lastSnapInRange = new Value(1);
349
- this.prevTranslateYOffset = new Value(initialSnap);
350
- this.translationY = new Value(initialSnap);
351
-
352
- this.lastSnap = new Value(initialSnap);
353
-
354
- this.onHandleGestureEvent = event([
355
- {
356
- nativeEvent: {
357
- translationY: this.dragY,
358
- oldState: handleOldGestureState,
359
- state: handleGestureState,
360
- velocityY: this.velocityY,
361
- },
362
- },
363
- ]);
364
- this.onDrawerGestureEvent = event([
365
- {
366
- nativeEvent: {
367
- translationY: this.dragY,
368
- oldState: drawerOldGestureState,
369
- state: drawerGestureState,
370
- velocityY: this.velocityY,
371
- },
372
- },
373
- ]);
374
- this.onScrollBeginDrag = event([
375
- {
376
- nativeEvent: {
377
- contentOffset: { y: this.lastStartScrollY },
378
- },
379
- },
380
- ]);
381
-
382
- const didHandleGestureBegin = eq(handleGestureState, GestureState.ACTIVE);
383
-
384
- const isAnimationInterrupted = and(
385
- or(
386
- eq(handleGestureState, GestureState.BEGAN),
387
- eq(drawerGestureState, GestureState.BEGAN),
388
- and(
389
- eq(this.isAndroid, 0),
390
- eq(animationDriver, 1),
391
- or(
392
- eq(drawerGestureState, GestureState.ACTIVE),
393
- eq(handleGestureState, GestureState.ACTIVE)
394
- )
395
- )
396
- ),
397
- clockRunning(this.animationClock)
398
- );
399
-
400
- this.didGestureFinish = or(
401
- and(
402
- eq(handleOldGestureState, GestureState.ACTIVE),
403
- eq(handleGestureState, GestureState.END)
404
- ),
405
- and(
406
- eq(drawerOldGestureState, GestureState.ACTIVE),
407
- eq(drawerGestureState, GestureState.END)
408
- )
409
- );
410
-
411
- // Function that determines if the last snap point is in the range {snapPoints}
412
- // In the case of interruptions in the middle of an animation, we'll get
413
- // lastSnap values outside the range
414
- const isLastSnapPointInRange = (i: number = 0): Animated.Node<number> =>
415
- i === snapPoints.length
416
- ? lastSnapInRange
417
- : cond(
418
- eq(this.lastSnap, snapPoints[i]),
419
- [set(lastSnapInRange, 1)],
420
- isLastSnapPointInRange(i + 1)
421
- );
422
-
423
- const scrollY = [
424
- set(lastSnapInRange, 0),
425
- isLastSnapPointInRange(),
426
- cond(
427
- or(
428
- didHandleGestureBegin,
429
- and(
430
- this.isManuallySetValue,
431
- not(eq(this.manualYOffset, snapPoints[0]))
432
- )
433
- ),
434
- [set(this.dragWithHandle, 1), 0]
435
- ),
436
- cond(
437
- // This is to account for a continuous scroll on the drawer from a snap point
438
- // Different than top, bringing the drawer to the top position, so that if we
439
- // change scroll direction without releasing the gesture, it doesn't pull down the drawer again
440
- and(
441
- eq(this.dragWithHandle, 1),
442
- greaterThan(snapPoints[0], add(this.lastSnap, this.dragY)),
443
- and(not(eq(this.lastSnap, snapPoints[0])), lastSnapInRange)
444
- ),
445
- [
446
- set(this.lastSnap, snapPoints[0]),
447
- set(this.dragWithHandle, 0),
448
- this.lastStartScrollY,
449
- ],
450
- cond(eq(this.dragWithHandle, 1), 0, this.lastStartScrollY)
451
- ),
452
- ];
453
-
454
- this.didScrollUpAndPullDown = cond(
455
- and(
456
- greaterOrEq(this.dragY, this.lastStartScrollY),
457
- greaterThan(this.lastStartScrollY, 0)
458
- ),
459
- set(this.scrollUpAndPullDown, 1)
460
- );
461
-
462
- this.setTranslationY = cond(
463
- and(
464
- not(this.dragWithHandle),
465
- not(greaterOrEq(this.dragY, this.lastStartScrollY))
466
- ),
467
- set(this.translationY, sub(this.dragY, this.lastStartScrollY)),
468
- set(this.translationY, this.dragY)
469
- );
470
-
471
- this.extraOffset = cond(
472
- eq(this.scrollUpAndPullDown, 1),
473
- this.lastStartScrollY,
474
- 0
475
- );
476
- const endOffsetY = add(
477
- this.lastSnap,
478
- this.translationY,
479
- multiply(1 - props.friction, this.velocityY)
480
- );
481
-
482
- this.calculateNextSnapPoint = (i = 0): Animated.Node<number> | number =>
483
- i === snapPoints.length
484
- ? this.tempDestSnapPoint
485
- : cond(
486
- greaterThan(
487
- abs(sub(this.tempDestSnapPoint, endOffsetY)),
488
- abs(sub(add(snapPoints[i], this.extraOffset), endOffsetY))
489
- ),
490
- [
491
- set(this.tempDestSnapPoint, add(snapPoints[i], this.extraOffset)),
492
- set(this.nextSnapIndex, i),
493
- this.calculateNextSnapPoint(i + 1),
494
- ],
495
- this.calculateNextSnapPoint(i + 1)
496
- );
497
-
498
- const runAnimation = ({
499
- clock,
500
- from,
501
- to,
502
- position,
503
- finished,
504
- velocity,
505
- frameTime,
506
- }: TimingParams) => {
507
- const state = {
508
- finished,
509
- velocity: new Value(0),
510
- position,
511
- time: new Value(0),
512
- frameTime,
513
- };
514
-
515
- const timingConfig = {
516
- duration: animationDuration,
517
- easing:
518
- (props.animationType === "timing" && props.animationConfig?.easing) ||
519
- DEFAULT_EASING,
520
- toValue: new Value(0),
521
- };
522
-
523
- const springConfig = {
524
- ...DEFAULT_SPRING_PARAMS,
525
- ...((props.animationType === "spring" && props.animationConfig) || {}),
526
- toValue: new Value(0),
527
- };
528
-
529
- return [
530
- cond(and(not(clockRunning(clock)), not(eq(finished, 1))), [
531
- // If the clock isn't running, we reset all the animation params and start the clock
532
- set(state.finished, 0),
533
- set(state.velocity, velocity),
534
- set(state.time, 0),
535
- set(state.position, from),
536
- set(state.frameTime, 0),
537
- set(timingConfig.toValue, to),
538
- set(springConfig.toValue, to),
539
- startClock(clock),
540
- ]),
541
- // We run the step here that is going to update position
542
- cond(
543
- eq(animationDriver, 0),
544
- //@ts-ignore
545
- timing(clock, state, timingConfig),
546
- spring(clock, state, springConfig)
547
- ),
548
- cond(
549
- state.finished,
550
- [
551
- call([this.nextSnapIndex], ([value]) => {
552
- if (value !== this.prevSnapIndex) {
553
- this.props.onSettle?.(value);
554
- }
555
- this.prevSnapIndex = value;
556
- }),
557
- // Resetting appropriate values
558
- set(drawerOldGestureState, GestureState.END),
559
- set(handleOldGestureState, GestureState.END),
560
- set(this.prevTranslateYOffset, state.position),
561
- cond(eq(this.scrollUpAndPullDown, 1), [
562
- set(
563
- this.prevTranslateYOffset,
564
- sub(this.prevTranslateYOffset, this.lastStartScrollY)
565
- ),
566
- set(this.lastStartScrollY, 0),
567
- set(this.scrollUpAndPullDown, 0),
568
- ]),
569
- cond(eq(this.destSnapPoint, snapPoints[0]), [
570
- set(this.dragWithHandle, 0),
571
- ]),
572
- set(this.isManuallySetValue, 0),
573
- set(this.manualYOffset, 0),
574
- stopClock(clock),
575
- this.prevTranslateYOffset,
576
- ],
577
- // We made the block return the updated position,
578
- state.position
579
- ),
580
- ];
581
- };
582
-
583
- const translateYOffset = cond(
584
- isAnimationInterrupted,
585
- [
586
- // set(prevTranslateYOffset, animationPosition) should only run if we are
587
- // interrupting an animation when the drawer is currently in a different
588
- // position than the top
589
- cond(
590
- or(
591
- this.dragWithHandle,
592
- greaterOrEq(abs(this.prevDragY), this.lastStartScrollY)
593
- ),
594
- set(this.prevTranslateYOffset, this.animationPosition)
595
- ),
596
- set(this.animationFinished, 1),
597
- set(this.translationY, 0),
598
- // Resetting appropriate values
599
- set(drawerOldGestureState, GestureState.END),
600
- set(handleOldGestureState, GestureState.END),
601
- // By forcing that frameTime exceeds duration, it has the effect of stopping the animation
602
- set(this.animationFrameTime, add(animationDuration, 1000)),
603
- set(this.velocityY, 0),
604
- stopClock(this.animationClock),
605
- this.prevTranslateYOffset,
606
- ],
607
- cond(
608
- or(
609
- this.didGestureFinish,
610
- this.isManuallySetValue,
611
- clockRunning(this.animationClock)
612
- ),
613
- [
614
- runAnimation({
615
- clock: this.animationClock,
616
- from: cond(
617
- this.isManuallySetValue,
618
- this.prevTranslateYOffset,
619
- add(this.prevTranslateYOffset, this.translationY)
620
- ),
621
- to: this.destSnapPoint,
622
- position: this.animationPosition,
623
- finished: this.animationFinished,
624
- frameTime: this.animationFrameTime,
625
- velocity: this.velocityY,
626
- }),
627
- ],
628
- [
629
- set(this.animationFrameTime, 0),
630
- set(this.animationFinished, 0),
631
- // @ts-ignore
632
- this.prevTranslateYOffset,
633
- ]
634
- )
635
- );
636
-
637
- this.translateY = interpolate(
638
- add(translateYOffset, this.dragY, multiply(scrollY, -1)),
639
- {
640
- inputRange: [openPosition, closedPosition],
641
- outputRange: [openPosition, closedPosition],
642
- extrapolate: Extrapolate.CLAMP,
643
- }
644
- );
645
-
646
- this.position = interpolate(this.translateY, {
647
- inputRange: [openPosition, snapPoints[snapPoints.length - 1]],
648
- outputRange: [1, 0],
649
- extrapolate: Extrapolate.CLAMP,
650
- });
651
- }
652
-
653
- private getNormalisedSnapPoints = () => {
654
- return this.props.snapPoints.map((p) => {
655
- if (typeof p === "string") {
656
- return this.convertPercentageToDp(p);
657
- } else if (typeof p === "number") {
658
- return p;
659
- }
660
-
661
- throw new Error(
662
- `Invalid type for value ${p}: ${typeof p}. It should be either a percentage string or a number`
663
- );
664
- });
665
- };
666
-
667
- private getScrollComponent = () => {
668
- switch (this.props.componentType) {
669
- case "FlatList":
670
- return FlatList;
671
- case "ScrollView":
672
- return ScrollView;
673
- case "SectionList":
674
- return SectionList;
675
- default:
676
- throw new Error(
677
- "Component type not supported: it should be one of `FlatList`, `ScrollView` or `SectionList`"
678
- );
679
- }
680
- };
681
-
682
- snapTo = (index: number) => {
683
- const snapPoints = this.getNormalisedSnapPoints();
684
- this.isManuallySetValue.setValue(1);
685
- this.manualYOffset.setValue(snapPoints[index]);
686
- this.nextSnapIndex.setValue(index);
687
- };
688
-
689
- render() {
690
- const { renderHandle, initialSnapIndex, containerStyle, ...rest } =
691
- this.props;
692
- const AnimatedScrollableComponent = this.scrollComponent;
693
- const normalisedSnapPoints = this.getNormalisedSnapPoints();
694
- const initialSnap = normalisedSnapPoints[initialSnapIndex];
695
-
696
- const Content = (
697
- <Animated.View
698
- style={[
699
- StyleSheet.absoluteFillObject,
700
- containerStyle,
701
- // @ts-ignore
702
- {
703
- transform: [{ translateY: this.translateY }],
704
- },
705
- ]}
706
- >
707
- <PanGestureHandler
708
- ref={this.drawerHandleRef}
709
- shouldCancelWhenOutside={false}
710
- simultaneousHandlers={this.masterDrawer}
711
- onGestureEvent={this.onHandleGestureEvent}
712
- onHandlerStateChange={this.onHandleGestureEvent}
713
- >
714
- <Animated.View>{renderHandle()}</Animated.View>
715
- </PanGestureHandler>
716
- <PanGestureHandler
717
- ref={this.drawerContentRef}
718
- simultaneousHandlers={[this.scrollComponentRef, this.masterDrawer]}
719
- shouldCancelWhenOutside={false}
720
- onGestureEvent={this.onDrawerGestureEvent}
721
- onHandlerStateChange={this.onDrawerGestureEvent}
722
- >
723
- <Animated.View style={styles.container}>
724
- <NativeViewGestureHandler
725
- ref={this.scrollComponentRef}
726
- waitFor={this.masterDrawer}
727
- simultaneousHandlers={this.drawerContentRef}
728
- >
729
- <AnimatedScrollableComponent
730
- overScrollMode="never"
731
- bounces={false}
732
- {...rest}
733
- ref={this.props.innerRef}
734
- // @ts-ignore
735
- decelerationRate={this.decelerationRate}
736
- onScrollBeginDrag={this.onScrollBeginDrag}
737
- scrollEventThrottle={1}
738
- contentContainerStyle={[
739
- rest.contentContainerStyle,
740
- { paddingBottom: this.getNormalisedSnapPoints()[0] },
741
- ]}
742
- />
743
- </NativeViewGestureHandler>
744
- </Animated.View>
745
- </PanGestureHandler>
746
- {this.props.animatedPosition && (
747
- <Animated.Code
748
- exec={onChange(
749
- this.position,
750
- set(this.props.animatedPosition, this.position)
751
- )}
752
- />
753
- )}
754
- <Animated.Code
755
- exec={onChange(
756
- this.dragY,
757
- cond(not(eq(this.dragY, 0)), set(this.prevDragY, this.dragY))
758
- )}
759
- />
760
- <Animated.Code
761
- exec={onChange(
762
- this.didGestureFinish,
763
- cond(this.didGestureFinish, [
764
- this.didScrollUpAndPullDown,
765
- this.setTranslationY,
766
- set(
767
- this.tempDestSnapPoint,
768
- add(normalisedSnapPoints[0], this.extraOffset)
769
- ),
770
- set(this.nextSnapIndex, 0),
771
- set(this.destSnapPoint, this.calculateNextSnapPoint()),
772
- cond(
773
- and(
774
- greaterThan(this.dragY, this.lastStartScrollY),
775
- this.isAndroid,
776
- not(this.dragWithHandle)
777
- ),
778
- call([], () => {
779
- // This prevents the scroll glide from happening on Android when pulling down with inertia.
780
- // It's not perfect, but does the job for now
781
- const { method, args } =
782
- imperativeScrollOptions[this.props.componentType];
783
- // @ts-ignore
784
- const node = this.props.innerRef.current as any;
785
-
786
- if (
787
- node &&
788
- node[method] &&
789
- ((this.props.componentType === "FlatList" &&
790
- (this.props?.data?.length || 0) > 0) ||
791
- (this.props.componentType === "SectionList" &&
792
- this.props.sections.length > 0) ||
793
- this.props.componentType === "ScrollView")
794
- ) {
795
- node[method](args);
796
- }
797
- })
798
- ),
799
- set(this.dragY, 0),
800
- set(this.velocityY, 0),
801
- set(
802
- this.lastSnap,
803
- sub(
804
- this.destSnapPoint,
805
- cond(
806
- eq(this.scrollUpAndPullDown, 1),
807
- this.lastStartScrollY,
808
- 0
809
- )
810
- )
811
- ),
812
- call([this.lastSnap], ([value]) => {
813
- // This is the TapGHandler trick
814
- // @ts-ignore
815
- this.masterDrawer?.current?.setNativeProps({
816
- maxDeltaY: value - this.getNormalisedSnapPoints()[0],
817
- });
818
- }),
819
- set(
820
- this.decelerationRate,
821
- cond(
822
- eq(this.isAndroid, 1),
823
- cond(
824
- eq(this.lastSnap, normalisedSnapPoints[0]),
825
- ANDROID_NORMAL_DECELERATION_RATE,
826
- 0
827
- ),
828
- IOS_NORMAL_DECELERATION_RATE
829
- )
830
- ),
831
- ])
832
- )}
833
- />
834
- <Animated.Code
835
- exec={onChange(this.isManuallySetValue, [
836
- cond(
837
- this.isManuallySetValue,
838
- [
839
- set(this.destSnapPoint, this.manualYOffset),
840
- set(this.animationFinished, 0),
841
- set(this.lastSnap, this.manualYOffset),
842
- call([this.lastSnap], ([value]) => {
843
- // This is the TapGHandler trick
844
- // @ts-ignore
845
- this.masterDrawer?.current?.setNativeProps({
846
- maxDeltaY: value - this.getNormalisedSnapPoints()[0],
847
- });
848
- }),
849
- ],
850
- [set(this.nextSnapIndex, 0)]
851
- ),
852
- ])}
853
- />
854
- </Animated.View>
855
- );
856
-
857
- // On Android, having an intermediary view with pointerEvents="box-none", breaks the
858
- // waitFor logic
859
- if (Platform.OS === "android") {
860
- return (
861
- <TapGestureHandler
862
- maxDurationMs={100000}
863
- ref={this.masterDrawer}
864
- maxDeltaY={initialSnap - this.getNormalisedSnapPoints()[0]}
865
- shouldCancelWhenOutside={false}
866
- >
867
- {Content}
868
- </TapGestureHandler>
869
- );
870
- }
871
-
872
- // On iOS, We need to wrap the content on a view with PointerEvents box-none
873
- // So that we can start scrolling automatically when reaching the top without
874
- // Stopping the gesture
875
- return (
876
- <TapGestureHandler
877
- maxDurationMs={100000}
878
- ref={this.masterDrawer}
879
- maxDeltaY={initialSnap - this.getNormalisedSnapPoints()[0]}
880
- >
881
- <View style={StyleSheet.absoluteFillObject} pointerEvents="box-none">
882
- {Content}
883
- </View>
884
- </TapGestureHandler>
885
- );
886
- }
887
- }
888
-
889
- export default ScrollBottomSheet;
890
-
891
- const styles = StyleSheet.create({
892
- container: {
893
- flex: 1,
894
- },
895
- });
1
+ /**
2
+ * Slightly modfied version as taken from https://github.com/rgommezz/react-native-scroll-bottom-sheet
3
+ * Main previously breaking change:
4
+ * const node = this.props.innerRef.current?.getNode() ==> const node = this.props.innerRef.current as any
5
+ */
6
+
7
+ /**
8
+ * Copyright (c) 2020 Raul Gomez Acuna
9
+ *
10
+ * This source code is licensed under the MIT license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ *
13
+ */
14
+
15
+ import React, { Component, RefObject } from "react";
16
+ import {
17
+ Dimensions,
18
+ FlatList,
19
+ FlatListProps,
20
+ Platform,
21
+ ScrollView,
22
+ ScrollViewProps,
23
+ SectionList,
24
+ SectionListProps,
25
+ StyleSheet,
26
+ View,
27
+ ViewStyle,
28
+ } from "react-native";
29
+ import Animated, {
30
+ abs,
31
+ add,
32
+ and,
33
+ call,
34
+ Clock,
35
+ clockRunning,
36
+ cond,
37
+ Easing as EasingDeprecated,
38
+ // @ts-ignore: this property is only present in Reanimated 2
39
+ EasingNode,
40
+ eq,
41
+ event,
42
+ Extrapolate,
43
+ greaterOrEq,
44
+ greaterThan,
45
+ multiply,
46
+ not,
47
+ onChange,
48
+ or,
49
+ set,
50
+ startClock,
51
+ stopClock,
52
+ sub,
53
+ spring,
54
+ timing,
55
+ Value,
56
+ } from "react-native-reanimated";
57
+ import {
58
+ NativeViewGestureHandler,
59
+ PanGestureHandler,
60
+ PanGestureHandlerProperties,
61
+ State as GestureState,
62
+ TapGestureHandler,
63
+ } from "react-native-gesture-handler";
64
+ import { Assign } from "utility-types";
65
+
66
+ const {
67
+ //@ts-ignore
68
+ interpolate: interpolateDeprecated,
69
+ // @ts-ignore: this property is only present in Reanimated 2
70
+ interpolateNode,
71
+ } = Animated;
72
+
73
+ const interpolate: typeof interpolateDeprecated =
74
+ interpolateNode ?? interpolateDeprecated;
75
+ //@ts-ignore
76
+ const Easing: typeof EasingDeprecated = EasingNode ?? EasingDeprecated;
77
+
78
+ const FlatListComponentType = "FlatList" as const;
79
+ const ScrollViewComponentType = "ScrollView" as const;
80
+ const SectionListComponentType = "SectionList" as const;
81
+ const TimingAnimationType = "timing" as const;
82
+ const SpringAnimationType = "spring" as const;
83
+
84
+ const DEFAULT_SPRING_PARAMS = {
85
+ damping: 50,
86
+ mass: 0.3,
87
+ stiffness: 121.6,
88
+ overshootClamping: true,
89
+ restSpeedThreshold: 0.3,
90
+ restDisplacementThreshold: 0.3,
91
+ };
92
+
93
+ const { height: windowHeight } = Dimensions.get("window");
94
+ const IOS_NORMAL_DECELERATION_RATE = 0.998;
95
+ const ANDROID_NORMAL_DECELERATION_RATE = 0.985;
96
+ const DEFAULT_ANIMATION_DURATION = 250;
97
+ const DEFAULT_EASING = Easing.inOut(Easing.linear);
98
+ const imperativeScrollOptions = {
99
+ [FlatListComponentType]: {
100
+ method: "scrollToIndex",
101
+ args: {
102
+ index: 0,
103
+ viewPosition: 0,
104
+ viewOffset: 1000,
105
+ animated: true,
106
+ },
107
+ },
108
+ [ScrollViewComponentType]: {
109
+ method: "scrollTo",
110
+ args: {
111
+ x: 0,
112
+ y: 0,
113
+ animated: true,
114
+ },
115
+ },
116
+ [SectionListComponentType]: {
117
+ method: "scrollToLocation",
118
+ args: {
119
+ itemIndex: 0,
120
+ sectionIndex: 0,
121
+ viewPosition: 0,
122
+ viewOffset: 1000,
123
+ animated: true,
124
+ },
125
+ },
126
+ };
127
+
128
+ type AnimatedScrollableComponent = FlatList | ScrollView | SectionList;
129
+
130
+ type FlatListOption<T> = Assign<
131
+ { componentType: typeof FlatListComponentType },
132
+ FlatListProps<T>
133
+ >;
134
+ type ScrollViewOption = Assign<
135
+ { componentType: typeof ScrollViewComponentType },
136
+ ScrollViewProps
137
+ >;
138
+ type SectionListOption<T> = Assign<
139
+ { componentType: typeof SectionListComponentType },
140
+ SectionListProps<T>
141
+ >;
142
+
143
+ interface TimingParams {
144
+ clock: Animated.Clock;
145
+ from: Animated.Node<number>;
146
+ to: Animated.Node<number>;
147
+ position: Animated.Value<number>;
148
+ finished: Animated.Value<number>;
149
+ frameTime: Animated.Value<number>;
150
+ velocity: Animated.Node<number>;
151
+ }
152
+
153
+ type CommonProps = {
154
+ /**
155
+ * Array of numbers that indicate the different resting positions of the bottom sheet (in dp or %), starting from the top.
156
+ * If a percentage is used, that would translate to the relative amount of the total window height.
157
+ * For instance, if 50% is used, that'd be windowHeight * 0.5. If you wanna take into account safe areas during
158
+ * the calculation, such as status bars and notches, please use 'topInset' prop
159
+ */
160
+ snapPoints: Array<string | number>;
161
+ /**
162
+ * Index that references the initial resting position of the drawer, starting from the top
163
+ */
164
+ initialSnapIndex: number;
165
+ /**
166
+ * Render prop for the handle
167
+ */
168
+ renderHandle: () => React.ReactNode;
169
+ /**
170
+ * Callback that is executed right after the drawer settles on one of the snapping points.
171
+ * The new index is provided on the callback
172
+ * @param index
173
+ */
174
+ onSettle?: (index: number) => void;
175
+ /**
176
+ * Animated value that tracks the position of the drawer, being:
177
+ * 0 => closed
178
+ * 1 => fully opened
179
+ */
180
+ animatedPosition?: Animated.Value<number>;
181
+ /**
182
+ * This value is useful if you want to take into consideration safe area insets
183
+ * when applying percentages for snapping points. We recommend using react-native-safe-area-context
184
+ * library for that.
185
+ * @see https://github.com/th3rdwave/react-native-safe-area-context#usage, insets.top
186
+ */
187
+ topInset: number;
188
+ /**
189
+ * Reference to FlatList, ScrollView or SectionList in order to execute its imperative methods.
190
+ */
191
+ innerRef: RefObject<FlatList | ScrollView | SectionList>;
192
+ /*
193
+ * Style to be applied to the container.
194
+ */
195
+ containerStyle?: Animated.AnimateStyle<ViewStyle>;
196
+ /*
197
+ * Factor of resistance when the gesture is released. A value of 0 offers maximum
198
+ * acceleration, whereas 1 acts as the opposite. Defaults to 0.95
199
+ */
200
+ friction: number;
201
+ /*
202
+ * Allow drawer to be dragged beyond lowest snap point
203
+ */
204
+ enableOverScroll: boolean;
205
+ };
206
+
207
+ type TimingAnimationProps = {
208
+ animationType: typeof TimingAnimationType;
209
+ /**
210
+ * Configuration for the timing reanimated function
211
+ */
212
+ animationConfig?: Partial<Animated.TimingConfig>;
213
+ };
214
+
215
+ type SpringAnimationProps = {
216
+ animationType: typeof SpringAnimationType;
217
+ /**
218
+ * Configuration for the spring reanimated function
219
+ */
220
+ animationConfig?: Partial<Animated.SpringConfig>;
221
+ };
222
+
223
+ type Props<T> = CommonProps &
224
+ (FlatListOption<T> | ScrollViewOption | SectionListOption<T>) &
225
+ (TimingAnimationProps | SpringAnimationProps);
226
+
227
+ export class ScrollBottomSheet<T extends any> extends Component<Props<T>> {
228
+ static defaultProps = {
229
+ topInset: 0,
230
+ friction: 0.95,
231
+ animationType: "timing",
232
+ innerRef: React.createRef<AnimatedScrollableComponent>(),
233
+ enableOverScroll: false,
234
+ };
235
+
236
+ /**
237
+ * Gesture Handler references
238
+ */
239
+ private masterDrawer = React.createRef<TapGestureHandler>();
240
+ private drawerHandleRef = React.createRef<PanGestureHandler>();
241
+ private drawerContentRef = React.createRef<PanGestureHandler>();
242
+ private scrollComponentRef = React.createRef<NativeViewGestureHandler>();
243
+
244
+ /**
245
+ * ScrollView prop
246
+ */
247
+ private onScrollBeginDrag: ScrollViewProps["onScrollBeginDrag"];
248
+ /**
249
+ * Pan gesture handler events for drawer handle and content
250
+ */
251
+ private onHandleGestureEvent: PanGestureHandlerProperties["onGestureEvent"];
252
+ private onDrawerGestureEvent: PanGestureHandlerProperties["onGestureEvent"];
253
+ /**
254
+ * Main Animated Value that drives the top position of the UI drawer at any point in time
255
+ */
256
+ private translateY: Animated.Node<number>;
257
+ /**
258
+ * Animated value that keeps track of the position: 0 => closed, 1 => opened
259
+ */
260
+ private position: Animated.Node<number>;
261
+ /**
262
+ * Flag to indicate imperative snapping
263
+ */
264
+ private isManuallySetValue: Animated.Value<number> = new Value(0);
265
+ /**
266
+ * Manual snapping amount
267
+ */
268
+ private manualYOffset: Animated.Value<number> = new Value(0);
269
+ /**
270
+ * Keeps track of the current index
271
+ */
272
+ private nextSnapIndex: Animated.Value<number>;
273
+ /**
274
+ * Deceleration rate of the scroll component. This is used only on Android to
275
+ * compensate the unexpected glide it gets sometimes.
276
+ */
277
+ private decelerationRate: Animated.Value<number>;
278
+ private prevSnapIndex = -1;
279
+ private dragY = new Value(0);
280
+ private prevDragY = new Value(0);
281
+ private tempDestSnapPoint = new Value(0);
282
+ private isAndroid = new Value(Number(Platform.OS === "android"));
283
+ private animationClock = new Clock();
284
+ private animationPosition = new Value(0);
285
+ private animationFinished = new Value(0);
286
+ private animationFrameTime = new Value(0);
287
+ private velocityY = new Value(0);
288
+ private lastStartScrollY: Animated.Value<number> = new Value(0);
289
+ private prevTranslateYOffset: Animated.Value<number>;
290
+ private translationY: Animated.Value<number>;
291
+ private destSnapPoint = new Value(0);
292
+
293
+ private lastSnap: Animated.Value<number>;
294
+ private dragWithHandle = new Value(0);
295
+ private scrollUpAndPullDown = new Value(0);
296
+ private didGestureFinish: Animated.Node<0 | 1>;
297
+ private didScrollUpAndPullDown: Animated.Node<number>;
298
+ private setTranslationY: Animated.Node<number>;
299
+ private extraOffset: Animated.Node<number>;
300
+ private calculateNextSnapPoint: (
301
+ i?: number
302
+ ) => number | Animated.Node<number>;
303
+
304
+ private scrollComponent: React.ComponentType<
305
+ FlatListProps<T> | ScrollViewProps | SectionListProps<T>
306
+ >;
307
+
308
+ convertPercentageToDp = (str: string) =>
309
+ (Number(str.split("%")[0]) * (windowHeight - this.props.topInset)) / 100;
310
+
311
+ constructor(props: Props<T>) {
312
+ super(props);
313
+ const { initialSnapIndex, animationType } = props;
314
+
315
+ const animationDriver = animationType === "timing" ? 0 : 1;
316
+ const animationDuration =
317
+ (props.animationType === "timing" && props.animationConfig?.duration) ||
318
+ DEFAULT_ANIMATION_DURATION;
319
+
320
+ const ScrollComponent = this.getScrollComponent();
321
+ // @ts-ignore
322
+ this.scrollComponent = Animated.createAnimatedComponent(ScrollComponent);
323
+
324
+ const snapPoints = this.getNormalisedSnapPoints();
325
+ const openPosition = snapPoints[0];
326
+ const closedPosition = this.props.enableOverScroll
327
+ ? windowHeight
328
+ : snapPoints[snapPoints.length - 1];
329
+ const initialSnap = snapPoints[initialSnapIndex];
330
+ this.nextSnapIndex = new Value(initialSnapIndex);
331
+
332
+ const initialDecelerationRate = Platform.select({
333
+ android:
334
+ props.initialSnapIndex === 0 ? ANDROID_NORMAL_DECELERATION_RATE : 0,
335
+ ios: IOS_NORMAL_DECELERATION_RATE,
336
+ });
337
+ this.decelerationRate = new Value(initialDecelerationRate);
338
+
339
+ //@ts-ignore
340
+ const handleGestureState = new Value<GestureState>(-1);
341
+ //@ts-ignore
342
+ const handleOldGestureState = new Value<GestureState>(-1);
343
+ //@ts-ignore
344
+ const drawerGestureState = new Value<GestureState>(-1);
345
+ //@ts-ignore
346
+ const drawerOldGestureState = new Value<GestureState>(-1);
347
+
348
+ const lastSnapInRange = new Value(1);
349
+ this.prevTranslateYOffset = new Value(initialSnap);
350
+ this.translationY = new Value(initialSnap);
351
+
352
+ this.lastSnap = new Value(initialSnap);
353
+
354
+ this.onHandleGestureEvent = event([
355
+ {
356
+ nativeEvent: {
357
+ translationY: this.dragY,
358
+ oldState: handleOldGestureState,
359
+ state: handleGestureState,
360
+ velocityY: this.velocityY,
361
+ },
362
+ },
363
+ ]);
364
+ this.onDrawerGestureEvent = event([
365
+ {
366
+ nativeEvent: {
367
+ translationY: this.dragY,
368
+ oldState: drawerOldGestureState,
369
+ state: drawerGestureState,
370
+ velocityY: this.velocityY,
371
+ },
372
+ },
373
+ ]);
374
+ this.onScrollBeginDrag = event([
375
+ {
376
+ nativeEvent: {
377
+ contentOffset: { y: this.lastStartScrollY },
378
+ },
379
+ },
380
+ ]);
381
+
382
+ const didHandleGestureBegin = eq(handleGestureState, GestureState.ACTIVE);
383
+
384
+ const isAnimationInterrupted = and(
385
+ or(
386
+ eq(handleGestureState, GestureState.BEGAN),
387
+ eq(drawerGestureState, GestureState.BEGAN),
388
+ and(
389
+ eq(this.isAndroid, 0),
390
+ eq(animationDriver, 1),
391
+ or(
392
+ eq(drawerGestureState, GestureState.ACTIVE),
393
+ eq(handleGestureState, GestureState.ACTIVE)
394
+ )
395
+ )
396
+ ),
397
+ clockRunning(this.animationClock)
398
+ );
399
+
400
+ this.didGestureFinish = or(
401
+ and(
402
+ eq(handleOldGestureState, GestureState.ACTIVE),
403
+ eq(handleGestureState, GestureState.END)
404
+ ),
405
+ and(
406
+ eq(drawerOldGestureState, GestureState.ACTIVE),
407
+ eq(drawerGestureState, GestureState.END)
408
+ )
409
+ );
410
+
411
+ // Function that determines if the last snap point is in the range {snapPoints}
412
+ // In the case of interruptions in the middle of an animation, we'll get
413
+ // lastSnap values outside the range
414
+ const isLastSnapPointInRange = (i: number = 0): Animated.Node<number> =>
415
+ i === snapPoints.length
416
+ ? lastSnapInRange
417
+ : cond(
418
+ eq(this.lastSnap, snapPoints[i]),
419
+ [set(lastSnapInRange, 1)],
420
+ isLastSnapPointInRange(i + 1)
421
+ );
422
+
423
+ const scrollY = [
424
+ set(lastSnapInRange, 0),
425
+ isLastSnapPointInRange(),
426
+ cond(
427
+ or(
428
+ didHandleGestureBegin,
429
+ and(
430
+ this.isManuallySetValue,
431
+ not(eq(this.manualYOffset, snapPoints[0]))
432
+ )
433
+ ),
434
+ [set(this.dragWithHandle, 1), 0]
435
+ ),
436
+ cond(
437
+ // This is to account for a continuous scroll on the drawer from a snap point
438
+ // Different than top, bringing the drawer to the top position, so that if we
439
+ // change scroll direction without releasing the gesture, it doesn't pull down the drawer again
440
+ and(
441
+ eq(this.dragWithHandle, 1),
442
+ greaterThan(snapPoints[0], add(this.lastSnap, this.dragY)),
443
+ and(not(eq(this.lastSnap, snapPoints[0])), lastSnapInRange)
444
+ ),
445
+ [
446
+ set(this.lastSnap, snapPoints[0]),
447
+ set(this.dragWithHandle, 0),
448
+ this.lastStartScrollY,
449
+ ],
450
+ cond(eq(this.dragWithHandle, 1), 0, this.lastStartScrollY)
451
+ ),
452
+ ];
453
+
454
+ this.didScrollUpAndPullDown = cond(
455
+ and(
456
+ greaterOrEq(this.dragY, this.lastStartScrollY),
457
+ greaterThan(this.lastStartScrollY, 0)
458
+ ),
459
+ set(this.scrollUpAndPullDown, 1)
460
+ );
461
+
462
+ this.setTranslationY = cond(
463
+ and(
464
+ not(this.dragWithHandle),
465
+ not(greaterOrEq(this.dragY, this.lastStartScrollY))
466
+ ),
467
+ set(this.translationY, sub(this.dragY, this.lastStartScrollY)),
468
+ set(this.translationY, this.dragY)
469
+ );
470
+
471
+ this.extraOffset = cond(
472
+ eq(this.scrollUpAndPullDown, 1),
473
+ this.lastStartScrollY,
474
+ 0
475
+ );
476
+ const endOffsetY = add(
477
+ this.lastSnap,
478
+ this.translationY,
479
+ multiply(1 - props.friction, this.velocityY)
480
+ );
481
+
482
+ this.calculateNextSnapPoint = (i = 0): Animated.Node<number> | number =>
483
+ i === snapPoints.length
484
+ ? this.tempDestSnapPoint
485
+ : cond(
486
+ greaterThan(
487
+ abs(sub(this.tempDestSnapPoint, endOffsetY)),
488
+ abs(sub(add(snapPoints[i], this.extraOffset), endOffsetY))
489
+ ),
490
+ [
491
+ set(this.tempDestSnapPoint, add(snapPoints[i], this.extraOffset)),
492
+ set(this.nextSnapIndex, i),
493
+ this.calculateNextSnapPoint(i + 1),
494
+ ],
495
+ this.calculateNextSnapPoint(i + 1)
496
+ );
497
+
498
+ const runAnimation = ({
499
+ clock,
500
+ from,
501
+ to,
502
+ position,
503
+ finished,
504
+ velocity,
505
+ frameTime,
506
+ }: TimingParams) => {
507
+ const state = {
508
+ finished,
509
+ velocity: new Value(0),
510
+ position,
511
+ time: new Value(0),
512
+ frameTime,
513
+ };
514
+
515
+ const timingConfig = {
516
+ duration: animationDuration,
517
+ easing:
518
+ (props.animationType === "timing" && props.animationConfig?.easing) ||
519
+ DEFAULT_EASING,
520
+ toValue: new Value(0),
521
+ };
522
+
523
+ const springConfig = {
524
+ ...DEFAULT_SPRING_PARAMS,
525
+ ...((props.animationType === "spring" && props.animationConfig) || {}),
526
+ toValue: new Value(0),
527
+ };
528
+
529
+ return [
530
+ cond(and(not(clockRunning(clock)), not(eq(finished, 1))), [
531
+ // If the clock isn't running, we reset all the animation params and start the clock
532
+ set(state.finished, 0),
533
+ set(state.velocity, velocity),
534
+ set(state.time, 0),
535
+ set(state.position, from),
536
+ set(state.frameTime, 0),
537
+ set(timingConfig.toValue, to),
538
+ set(springConfig.toValue, to),
539
+ startClock(clock),
540
+ ]),
541
+ // We run the step here that is going to update position
542
+ cond(
543
+ eq(animationDriver, 0),
544
+ //@ts-ignore
545
+ timing(clock, state, timingConfig),
546
+ spring(clock, state, springConfig)
547
+ ),
548
+ cond(
549
+ state.finished,
550
+ [
551
+ call([this.nextSnapIndex], ([value]) => {
552
+ if (value !== this.prevSnapIndex) {
553
+ this.props.onSettle?.(value);
554
+ }
555
+ this.prevSnapIndex = value;
556
+ }),
557
+ // Resetting appropriate values
558
+ set(drawerOldGestureState, GestureState.END),
559
+ set(handleOldGestureState, GestureState.END),
560
+ set(this.prevTranslateYOffset, state.position),
561
+ cond(eq(this.scrollUpAndPullDown, 1), [
562
+ set(
563
+ this.prevTranslateYOffset,
564
+ sub(this.prevTranslateYOffset, this.lastStartScrollY)
565
+ ),
566
+ set(this.lastStartScrollY, 0),
567
+ set(this.scrollUpAndPullDown, 0),
568
+ ]),
569
+ cond(eq(this.destSnapPoint, snapPoints[0]), [
570
+ set(this.dragWithHandle, 0),
571
+ ]),
572
+ set(this.isManuallySetValue, 0),
573
+ set(this.manualYOffset, 0),
574
+ stopClock(clock),
575
+ this.prevTranslateYOffset,
576
+ ],
577
+ // We made the block return the updated position,
578
+ state.position
579
+ ),
580
+ ];
581
+ };
582
+
583
+ const translateYOffset = cond(
584
+ isAnimationInterrupted,
585
+ [
586
+ // set(prevTranslateYOffset, animationPosition) should only run if we are
587
+ // interrupting an animation when the drawer is currently in a different
588
+ // position than the top
589
+ cond(
590
+ or(
591
+ this.dragWithHandle,
592
+ greaterOrEq(abs(this.prevDragY), this.lastStartScrollY)
593
+ ),
594
+ set(this.prevTranslateYOffset, this.animationPosition)
595
+ ),
596
+ set(this.animationFinished, 1),
597
+ set(this.translationY, 0),
598
+ // Resetting appropriate values
599
+ set(drawerOldGestureState, GestureState.END),
600
+ set(handleOldGestureState, GestureState.END),
601
+ // By forcing that frameTime exceeds duration, it has the effect of stopping the animation
602
+ set(this.animationFrameTime, add(animationDuration, 1000)),
603
+ set(this.velocityY, 0),
604
+ stopClock(this.animationClock),
605
+ this.prevTranslateYOffset,
606
+ ],
607
+ cond(
608
+ or(
609
+ this.didGestureFinish,
610
+ this.isManuallySetValue,
611
+ clockRunning(this.animationClock)
612
+ ),
613
+ [
614
+ runAnimation({
615
+ clock: this.animationClock,
616
+ from: cond(
617
+ this.isManuallySetValue,
618
+ this.prevTranslateYOffset,
619
+ add(this.prevTranslateYOffset, this.translationY)
620
+ ),
621
+ to: this.destSnapPoint,
622
+ position: this.animationPosition,
623
+ finished: this.animationFinished,
624
+ frameTime: this.animationFrameTime,
625
+ velocity: this.velocityY,
626
+ }),
627
+ ],
628
+ [
629
+ set(this.animationFrameTime, 0),
630
+ set(this.animationFinished, 0),
631
+ // @ts-ignore
632
+ this.prevTranslateYOffset,
633
+ ]
634
+ )
635
+ );
636
+
637
+ this.translateY = interpolate(
638
+ add(translateYOffset, this.dragY, multiply(scrollY, -1)),
639
+ {
640
+ inputRange: [openPosition, closedPosition],
641
+ outputRange: [openPosition, closedPosition],
642
+ extrapolate: Extrapolate.CLAMP,
643
+ }
644
+ );
645
+
646
+ this.position = interpolate(this.translateY, {
647
+ inputRange: [openPosition, snapPoints[snapPoints.length - 1]],
648
+ outputRange: [1, 0],
649
+ extrapolate: Extrapolate.CLAMP,
650
+ });
651
+ }
652
+
653
+ private getNormalisedSnapPoints = () => {
654
+ return this.props.snapPoints.map((p) => {
655
+ if (typeof p === "string") {
656
+ return this.convertPercentageToDp(p);
657
+ } else if (typeof p === "number") {
658
+ return p;
659
+ }
660
+
661
+ throw new Error(
662
+ `Invalid type for value ${p}: ${typeof p}. It should be either a percentage string or a number`
663
+ );
664
+ });
665
+ };
666
+
667
+ private getScrollComponent = () => {
668
+ switch (this.props.componentType) {
669
+ case "FlatList":
670
+ return FlatList;
671
+ case "ScrollView":
672
+ return ScrollView;
673
+ case "SectionList":
674
+ return SectionList;
675
+ default:
676
+ throw new Error(
677
+ "Component type not supported: it should be one of `FlatList`, `ScrollView` or `SectionList`"
678
+ );
679
+ }
680
+ };
681
+
682
+ snapTo = (index: number) => {
683
+ const snapPoints = this.getNormalisedSnapPoints();
684
+ this.isManuallySetValue.setValue(1);
685
+ this.manualYOffset.setValue(snapPoints[index]);
686
+ this.nextSnapIndex.setValue(index);
687
+ };
688
+
689
+ render() {
690
+ const { renderHandle, initialSnapIndex, containerStyle, ...rest } =
691
+ this.props;
692
+ const AnimatedScrollableComponent = this.scrollComponent;
693
+ const normalisedSnapPoints = this.getNormalisedSnapPoints();
694
+ const initialSnap = normalisedSnapPoints[initialSnapIndex];
695
+
696
+ const Content = (
697
+ <Animated.View
698
+ style={[
699
+ StyleSheet.absoluteFillObject,
700
+ containerStyle,
701
+ // @ts-ignore
702
+ {
703
+ transform: [{ translateY: this.translateY }],
704
+ },
705
+ ]}
706
+ >
707
+ <PanGestureHandler
708
+ ref={this.drawerHandleRef}
709
+ shouldCancelWhenOutside={false}
710
+ simultaneousHandlers={this.masterDrawer}
711
+ onGestureEvent={this.onHandleGestureEvent}
712
+ onHandlerStateChange={this.onHandleGestureEvent}
713
+ >
714
+ <Animated.View>{renderHandle()}</Animated.View>
715
+ </PanGestureHandler>
716
+ <PanGestureHandler
717
+ ref={this.drawerContentRef}
718
+ simultaneousHandlers={[this.scrollComponentRef, this.masterDrawer]}
719
+ shouldCancelWhenOutside={false}
720
+ onGestureEvent={this.onDrawerGestureEvent}
721
+ onHandlerStateChange={this.onDrawerGestureEvent}
722
+ >
723
+ <Animated.View style={styles.container}>
724
+ <NativeViewGestureHandler
725
+ ref={this.scrollComponentRef}
726
+ waitFor={this.masterDrawer}
727
+ simultaneousHandlers={this.drawerContentRef}
728
+ >
729
+ <AnimatedScrollableComponent
730
+ overScrollMode="never"
731
+ bounces={false}
732
+ {...rest}
733
+ ref={this.props.innerRef}
734
+ // @ts-ignore
735
+ decelerationRate={this.decelerationRate}
736
+ onScrollBeginDrag={this.onScrollBeginDrag}
737
+ scrollEventThrottle={1}
738
+ contentContainerStyle={[
739
+ rest.contentContainerStyle,
740
+ { paddingBottom: this.getNormalisedSnapPoints()[0] },
741
+ ]}
742
+ />
743
+ </NativeViewGestureHandler>
744
+ </Animated.View>
745
+ </PanGestureHandler>
746
+ {this.props.animatedPosition && (
747
+ <Animated.Code
748
+ exec={onChange(
749
+ this.position,
750
+ set(this.props.animatedPosition, this.position)
751
+ )}
752
+ />
753
+ )}
754
+ <Animated.Code
755
+ exec={onChange(
756
+ this.dragY,
757
+ cond(not(eq(this.dragY, 0)), set(this.prevDragY, this.dragY))
758
+ )}
759
+ />
760
+ <Animated.Code
761
+ exec={onChange(
762
+ this.didGestureFinish,
763
+ cond(this.didGestureFinish, [
764
+ this.didScrollUpAndPullDown,
765
+ this.setTranslationY,
766
+ set(
767
+ this.tempDestSnapPoint,
768
+ add(normalisedSnapPoints[0], this.extraOffset)
769
+ ),
770
+ set(this.nextSnapIndex, 0),
771
+ set(this.destSnapPoint, this.calculateNextSnapPoint()),
772
+ cond(
773
+ and(
774
+ greaterThan(this.dragY, this.lastStartScrollY),
775
+ this.isAndroid,
776
+ not(this.dragWithHandle)
777
+ ),
778
+ call([], () => {
779
+ // This prevents the scroll glide from happening on Android when pulling down with inertia.
780
+ // It's not perfect, but does the job for now
781
+ const { method, args } =
782
+ imperativeScrollOptions[this.props.componentType];
783
+ // @ts-ignore
784
+ const node = this.props.innerRef.current as any;
785
+
786
+ if (
787
+ node &&
788
+ node[method] &&
789
+ ((this.props.componentType === "FlatList" &&
790
+ (this.props?.data?.length || 0) > 0) ||
791
+ (this.props.componentType === "SectionList" &&
792
+ this.props.sections.length > 0) ||
793
+ this.props.componentType === "ScrollView")
794
+ ) {
795
+ node[method](args);
796
+ }
797
+ })
798
+ ),
799
+ set(this.dragY, 0),
800
+ set(this.velocityY, 0),
801
+ set(
802
+ this.lastSnap,
803
+ sub(
804
+ this.destSnapPoint,
805
+ cond(
806
+ eq(this.scrollUpAndPullDown, 1),
807
+ this.lastStartScrollY,
808
+ 0
809
+ )
810
+ )
811
+ ),
812
+ call([this.lastSnap], ([value]) => {
813
+ // This is the TapGHandler trick
814
+ // @ts-ignore
815
+ this.masterDrawer?.current?.setNativeProps({
816
+ maxDeltaY: value - this.getNormalisedSnapPoints()[0],
817
+ });
818
+ }),
819
+ set(
820
+ this.decelerationRate,
821
+ cond(
822
+ eq(this.isAndroid, 1),
823
+ cond(
824
+ eq(this.lastSnap, normalisedSnapPoints[0]),
825
+ ANDROID_NORMAL_DECELERATION_RATE,
826
+ 0
827
+ ),
828
+ IOS_NORMAL_DECELERATION_RATE
829
+ )
830
+ ),
831
+ ])
832
+ )}
833
+ />
834
+ <Animated.Code
835
+ exec={onChange(this.isManuallySetValue, [
836
+ cond(
837
+ this.isManuallySetValue,
838
+ [
839
+ set(this.destSnapPoint, this.manualYOffset),
840
+ set(this.animationFinished, 0),
841
+ set(this.lastSnap, this.manualYOffset),
842
+ call([this.lastSnap], ([value]) => {
843
+ // This is the TapGHandler trick
844
+ // @ts-ignore
845
+ this.masterDrawer?.current?.setNativeProps({
846
+ maxDeltaY: value - this.getNormalisedSnapPoints()[0],
847
+ });
848
+ }),
849
+ ],
850
+ [set(this.nextSnapIndex, 0)]
851
+ ),
852
+ ])}
853
+ />
854
+ </Animated.View>
855
+ );
856
+
857
+ // On Android, having an intermediary view with pointerEvents="box-none", breaks the
858
+ // waitFor logic
859
+ if (Platform.OS === "android") {
860
+ return (
861
+ <TapGestureHandler
862
+ maxDurationMs={100000}
863
+ ref={this.masterDrawer}
864
+ maxDeltaY={initialSnap - this.getNormalisedSnapPoints()[0]}
865
+ shouldCancelWhenOutside={false}
866
+ >
867
+ {Content}
868
+ </TapGestureHandler>
869
+ );
870
+ }
871
+
872
+ // On iOS, We need to wrap the content on a view with PointerEvents box-none
873
+ // So that we can start scrolling automatically when reaching the top without
874
+ // Stopping the gesture
875
+ return (
876
+ <TapGestureHandler
877
+ maxDurationMs={100000}
878
+ ref={this.masterDrawer}
879
+ maxDeltaY={initialSnap - this.getNormalisedSnapPoints()[0]}
880
+ >
881
+ <View style={StyleSheet.absoluteFillObject} pointerEvents="box-none">
882
+ {Content}
883
+ </View>
884
+ </TapGestureHandler>
885
+ );
886
+ }
887
+ }
888
+
889
+ export default ScrollBottomSheet;
890
+
891
+ const styles = StyleSheet.create({
892
+ container: {
893
+ flex: 1,
894
+ },
895
+ });