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
@@ -198,6 +198,17 @@
198
198
  }
199
199
  ],
200
200
  "description": "markdown: **Range slider**\n\n**Initial state**\nWidest range is displayed by default.\n\n**Thumbs**\nThumbs should not cross each other and keep minimum distance between them of S2 (8px). Thumbs shouldn’t overlap each other when idle.\n\n**Spacing**\nMinimum spacing between idle Thumbs - S2"
201
+ },
202
+ {
203
+ "type": "section",
204
+ "layout": "horizontal",
205
+ "content": [
206
+ {
207
+ "value": "https://wixmp-1d257fba8470f1b562a0f5f2.wixmp.com/mads-docs-assets/assets/Components%20Docs/Slider/Color%20slider.png"
208
+ }
209
+ ],
210
+ "title": "Spec",
211
+ "description": "Markdown:\n**Default**\nThumb: 24px\nOutline: 1.5px"
201
212
  }
202
213
  ]
203
214
  }
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import Toast from "../index";
4
+ import { ToastDriver } from "../Toast.driver.new";
5
+ const testID = 'toast';
6
+ const TestCase = props => {
7
+ return <Toast visible testID={testID} {...props} />;
8
+ };
9
+ const getDriver = props => {
10
+ const renderTree = render(<TestCase {...props} />);
11
+ const toastDriver = ToastDriver({
12
+ renderTree,
13
+ testID
14
+ });
15
+ return {
16
+ render,
17
+ toastDriver
18
+ };
19
+ };
20
+ describe('Sanity checks', () => {
21
+ it('Should show toast', () => {
22
+ const {
23
+ toastDriver
24
+ } = getDriver();
25
+ expect(toastDriver.exists()).toBeTruthy();
26
+ });
27
+ it('Should dismiss after one second', async () => {
28
+ jest.useFakeTimers();
29
+ const TIME = 1000;
30
+ const dismissFn = jest.fn();
31
+ const {
32
+ toastDriver
33
+ } = getDriver({
34
+ autoDismiss: TIME,
35
+ onDismiss: dismissFn
36
+ });
37
+ expect(toastDriver.exists()).toBeTruthy();
38
+ expect(dismissFn).not.toHaveBeenCalled();
39
+ jest.advanceTimersByTime(TIME);
40
+ expect(dismissFn).toHaveBeenCalledTimes(1);
41
+ });
42
+ it('Should show an Hello World message', () => {
43
+ const MESSAGE = 'Hello World';
44
+ const {
45
+ toastDriver
46
+ } = getDriver({
47
+ message: MESSAGE
48
+ });
49
+ expect(toastDriver.getMessage().getText()).toEqual(MESSAGE);
50
+ });
51
+ it('Should press on action button', () => {
52
+ const actionFn = jest.fn();
53
+ const {
54
+ toastDriver
55
+ } = getDriver({
56
+ action: {
57
+ onPress: actionFn
58
+ }
59
+ });
60
+ expect(actionFn).not.toHaveBeenCalled();
61
+ toastDriver.getAction().press();
62
+ expect(actionFn).toHaveBeenCalled();
63
+ });
64
+ });
@@ -0,0 +1,313 @@
1
+ import uut from '../colors';
2
+ import LogService from '../../services/LogService';
3
+
4
+ const SYSTEM_COLORS = ['grey', 'white', 'black'];
5
+ const GetColorsByHexOptions = {validColors: SYSTEM_COLORS};
6
+
7
+ describe('style/Colors', () => {
8
+ describe('rgba', () => {
9
+ const logServiceSpy = jest.spyOn(LogService, 'error');
10
+
11
+ it('should add alpha to hex color value', () => {
12
+ expect(uut.rgba(uut.green30, 0.7)).toBe('rgba(0, 168, 126, 0.7)');
13
+ expect(uut.rgba(uut.red10, 0.7)).toBe('rgba(213, 39, 18, 0.7)');
14
+ expect(uut.rgba(uut.green30, 0.25)).toBe('rgba(0, 168, 126, 0.25)');
15
+ // expect(uut.rgba('#ff2442', 0.05)).toBe(`${'#ff2442'}0D`);
16
+ // expect(uut.rgba(uut.blue20, 1)).toBe(`${uut.blue20}FF`);
17
+ // expect(uut.rgba(uut.blue20)).toBe(`${uut.blue20}FF`);
18
+ // expect(uut.rgba(uut.blue20, 2)).toBe(`${uut.blue20}`);
19
+ // expect(uut.rgba(uut.blue20, -2)).toBe(`${uut.blue20}`);
20
+ // expect(uut.rgba(uut.blue20, '12ddsav')).toBe(`${uut.blue20}`);
21
+ });
22
+
23
+ it('should add alpha to rgb color value', () => {
24
+ expect(uut.rgba(101, 200, 136, 0.7)).toBe('rgba(101, 200, 136, 0.7)');
25
+ expect(uut.rgba(207, 38, 47, 0.7)).toBe('rgba(207, 38, 47, 0.7)');
26
+ expect(uut.rgba(101, 200, 136, 0.25)).toBe('rgba(101, 200, 136, 0.25)');
27
+ });
28
+
29
+ it('should add alpha to 3 digits hex color value', () => {
30
+ expect(uut.rgba('#333', 0.7)).toBe('rgba(51, 51, 51, 0.7)');
31
+ expect(uut.rgba('#333', 0.1)).toBe('rgba(51, 51, 51, 0.1)');
32
+ expect(uut.rgba('#DEF', 0.25)).toBe('rgba(221, 238, 255, 0.25)');
33
+ expect(uut.rgba('#F24', 1)).toBe('rgba(255, 34, 68, 1)');
34
+ });
35
+
36
+ it('should handle wrong number of params', () => {
37
+ expect(uut.rgba(101, 136, 0.7)).toBe(undefined);
38
+ expect(uut.rgba(undefined, 0.2)).toBe(undefined);
39
+ expect(logServiceSpy).toHaveBeenNthCalledWith(2, 'Colors.rgba fail due to invalid arguments');
40
+ });
41
+
42
+ it('should handle invalid rgb code', () => {
43
+ expect(() => uut.rgba(-12, 128, 136, 0.7)).toThrow(new Error('-12 is invalid rgb code, please use number between 0-255'));
44
+ expect(() => uut.rgba(12, 128, 256, 0.7)).toThrow(new Error('256 is invalid rgb code, please use number between 0-255'));
45
+ });
46
+
47
+ it('should handle invalid hex code', () => {
48
+ expect(() => uut.rgba('#ff22445', 0.7)).toThrow(new Error('#ff22445 is invalid hex color'));
49
+ expect(() => uut.rgba('ff2244', 0.7)).toThrow(new Error('ff2244 is invalid hex color'));
50
+ expect(() => uut.rgba('#ff244', 0.7)).toThrow(new Error('#ff244 is invalid hex color'));
51
+ });
52
+ });
53
+
54
+ describe('isEmpty', () => {
55
+ it('should return true if color is undefined', () => {
56
+ expect(uut.isEmpty(undefined)).toBe(true);
57
+ expect(uut.isEmpty(null)).toBe(true);
58
+ });
59
+
60
+ it('should return true if color is transparent', () => {
61
+ expect(uut.isEmpty('transparent')).toBe(true);
62
+ });
63
+
64
+ it('should return false if color is valid', () => {
65
+ expect(uut.isEmpty('#fff')).toBe(false);
66
+ expect(uut.isEmpty(uut.green20)).toBe(false);
67
+ });
68
+ });
69
+
70
+ describe('getColorTint', () => {
71
+ it('should return back transparent if transparent was passed', () => {
72
+ expect(uut.getColorTint('transparent', '40')).toEqual('transparent');
73
+ });
74
+
75
+ it('should return color with a specific tint', () => {
76
+ expect(uut.getColorTint(uut.green30, '40')).toEqual(uut.green40);
77
+ expect(uut.getColorTint(uut.blue20, '60')).toEqual(uut.blue60);
78
+ expect(uut.getColorTint(uut.blue20, 60)).toEqual(uut.blue60);
79
+ });
80
+
81
+ it('should return same color if tintLevel param is undefined or NaN', () => {
82
+ expect(uut.getColorTint('#F1BE0B')).toEqual('#F1BE0B');
83
+ expect(uut.getColorTint('#F1BE0B', '2a4')).toEqual('#F1BE0B');
84
+ });
85
+
86
+ it('should return undefined if color param is undefined', () => {
87
+ expect(uut.getColorTint(undefined, 10)).toEqual(undefined);
88
+ });
89
+
90
+ it('should handle a color which exists in uiLib but doesn\'t have predefined tints', () => {
91
+ expect(uut.getColorTint('#000000', 60)).toEqual('#808080');
92
+ });
93
+
94
+ it('should handle color that does not exist in `uilib`', () => {
95
+ expect(uut.getColorTint('#F1BE0B', 10)).toEqual('#8D7006'); //
96
+ expect(uut.getColorTint('#F1BE0B', 20)).toEqual('#BE9609'); //
97
+ expect(uut.getColorTint('#F1BE0B', 30)).toEqual('#F1BE0B'); //
98
+ expect(uut.getColorTint('#F1BE0B', 40)).toEqual('#F6CC37'); //
99
+ expect(uut.getColorTint('#F1BE0B', 50)).toEqual('#F8D868'); //
100
+ expect(uut.getColorTint('#F1BE0B', 60)).toEqual('#FAE599'); //
101
+ expect(uut.getColorTint('#F1BE0B', 70)).toEqual('#FDF1C9'); //
102
+ expect(uut.getColorTint('#F1BE0B', 80)).toEqual('#FFFEFA'); //
103
+ });
104
+
105
+ it('should round down tint level to the nearest one', () => {
106
+ expect(uut.getColorTint('#F1BE0B', 75)).toEqual('#FDF1C9');
107
+ expect(uut.getColorTint('#F1BE0B', 25)).toEqual('#BE9609');
108
+ expect(uut.getColorTint('#F1BE0B', 35)).toEqual('#F1BE0B');
109
+ });
110
+
111
+ it('should handle out of range tint levels and round them to the nearest one in range', () => {
112
+ expect(uut.getColorTint('#F1BE0B', 3)).toEqual('#8D7006');
113
+ expect(uut.getColorTint('#F1BE0B', 95)).toEqual('#FFFEFA');
114
+ });
115
+ });
116
+
117
+ describe('generateColorPalette', () => {
118
+ const baseColor = '#3F88C5';
119
+ const tints = ['#193852', '#255379', '#316EA1', '#3F88C5', '#66A0D1', '#8DB9DD', '#B5D1E9', '#DCE9F4'];
120
+ const baseColorLight = '#DCE9F4';
121
+ const tintsLight = ['#1A3851', '#265278', '#326D9F', '#4187C3', '#68A0CF', '#8EB8DC', '#B5D1E8', '#DCE9F4'];
122
+ const saturationLevels = [-10, -10, -20, -20, -25, -25, -25, -25, -20, -10];
123
+ const tintsSaturationLevels = [
124
+ '#1E384D',
125
+ '#2D5271',
126
+ '#466C8C',
127
+ '#3F88C5',
128
+ '#7F9EB8',
129
+ '#A0B7CB',
130
+ '#C1D0DD',
131
+ '#E2E9EE'
132
+ ];
133
+ // const tintsSaturationLevelsDarkest = ['#162837', '#223F58', '#385770', '#486E90', '#3F88C5', '#7C9CB6', '#9AB2C6', '#B7C9D7', '#D3DFE9', '#F0F5F9'];
134
+ // const tintsAddDarkestTints = ['#12283B', '#1C405E', '#275881', '#3270A5', '#3F88C5', '#629ED0', '#86B4DA', '#A9CAE5', '#CCDFF0', '#EFF5FA'];
135
+
136
+ it('should memoize calls for generateColorPalette', () => {
137
+ uut.getColorTint(baseColor, 20);
138
+ uut.getColorTint(baseColor, 50);
139
+ uut.getColorTint(baseColor, 70);
140
+ const cachedPalette = uut.generateColorPalette.cache.get(baseColor);
141
+ expect(cachedPalette).toBeDefined();
142
+ expect(cachedPalette.includes(baseColor)).toBe(true);
143
+ });
144
+
145
+ it('should generateColorPalette return 8 tints with 10 lightness increment', () => {
146
+ const palette = uut.generateColorPalette(baseColor);
147
+ expect(palette.length).toBe(8);
148
+ expect(palette).toContain(baseColor);
149
+ expect(palette).toEqual(tints);
150
+ });
151
+
152
+ it('should generateColorPalette with adjustLightness option false', () => {
153
+ const palette = uut.generateColorPalette(baseColor, {adjustLightness: false});
154
+ expect(palette.length).toBe(8);
155
+ expect(palette).toContain(baseColor);
156
+ expect(palette).toEqual(tints);
157
+ });
158
+
159
+ it('should generateColorPalette with adjustSaturation option false', () => {
160
+ const palette = uut.generateColorPalette(baseColorLight, {adjustSaturation: false});
161
+ expect(palette.length).toBe(8);
162
+ expect(palette).toContain(baseColorLight);
163
+ expect(palette).toEqual(tintsLight);
164
+ });
165
+
166
+ it('should generateColorPalette with adjustSaturation option true and saturationLevels 8 array', () => {
167
+ const palette = uut.generateColorPalette(baseColor, {adjustSaturation: true, saturationLevels});
168
+ expect(palette.length).toBe(8);
169
+ expect(palette).toContain(baseColor); // adjusting baseColor tint as well
170
+ expect(palette).toEqual(tintsSaturationLevels);
171
+ });
172
+
173
+ // it('should generateColorPalette with adjustSaturation option true and saturationLevels 10 array and addDarkestTints true', () => {
174
+ // const options = {adjustSaturation: true, saturationLevels, addDarkestTints: true};
175
+ // const palette = uut.generateColorPalette(baseColor, options);
176
+ // expect(palette.length).toBe(10);
177
+ // expect(palette).toContain(baseColor); // adjusting baseColor tint as well
178
+ // expect(palette).toEqual(tintsSaturationLevelsDarkest);
179
+ // });
180
+
181
+ it('should generateColorPalette with avoidReverseOnDark option false not reverse on light mode (default)', () => {
182
+ const palette = uut.generateColorPalette(baseColor, {avoidReverseOnDark: false});
183
+ expect(palette.length).toBe(8);
184
+ expect(palette).toContain(baseColor);
185
+ expect(palette).toEqual(tints);
186
+ });
187
+
188
+ it('should generateColorPalette with avoidReverseOnDark option true not reverse on light mode', () => {
189
+ const palette = uut.generateColorPalette(baseColor, {avoidReverseOnDark: true});
190
+ expect(palette.length).toBe(8);
191
+ expect(palette).toContain(baseColor);
192
+ expect(palette).toEqual(tints);
193
+ });
194
+
195
+ it('should generateColorPalette with addDarkestTints option false return 8 tints with 10 lightness increment (default)', () => {
196
+ const palette = uut.generateColorPalette(baseColor, {addDarkestTints: false});
197
+ expect(palette.length).toBe(8);
198
+ expect(palette).toContain(baseColor);
199
+ expect(palette).toEqual(tints);
200
+ });
201
+
202
+ // it('should generateColorPalette with addDarkestTints option true return 10 tints with 9 lightness increment', () => {
203
+ // const palette = uut.generateColorPalette(baseColor, {addDarkestTints: true});
204
+ // expect(palette.length).toBe(10);
205
+ // expect(palette).toContain(baseColor);
206
+ // expect(palette).toEqual(tintsAddDarkestTints);
207
+ // });
208
+ });
209
+
210
+ describe('generateDesignTokens', () => {
211
+ it('should generate design tokens from dark color for light theme', () => {
212
+ const primaryColor = '#860D86';
213
+ expect(uut.isDark(primaryColor)).toEqual(true);
214
+ expect(uut.generateDesignTokens(primaryColor)).toEqual({
215
+ $backgroundPrimaryHeavy: primaryColor,
216
+ $backgroundPrimaryLight: '#FFFAFF',
217
+ $backgroundPrimaryMedium: '#FACCFA',
218
+ $iconPrimary: primaryColor,
219
+ $iconPrimaryLight: '#F16FF1',
220
+ $outlinePrimary: primaryColor,
221
+ $textPrimary: primaryColor
222
+ });
223
+ });
224
+
225
+ it('should generate design tokens from light color for light theme', () => {
226
+ const primaryColor = '#E9BEE7';
227
+ expect(uut.isDark(primaryColor)).toEqual(false);
228
+ expect(uut.generateDesignTokens(primaryColor)).toEqual({
229
+ $backgroundPrimaryHeavy: '#A4379F',
230
+ $backgroundPrimaryLight: '#F6E4F5',
231
+ $backgroundPrimaryMedium: '#E9BEE7',
232
+ $iconPrimary: '#A4379F',
233
+ $iconPrimaryLight: '#CF72CB',
234
+ $outlinePrimary: '#A4379F',
235
+ $textPrimary: '#A4379F'
236
+ });
237
+ });
238
+
239
+ it('should generate design tokens from dark color for dark theme', () => {
240
+ const primaryColor = '#860D86';
241
+ expect(uut.isDark(primaryColor)).toEqual(true);
242
+ expect(uut.generateDesignTokens(primaryColor, true)).toEqual({
243
+ $backgroundPrimaryHeavy: '#F69DF6',
244
+ $backgroundPrimaryLight: '#860D86',
245
+ $backgroundPrimaryMedium: '#B512B5',
246
+ $iconPrimary: '#F69DF6',
247
+ $iconPrimaryLight: '#ED40ED',
248
+ $outlinePrimary: '#F69DF6',
249
+ $textPrimary: '#F69DF6'
250
+ });
251
+ });
252
+
253
+ it('should generate design tokens from light color for dark theme', () => {
254
+ const primaryColor = '#E9BEE7';
255
+ expect(uut.isDark(primaryColor)).toEqual(false);
256
+ expect(uut.generateDesignTokens(primaryColor, true)).toEqual({
257
+ $backgroundPrimaryHeavy: primaryColor,
258
+ $backgroundPrimaryLight: '#581E55',
259
+ $backgroundPrimaryMedium: '#7E2B7A',
260
+ $iconPrimary: primaryColor,
261
+ $iconPrimaryLight: '#C24CBD',
262
+ $outlinePrimary: primaryColor,
263
+ $textPrimary: primaryColor
264
+ });
265
+ });
266
+ });
267
+
268
+ describe('isDesignToken', () => {
269
+ it('should return true if the color passed is design token', () => {
270
+ expect(uut.isDesignToken({semantic: ['$textDefault'], toString: () => {}})).toEqual(true);
271
+ expect(uut.isDesignToken({resource_paths: ['@color/textNeutral'], toString: () => {}})).toEqual(true);
272
+ expect(uut.isDesignToken({test: 'fail', toString: () => {}})).toEqual(false);
273
+ expect(uut.isDesignToken(uut.red10)).toEqual(false);
274
+ });
275
+ });
276
+
277
+ describe('getSystemColorByHex', () => {
278
+ it('should return the system color, if the color is included in the validColors array', () => {
279
+ expect(uut.getSystemColorByHex('#FFFFFF', GetColorsByHexOptions)).toEqual('white');
280
+ expect(uut.getSystemColorByHex('#000000', GetColorsByHexOptions)).toEqual('black');
281
+ expect(uut.getSystemColorByHex('#0F62E6', {validColors: [...SYSTEM_COLORS, 'blue']})).toEqual('blue30');
282
+ expect(uut.getSystemColorByHex('#FB6413', {validColors: [...SYSTEM_COLORS, 'orange']})).toEqual('orange30');
283
+ });
284
+
285
+ it('should return undefined if the color is not included in validColors', () => {
286
+ expect(uut.getSystemColorByHex('#0F62E6', GetColorsByHexOptions)).toEqual(undefined);
287
+ expect(uut.getSystemColorByHex('#00A87E', GetColorsByHexOptions)).toEqual(undefined);
288
+ });
289
+
290
+ it('without validColors array the function will return the first system color name match the color', () => {
291
+ expect(uut.getSystemColorByHex('#0F62E6')).toEqual('blue30');
292
+ expect(uut.getSystemColorByHex('#00A87E')).toEqual('green30');
293
+ });
294
+
295
+ it('should return undefined for color that does not exist in our colors palette.', () => {
296
+ uut.anotherViolet = '#5A48F5';
297
+ expect(uut.getSystemColorByHex('#5A48F5')).toEqual('violet30');
298
+ expect(uut.getSystemColorByHex('#5A48F5', GetColorsByHexOptions)).toEqual(undefined);
299
+ expect(uut.getSystemColorByHex('#5A48F5', {validColors: [...SYSTEM_COLORS, 'anotherViolet']})).toEqual('anotherViolet');
300
+ });
301
+ });
302
+
303
+ describe('getColor', () => {
304
+ it('should return the right color depends on the scheme type passed', () => {
305
+ expect(uut.getColor('$backgroundPrimaryHeavy', 'light')).toBe('#5A48F5');
306
+ expect(uut.getColor('$backgroundPrimaryHeavy', 'dark')).toBe('#B2ABFF');
307
+ });
308
+
309
+ it('should return the right color based on the default scheme type', () => {
310
+ expect(uut.getColor('$backgroundPrimaryHeavy')).toBe('#5A48F5');
311
+ });
312
+ });
313
+ });
@@ -0,0 +1,119 @@
1
+ let Scheme;
2
+ describe('Scheme', () => {
3
+ beforeEach(() => {
4
+ jest.resetModules();
5
+ Scheme = require('../scheme').default;
6
+ });
7
+
8
+ describe('initial values', () => {
9
+ it('should initial schemes be empty objects', () => {
10
+ expect(Scheme.schemes).toEqual({dark: {}, light: {}});
11
+ });
12
+
13
+ it('should initial current scheme type be "light"', () => {
14
+ expect(Scheme.currentScheme).toBe('light');
15
+ });
16
+
17
+ it('should retrieve actual scheme type (defaulting to "light")', () => {
18
+ expect(Scheme.getSchemeType()).toBe('light');
19
+ });
20
+ });
21
+
22
+ describe('setScheme', () => {
23
+ it('should initially be light', () => {
24
+ expect(Scheme.getSchemeType()).toBe('light');
25
+ });
26
+ it('should override default scheme', () => {
27
+ Scheme.setScheme('dark');
28
+ expect(Scheme.getSchemeType()).toBe('dark');
29
+ });
30
+
31
+ it('should throw on invalid scheme color', () => {
32
+ expect(() => Scheme.setScheme('yellow')).toThrow(`yellow is invalid colorScheme, please use 'light' | 'dark' | 'default'`);
33
+ });
34
+ });
35
+
36
+ describe('getScheme/loadScheme', () => {
37
+ beforeEach(() => {
38
+ Scheme.loadSchemes({
39
+ dark: {
40
+ a: 'black',
41
+ b: 'black'
42
+ },
43
+ light: {
44
+ a: 'white',
45
+ b: 'white'
46
+ }
47
+ });
48
+ });
49
+
50
+ it('should return scheme by current scheme type (initially by light)', () => {
51
+ expect(Scheme.getScheme()).toEqual({
52
+ a: 'white',
53
+ b: 'white'
54
+ });
55
+ });
56
+
57
+ it('should return correct scheme after setScheme has changed scheme type', () => {
58
+ Scheme.setScheme('dark');
59
+ expect(Scheme.getScheme()).toEqual({
60
+ a: 'black',
61
+ b: 'black'
62
+ });
63
+ });
64
+
65
+ it('should throw on missing color keys', () => {
66
+ expect(() => Scheme.loadSchemes({
67
+ dark: {
68
+ a: 'black',
69
+ b: 'black'
70
+ },
71
+ light: {
72
+ a: 'white',
73
+ b: 'white',
74
+ c: 'white'
75
+ }
76
+ })).toThrow(`There is a mismatch in scheme keys: c`);
77
+ });
78
+ });
79
+
80
+ describe('scheme change listeners', () => {
81
+ it('should register scheme change listener', () => {
82
+ const listener = jest.fn();
83
+ Scheme.addChangeListener(listener);
84
+ expect(listener).not.toHaveBeenCalled();
85
+ Scheme.setScheme('dark');
86
+ expect(listener).toHaveBeenCalledTimes(1);
87
+ });
88
+
89
+ it('should unregister scheme change listener', () => {
90
+ const listener = jest.fn();
91
+ Scheme.addChangeListener(listener);
92
+ Scheme.setScheme('dark');
93
+ expect(listener).toHaveBeenCalledTimes(1);
94
+ Scheme.removeChangeListener(listener);
95
+ Scheme.setScheme('light');
96
+ expect(listener).toHaveBeenCalledTimes(1);
97
+ });
98
+
99
+ it('should not be triggered if scheme set to the same type', () => {
100
+ const listener = jest.fn();
101
+ Scheme.addChangeListener(listener);
102
+ Scheme.setScheme('dark');
103
+ expect(listener).toHaveBeenCalledTimes(1);
104
+ Scheme.setScheme('dark');
105
+ expect(listener).toHaveBeenCalledTimes(1);
106
+ });
107
+ });
108
+
109
+ describe('isDarkMode', () => {
110
+ it('should return false when app is on light mode', () => {
111
+ expect(Scheme.isDarkMode()).toBe(false);
112
+ });
113
+
114
+ it('should return true when app is on dark mode', () => {
115
+ Scheme.setScheme('dark');
116
+ expect(Scheme.isDarkMode()).toBe(true);
117
+ });
118
+ });
119
+ });
@@ -11,92 +11,95 @@ export const WEIGHT_TYPES = {
11
11
  BLACK: '900'
12
12
  };
