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,76 @@
1
+ import {updateConstants} from '../../../commons/Constants';
2
+ import {FeatureHighlight} from '../index';
3
+
4
+ describe('FeatureHighlight', () => {
5
+ beforeEach(() => {
6
+ mockScreenDimentions();
7
+ });
8
+
9
+ describe('getContentPosition', () => {
10
+ it('massage should be placed above element positioned below screen\'s vertical center', () => {
11
+ const uut = new FeatureHighlight({visible: true});
12
+ uut.state = {
13
+ contentTopPosition: 0
14
+ };
15
+ uut.targetPosition = {left: 0, top: 500, width: 80, height: 80};
16
+ uut.didLayout = true;
17
+ expect(uut.getContentPosition()).toEqual(218);
18
+ });
19
+ it('massage should be placed below element positioned above screen\'s vertical center', () => {
20
+ const uut = new FeatureHighlight({minimumRectSize: {width: 56, height: 56}, innerPadding: 10});
21
+ uut.state = {
22
+ contentTopPosition: 0
23
+ };
24
+ uut.targetPosition = {left: 0, top: 200, width: 20, height: 20};
25
+ uut.didLayout = true;
26
+ expect(uut.getContentPosition()).toEqual(243);
27
+ });
28
+ it('massage should be placed below element positioned above screen\'s vertical center', () => {
29
+ const uut = new FeatureHighlight({minimumRectSize: {width: 56, height: 56}, innerPadding: 10});
30
+ uut.state = {
31
+ contentTopPosition: 0
32
+ };
33
+ uut.targetPosition = {left: 0, top: 200, width: 80, height: 80};
34
+ uut.didLayout = true;
35
+ expect(uut.getContentPosition()).toEqual(290);
36
+ });
37
+ });
38
+
39
+ describe('setTargetPosition', () => {
40
+ it('targetPosition should be equal to component position', () => {
41
+ // Arrange
42
+ const mockTarget = {measureInWindow: jest.fn()};
43
+ const getTargetMock = jest.fn();
44
+ getTargetMock.mockReturnValue(mockTarget);
45
+ const uut = new FeatureHighlight({getTarget: getTargetMock});
46
+ jest.spyOn(FeatureHighlight, 'getDerivedStateFromProps');
47
+ jest.spyOn(FeatureHighlight, 'findTargetNode').mockImplementation(() => 23);
48
+ jest.spyOn(window, 'setTimeout');
49
+
50
+ jest.useFakeTimers();
51
+
52
+ // Act
53
+ FeatureHighlight.getDerivedStateFromProps({getTarget: getTargetMock});
54
+ uut.setTargetPosition({getTarget: getTargetMock});
55
+
56
+ // Assert
57
+ expect(FeatureHighlight.getDerivedStateFromProps).toHaveBeenCalledWith({getTarget: getTargetMock});
58
+ expect(mockTarget.measureInWindow).not.toBeCalled();
59
+ expect(FeatureHighlight.findTargetNode).toHaveBeenCalledWith(mockTarget);
60
+
61
+ jest.runAllTimers();
62
+
63
+ expect(setTimeout).toHaveBeenCalledTimes(1);
64
+ expect(mockTarget.measureInWindow).toBeCalled();
65
+ });
66
+ });
67
+ });
68
+
69
+ function mockScreenDimentions() {
70
+ // iPhone 8
71
+ const dimensions = {
72
+ screen: {height: 667, width: 375},
73
+ window: {height: 1000, width: 1000}
74
+ };
75
+ updateConstants(dimensions);
76
+ }
@@ -0,0 +1,229 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import { Spacings } from "../../../style";
4
+ import FloatingButton, { FloatingButtonLayouts } from "../index";
5
+ import { ButtonDriver } from "../../button/Button.driver.new";
6
+ import { useComponentDriver } from "../../../testkit/new/Component.driver";
7
+ const TEST_ID = 'floating_button';
8
+ const button = {
9
+ label: 'First'
10
+ };
11
+ const secondaryButton = {
12
+ label: 'Second'
13
+ };
14
+ const TestCase = props => {
15
+ return <FloatingButton {...props} testID={TEST_ID} />;
16
+ };
17
+ export const FloatingButtonDriver = props => {
18
+ const driver = useComponentDriver(props);
19
+ const getStyle = () => driver.getElement().props.style;
20
+ return {
21
+ ...driver,
22
+ getStyle
23
+ };
24
+ };
25
+ describe('FloatingButton', () => {
26
+ describe('visible', () => {
27
+ it('should render a button according to visibility', async () => {
28
+ const props = {};
29
+ const renderTree = render(<TestCase {...props} />);
30
+ const buttonDriver = ButtonDriver({
31
+ renderTree,
32
+ testID: `${TEST_ID}.button`
33
+ });
34
+ expect(await buttonDriver.exists()).not.toBeTruthy();
35
+ renderTree.rerender(<TestCase visible button={button} />);
36
+ expect(await buttonDriver.exists()).toBeTruthy();
37
+ });
38
+ });
39
+ describe('buttons', () => {
40
+ it('should render a button', async () => {
41
+ const props = {
42
+ visible: true,
43
+ button
44
+ };
45
+ const renderTree = render(<TestCase {...props} />);
46
+ const buttonDriver = ButtonDriver({
47
+ renderTree,
48
+ testID: `${TEST_ID}.button`
49
+ });
50
+ expect(await buttonDriver.exists()).toBeTruthy();
51
+ });
52
+ it('should not render a secondary button', async () => {
53
+ const props = {
54
+ visible: true
55
+ };
56
+ const renderTree = render(<TestCase {...props} />);
57
+ const buttonDriver = ButtonDriver({
58
+ renderTree,
59
+ testID: `${TEST_ID}.secondaryButton`
60
+ });
61
+ expect(await buttonDriver.exists()).not.toBeTruthy();
62
+ });
63
+ it('should render a button with a label', async () => {
64
+ const props = {
65
+ visible: true,
66
+ button
67
+ };
68
+ const renderTree = render(<TestCase {...props} />);
69
+ const buttonDriver = ButtonDriver({
70
+ renderTree,
71
+ testID: `${TEST_ID}.button`
72
+ });
73
+ expect(await buttonDriver.getLabel().getText()).toEqual(button.label);
74
+ });
75
+ it('should render secondary button with label', async () => {
76
+ const props = {
77
+ visible: true,
78
+ secondaryButton
79
+ };
80
+ const renderTree = render(<TestCase {...props} />);
81
+ const buttonDriver = ButtonDriver({
82
+ renderTree,
83
+ testID: `${TEST_ID}.secondaryButton`
84
+ });
85
+ expect(await buttonDriver.getLabel().getText()).toEqual(secondaryButton.label);
86
+ });
87
+ });
88
+ describe('bottomMargin', () => {
89
+ it('should have default bottom margin', () => {
90
+ const props = {
91
+ visible: true,
92
+ button
93
+ };
94
+ const renderTree = render(<TestCase {...props} />);
95
+ const buttonDriver = ButtonDriver({
96
+ renderTree,
97
+ testID: `${TEST_ID}.button`
98
+ });
99
+ expect(buttonDriver.getElement().props.style?.marginBottom).toBe(Spacings.s8);
100
+ });
101
+ it('should have default bottom margin for both buttons', () => {
102
+ const props = {
103
+ visible: true,
104
+ button,
105
+ secondaryButton
106
+ };
107
+ const renderTree = render(<TestCase {...props} />);
108
+ const buttonDriver = ButtonDriver({
109
+ renderTree,
110
+ testID: `${TEST_ID}.button`
111
+ });
112
+ const buttonDriver2 = ButtonDriver({
113
+ renderTree,
114
+ testID: `${TEST_ID}.secondaryButton`
115
+ });
116
+ expect(buttonDriver.getElement().props.style?.marginBottom).toBe(Spacings.s4);
117
+ expect(buttonDriver2.getElement().props.style?.marginBottom).toBe(Spacings.s7);
118
+ });
119
+ it('should have bottom margin that match bottomMargin prop', () => {
120
+ const props = {
121
+ visible: true,
122
+ button,
123
+ bottomMargin: 10
124
+ };
125
+ const renderTree = render(<TestCase {...props} />);
126
+ const buttonDriver = ButtonDriver({
127
+ renderTree,
128
+ testID: `${TEST_ID}.button`
129
+ });
130
+ expect(buttonDriver.getElement().props.style?.marginBottom).toBe(10);
131
+ });
132
+ it('should have bottom margin for secondary button that match bottomMarginProp', () => {
133
+ const props = {
134
+ visible: true,
135
+ button,
136
+ secondaryButton,
137
+ bottomMargin: 10
138
+ };
139
+ const renderTree = render(<TestCase {...props} />);
140
+ const buttonDriver = ButtonDriver({
141
+ renderTree,
142
+ testID: `${TEST_ID}.button`
143
+ });
144
+ const buttonDriver2 = ButtonDriver({
145
+ renderTree,
146
+ testID: `${TEST_ID}.secondaryButton`
147
+ });
148
+ expect(buttonDriver.getElement().props.style?.marginBottom).toBe(Spacings.s4);
149
+ expect(buttonDriver2.getElement().props.style?.marginBottom).toBe(10);
150
+ });
151
+ });
152
+ describe('buttonLayout', () => {
153
+ it('should style vertical layout (default)', () => {
154
+ const props = {
155
+ visible: true,
156
+ button,
157
+ secondaryButton
158
+ };
159
+ const renderTree = render(<TestCase {...props} />);
160
+ const driver = FloatingButtonDriver({
161
+ renderTree,
162
+ testID: TEST_ID
163
+ });
164
+ expect(driver.getStyle()?.flexDirection).toBe(undefined);
165
+ expect(driver.getStyle()?.alignItems).toBe('center');
166
+ expect(driver.getStyle()?.justifyContent).toBe('center');
167
+ expect(driver.getStyle()?.paddingHorizontal).toBe(undefined);
168
+ });
169
+ it('should style horizontal layout', () => {
170
+ const props = {
171
+ visible: true,
172
+ button,
173
+ secondaryButton,
174
+ buttonLayout: FloatingButtonLayouts.HORIZONTAL
175
+ };
176
+ const renderTree = render(<TestCase {...props} />);
177
+ const driver = FloatingButtonDriver({
178
+ renderTree,
179
+ testID: TEST_ID
180
+ });
181
+ expect(driver.getStyle()?.flexDirection).toBe('row');
182
+ expect(driver.getStyle()?.alignItems).toBe('center');
183
+ expect(driver.getStyle()?.justifyContent).toBe('center');
184
+ expect(driver.getStyle()?.paddingHorizontal).toBe(undefined);
185
+ });
186
+ });
187
+ describe('fullWidth', () => {
188
+ it('should style vertical layout (default) when fullWidth is true', () => {
189
+ const props = {
190
+ visible: true,
191
+ button,
192
+ secondaryButton,
193
+ fullWidth: true
194
+ };
195
+ const renderTree = render(<TestCase {...props} />);
196
+ const driver = FloatingButtonDriver({
197
+ renderTree,
198
+ testID: TEST_ID
199
+ });
200
+ expect(driver.getStyle()?.flexDirection).toBe(undefined);
201
+ expect(driver.getStyle()?.alignItems).toBe(undefined);
202
+ expect(driver.getStyle()?.justifyContent).toBe(undefined);
203
+ const buttonDriver = ButtonDriver({
204
+ renderTree,
205
+ testID: `${TEST_ID}.button`
206
+ });
207
+ expect(buttonDriver.getElement().props.style.marginLeft).toBe(16);
208
+ expect(buttonDriver.getElement().props.style.marginRight).toBe(16);
209
+ });
210
+ it('should style horizontal layout when fullWidth is true', () => {
211
+ const props = {
212
+ visible: true,
213
+ button,
214
+ secondaryButton,
215
+ buttonLayout: FloatingButtonLayouts.HORIZONTAL,
216
+ fullWidth: true
217
+ };
218
+ const renderTree = render(<TestCase {...props} />);
219
+ const driver = FloatingButtonDriver({
220
+ renderTree,
221
+ testID: TEST_ID
222
+ });
223
+ expect(driver.getStyle()?.flexDirection).toBe('row');
224
+ expect(driver.getStyle()?.alignItems).toBe('center');
225
+ expect(driver.getStyle()?.justifyContent).toBe('center');
226
+ expect(driver.getStyle()?.paddingHorizontal).toBe(undefined);
227
+ });
228
+ });
229
+ });
@@ -55,19 +55,30 @@ class FloatingButton extends PureComponent {
55
55
  }]
