react-native-ui-lib 8.0.1 → 8.1.0

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 (537) hide show
  1. package/jestSetup/jest-setup.js +154 -0
  2. package/lib/components/DynamicFonts/FontDownloader.d.js +1 -0
  3. package/lib/components/DynamicFonts/FontLoader.d.js +1 -0
  4. package/lib/components/DynamicFonts/NoPermissionsAcquirer.d.js +1 -0
  5. package/lib/components/DynamicFonts/PermissionsAcquirer.android.d.js +1 -0
  6. package/lib/components/DynamicFonts/PermissionsAcquirer.ios.d.js +2 -0
  7. package/lib/components/DynamicFonts/PermissionsAcquirer.web.d.js +2 -0
  8. package/lib/components/DynamicFonts/RNFSPackage.d.js +1 -0
  9. package/lib/components/DynamicFonts/index.d.js +3 -0
  10. package/lib/components/HighlighterOverlayView/index.d.js +1 -0
  11. package/lib/components/HighlighterOverlayView/index.web.d.js +1 -0
  12. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.d.js +2 -0
  13. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.ios.d.js +2 -0
  14. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardViewBase.d.js +2 -0
  15. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.d.js +1 -0
  16. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.web.d.js +1 -0
  17. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.js +1 -0
  18. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/index.d.js +5 -0
  19. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.js +1 -0
  20. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.android.d.js +1 -0
  21. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.js +1 -0
  22. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/index.d.js +1 -0
  23. package/lib/components/Keyboard/KeyboardAccessoryView/index.d.js +7 -0
  24. package/lib/components/Keyboard/KeyboardAwareInsetsView/index.d.js +1 -0
  25. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.android.d.js +1 -0
  26. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.ios.d.js +10 -0
  27. package/lib/components/Keyboard/KeyboardTrackingView/index.d.js +1 -0
  28. package/lib/components/Keyboard/KeyboardTrackingView/index.web.d.js +1 -0
  29. package/lib/components/Keyboard/index.d.js +4 -0
  30. package/lib/components/SafeArea/SafeAreaInsetsManager.d.js +1 -0
  31. package/lib/components/SafeArea/SafeAreaSpacerView.d.js +1 -0
  32. package/lib/components/SafeArea/SafeAreaSpacerView.web.d.js +1 -0
  33. package/lib/components/SafeArea/index.d.js +1 -0
  34. package/lib/components/index.d.js +6 -0
  35. package/lib/scripts/releaseNative.js +72 -0
  36. package/lib/specs/HighlighterViewNativeComponent.d.js +1 -0
  37. package/lib/specs/HighlighterViewNativeComponent.d.ts +61 -0
  38. package/lib/specs/HighlighterViewNativeComponent.js +8 -0
  39. package/lib/specs/KeyboardTrackingViewNativeComponent.d.js +1 -0
  40. package/lib/specs/KeyboardTrackingViewNativeComponent.d.ts +58 -0
  41. package/lib/specs/KeyboardTrackingViewNativeComponent.js +8 -0
  42. package/package.json +7 -31
  43. package/scripts/build/build.js +35 -0
  44. package/scripts/build/buildPackages/buildComponentsPackages.js +18 -0
  45. package/scripts/build/buildPackages/buildCustomPackages.js +106 -0
  46. package/scripts/build/buildPackages/index.js +6 -0
  47. package/scripts/createCalendarMockData.js +37 -0
  48. package/scripts/docs/buildDocs.js +1 -0
  49. package/scripts/prepush.js +71 -0
  50. package/scripts/release/prReleaseNotes.js +6 -0
  51. package/scripts/release/release.js +99 -0
  52. package/scripts/updateWebAssets.js +88 -0
  53. package/scripts/utils.js +21 -0
  54. package/src/assets/__tests__/Assets.spec.js +110 -0
  55. package/src/commons/__tests__/baseComponent.spec.js +36 -0
  56. package/src/commons/__tests__/constants.spec.js +202 -0
  57. package/src/commons/__tests__/modifiers.spec.js +453 -0
  58. package/src/components/WheelPicker/__tests__/index.spec.js +121 -0
  59. package/src/components/WheelPicker/__tests__/useListMiddleIndex.spec.js +40 -0
  60. package/src/components/WheelPicker/__tests__/usePresenter.spec.js +87 -0
  61. package/src/components/avatar/__tests__/index.spec.js +25 -0
  62. package/src/components/badge/__tests__/index.spec.js +84 -0
  63. package/src/components/button/__tests__/index.driver.spec.js +209 -0
  64. package/src/components/button/__tests__/index.spec.js +287 -0
  65. package/src/components/button/index.js +30 -8
  66. package/src/components/card/__tests__/CardPresenter.spec.js +35 -0
  67. package/src/components/carousel/__tests__/CarouselPresenter.spec.js +52 -0
  68. package/src/components/carousel/__tests__/index.spec.js +89 -0
  69. package/src/components/carousel/index.js +2 -1
  70. package/src/components/checkbox/__tests__/index.spec.js +357 -0
  71. package/src/components/chip/__tests__/index.spec.js +63 -0
  72. package/src/components/colorSwatch/index.js +1 -1
  73. package/src/components/connectionStatusBar/__tests__/index.spec.js +41 -0
  74. package/src/components/dateTimePicker/__tests__/index.spec.js +44 -0
  75. package/src/components/dialog/__tests__/index.new.spec.js +118 -0
  76. package/src/components/featureHighlight/__tests__/index.spec.js +76 -0
  77. package/src/components/floatingButton/__tests__/index.spec.js +229 -0
  78. package/src/components/floatingButton/index.js +66 -35
  79. package/src/components/hint/__tests__/index.spec.js +108 -0
  80. package/src/components/image/__tests__/index.spec.js +56 -0
  81. package/src/components/image/image.api.json +193 -1
  82. package/src/components/maskedInput/__tests__/maskedInput.new.spec.js +19 -0
  83. package/src/components/maskedInput/__tests__/maskedInput.old.spec.js +20 -0
  84. package/src/components/modal/__tests__/index.spec.js +58 -0
  85. package/src/components/numberInput/__tests__/Presenter.spec.js +374 -0
  86. package/src/components/numberInput/__tests__/index.spec.js +38 -0
  87. package/src/components/numberInput/numberInput.api.json +131 -6
  88. package/src/components/overlay/index.js +2 -1
  89. package/src/components/pageControl/pageControl.api.json +175 -1
  90. package/src/components/panView/__tests__/panningUtil.spec.js +693 -0
  91. package/src/components/picker/__tests__/PickerPresenter.spec.js +15 -0
  92. package/src/components/picker/__tests__/index.spec.js +364 -0
  93. package/src/components/picker/helpers/__tests__/usePickerLabel.spec.js +96 -0
  94. package/src/components/radioButton/__tests__/index.spec.js +43 -0
  95. package/src/components/radioGroup/__tests__/index.spec.js +96 -0
  96. package/src/components/sectionsWheelPicker/__tests__/index.spec.js +35 -0
  97. package/src/components/sectionsWheelPicker/__tests__/mockSections.js +28 -0
  98. package/src/components/segmentedControl/__tests__/index.spec.js +25 -0
  99. package/src/components/slider/__tests__/index.spec.js +35 -0
  100. package/src/components/slider/index.js +12 -1
  101. package/src/components/slider/slider.api.json +11 -0
  102. package/src/components/sortableGridList/__tests__/index.spec.js +51 -0
  103. package/src/components/sortableGridList/__tests__/usePresenter.spec.js +231 -0
  104. package/src/components/sortableGridList/sortableGridList.api.json +44 -1
  105. package/src/components/sortableList/SortableList.api.json +51 -3
  106. package/src/components/sortableList/__tests__/index.spec.js +105 -0
  107. package/src/components/stackAggregator/assets/arrow-down.png +0 -0
  108. package/src/components/stackAggregator/assets/arrow-down@2x.png +0 -0
  109. package/src/components/stackAggregator/assets/arrow-down@3x.png +0 -0
  110. package/src/components/switch/__tests__/index.spec.js +96 -0
  111. package/src/components/text/__tests__/index.driver.spec.js +124 -0
  112. package/src/components/text/__tests__/index.spec.js +245 -0
  113. package/src/components/textField/__tests__/Presenter.spec.js +240 -0
  114. package/src/components/textField/__tests__/index.driver.spec.js +639 -0
  115. package/src/components/timeline/__tests__/driver.index.spec.js +133 -0
  116. package/src/helpers/__tests__/AvatarHelper.spec.js +170 -0
  117. package/src/hooks/useDidUpdate/__tests__/useDidUpdate.spec.js +80 -0
  118. package/src/hooks/useOrientation/__tests__/useOrientation.spec.js +70 -0
  119. package/src/hooks/useToggleValue/__tests__/useToggleValue.spec.js +89 -0
  120. package/src/incubator/calendar/__tests__/DateUtils.spec.js +367 -0
  121. package/src/incubator/expandableOverlay/__tests__/index.spec.js +114 -0
  122. package/src/incubator/gradient/__tests__/useAngleTransform.spec.js +126 -0
  123. package/src/incubator/slider/__tests__/SliderPresenter.spec.js +43 -0
  124. package/src/incubator/slider/__tests__/index.spec.js +34 -0
  125. package/src/incubator/slider/slider.api.json +11 -0
  126. package/src/incubator/toast/__tests__/index.spec.js +64 -0
  127. package/src/style/__tests__/colors.spec.js +313 -0
  128. package/src/style/__tests__/scheme.spec.js +119 -0
  129. package/src/style/typographyPresets.js +26 -23
  130. package/src/utils/__tests__/Playground.perf.js +14 -0
  131. package/src/utils/__tests__/imageUtils.spec.js +54 -0
  132. package/src/utils/__tests__/textUtils.spec.js +446 -0
  133. package/.eslintrc.js +0 -56
  134. package/babel.config.js +0 -35
  135. package/index.js +0 -10
  136. package/lib/android/build.gradle +0 -32
  137. package/lib/android/src/main/AndroidManifest.xml +0 -4
  138. package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +0 -28
  139. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontModule.java +0 -139
  140. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontPackage.java +0 -28
  141. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightFrame.java +0 -33
  142. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightViewTagParams.java +0 -50
  143. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterView.java +0 -167
  144. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +0 -131
  145. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewPackage.java +0 -28
  146. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/UiUtils.java +0 -50
  147. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/AppContextHolder.java +0 -52
  148. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java +0 -213
  149. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.java +0 -39
  150. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewManager.java +0 -29
  151. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewShadow.java +0 -29
  152. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.java +0 -34
  153. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputPackage.java +0 -49
  154. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactContextHolder.java +0 -16
  155. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.java +0 -83
  156. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.java +0 -163
  157. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/PredicateFunc.java +0 -5
  158. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +0 -33
  159. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils.java +0 -65
  160. package/lib/android/src/main/java/com/wix/reactnativeuilib/utils/LogForwarder.java +0 -45
  161. package/lib/android/src/main/res/layout/wheel_picker.xml +0 -9
  162. package/lib/android/src/main/res/values/colors.xml +0 -9
  163. package/lib/android/src/main/res/values/styles.xml +0 -9
  164. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/keyboardRegistry.api.json +0 -50
  165. package/lib/components/Keyboard/KeyboardAccessoryView/keyboardAccessoryView.api.json +0 -58
  166. package/lib/components/Keyboard/KeyboardAwareInsetsView/keyboardAwareInsetsView.api.json +0 -14
  167. package/lib/components/Keyboard/KeyboardTrackingView/keyboardTrackingView.api.json +0 -86
  168. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.h +0 -9
  169. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.m +0 -115
  170. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.h +0 -19
  171. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.m +0 -216
  172. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.h +0 -6
  173. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.m +0 -28
  174. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.h +0 -39
  175. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.m +0 -160
  176. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.h +0 -36
  177. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.m +0 -121
  178. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.h +0 -48
  179. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.m +0 -27
  180. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolation.h +0 -16
  181. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.h +0 -19
  182. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.mm +0 -155
  183. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.h +0 -16
  184. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +0 -450
  185. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +0 -18
  186. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +0 -99
  187. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.h +0 -14
  188. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +0 -827
  189. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.h +0 -44
  190. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.m +0 -171
  191. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.h +0 -6
  192. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.m +0 -17
  193. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.h +0 -6
  194. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.m +0 -105
  195. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.h +0 -5
  196. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.m +0 -20
  197. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.h +0 -7
  198. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.m +0 -76
  199. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.h +0 -9
  200. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.m +0 -14
  201. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.h +0 -5
  202. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.m +0 -26
  203. package/lib/ios/reactnativeuilib.xcodeproj/project.pbxproj +0 -435
  204. package/metro.config.js +0 -23
  205. package/src/.babelrc.json +0 -23
  206. package/src/assets/Assets.d.ts +0 -5
  207. package/src/assets/emojis/index.d.ts +0 -1343
  208. package/src/assets/index.d.ts +0 -3
  209. package/src/assets/internal/index.d.ts +0 -4
  210. package/src/commons/Config.d.ts +0 -24
  211. package/src/commons/Constants.d.ts +0 -54
  212. package/src/commons/UIComponent.d.ts +0 -4
  213. package/src/commons/asBaseComponent.d.ts +0 -15
  214. package/src/commons/baseComponent.d.ts +0 -2
  215. package/src/commons/forwardRef.d.ts +0 -8
  216. package/src/commons/modifiers.d.ts +0 -118
  217. package/src/commons/new.d.ts +0 -8
  218. package/src/commons/withScrollEnabler.d.ts +0 -13
  219. package/src/commons/withScrollReached.d.ts +0 -35
  220. package/src/components/WheelPicker/Item.d.ts +0 -28
  221. package/src/components/WheelPicker/WheelPicker.driver.d.ts +0 -18
  222. package/src/components/WheelPicker/WheelPickerItem.driver.d.ts +0 -8
  223. package/src/components/WheelPicker/helpers/useListMiddleIndex.d.ts +0 -6
  224. package/src/components/WheelPicker/index.d.ts +0 -88
  225. package/src/components/WheelPicker/types.d.ts +0 -6
  226. package/src/components/WheelPicker/usePresenter.d.ts +0 -21
  227. package/src/components/actionBar/index.d.ts +0 -35
  228. package/src/components/actionSheet/index.d.ts +0 -80
  229. package/src/components/animatedImage/index.d.ts +0 -28
  230. package/src/components/avatar/index.d.ts +0 -382
  231. package/src/components/badge/index.d.ts +0 -879
  232. package/src/components/baseInput/Validators.d.ts +0 -8
  233. package/src/components/baseInput/index.d.ts +0 -29
  234. package/src/components/button/Button.driver.new.d.ts +0 -34
  235. package/src/components/button/ButtonConstants.d.ts +0 -26
  236. package/src/components/button/index.d.ts +0 -572
  237. package/src/components/button/types.d.ts +0 -153
  238. package/src/components/card/CardContext.d.ts +0 -3
  239. package/src/components/card/CardImage.d.ts +0 -20
  240. package/src/components/card/CardPresenter.d.ts +0 -12
  241. package/src/components/card/CardSection.d.ts +0 -79
  242. package/src/components/card/asCardChild.d.ts +0 -6
  243. package/src/components/card/index.d.ts +0 -120
  244. package/src/components/carousel/Carousel.driver.new.d.ts +0 -9
  245. package/src/components/carousel/CarouselPresenter.d.ts +0 -9
  246. package/src/components/carousel/index.d.ts +0 -73
  247. package/src/components/carousel/types.d.ts +0 -107
  248. package/src/components/checkbox/Checkbox.driver.d.ts +0 -15
  249. package/src/components/checkbox/index.d.ts +0 -129
  250. package/src/components/chip/chip.driver.d.ts +0 -33
  251. package/src/components/chip/index.d.ts +0 -209
  252. package/src/components/chipsInput/index.d.ts +0 -55
  253. package/src/components/colorPalette/index.d.ts +0 -116
  254. package/src/components/colorPicker/ColorPickerDialog.d.ts +0 -39
  255. package/src/components/colorPicker/ColorPickerDialogHeader.d.ts +0 -9
  256. package/src/components/colorPicker/ColorPickerDialogSliders.d.ts +0 -10
  257. package/src/components/colorPicker/ColorPickerPresenter.d.ts +0 -16
  258. package/src/components/colorPicker/ColorPickerPreview.d.ts +0 -12
  259. package/src/components/colorPicker/index.d.ts +0 -45
  260. package/src/components/colorSwatch/index.d.ts +0 -50
  261. package/src/components/connectionStatusBar/index.d.ts +0 -33
  262. package/src/components/connectionStatusBar/types.d.ts +0 -28
  263. package/src/components/dash/index.d.ts +0 -19
  264. package/src/components/dateTimePicker/DateTimePicker.driver.d.ts +0 -7
  265. package/src/components/dateTimePicker/index.d.ts +0 -288
  266. package/src/components/dateTimePicker/useOldApi.d.ts +0 -27
  267. package/src/components/dialog/Dialog.driver.new.d.ts +0 -6
  268. package/src/components/dialog/DialogHeader.d.ts +0 -4
  269. package/src/components/dialog/index.d.ts +0 -15
  270. package/src/components/dialog/types.d.ts +0 -138
  271. package/src/components/dialog/useDialogContent.d.ts +0 -13
  272. package/src/components/drawer/Swipeable.d.ts +0 -94
  273. package/src/components/drawer/index.d.ts +0 -161
  274. package/src/components/expandableSection/index.d.ts +0 -40
  275. package/src/components/fadedScrollView/index.d.ts +0 -59
  276. package/src/components/fader/index.d.ts +0 -37
  277. package/src/components/featureHighlight/index.d.ts +0 -147
  278. package/src/components/floatingButton/index.d.ts +0 -85
  279. package/src/components/gradient/index.d.ts +0 -19
  280. package/src/components/gridList/index.d.ts +0 -5
  281. package/src/components/gridList/types.d.ts +0 -29
  282. package/src/components/gridList/useGridLayout.d.ts +0 -15
  283. package/src/components/gridListItem/index.d.ts +0 -132
  284. package/src/components/gridView/index.d.ts +0 -80
  285. package/src/components/hint/Hint.driver.d.ts +0 -6
  286. package/src/components/hint/Hint.driver.new.d.ts +0 -19
  287. package/src/components/hint/HintAnchor.d.ts +0 -13
  288. package/src/components/hint/HintBubble.d.ts +0 -12
  289. package/src/components/hint/HintMockChildren.d.ts +0 -8
  290. package/src/components/hint/HintOld.d.ts +0 -196
  291. package/src/components/hint/hooks/useHintAccessibility.d.ts +0 -10
  292. package/src/components/hint/hooks/useHintLayout.d.ts +0 -13
  293. package/src/components/hint/hooks/useHintPosition.d.ts +0 -29
  294. package/src/components/hint/hooks/useHintVisibility.d.ts +0 -6
  295. package/src/components/hint/index.d.ts +0 -14
  296. package/src/components/hint/types.d.ts +0 -106
  297. package/src/components/icon/index.d.ts +0 -97
  298. package/src/components/image/Image.driver.d.ts +0 -4
  299. package/src/components/image/Image.driver.new.d.ts +0 -2
  300. package/src/components/image/index.d.ts +0 -192
  301. package/src/components/listItem/ListItemPart.d.ts +0 -15
  302. package/src/components/listItem/index.d.ts +0 -52
  303. package/src/components/listItem/types.d.ts +0 -60
  304. package/src/components/loaderScreen/index.d.ts +0 -13
  305. package/src/components/loaderScreen/types.d.ts +0 -32
  306. package/src/components/marquee/index.d.ts +0 -5
  307. package/src/components/marquee/types.d.ts +0 -35
  308. package/src/components/maskedInput/index.d.ts +0 -5
  309. package/src/components/maskedInput/new.d.ts +0 -22
  310. package/src/components/modal/Modal.driver.new.d.ts +0 -8
  311. package/src/components/modal/TopBar.d.ts +0 -89
  312. package/src/components/modal/index.d.ts +0 -64
  313. package/src/components/numberInput/NumberInput.driver.d.ts +0 -6
  314. package/src/components/numberInput/Presenter.d.ts +0 -21
  315. package/src/components/numberInput/index.d.ts +0 -57
  316. package/src/components/overlay/index.d.ts +0 -68
  317. package/src/components/pageControl/index.d.ts +0 -56
  318. package/src/components/panView/index.d.ts +0 -21
  319. package/src/components/panView/panningUtil.d.ts +0 -38
  320. package/src/components/panView/usePanGesture.d.ts +0 -49
  321. package/src/components/picker/Picker.driver.new.d.ts +0 -44
  322. package/src/components/picker/PickerContext.d.ts +0 -4
  323. package/src/components/picker/PickerItem.d.ts +0 -11
  324. package/src/components/picker/PickerItemsList.d.ts +0 -4
  325. package/src/components/picker/PickerPresenter.d.ts +0 -7
  326. package/src/components/picker/PickerSelectionStatusBar.d.ts +0 -3
  327. package/src/components/picker/helpers/useFieldType.d.ts +0 -373
  328. package/src/components/picker/helpers/useImperativePickerHandle.d.ts +0 -5
  329. package/src/components/picker/helpers/useNewPickerProps.d.ts +0 -3
  330. package/src/components/picker/helpers/usePickerLabel.d.ts +0 -17
  331. package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +0 -4
  332. package/src/components/picker/helpers/usePickerSearch.d.ts +0 -9
  333. package/src/components/picker/helpers/usePickerSelection.d.ts +0 -16
  334. package/src/components/picker/index.d.ts +0 -15
  335. package/src/components/picker/types.d.ts +0 -321
  336. package/src/components/pieChart/PieSegment.d.ts +0 -34
  337. package/src/components/pieChart/index.d.ts +0 -15
  338. package/src/components/progressBar/index.d.ts +0 -65
  339. package/src/components/progressiveImage/index.d.ts +0 -23
  340. package/src/components/radioButton/RadioButton.driver.d.ts +0 -9
  341. package/src/components/radioButton/index.d.ts +0 -121
  342. package/src/components/radioGroup/RadioGroup.driver.d.ts +0 -13
  343. package/src/components/radioGroup/RadioGroupContext.d.ts +0 -14
  344. package/src/components/radioGroup/asRadioGroupChild.d.ts +0 -2
  345. package/src/components/radioGroup/index.d.ts +0 -47
  346. package/src/components/scrollBar/index.d.ts +0 -88
  347. package/src/components/searchInput/index.d.ts +0 -37
  348. package/src/components/searchInput/types.d.ts +0 -66
  349. package/src/components/sectionsWheelPicker/SectionsWheelPicker.driver.d.ts +0 -25
  350. package/src/components/sectionsWheelPicker/index.d.ts +0 -43
  351. package/src/components/segmentedControl/index.d.ts +0 -90
  352. package/src/components/segmentedControl/segment.d.ts +0 -111
  353. package/src/components/segmentedControl/useSegmentedControlPreset.d.ts +0 -10
  354. package/src/components/skeletonView/index.d.ts +0 -163
  355. package/src/components/slider/ColorSliderGroup.d.ts +0 -13
  356. package/src/components/slider/GradientSlider.d.ts +0 -20
  357. package/src/components/slider/SliderContext.d.ts +0 -8
  358. package/src/components/slider/Thumb.d.ts +0 -32
  359. package/src/components/slider/index.d.ts +0 -31
  360. package/src/components/slider/slider.driver.d.ts +0 -5
  361. package/src/components/slider/types.d.ts +0 -197
  362. package/src/components/sortableGridList/SortableItem.d.ts +0 -6
  363. package/src/components/sortableGridList/index.d.ts +0 -5
  364. package/src/components/sortableGridList/types.d.ts +0 -34
  365. package/src/components/sortableGridList/usePresenter.d.ts +0 -21
  366. package/src/components/sortableList/SortableList.driver.new.d.ts +0 -2
  367. package/src/components/sortableList/SortableListContext.d.ts +0 -19
  368. package/src/components/sortableList/SortableListItem.d.ts +0 -8
  369. package/src/components/sortableList/SortableListItem.driver.new.d.ts +0 -11
  370. package/src/components/sortableList/index.d.ts +0 -5
  371. package/src/components/sortableList/types.d.ts +0 -48
  372. package/src/components/sortableList/usePresenter.d.ts +0 -12
  373. package/src/components/stackAggregator/index.d.ts +0 -89
  374. package/src/components/stateScreen/index.d.ts +0 -5
  375. package/src/components/stateScreen/types.d.ts +0 -30
  376. package/src/components/stepper/index.d.ts +0 -47
  377. package/src/components/svgImage/index.d.ts +0 -14
  378. package/src/components/svgImage/index.web.d.ts +0 -18
  379. package/src/components/switch/index.d.ts +0 -102
  380. package/src/components/switch/switch.driver.d.ts +0 -18
  381. package/src/components/tabController/PageCarousel.d.ts +0 -9
  382. package/src/components/tabController/TabBar.d.ts +0 -97
  383. package/src/components/tabController/TabBarContext.d.ts +0 -18
  384. package/src/components/tabController/TabBarItem.d.ts +0 -105
  385. package/src/components/tabController/TabPage.d.ts +0 -33
  386. package/src/components/tabController/index.d.ts +0 -48
  387. package/src/components/tabController/useImperativeTabControllerHandle.d.ts +0 -6
  388. package/src/components/tabController/useScrollToItem.d.ts +0 -79
  389. package/src/components/text/Text.driver.d.ts +0 -7
  390. package/src/components/text/Text.driver.new.d.ts +0 -17
  391. package/src/components/text/index.d.ts +0 -195
  392. package/src/components/textField/CharCounter.d.ts +0 -7
  393. package/src/components/textField/ClearButton.d.ts +0 -4
  394. package/src/components/textField/FieldContext.d.ts +0 -4
  395. package/src/components/textField/FloatingPlaceholder.d.ts +0 -7
  396. package/src/components/textField/Input.d.ts +0 -8
  397. package/src/components/textField/Label.d.ts +0 -7
  398. package/src/components/textField/Presenter.d.ts +0 -7
  399. package/src/components/textField/TextField.driver.new.d.ts +0 -129
  400. package/src/components/textField/ValidationMessage.d.ts +0 -7
  401. package/src/components/textField/index.d.ts +0 -114
  402. package/src/components/textField/presets/outline.d.ts +0 -737
  403. package/src/components/textField/presets/underline.d.ts +0 -735
  404. package/src/components/textField/textInput/index.d.ts +0 -1
  405. package/src/components/textField/textInput/index.web.d.ts +0 -3
  406. package/src/components/textField/types.d.ts +0 -287
  407. package/src/components/textField/useFieldState.d.ts +0 -16
  408. package/src/components/textField/useImperativeInputHandle.d.ts +0 -4
  409. package/src/components/textField/usePreset.d.ts +0 -1696
  410. package/src/components/textField/validators.d.ts +0 -9
  411. package/src/components/textFieldOld/index.d.ts +0 -71
  412. package/src/components/timeline/Line.d.ts +0 -10
  413. package/src/components/timeline/Point.d.ts +0 -9
  414. package/src/components/timeline/index.d.ts +0 -11
  415. package/src/components/timeline/line.driver.d.ts +0 -10
  416. package/src/components/timeline/point.driver.d.ts +0 -8
  417. package/src/components/timeline/timeline.driver.d.ts +0 -25
  418. package/src/components/timeline/types.d.ts +0 -50
  419. package/src/components/touchableOpacity/index.d.ts +0 -50
  420. package/src/components/view/View.driver.new.d.ts +0 -7
  421. package/src/components/view/index.d.ts +0 -46
  422. package/src/components/wizard/WizardStates.d.ts +0 -2
  423. package/src/components/wizard/WizardStep.d.ts +0 -4
  424. package/src/components/wizard/index.d.ts +0 -31
  425. package/src/components/wizard/types.d.ts +0 -90
  426. package/src/helpers/AvatarHelper.d.ts +0 -9
  427. package/src/helpers/FormattingPresenter.d.ts +0 -6
  428. package/src/helpers/Profiler.d.ts +0 -22
  429. package/src/helpers/index.d.ts +0 -3
  430. package/src/hooks/index.d.ts +0 -14
  431. package/src/hooks/useCombinedRefs/index.d.ts +0 -3
  432. package/src/hooks/useDebounce/index.d.ts +0 -5
  433. package/src/hooks/useDidUpdate/index.d.ts +0 -6
  434. package/src/hooks/useHiddenLocation/index.d.ts +0 -13
  435. package/src/hooks/useHiddenLocation/index.web.d.ts +0 -13
  436. package/src/hooks/useKeyboardHeight/index.d.ts +0 -5
  437. package/src/hooks/useMeasure/index.d.ts +0 -15
  438. package/src/hooks/useModifiers/index.d.ts +0 -3
  439. package/src/hooks/useOrientation/index.d.ts +0 -7
  440. package/src/hooks/useScrollEnabler/index.d.ts +0 -23
  441. package/src/hooks/useScrollReached/index.d.ts +0 -28
  442. package/src/hooks/useScrollTo/index.d.ts +0 -37
  443. package/src/hooks/useScrollToItem/index.d.ts +0 -65
  444. package/src/hooks/useThemeProps/index.d.ts +0 -2
  445. package/src/hooks/useToggleValue/index.d.ts +0 -2
  446. package/src/incubator/TouchableOpacity.d.ts +0 -52
  447. package/src/incubator/calendar/Agenda.d.ts +0 -4
  448. package/src/incubator/calendar/CalendarContext.d.ts +0 -4
  449. package/src/incubator/calendar/CalendarItem.d.ts +0 -5
  450. package/src/incubator/calendar/Day.d.ts +0 -4
  451. package/src/incubator/calendar/Day_OLD.d.ts +0 -4
  452. package/src/incubator/calendar/Header.d.ts +0 -4
  453. package/src/incubator/calendar/Month.d.ts +0 -4
  454. package/src/incubator/calendar/TodayButton.d.ts +0 -4
  455. package/src/incubator/calendar/Week.d.ts +0 -4
  456. package/src/incubator/calendar/WeekDaysNames.d.ts +0 -4
  457. package/src/incubator/calendar/helpers/CalendarProcessor.d.ts +0 -2
  458. package/src/incubator/calendar/helpers/DataProcessor.d.ts +0 -2
  459. package/src/incubator/calendar/helpers/DateUtils.d.ts +0 -23
  460. package/src/incubator/calendar/index.d.ts +0 -7
  461. package/src/incubator/calendar/types.d.ts +0 -118
  462. package/src/incubator/expandableOverlay/ExpandableOverlay.driver.d.ts +0 -7
  463. package/src/incubator/expandableOverlay/index.d.ts +0 -83
  464. package/src/incubator/gradient/BorderGradient.d.ts +0 -4
  465. package/src/incubator/gradient/CircleGradient.d.ts +0 -4
  466. package/src/incubator/gradient/RectangleGradient.d.ts +0 -4
  467. package/src/incubator/gradient/index.d.ts +0 -5
  468. package/src/incubator/gradient/types.d.ts +0 -26
  469. package/src/incubator/gradient/useAngleTransform.d.ts +0 -27
  470. package/src/incubator/index.d.ts +0 -9
  471. package/src/incubator/slider/Slider.driver.d.ts +0 -5
  472. package/src/incubator/slider/SliderPresenter.d.ts +0 -6
  473. package/src/incubator/slider/Thumb.d.ts +0 -24
  474. package/src/incubator/slider/Track.d.ts +0 -13
  475. package/src/incubator/slider/index.d.ts +0 -139
  476. package/src/incubator/toast/Toast.driver.new.d.ts +0 -54
  477. package/src/incubator/toast/helpers/useToastAnimation.d.ts +0 -22
  478. package/src/incubator/toast/helpers/useToastPresets.d.ts +0 -8
  479. package/src/incubator/toast/helpers/useToastTimer.d.ts +0 -6
  480. package/src/incubator/toast/index.d.ts +0 -9
  481. package/src/incubator/toast/types.d.ts +0 -111
  482. package/src/index.d.ts +0 -92
  483. package/src/optionalDependencies/BlurViewPackage.d.ts +0 -2
  484. package/src/optionalDependencies/BlurViewPackage.web.d.ts +0 -2
  485. package/src/optionalDependencies/DateTimePickerPackage.d.ts +0 -2
  486. package/src/optionalDependencies/FlashListPackage.d.ts +0 -2
  487. package/src/optionalDependencies/HapticFeedbackPackage.d.ts +0 -2
  488. package/src/optionalDependencies/LinearGradientPackage.d.ts +0 -2
  489. package/src/optionalDependencies/MomentPackage.d.ts +0 -2
  490. package/src/optionalDependencies/NetInfoPackage.d.ts +0 -2
  491. package/src/optionalDependencies/PostCssPackage.d.ts +0 -5
  492. package/src/optionalDependencies/ShimmerPackage.d.ts +0 -2
  493. package/src/optionalDependencies/SvgPackage.d.ts +0 -3
  494. package/src/optionalDependencies/index.d.ts +0 -9
  495. package/src/optionalDependencies/index.web.d.ts +0 -7
  496. package/src/services/HapticService.d.ts +0 -15
  497. package/src/services/LogService.d.ts +0 -35
  498. package/src/services/index.d.ts +0 -2
  499. package/src/style/borderRadiuses.d.ts +0 -30
  500. package/src/style/colorName.d.ts +0 -8
  501. package/src/style/colorNameMap.d.ts +0 -2
  502. package/src/style/colors.d.ts +0 -274
  503. package/src/style/colorsPalette.d.ts +0 -101
  504. package/src/style/components.d.ts +0 -15
  505. package/src/style/componentsColors.d.ts +0 -5
  506. package/src/style/designTokens.d.ts +0 -69
  507. package/src/style/designTokensDM.d.ts +0 -69
  508. package/src/style/dividers.d.ts +0 -11
  509. package/src/style/index.d.ts +0 -13
  510. package/src/style/scheme.d.ts +0 -57
  511. package/src/style/shadows.d.ts +0 -223
  512. package/src/style/spacings.d.ts +0 -32
  513. package/src/style/themeManager.d.ts +0 -22
  514. package/src/style/typography.d.ts +0 -26
  515. package/src/style/typographyPresets.d.ts +0 -7
  516. package/src/testkit/Component.driver.d.ts +0 -30
  517. package/src/testkit/DriverException.d.ts +0 -12
  518. package/src/testkit/UniDriver.d.ts +0 -29
  519. package/src/testkit/drivers/TestingLibraryDriver.d.ts +0 -26
  520. package/src/testkit/index.d.ts +0 -25
  521. package/src/testkit/new/Component.driver.d.ts +0 -16
  522. package/src/testkit/new/useDraggable.driver.d.ts +0 -15
  523. package/src/testkit/new/usePressable.driver.d.ts +0 -14
  524. package/src/testkit/new/useScrollable.driver.d.ts +0 -13
  525. package/src/typings/assets.d.ts +0 -52
  526. package/src/typings/common.d.ts +0 -12
  527. package/src/typings/module.d.ts +0 -13
  528. package/src/typings/recorderTypes.d.ts +0 -13
  529. package/src/uilib-test-renderer/helper.d.ts +0 -8
  530. package/src/uilib-test-renderer/index.d.ts +0 -4
  531. package/src/uilib-test-renderer/scrollViewHelper.d.ts +0 -9
  532. package/src/utils/dateUtils.d.ts +0 -2
  533. package/src/utils/imageUtils.d.ts +0 -5
  534. package/src/utils/index.d.ts +0 -4
  535. package/src/utils/styleUtils.d.ts +0 -7
  536. package/src/utils/textUtils.d.ts +0 -8
  537. /package/{src → scripts/build}/.babelrc.exports.js +0 -0