13
13
 
14
+ // Check if platform supports full range of font weights
15
+ const supportsFullFontWeights = Constants.isIOS || Constants.isAndroid && Number(Platform.Version) >= 28;
16
+
14
17
  // text10
15
18
  const text10 = {
16
19
  fontSize: 64,
17
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.THIN : undefined,
20
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.THIN : undefined,
18
21
  lineHeight: 76,
19
- fontFamily: 'System'
22
+ fontFamily: Constants.isIOS ? 'System' : undefined
20
23
  };
21
24
 
22
25
  // text20
23
26
  const text20 = {
24
27
  fontSize: 48,
25
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.REGULAR : undefined,
28
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.REGULAR : undefined,
26
29
  lineHeight: Constants.isIOS ? 60 : 62,
27
- fontFamily: 'System'
30
+ fontFamily: Constants.isIOS ? 'System' : undefined
28
31
  };
29
32
 
30
33
  // text30
31
34
  const text30 = {
32
35
  fontSize: 36,
33
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.REGULAR : undefined,
36
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.REGULAR : undefined,
34
37
  lineHeight: Constants.isIOS ? 43 : 46,
35
- fontFamily: 'System'
38
+ fontFamily: Constants.isIOS ? 'System' : undefined
36
39
  };
37
40
 