56
56
  };
57
57
  };
58
- get isSecondaryHorizontal() {
58
+ get isSecondaryOnly() {
59
59
  const {
60
60
  secondaryButton,
61
+ button
62
+ } = this.props;
63
+ return !!secondaryButton && !button;
64
+ }
65
+ get isHorizontalLayout() {
66
+ const {
61
67
  buttonLayout
62
68
  } = this.props;
63
- return secondaryButton && buttonLayout === FloatingButtonLayouts.HORIZONTAL;
69
+ return buttonLayout === FloatingButtonLayouts.HORIZONTAL || this.isSecondaryOnly;
70
+ }
71
+ get isSecondaryHorizontal() {
72
+ const {
73
+ secondaryButton
74
+ } = this.props;
75
+ return secondaryButton && this.isHorizontalLayout;
64
76
  }
65
77
  get isSecondaryVertical() {
66
78
  const {
67
- secondaryButton,
68
- buttonLayout
79
+ secondaryButton
69
80
  } = this.props;
70
- return secondaryButton && buttonLayout === FloatingButtonLayouts.VERTICAL;
81
+ return secondaryButton && !this.isHorizontalLayout;
71
82
  }
72
83
  renderButton() {
73
84
  const {
@@ -76,17 +87,17 @@ class FloatingButton extends PureComponent {
76
87
  fullWidth,
77
88
  testID
78
89
  } = this.props;
79
- const bottom = this.isSecondaryVertical ? Spacings.s4 : bottomMargin || Spacings.s8;
80
- const left = this.isSecondaryHorizontal || fullWidth ? Spacings.s4 : undefined;
81
- const right = this.isSecondaryHorizontal ? 20 : fullWidth ? Spacings.s4 : undefined;
82
- const shadowStyle = !button?.outline && !button?.link && styles.shadow;
83
- const marginStyle = {
84
- marginTop: 16,
85
- marginBottom: bottom,
86
- marginLeft: left,
87
- marginRight: right
88
- };
89
- return <Button size={Button.sizes.large} flex={!!this.isSecondaryHorizontal} style={[shadowStyle, marginStyle]} testID={`${testID}.button`} {...button} />;
90
+ if (button) {
91
+ const shadowStyle = button && !button.outline && !button.link ? styles.shadow : undefined;
92
+ const marginStyle = {
93
+ marginTop: Spacings.s4,
94
+ marginBottom: this.isSecondaryVertical ? Spacings.s4 : bottomMargin || Spacings.s8,
95
+ marginLeft: this.isSecondaryHorizontal || fullWidth ? Spacings.s4 : undefined,
96
+ marginRight: this.isSecondaryHorizontal ? Spacings.s5 : fullWidth ? Spacings.s4 : undefined
97
+ };
98
+ const shouldFlex = this.isSecondaryHorizontal || fullWidth && this.isHorizontalLayout;
99
+ return <Button size={Button.sizes.large} flex={!!shouldFlex} style={[shadowStyle, marginStyle]} testID={`${testID}.button`} {...button} />;
100
+ }
90
101
  }
91
102
  renderOverlay = () => {
92
103
  if (!this.props.hideBackgroundOverlay) {
@@ -100,25 +111,44 @@ class FloatingButton extends PureComponent {
100
111
  secondaryButton,
101
112
  bottomMargin,
102
113
  testID,
103
- buttonLayout
114
+ fullWidth,
115
+ button
104
116
  } = this.props;
105
- const bgColor = secondaryButton?.backgroundColor || Colors.$backgroundDefault;
106
- const isHorizontal = buttonLayout === FloatingButtonLayouts.HORIZONTAL;
107
- const buttonStyle = isHorizontal ? [styles.shadow, styles.secondaryMargin, {
108
- backgroundColor: bgColor
109
- }] : {
110
- marginBottom: bottomMargin || Spacings.s7
111
- };
112
- return <Button outline={isHorizontal} flex={isHorizontal} link={!isHorizontal} size={Button.sizes.large} testID={`${testID}.secondaryButton`} {...secondaryButton} style={buttonStyle} enableShadow={false} />;
117
+ if (secondaryButton) {
118
+ const bgColor = secondaryButton.backgroundColor || Colors.$backgroundDefault;
119
+ const shouldFlex = this.isHorizontalLayout && !!button || fullWidth && this.isSecondaryOnly;
120
+ const buttonStyle = this.isHorizontalLayout ? [styles.shadow, styles.horizontalSecondaryMargin, {
121
+ backgroundColor: bgColor
122
+ }] : {
123
+ marginBottom: bottomMargin || Spacings.s7
124
+ };
125
+ return <Button outline={this.isHorizontalLayout} flex={shouldFlex} link={!this.isHorizontalLayout} size={Button.sizes.large} testID={`${testID}.secondaryButton`} {...secondaryButton} style={buttonStyle} enableShadow={false} />;
126
+ }
127
+ }
128
+ renderHorizontalLayout() {
129
+ return <>
130
+ {this.renderOverlay()}
131
+ {this.renderSecondaryButton()}
132
+ {this.renderButton()}
133
+ </>;
134
+ }
135
+ renderVerticalLayout() {
136
+ return <>
137
+ {this.renderOverlay()}
138
+ {this.renderButton()}
139
+ {this.renderSecondaryButton()}
140
+ </>;
113
141
  }
114
142
  render() {
143
+ // NOTE: keep this.firstLoad as true as long as the visibility changed to true
115
144
  const {
116
145
  withoutAnimation,
117
146
  visible,
118
147
  fullWidth,
119
- testID
148
+ testID,
149
+ button,
150
+ secondaryButton
120
151
  } = this.props;
121
- // NOTE: keep this.firstLoad as true as long as the visibility changed to true
122
152
  this.firstLoad && !visible ? this.firstLoad = true : this.firstLoad = false;
123
153
 
124
154
  // NOTE: On first load, don't show if it should not be visible
@@ -128,12 +158,13 @@ class FloatingButton extends PureComponent {
128
158
  if (!visible && withoutAnimation) {
129
159
  return false;
130
160
  }
131
- return <View row={this.isSecondaryHorizontal} center={this.isSecondaryHorizontal || !fullWidth} pointerEvents="box-none" animated style={[styles.container, this.getAnimatedStyle()]} testID={testID}>
132
- {this.renderOverlay()}
133
- {this.isSecondaryHorizontal && this.renderSecondaryButton()}
134
- {this.renderButton()}
135
- {this.isSecondaryVertical && this.renderSecondaryButton()}
136
- </View>;
161
+ if (button || secondaryButton) {
162
+ const hasBothButtons = !!(button && secondaryButton);
163
+ const shouldCenter = !fullWidth || this.isHorizontalLayout && hasBothButtons;
164
+ return <View row={this.isHorizontalLayout} center={shouldCenter} pointerEvents="box-none" animated style={[styles.container, this.getAnimatedStyle()]} testID={testID}>
165
+ {this.isHorizontalLayout ? this.renderHorizontalLayout() : this.renderVerticalLayout()}
166
+ </View>;
167
+ }
137
168
  }
138
169
  }
139
170
  const styles = StyleSheet.create({
@@ -149,10 +180,10 @@ const styles = StyleSheet.create({
149
180
  shadow: {
150
181
  ...Shadows.sh20.bottom
151
182
  },
152
- secondaryMargin: {
183
+ horizontalSecondaryMargin: {
153
184
  marginTop: Spacings.s4,
154
185
  marginBottom: Spacings.s7,
155
- marginLeft: 20
186
+ marginLeft: Spacings.s5
156
187
  }
157
188
  });
158
189
  export default asBaseComponent(FloatingButton);
@@ -0,0 +1,108 @@
1
+ import React from 'react';
2
+ import { Hint } from 'react-native-ui-lib';
3
+ import { Colors } from "../../../style";
4
+ import { render } from "../../../uilib-test-renderer";
5
+ import { HintDriver } from "../Hint.driver.new";
6
+ import View from "../../view";
7
+ const HINT_TEST_ID = 'Hint';
8
+ const TARGET_FRAME_LEFT = {
9
+ x: 25,
10
+ y: 370,
11
+ height: 60,
12
+ width: 100
13
+ };
14
+ const TARGET_FRAME_CENTER = {
15
+ x: 100,
16
+ y: 200,
17
+ height: 60,
18
+ width: 100
19
+ };
20
+ const TARGET_FRAME_RIGHT = {
21
+ x: 240,
22
+ y: 150,
23
+ height: 60,
24
+ width: 100
25
+ };
26
+ const TestCase = ({
27
+ addPagePaddings = true,
28
+ withModal = false,
29
+ ...props
30
+ }) => {
31
+ return <View flex centerV padding-s5={addPagePaddings}>
32
+ <Hint key={'hint'} message={'Hint message to hint things'} targetFrame={TARGET_FRAME_CENTER} onBackgroundPress={withModal ? () => {} : undefined} testID={HINT_TEST_ID} {...props} />
33
+ </View>;
34
+ };
35
+ describe('Hint Screen component test', () => {
36
+ afterEach(() => {
37
+ jest.clearAllMocks();
38
+ });
39
+ it('Test Hint visibility', async () => {
40
+ const renderTree = render(<TestCase visible addPagePaddings={false} />);
41
+ const driver = HintDriver({
42
+ renderTree,
43
+ testID: HINT_TEST_ID
44
+ });
45
+ expect(driver.exists()).toBeTruthy();
46
+ });
47
+ it('Color hint bubble with the default color', async () => {
48
+ const expectedColor = Colors.$backgroundPrimaryHeavy;
49
+ const renderTree = render(<TestCase visible />);
50
+ const driver = HintDriver({
51
+ renderTree,
52
+ testID: HINT_TEST_ID
53
+ });
54
+ const hintBubble = await driver.getHintBubble();
55
+ expect(hintBubble.getStyle(true).backgroundColor).toBe(expectedColor);
56
+ });
57
+ it('Should color hint bubble with provided color prop', async () => {
58
+ const renderTree = render(<TestCase visible color={Colors.white} />);
59
+ const driver = HintDriver({
60
+ renderTree,
61
+ testID: HINT_TEST_ID
62
+ });
63
+ const hintBubble = await driver.getHintBubble();
64
+ expect(hintBubble.getStyle(true).backgroundColor).toBe(Colors.white);
65
+ });
66
+ it('Should modal be not visible when hint is not visible', async () => {
67
+ const renderTree = render(<TestCase visible={false} withModal />);
68
+ const driver = HintDriver({
69
+ renderTree,
70
+ testID: HINT_TEST_ID
71
+ });
72
+ expect(driver.getModal().isVisible()).toBe(false);
73
+ });
74
+
75
+ // TODO: This scenario tests doesn't pass, need to fix it using act
76
+ it.skip('Should modal be visible when showHint is true', async () => {
77
+ const renderTree = render(<TestCase visible withModal />);
78
+ const driver = HintDriver({
79
+ renderTree,
80
+ testID: HINT_TEST_ID
81
+ });
82
+ expect(driver.getModal().isVisible()).toBe(true);
83
+ });
84
+ describe('Different positions and scenarios', () => {
85
+ const targetFrameAlignments = {
86
+ left: TARGET_FRAME_LEFT,
87
+ center: TARGET_FRAME_CENTER,
88
+ right: TARGET_FRAME_RIGHT
89
+ };
90
+ describe.each(['left', 'center', 'right'])('%s position', alignment => {
91
+ const targetFrame = targetFrameAlignments[alignment];
92
+ it(`should position correctly for a target positioned on ${alignment}`, () => {
93
+ const renderTree = render(<TestCase visible targetFrame={targetFrame} />);
94
+ expect(renderTree.toJSON()).toMatchSnapshot();
95
+ });
96
+ it(`should position correctly for a target positioned on ${alignment} - with sideTip`, () => {
97
+ const renderTree = render(<TestCase visible targetFrame={targetFrame} useSideTip />);
98
+ expect(renderTree.toJSON()).toMatchSnapshot();
99
+ });
100
+
101
+ // TODO: This scenario doesn't pass as well because it rendered in a modal
102
+ it.skip(`should position correctly for a target positioned on ${alignment} - with a modal`, () => {
103
+ const renderTree = render(<TestCase visible targetFrame={targetFrame} withModal />);
104
+ expect(renderTree.toJSON()).toMatchSnapshot();
105
+ });
106
+ });
107
+ });
108
+ });
@@ -0,0 +1,56 @@
1
+ import {Image} from '../index';
2
+ import {ThemeManager} from '../../../style';
3
+ import Assets from '../../../assets';
4
+
5
+ describe('Image', () => {
6
+ beforeEach(() => {
7
+ ThemeManager.setComponentTheme('Image', {});
8
+ });
9
+
10
+ describe('getImageSource', () => {
11
+ it('should return source prop, if no transformer was sent', () => {
12
+ const uut = new Image({source: 1});
13
+ expect(uut.getImageSource()).toBe(1);
14
+ });
15
+
16
+ it('should return transformed source prop, according to sourceTransform prop', () => {
17
+ const sourceTransformer = jest.fn(() => 2);
18
+ const uut = new Image({source: 1, sourceTransformer});
19
+ expect(uut.getImageSource()).toBe(2);
20
+ });
21
+
22
+ it('should return transformed source prop, according to sourceTransform prop and other given props', () => {
23
+ const sourceTransformer = jest.fn(({size, source}) => (size === 'small' ? source : 3));
24
+ let uut = new Image({source: 1, size: 'small', sourceTransformer});
25
+ expect(uut.getImageSource()).toBe(1);
26
+ uut = new Image({source: 1, size: 'large', sourceTransformer});
27
+ expect(uut.getImageSource()).toBe(3);
28
+ });
29
+
30
+ it('should return asset according to assetName', () => {
31
+ Assets.loadAssetsGroup('icons', {
32
+ test: 'test.png'
33
+ });
34
+
35
+ Assets.loadAssetsGroup('icons.general', {
36
+ test: 'test.png'
37
+ });
38
+
39
+ let uut = new Image({assetGroup: 'icons', assetName: 'test'});
40
+ expect(uut.getImageSource()).toBe('test.png');
41
+
42
+ uut = new Image({assetGroup: 'icons.general', assetName: 'test'});
43
+ expect(uut.getImageSource()).toBe('test.png');
44
+ });
45
+
46
+ it('should handle when source sent with uri=null', () => {
47
+ const uut = new Image({source: {uri: null}});
48
+ expect(uut.getImageSource()).toEqual({uri: undefined});
49
+ });
50
+
51
+ it('should handle when source sent with uri is empty string', () => {
52
+ const uut = new Image({source: {uri: ''}});
53
+ expect(uut.getImageSource()).toEqual({uri: undefined});
54
+ });
55
+ });
56
+ });