@@ -0,0 +1,287 @@
1
+ import React from 'react';
2
+ import renderer from 'react-test-renderer';
3
+ import Button from '../index';
4
+ import View from '../../view';
5
+ import {Colors, ThemeManager} from '../../../style';
6
+ import {Constants} from '../../../commons';
7
+
8
+ describe('Button', () => {
9
+ beforeEach(() => {
10
+ ThemeManager.setComponentTheme('Button', {});
11
+ mockIOS();
12
+ });
13
+
14
+ it('should render default button', () => {
15
+ const tree = renderer.create(<Button label="Button"/>).toJSON();
16
+ expect(tree).toMatchSnapshot();
17
+ });
18
+
19
+ describe('outline', () => {
20
+ it('should render button with an outline', () => {
21
+ const tree = renderer.create(<Button label="Button" outline/>).toJSON();
22
+ expect(tree).toMatchSnapshot();
23
+ });
24
+
25
+ it('should render button with an outlineColor', () => {
26
+ const tree = renderer.create(<Button label="Button" outlineColor={'blue'}/>).toJSON();
27
+ expect(tree).toMatchSnapshot();
28
+ });
29
+
30
+ it('should render button with outline and outlineColor', () => {
31
+ const tree = renderer.create(<Button label="Button" outline outlineColor={'blue'}/>).toJSON();
32
+ expect(tree).toMatchSnapshot();
33
+ });
34
+
35
+ ///
36
+
37
+ it('should return undefined when link is true, even when outline is true', () => {
38
+ const tree = renderer.create(<Button label="Button" outline link/>).toJSON();
39
+ expect(tree).toMatchSnapshot();
40
+ });
41
+
42
+ it('should return disabled color for outline if button is disabled', () => {
43
+ const tree = renderer.create(<Button label="Button" outline disabled/>).toJSON();
44
+ expect(tree).toMatchSnapshot();
45
+ });
46
+
47
+ it('should return custom borderWidth according to outlineWidth passed', () => {
48
+ const tree = renderer.create(<Button label="Button" outline outlineWidth={3}/>).toJSON();
49
+ expect(tree).toMatchSnapshot();
50
+ });
51
+ });
52
+
53
+ describe('link', () => {
54
+ it('should render button as a link', () => {
55
+ const tree = renderer.create(<Button label="Button" link/>).toJSON();
56
+ expect(tree).toMatchSnapshot();
57
+ });
58
+ });
59
+
60
+ describe('hyperlink', () => {
61
+ it('should render button as a hyperlink', () => {
62
+ const tree = renderer.create(<Button label="Button" hyperlink/>).toJSON();
63
+ expect(tree).toMatchSnapshot();
64
+ });
65
+ });
66
+
67
+ describe('backgroundColor', () => {
68
+ it('should return defined theme backgroundColor', () => {
69
+ ThemeManager.setComponentTheme('Button', {
70
+ backgroundColor: Colors.purple40
71
+ });
72
+ const tree = renderer.create(<Button label="Button"/>).toJSON();
73
+ expect(tree).toMatchSnapshot();
74
+ });
75
+
76
+ it('should return backgroundColor according to prop value', () => {
77
+ const tree = renderer.create(<Button label="Button" backgroundColor={'red'}/>).toJSON();
78
+ expect(tree).toMatchSnapshot();
79
+ });
80
+
81
+ it('should return backgroundColor according to modifier', () => {
82
+ const tree = renderer.create(<Button label="Button" bg-orange30/>).toJSON();
83
+ expect(tree).toMatchSnapshot();
84
+ });
85
+
86
+ it('should return undefined if this button is outline', () => {
87
+ const tree = renderer.create(<Button label="Button" backgroundColor="blue" outline/>).toJSON();
88
+ expect(tree).toMatchSnapshot();
89
+ });
90
+
91
+ it('should return undefined if this button is link', () => {
92
+ const tree = renderer.create(<Button label="Button" bg-orange30 link/>).toJSON();
93
+ expect(tree).toMatchSnapshot();
94
+ });
95
+
96
+ it('should return theme disabled color if button is disabled', () => {
97
+ const tree = renderer.create(<Button label="Button" bg-orange30 disabled/>).toJSON();
98
+ expect(tree).toMatchSnapshot();
99
+ });
100
+ });
101
+
102
+ // describe('activeBackgroundColor', () => {
103
+ // it('should return undefined by default', () => {
104
+ // const uut = new Button({});
105
+ // expect(uut.getActiveBackgroundColor()).toBe(undefined);
106
+ // });
107
+
108
+ // it('should return value according to getActiveBackgroundColor callback prop', () => {
109
+ // const getActiveBackgroundColor = () => 'red';
110
+ // const uut = new Button({getActiveBackgroundColor});
111
+ // expect(uut.getActiveBackgroundColor()).toBe('red');
112
+ // });
113
+ // });
114
+
115
+ describe('labelColor', () => {
116
+ it('should return Theme linkColor color for link', () => {
117
+ ThemeManager.setComponentTheme('Button', {
118
+ linkColor: Colors.yellow40
119
+ });
120
+ const tree = renderer.create(<Button label="Button" link/>).toJSON();
121
+ expect(tree).toMatchSnapshot();
122
+ });
123
+
124
+ it('should return linkColor color for link', () => {
125
+ const tree = renderer.create(<Button label="Button" link linkColor={Colors.orange50}/>).toJSON();
126
+ expect(tree).toMatchSnapshot();
127
+ });
128
+
129
+ it('should return color according to color modifier', () => {
130
+ const tree = renderer.create(<Button label="Button" red10/>).toJSON();
131
+ expect(tree).toMatchSnapshot();
132
+ });
133
+
134
+ it('should return color according to color prop', () => {
135
+ const tree = renderer.create(<Button label="Button" red30 color="green"/>).toJSON();
136
+ expect(tree).toMatchSnapshot();
137
+ });
138
+
139
+ it('should return disabled text color according to theme for link/outline button', () => {
140
+ const tree = renderer.create(<Button label="Button" color="green" link disabled/>).toJSON();
141
+ expect(tree).toMatchSnapshot();
142
+ });
143
+
144
+ it('should return undefined color if this is an icon button (without label)', () => {
145
+ const tree = renderer.create(<Button iconSource={12}/>).toJSON();
146
+ expect(tree).toMatchSnapshot();
147
+ });
148
+ });
149
+
150
+ describe('label size', () => {
151
+ it('should return style for large button', () => {
152
+ const tree = renderer.create(<Button label="Button" size={'large'}/>).toJSON();
153
+ expect(tree).toMatchSnapshot();
154
+ });
155
+
156
+ it('should return style for medium button', () => {
157
+ const tree = renderer.create(<Button label="Button" size={'medium'}/>).toJSON();
158
+ expect(tree).toMatchSnapshot();
159
+ });
160
+
161
+ it('should return style for small button', () => {
162
+ const tree = renderer.create(<Button label="Button" size={'small'}/>).toJSON();
163
+ expect(tree).toMatchSnapshot();
164
+ });
165
+
166
+ it('should return style for xSmall button', () => {
167
+ const tree = renderer.create(<Button label="Button" size={'xSmall'}/>).toJSON();
168
+ expect(tree).toMatchSnapshot();
169
+ });
170
+ });
171
+
172
+ describe('border radius', () => {
173
+ it('should return given border radius when use plain number', () => {
174
+ const tree = renderer.create(<Button label="Button" borderRadius={12}/>).toJSON();
175
+ expect(tree).toMatchSnapshot();
176
+ });
177
+
178
+ it('should return 0 border radius when border radius prop is 0', () => {
179
+ const tree = renderer.create(<Button label="Button" borderRadius={0}/>).toJSON();
180
+ expect(tree).toMatchSnapshot();
181
+ });
182
+
183
+ it('should return 0 border radius when button is full width', () => {
184
+ const tree = renderer.create(<Button label="Button" fullWidth/>).toJSON();
185
+ expect(tree).toMatchSnapshot();
186
+ });
187
+ });
188
+
189
+ describe('container size', () => {
190
+ it('should return style for large button', () => {
191
+ expect(renderer.create(<Button label="Button" size="large"/>).toJSON()).toMatchSnapshot();
192
+ expect(renderer.create(<Button label="Button" size="large" outline/>).toJSON()).toMatchSnapshot();
193
+ });
194
+
195
+ it('should return style for medium button', () => {
196
+ expect(renderer.create(<Button label="Button" size="medium"/>).toJSON()).toMatchSnapshot();
197
+ expect(renderer.create(<Button label="Button" size="medium" outline/>).toJSON()).toMatchSnapshot();
198
+ });
199
+
200
+ it('should return style for small button', () => {
201
+ expect(renderer.create(<Button label="Button" size="small"/>).toJSON()).toMatchSnapshot();
202
+ expect(renderer.create(<Button label="Button" size="small" outline/>).toJSON()).toMatchSnapshot();
203
+ });
204
+
205
+ it('should return style for xSmall button', () => {
206
+ expect(renderer.create(<Button label="Button" size="xSmall"/>).toJSON()).toMatchSnapshot();
207
+ expect(renderer.create(<Button label="Button" size="xSmall" outline/>).toJSON()).toMatchSnapshot();
208
+ });
209
+
210
+ it('should reduce padding by outlineWidth in case of outline button', () => {
211
+ expect(renderer.create(<Button label="Button" size="large" outline outlineWidth={2}/>).toJSON()).toMatchSnapshot();
212
+ });
213
+
214
+ it('should avoid minWidth limitation if avoidMinWidth was sent', () => {
215
+ expect(renderer.create(<Button label="Button" size="medium" avoidMinWidth/>).toJSON()).toMatchSnapshot();
216
+ });
217
+
218
+ it('should have no padding of button is a link nor min width', () => {
219
+ expect(renderer.create(<Button label="Button" size="medium" link/>).toJSON()).toMatchSnapshot();
220
+ });
221
+
222
+ it('should have no padding of button is an icon button', () => {
223
+ expect(renderer.create(<Button label="Button" size="medium" iconSource={14}/>).toJSON()).toMatchSnapshot();
224
+ });
225
+
226
+ it('should have no padding if avoidInnerPadding prop was sent', () => {
227
+ expect(renderer.create(<Button label="Button" size="medium" avoidInnerPadding/>).toJSON()).toMatchSnapshot();
228
+ });
229
+
230
+ it('should return style for round button', () => {
231
+ expect(renderer.create(<Button label="Button" round/>).toJSON()).toMatchSnapshot();
232
+ });
233
+ });
234
+
235
+ describe('customBackground', () => {
236
+ it('should render button with custom background element', () => {
237
+ const CustomBackground = () => <View flex style={{backgroundColor: 'red'}}/>;
238
+ const tree = renderer.create(<Button label="Button" customBackground={<CustomBackground/>}/>).toJSON();
239
+ expect(tree).toMatchSnapshot();
240
+ });
241
+
242
+ it('should render custom background element with transparent backgroundColor when provided', () => {
243
+ const CustomBackground = () => <View flex style={{backgroundColor: 'blue'}}/>;
244
+ const tree = renderer.create(<Button label="Button" backgroundColor="green" customBackground={<CustomBackground/>}/>).toJSON();
245
+ expect(tree).toMatchSnapshot();
246
+ });
247
+ });
248
+
249
+ describe('icon', () => {
250
+ it('should return the right spacing according to button size when label exists and icon on the right', () => {
251
+ expect(renderer.create(<Button label="Button" size="large" iconOnRight/>).toJSON()).toMatchSnapshot();
252
+ expect(renderer.create(<Button label="Button" size="medium" iconOnRight/>).toJSON()).toMatchSnapshot();
253
+ expect(renderer.create(<Button label="Button" size="small" iconOnRight/>).toJSON()).toMatchSnapshot();
254
+ expect(renderer.create(<Button label="Button" size="xSmall" iconOnRight/>).toJSON()).toMatchSnapshot();
255
+ });
256
+
257
+ it('should apply color on icon', () => {
258
+ expect(renderer.create(<Button iconSource={12} color={'green'}/>).toJSON()).toMatchSnapshot();
259
+ expect(renderer.create(<Button iconSource={12} red30/>).toJSON()).toMatchSnapshot();
260
+ });
261
+
262
+ it('should return icon style according to different variations', () => {
263
+ expect(renderer.create(<Button iconSource={12} outline/>).toJSON()).toMatchSnapshot();
264
+ expect(renderer.create(<Button iconSource={12} link/>).toJSON()).toMatchSnapshot();
265
+ expect(renderer.create(<Button iconSource={12} disabled/>).toJSON()).toMatchSnapshot();
266
+ });
267
+
268
+ it('should include custom iconStyle provided as a prop', () => {
269
+ expect(renderer.create(<Button iconSource={12} iconStyle={{marginRight: 9, tintColor: 'red'}}/>).toJSON()).toMatchSnapshot();
270
+ });
271
+
272
+ it('should apply the right icon color', () => {
273
+ expect(renderer.create(<Button iconSource={12} iconProps={{tintColor: 'red'}}/>).toJSON()).toMatchSnapshot();
274
+ expect(renderer.create(<Button iconSource={12} iconStyle={{tintColor: '#ffee22'}}/>).toJSON()).toMatchSnapshot();
275
+ expect(renderer
276
+ .create(<Button iconSource={12} iconProps={{tintColor: 'red'}} iconStyle={{tintColor: '#ffee22'}}/>)
277
+ .toJSON()).toMatchSnapshot();
278
+ });
279
+ });
280
+
281
+ function mockIOS() {
282
+ Constants.isIOS = true;
283
+ Constants.isAndroid = false;
284
+ }
285
+ });
286
+
287
+
@@ -22,7 +22,9 @@ class Button extends PureComponent {
22
22
  super(props);
23
23
  }