38
41
  // text40
39
42
  const text40 = {
40
43
  fontSize: 28,
41
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.HEAVY : 'bold',
44
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.HEAVY : 'bold',
42
45
  lineHeight: 32,
43
- fontFamily: 'System'
46
+ fontFamily: Constants.isIOS ? 'System' : undefined
44
47
  };
45
48
 
46
49
  // text50
47
50
  const text50 = {
48
51
  fontSize: 24,
49
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.HEAVY : 'bold',
52
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.HEAVY : 'bold',
50
53
  lineHeight: 28,
51
- fontFamily: 'System'
54
+ fontFamily: Constants.isIOS ? 'System' : undefined
52
55
  };
53
56
 
54
57
  // text60
55
58
  const text60 = {
56
59
  fontSize: 20,
57
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.HEAVY : 'bold',
60
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.HEAVY : 'bold',
58
61
  lineHeight: 24,
59
- fontFamily: 'System'
62
+ fontFamily: Constants.isIOS ? 'System' : undefined
60
63
  };
61
64
 
62
65
  // text65
63
66
  const text65 = {
64
67
  fontSize: 18,
65
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.MEDIUM : undefined,
68
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.MEDIUM : undefined,
66
69
  lineHeight: 24,
67
- fontFamily: 'System'
70
+ fontFamily: Constants.isIOS ? 'System' : undefined
68
71
  };
69
72
 
70
73
  // text70
71
74
  const text70 = {
72
75
  fontSize: 16,
73
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.REGULAR : undefined,
76
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.REGULAR : undefined,
74
77
  lineHeight: 24,
75
- fontFamily: 'System'
78
+ fontFamily: Constants.isIOS ? 'System' : undefined
76
79
  };
77
80
 
78
81
  // text80
79
82
  const text80 = {
80
83
  fontSize: 14,
81
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.REGULAR : undefined,
84
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.REGULAR : undefined,
82
85
  lineHeight: 20,
83
- fontFamily: 'System'
86
+ fontFamily: Constants.isIOS ? 'System' : undefined
84
87
  };
85
88
 
86
89
  // text90
87
90
  const text90 = {
88
91
  fontSize: 12,
89
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.BOLD : 'bold',
92
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.BOLD : 'bold',
90
93
  lineHeight: 16,
91
- fontFamily: 'System'
94
+ fontFamily: Constants.isIOS ? 'System' : undefined
92
95
  };
93
96
 
94
97
  // text100
95
98
  const text100 = {
96
99
  fontSize: 10,
97
- fontWeight: Constants.isIOS ? WEIGHT_TYPES.BOLD : 'bold',
100
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES.BOLD : 'bold',
98
101
  lineHeight: 16,
99
- fontFamily: 'System'
102
+ fontFamily: Constants.isIOS ? 'System' : undefined
100
103
  };
101
104
  const Typography = {
102
105
  text10,
@@ -127,7 +130,7 @@ _forEach(keys, key => {
127
130
  const fontWeightKey = `${fontKey}${weightValue}`;
128
131
  Typography[fontWeightKey] = {
129
132
  ...Typography[fontKey],
130
- fontWeight: Constants.isIOS ? WEIGHT_TYPES[weightKey] : ['BO', 'H', 'BL'].includes(weightValue) ? 'bold' : undefined
133
+ fontWeight: supportsFullFontWeights ? WEIGHT_TYPES[weightKey] : ['BO', 'H', 'BL'].includes(weightValue) ? 'bold' : undefined
131
134
  };
132
135
  });
133
136
  });
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import {measurePerformance} from 'reassure';
3
+ import {View} from '../../index';
4
+
5
+ describe('Playground testing', () => {
6
+ const TestCase = () => {
7
+ return <View/>;
8
+ };
9
+
10
+ it('view', async () => {
11
+ const measurement = await measurePerformance(<TestCase/>);
12
+ expect(measurement.meanDuration).toBeLessThan(10);
13
+ });
14
+ });