24
24
  state = {
25
- size: undefined
25
+ size: undefined,
26
+ measuredSize: undefined,
27
+ borderRadius: undefined
26
28
  };
27
29
  styles = createStyles();
28
30
  componentDidUpdate(prevProps) {
@@ -33,20 +35,38 @@ class Button extends PureComponent {
33
35
 
34
36
  // This method will be called more than once in case of layout change!
35
37
  onLayout = event => {
36
- const height = event.nativeEvent.layout.height;
38
+ const {
39
+ width,
40
+ height
41
+ } = event.nativeEvent.layout;
37
42
  if (this.props.round) {
38
- const width = event.nativeEvent.layout.width;
39
43
  const size = height >= width ? height : width;
40
44
  this.setState({
41
45
  size
42
46
  });
43
47
  }
48
+ if (this.needsHitslopMeasurement()) {
49
+ this.setState({
50
+ measuredSize: {
51
+ width,
52
+ height
53
+ }
54
+ });
55
+ }
44
56
  if (Constants.isAndroid && Platform.Version <= 17) {
45
57
  this.setState({
46
58
  borderRadius: height / 2
47
59
  });
48
60
  }
49
61
  };
62
+ needsHitslopMeasurement() {
63
+ const {
64
+ avoidMinWidth,
65
+ avoidInnerPadding,
66
+ round
67
+ } = this.props;
68
+ return this.isLink || this.isIconButton && !round || avoidMinWidth || avoidInnerPadding;
69
+ }
50
70
  get isLink() {
51
71
  const {
52
72
  link,
@@ -346,12 +366,14 @@ class Button extends PureComponent {
346
366
  return null;
347
367
  }
348
368
  getAccessibleHitSlop() {
369
+ const {
370
+ measuredSize
371
+ } = this.state;
349
372
  const containerStyle = this.getContainerSizeStyle();
350
- const isWidthSet = containerStyle.width !== undefined || containerStyle.minWidth !== undefined;
351
- const width = containerStyle.width || containerStyle.minWidth || 0;
352
- const widthWithPadding = width + (containerStyle.paddingHorizontal || containerStyle.padding || 0) * 2;
353
- const horizontalHitslop = isWidthSet ? Math.max(0, (48 - widthWithPadding) / 2) : 10;
354
- const verticalHitslop = (containerStyle.height ? Math.max(0, 48 - containerStyle.height) : SIZE_TO_VERTICAL_HITSLOP[this.props.size || DEFAULT_SIZE]) / 2;
373
+ const buttonWidth = measuredSize?.width ?? containerStyle.width ?? containerStyle.minWidth ?? 0;
374
+ const buttonHeight = measuredSize?.height ?? containerStyle.height ?? 0;
375
+ const horizontalHitslop = Math.max(0, (48 - buttonWidth) / 2);
376
+ const verticalHitslop = buttonHeight ? Math.max(0, (48 - buttonHeight) / 2) : SIZE_TO_VERTICAL_HITSLOP[this.props.size || DEFAULT_SIZE] / 2;
355
377
  return {
356
378
  top: verticalHitslop,
357
379
  bottom: verticalHitslop,
@@ -0,0 +1,35 @@
1
+ import * as uut from '../CardPresenter';
2
+
3
+ describe('CardPresenter', () => {
4
+ describe('extractPositionValues', () => {
5
+ it('should work with basic string value', () => {
6
+ expect(uut.extractPositionValues('top')).toEqual({top: true, right: false, bottom: false, left: false});
7
+ expect(uut.extractPositionValues('bottom')).toEqual({top: false, right: false, bottom: true, left: false});
8
+ expect(uut.extractPositionValues('left')).toEqual({top: false, right: false, bottom: false, left: true});
9
+ expect(uut.extractPositionValues('right')).toEqual({top: false, right: true, bottom: false, left: false});
10
+ expect(uut.extractPositionValues('')).toEqual({top: false, right: false, bottom: false, left: false});
11
+ });
12
+
13
+ it('should work with basic array of positions', () => {
14
+ expect(uut.extractPositionValues(['top', 'bottom'])).toEqual({
15
+ top: true,
16
+ right: false,
17
+ bottom: true,
18
+ left: false
19
+ });
20
+ expect(uut.extractPositionValues(['left', 'right'])).toEqual({
21
+ top: false,
22
+ right: true,
23
+ bottom: false,
24
+ left: true
25
+ });
26
+ expect(uut.extractPositionValues(['top', 'left', 'bottom', 'right'])).toEqual({
27
+ top: true,
28
+ right: true,
29
+ bottom: true,
30
+ left: true
31
+ });
32
+ expect(uut.extractPositionValues([])).toEqual({top: false, right: false, bottom: false, left: false});
33
+ });
34
+ });
35
+ });
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ import * as uut from '../CarouselPresenter';
3
+
4
+ describe('Carousel presenter', () => {
5
+ it('should getChildrenLength', () => {
6
+ expect(uut.getChildrenLength({children: [<></>, <></>, <></>]})).toBe(3);
7
+ expect(uut.getChildrenLength({children: [<></>]})).toBe(1);
8
+ expect(uut.getChildrenLength({children: [[], <></>]})).toBe(1);
9
+ expect(uut.getChildrenLength(<></>)).toBe(0);
10
+ });
11
+
12
+ describe('calcOffset', () => {
13
+ it('should calcOffset (default mode)', () => {
14
+ expect(uut.calcOffset({children: [<></>, <></>, <></>], horizontal: true}, {pageWidth: 120, pageHeight: 100, currentPage: 0})).toStrictEqual({x: 0, y: 0});
15
+ expect(uut.calcOffset({children: [<></>, <></>, <></>], horizontal: true}, {pageWidth: 120, pageHeight: 100, currentPage: 1})).toStrictEqual({x: 120, y: 0});
16
+ expect(uut.calcOffset({children: [<></>, <></>, <></>], horizontal: true}, {pageWidth: 120, pageHeight: 100, currentPage: 2})).toStrictEqual({x: 240, y: 0});
17
+ expect(uut.calcOffset({children: [<></>, <></>, <></>], horizontal: false}, {pageWidth: 80, pageHeight: 150, currentPage: 0})).toStrictEqual({x: 0, y: 0});
18
+ expect(uut.calcOffset({children: [<></>, <></>, <></>], horizontal: false}, {pageWidth: 80, pageHeight: 150, currentPage: 1})).toStrictEqual({x: 0, y: 150});
19
+ expect(uut.calcOffset({children: [<></>, <></>, <></>], horizontal: false}, {pageWidth: 80, pageHeight: 150, currentPage: 2})).toStrictEqual({x: 0, y: 300});
20
+ });
21
+
22
+ it('should calcOffset (loop mode)', () => {
23
+ expect(uut.calcOffset({loop: true, children: [<></>, <></>, <></>], horizontal: true}, {pageWidth: 120, pageHeight: 100, currentPage: 0})).toStrictEqual({x: 120, y: 0});
24
+ expect(uut.calcOffset({loop: true, children: [<></>, <></>, <></>], horizontal: true}, {pageWidth: 120, pageHeight: 100, currentPage: 1})).toStrictEqual({x: 240, y: 0});
25
+ expect(uut.calcOffset({loop: true, children: [<></>, <></>, <></>], horizontal: true}, {pageWidth: 120, pageHeight: 100, currentPage: 2})).toStrictEqual({x: 360, y: 0});
26
+ });
27
+ });
28
+
29
+ describe('calcPageIndex', () => {
30
+ it('should calcPageIndex', () => {
31
+ expect(uut.calcPageIndex(120, {children: [<></>, <></>, <></>]}, 120)).toBe(1);
32
+ expect(uut.calcPageIndex(245, {children: [<></>, <></>, <></>]}, 120)).toBe(2);
33
+ expect(uut.calcPageIndex(481, {children: [<></>, <></>, <></>]}, 120)).toBe(2);
34
+ expect(uut.calcPageIndex(5, {children: [<></>, <></>, <></>]}, 120)).toBe(0);
35
+ });
36
+
37
+ it('should calcPageIndex (loop mode)', () => {
38
+ expect(uut.calcPageIndex(120, {loop: true, children: [<></>, <></>, <></>]}, 120)).toBe(0);
39
+ expect(uut.calcPageIndex(245, {loop: true, children: [<></>, <></>, <></>]}, 120)).toBe(1);
40
+ expect(uut.calcPageIndex(481, {loop: true, children: [<></>, <></>, <></>]}, 120)).toBe(0);
41
+ expect(uut.calcPageIndex(5, {loop: true, children: [<></>, <></>, <></>]}, 120)).toBe(2);
42
+ });
43
+ });
44
+
45
+ it('should return isOutsideLimits', () => {
46
+ expect(uut.isOutOfBounds(120, {children: [<></>, <></>, <></>]}, 120)).toBe(false);
47
+ expect(uut.isOutOfBounds(1125, {children: [<></>, <></>, <></>, <></>]}, 375)).toBe(false);
48
+ expect(uut.isOutOfBounds(0, {children: [<></>, <></>, <></>]}, 120)).toBe(true);
49
+ expect(uut.isOutOfBounds(481, {children: [<></>, <></>, <></>]}, 120)).toBe(true);
50
+ expect(uut.isOutOfBounds(1875, {children: [<></>, <></>, <></>, <></>]}, 375)).toBe(true);
51
+ });
52
+ });
@@ -0,0 +1,89 @@
1
+ import _map from "lodash/map";
2
+ import React from 'react';
3
+ import { Text, View } from 'react-native';
4
+ import { fireOnMomentumScrollEnd } from "../../../uilib-test-renderer";
5
+ import { render } from '@testing-library/react-native';
6
+ import Carousel from "../index";
7
+ import { Constants } from "../../../commons/new";
8
+ import { CarouselDriver } from "../Carousel.driver.new";
9
+ const numberOfPagesShown = 5;
10
+ const onChangePageMock = jest.fn();
11
+ const onScrollMock = jest.fn();
12
+ const testID = 'carousel';
13
+ const TestCase = props => {
14
+ return <Carousel testID={testID} onChangePage={onChangePageMock} onScroll={onScrollMock} {...props}>
15
+ {_map([...Array(numberOfPagesShown)], (_, index) => <Page key={index}>
16
+ <Text testID={`page-${index}`}>Page #{index}</Text>
17
+ </Page>)}
18
+ </Carousel>;
19
+ };
20
+ const Page = ({
21
+ children,
22
+ ...others
23
+ }) => {
24
+ return <View {...others} style={{
25
+ flex: 1
26
+ }}>
27
+ {children}
28
+ </View>;
29
+ };
30
+ describe('Carousel render tests', () => {
31
+ describe('initialPage', () => {
32
+ it('should be set to default initialPage', async () => {
33
+ const renderTree = render(<TestCase />);
34
+ const driver = CarouselDriver({
35
+ renderTree,
36
+ testID
37
+ });
38
+ expect((await driver.getContentOffset()).x).toBe(0);
39
+ });
40
+ it('should be set to initialPage = 2', async () => {
41
+ const renderTree = render(<TestCase initialPage={2} />);
42
+ const driver = CarouselDriver({
43
+ renderTree,
44
+ testID
45
+ });
46
+ expect((await driver.getContentOffset()).x).toBe(Constants.screenWidth * 2);
47
+ });
48
+ });
49
+ describe('onScroll', () => {
50
+ it('should trigger onScroll from the second scroll', async () => {
51
+ const renderTree = render(<TestCase />);
52
+ const driver = CarouselDriver({
53
+ renderTree,
54
+ testID
55
+ });
56
+ await driver.scroll({
57
+ x: Constants.screenWidth
58
+ }); //NOTE: first scroll doesn't fire onScroll
59
+ expect(onScrollMock).not.toHaveBeenCalled();
60
+ await driver.scroll({
61
+ x: Constants.screenWidth
62
+ });
63
+ expect(onScrollMock).toHaveBeenCalled();
64
+ });
65
+ });
66
+ describe('onChangePage', () => {
67
+ it('should trigger onChangePage with current page', async () => {
68
+ const renderTree = render(<TestCase />);
69
+ const driver = CarouselDriver({
70
+ renderTree,
71
+ testID
72
+ });
73
+ const scrollView = await driver.getElement();
74
+ await driver.scroll({
75
+ x: Constants.screenWidth
76
+ }); //NOTE: first scroll doesn't fire onScroll
77
+ await driver.scroll({
78
+ x: Constants.screenWidth
79
+ });
80
+ expect(onChangePageMock).not.toHaveBeenCalled();
81
+ fireOnMomentumScrollEnd(scrollView, {
82
+ x: Constants.screenWidth
83
+ });
84
+ expect(onChangePageMock).toHaveBeenCalledWith(1, 0, {
85
+ isAutoScrolled: false
86
+ });
87
+ });
88
+ });
89
+ });
@@ -499,7 +499,8 @@ class Carousel extends Component {
499
499
  return <View animated={animated} style={[{
500
500
  marginBottom
501
501
  }, containerStyle]} onLayout={this.onContainerLayout}>
502
- <ScrollContainer showsHorizontalScrollIndicator={false} showsVerticalScrollIndicator={false} decelerationRate="fast" scrollEventThrottle={200} {...others} ref={this.carousel} onScroll={animatedScrollOffset ? this.onScrollEvent : this.onScroll} contentContainerStyle={scrollContainerStyle} horizontal={horizontal} pagingEnabled={this.shouldEnablePagination()} snapToOffsets={snapToOffsets} contentOffset={contentOffset}
502
+ <ScrollContainer showsHorizontalScrollIndicator={false} showsVerticalScrollIndicator={false} decelerationRate="fast" scrollEventThrottle={Constants.isAndroid ? 16 : 200} // Android needs 16ms throttle to reliably catch loop boundary during fast swipes (Ticket 4885)
503
+ {...others} ref={this.carousel} onScroll={animatedScrollOffset ? this.onScrollEvent : this.onScroll} contentContainerStyle={scrollContainerStyle} horizontal={horizontal} pagingEnabled={this.shouldEnablePagination()} snapToOffsets={snapToOffsets} contentOffset={contentOffset}
503
504
  // onContentSizeChange={this.onContentSizeChange}
504
505
  onMomentumScrollEnd={this.onMomentumScrollEnd} style={_style}>
505
506
  {this.renderChildren()}