react-native-ui-lib 8.1.1 → 8.1.7-snapshot.7597

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 (520) hide show
  1. package/lib/android/build.gradle +32 -0
  2. package/lib/android/src/main/AndroidManifest.xml +4 -0
  3. package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +28 -0
  4. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontModule.java +139 -0
  5. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontPackage.java +28 -0
  6. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightFrame.java +33 -0
  7. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightViewTagParams.java +50 -0
  8. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterView.java +167 -0
  9. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +131 -0
  10. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewPackage.java +28 -0
  11. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/UiUtils.java +50 -0
  12. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/AppContextHolder.java +52 -0
  13. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java +213 -0
  14. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.java +39 -0
  15. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewManager.java +29 -0
  16. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewShadow.java +29 -0
  17. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.java +34 -0
  18. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputPackage.java +49 -0
  19. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactContextHolder.java +16 -0
  20. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.java +83 -0
  21. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.java +163 -0
  22. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/PredicateFunc.java +5 -0
  23. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +33 -0
  24. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils.java +65 -0
  25. package/lib/android/src/main/java/com/wix/reactnativeuilib/utils/LogForwarder.java +45 -0
  26. package/lib/android/src/main/res/layout/wheel_picker.xml +9 -0
  27. package/lib/android/src/main/res/values/colors.xml +9 -0
  28. package/lib/android/src/main/res/values/styles.xml +9 -0
  29. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/keyboardRegistry.api.json +50 -0
  30. package/lib/components/Keyboard/KeyboardAccessoryView/keyboardAccessoryView.api.json +58 -0
  31. package/lib/components/Keyboard/KeyboardAwareInsetsView/keyboardAwareInsetsView.api.json +14 -0
  32. package/lib/components/Keyboard/KeyboardTrackingView/keyboardTrackingView.api.json +86 -0
  33. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.h +9 -0
  34. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.m +115 -0
  35. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.h +19 -0
  36. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.m +216 -0
  37. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.h +6 -0
  38. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.m +28 -0
  39. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.h +39 -0
  40. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.m +160 -0
  41. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.h +36 -0
  42. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.m +121 -0
  43. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.h +48 -0
  44. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.m +27 -0
  45. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolation.h +16 -0
  46. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.h +19 -0
  47. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.mm +155 -0
  48. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.h +16 -0
  49. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +450 -0
  50. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +18 -0
  51. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +99 -0
  52. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.h +14 -0
  53. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +827 -0
  54. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.h +44 -0
  55. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.m +171 -0
  56. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.h +6 -0
  57. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.m +17 -0
  58. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.h +6 -0
  59. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.m +105 -0
  60. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.h +5 -0
  61. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.m +20 -0
  62. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.h +7 -0
  63. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.m +76 -0
  64. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.h +9 -0
  65. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.m +14 -0
  66. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.h +5 -0
  67. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.m +26 -0
  68. package/lib/ios/reactnativeuilib.xcodeproj/project.pbxproj +435 -0
  69. package/package.json +2 -3
  70. package/src/assets/Assets.d.ts +5 -0
  71. package/src/assets/emojis/index.d.ts +1343 -0
  72. package/src/assets/index.d.ts +3 -0
  73. package/src/assets/internal/index.d.ts +4 -0
  74. package/src/commons/Config.d.ts +24 -0
  75. package/src/commons/Constants.d.ts +54 -0
  76. package/src/commons/UIComponent.d.ts +4 -0
  77. package/src/commons/asBaseComponent.d.ts +15 -0
  78. package/src/commons/baseComponent.d.ts +2 -0
  79. package/src/commons/forwardRef.d.ts +8 -0
  80. package/src/commons/modifiers.d.ts +118 -0
  81. package/src/commons/new.d.ts +8 -0
  82. package/src/commons/withScrollEnabler.d.ts +13 -0
  83. package/src/commons/withScrollReached.d.ts +35 -0
  84. package/src/components/WheelPicker/Item.d.ts +28 -0
  85. package/src/components/WheelPicker/WheelPicker.driver.d.ts +18 -0
  86. package/src/components/WheelPicker/WheelPickerItem.driver.d.ts +8 -0
  87. package/src/components/WheelPicker/helpers/useListMiddleIndex.d.ts +6 -0
  88. package/src/components/WheelPicker/index.d.ts +88 -0
  89. package/src/components/WheelPicker/types.d.ts +6 -0
  90. package/src/components/WheelPicker/usePresenter.d.ts +21 -0
  91. package/src/components/actionBar/index.d.ts +35 -0
  92. package/src/components/actionSheet/index.d.ts +80 -0
  93. package/src/components/animatedImage/index.d.ts +28 -0
  94. package/src/components/avatar/index.d.ts +382 -0
  95. package/src/components/badge/index.d.ts +879 -0
  96. package/src/components/baseInput/Validators.d.ts +8 -0
  97. package/src/components/baseInput/index.d.ts +29 -0
  98. package/src/components/button/Button.driver.new.d.ts +34 -0
  99. package/src/components/button/ButtonConstants.d.ts +26 -0
  100. package/src/components/button/index.d.ts +573 -0
  101. package/src/components/button/types.d.ts +157 -0
  102. package/src/components/card/CardContext.d.ts +3 -0
  103. package/src/components/card/CardImage.d.ts +20 -0
  104. package/src/components/card/CardPresenter.d.ts +12 -0
  105. package/src/components/card/CardSection.d.ts +79 -0
  106. package/src/components/card/asCardChild.d.ts +6 -0
  107. package/src/components/card/index.d.ts +120 -0
  108. package/src/components/carousel/Carousel.driver.new.d.ts +9 -0
  109. package/src/components/carousel/CarouselPresenter.d.ts +9 -0
  110. package/src/components/carousel/index.d.ts +73 -0
  111. package/src/components/carousel/types.d.ts +107 -0
  112. package/src/components/checkbox/Checkbox.driver.d.ts +15 -0
  113. package/src/components/checkbox/index.d.ts +129 -0
  114. package/src/components/chip/chip.driver.d.ts +33 -0
  115. package/src/components/chip/index.d.ts +209 -0
  116. package/src/components/chipsInput/index.d.ts +55 -0
  117. package/src/components/colorPalette/index.d.ts +116 -0
  118. package/src/components/colorPicker/ColorPickerDialog.d.ts +39 -0
  119. package/src/components/colorPicker/ColorPickerDialogHeader.d.ts +9 -0
  120. package/src/components/colorPicker/ColorPickerDialogSliders.d.ts +10 -0
  121. package/src/components/colorPicker/ColorPickerPresenter.d.ts +16 -0
  122. package/src/components/colorPicker/ColorPickerPreview.d.ts +12 -0
  123. package/src/components/colorPicker/index.d.ts +45 -0
  124. package/src/components/colorSwatch/index.d.ts +50 -0
  125. package/src/components/connectionStatusBar/index.d.ts +33 -0
  126. package/src/components/connectionStatusBar/types.d.ts +28 -0
  127. package/src/components/dash/index.d.ts +19 -0
  128. package/src/components/dateTimePicker/DateTimePicker.driver.d.ts +7 -0
  129. package/src/components/dateTimePicker/index.d.ts +288 -0
  130. package/src/components/dateTimePicker/useOldApi.d.ts +27 -0
  131. package/src/components/dialog/Dialog.driver.new.d.ts +6 -0
  132. package/src/components/dialog/DialogHeader.d.ts +4 -0
  133. package/src/components/dialog/index.d.ts +15 -0
  134. package/src/components/dialog/types.d.ts +138 -0
  135. package/src/components/dialog/useDialogContent.d.ts +13 -0
  136. package/src/components/drawer/Swipeable.d.ts +94 -0
  137. package/src/components/drawer/index.d.ts +161 -0
  138. package/src/components/expandableSection/index.d.ts +40 -0
  139. package/src/components/fadedScrollView/index.d.ts +59 -0
  140. package/src/components/fader/index.d.ts +37 -0
  141. package/src/components/featureHighlight/index.d.ts +147 -0
  142. package/src/components/floatingButton/index.d.ts +89 -0
  143. package/src/components/gradient/index.d.ts +19 -0
  144. package/src/components/gridList/index.d.ts +5 -0
  145. package/src/components/gridList/types.d.ts +29 -0
  146. package/src/components/gridList/useGridLayout.d.ts +15 -0
  147. package/src/components/gridListItem/index.d.ts +132 -0
  148. package/src/components/gridView/index.d.ts +80 -0
  149. package/src/components/hint/Hint.driver.d.ts +6 -0
  150. package/src/components/hint/Hint.driver.new.d.ts +19 -0
  151. package/src/components/hint/HintAnchor.d.ts +13 -0
  152. package/src/components/hint/HintBubble.d.ts +12 -0
  153. package/src/components/hint/HintMockChildren.d.ts +8 -0
  154. package/src/components/hint/HintOld.d.ts +196 -0
  155. package/src/components/hint/hooks/useHintAccessibility.d.ts +10 -0
  156. package/src/components/hint/hooks/useHintLayout.d.ts +13 -0
  157. package/src/components/hint/hooks/useHintPosition.d.ts +29 -0
  158. package/src/components/hint/hooks/useHintVisibility.d.ts +6 -0
  159. package/src/components/hint/index.d.ts +14 -0
  160. package/src/components/hint/types.d.ts +106 -0
  161. package/src/components/icon/index.d.ts +97 -0
  162. package/src/components/image/Image.driver.d.ts +4 -0
  163. package/src/components/image/Image.driver.new.d.ts +2 -0
  164. package/src/components/image/index.d.ts +192 -0
  165. package/src/components/listItem/ListItemPart.d.ts +15 -0
  166. package/src/components/listItem/index.d.ts +52 -0
  167. package/src/components/listItem/types.d.ts +60 -0
  168. package/src/components/loaderScreen/index.d.ts +13 -0
  169. package/src/components/loaderScreen/types.d.ts +32 -0
  170. package/src/components/marquee/index.d.ts +5 -0
  171. package/src/components/marquee/types.d.ts +35 -0
  172. package/src/components/maskedInput/index.d.ts +5 -0
  173. package/src/components/maskedInput/new.d.ts +22 -0
  174. package/src/components/modal/Modal.driver.new.d.ts +8 -0
  175. package/src/components/modal/TopBar.d.ts +89 -0
  176. package/src/components/modal/index.d.ts +64 -0
  177. package/src/components/numberInput/NumberInput.driver.d.ts +6 -0
  178. package/src/components/numberInput/Presenter.d.ts +21 -0
  179. package/src/components/numberInput/index.d.ts +57 -0
  180. package/src/components/overlay/index.d.ts +68 -0
  181. package/src/components/pageControl/index.d.ts +56 -0
  182. package/src/components/panView/index.d.ts +21 -0
  183. package/src/components/panView/panningUtil.d.ts +38 -0
  184. package/src/components/panView/usePanGesture.d.ts +49 -0
  185. package/src/components/picker/Picker.driver.new.d.ts +44 -0
  186. package/src/components/picker/PickerContext.d.ts +4 -0
  187. package/src/components/picker/PickerItem.d.ts +11 -0
  188. package/src/components/picker/PickerItemsList.d.ts +4 -0
  189. package/src/components/picker/PickerPresenter.d.ts +7 -0
  190. package/src/components/picker/PickerSelectionStatusBar.d.ts +3 -0
  191. package/src/components/picker/helpers/useFieldType.d.ts +373 -0
  192. package/src/components/picker/helpers/useImperativePickerHandle.d.ts +5 -0
  193. package/src/components/picker/helpers/useNewPickerProps.d.ts +3 -0
  194. package/src/components/picker/helpers/usePickerLabel.d.ts +17 -0
  195. package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +4 -0
  196. package/src/components/picker/helpers/usePickerSearch.d.ts +9 -0
  197. package/src/components/picker/helpers/usePickerSelection.d.ts +16 -0
  198. package/src/components/picker/index.d.ts +15 -0
  199. package/src/components/picker/types.d.ts +321 -0
  200. package/src/components/pieChart/PieSegment.d.ts +34 -0
  201. package/src/components/pieChart/index.d.ts +15 -0
  202. package/src/components/progressBar/index.d.ts +65 -0
  203. package/src/components/progressiveImage/index.d.ts +23 -0
  204. package/src/components/radioButton/RadioButton.driver.d.ts +9 -0
  205. package/src/components/radioButton/index.d.ts +121 -0
  206. package/src/components/radioGroup/RadioGroup.driver.d.ts +13 -0
  207. package/src/components/radioGroup/RadioGroupContext.d.ts +14 -0
  208. package/src/components/radioGroup/asRadioGroupChild.d.ts +2 -0
  209. package/src/components/radioGroup/index.d.ts +47 -0
  210. package/src/components/scrollBar/index.d.ts +88 -0
  211. package/src/components/searchInput/index.d.ts +37 -0
  212. package/src/components/searchInput/types.d.ts +66 -0
  213. package/src/components/sectionsWheelPicker/SectionsWheelPicker.driver.d.ts +25 -0
  214. package/src/components/sectionsWheelPicker/index.d.ts +43 -0
  215. package/src/components/segmentedControl/index.d.ts +90 -0
  216. package/src/components/segmentedControl/segment.d.ts +111 -0
  217. package/src/components/segmentedControl/useSegmentedControlPreset.d.ts +10 -0
  218. package/src/components/skeletonView/index.d.ts +163 -0
  219. package/src/components/slider/ColorSliderGroup.d.ts +13 -0
  220. package/src/components/slider/GradientSlider.d.ts +20 -0
  221. package/src/components/slider/SliderContext.d.ts +8 -0
  222. package/src/components/slider/Thumb.d.ts +32 -0
  223. package/src/components/slider/index.d.ts +31 -0
  224. package/src/components/slider/slider.driver.d.ts +5 -0
  225. package/src/components/slider/types.d.ts +197 -0
  226. package/src/components/sortableGridList/SortableItem.d.ts +6 -0
  227. package/src/components/sortableGridList/index.d.ts +5 -0
  228. package/src/components/sortableGridList/types.d.ts +34 -0
  229. package/src/components/sortableGridList/usePresenter.d.ts +21 -0
  230. package/src/components/sortableList/SortableList.driver.new.d.ts +2 -0
  231. package/src/components/sortableList/SortableListContext.d.ts +19 -0
  232. package/src/components/sortableList/SortableListItem.d.ts +8 -0
  233. package/src/components/sortableList/SortableListItem.driver.new.d.ts +11 -0
  234. package/src/components/sortableList/index.d.ts +5 -0
  235. package/src/components/sortableList/types.d.ts +48 -0
  236. package/src/components/sortableList/usePresenter.d.ts +12 -0
  237. package/src/components/stackAggregator/assets/arrow-down.png +0 -0
  238. package/src/components/stackAggregator/assets/arrow-down@2x.png +0 -0
  239. package/src/components/stackAggregator/assets/arrow-down@3x.png +0 -0
  240. package/src/components/stackAggregator/index.d.ts +89 -0
  241. package/src/components/stateScreen/index.d.ts +5 -0
  242. package/src/components/stateScreen/types.d.ts +30 -0
  243. package/src/components/stepper/index.d.ts +47 -0
  244. package/src/components/svgImage/index.d.ts +14 -0
  245. package/src/components/svgImage/index.web.d.ts +18 -0
  246. package/src/components/switch/index.d.ts +102 -0
  247. package/src/components/switch/switch.driver.d.ts +18 -0
  248. package/src/components/tabController/PageCarousel.d.ts +9 -0
  249. package/src/components/tabController/TabBar.d.ts +97 -0
  250. package/src/components/tabController/TabBarContext.d.ts +18 -0
  251. package/src/components/tabController/TabBarItem.d.ts +105 -0
  252. package/src/components/tabController/TabPage.d.ts +33 -0
  253. package/src/components/tabController/index.d.ts +48 -0
  254. package/src/components/tabController/useImperativeTabControllerHandle.d.ts +6 -0
  255. package/src/components/tabController/useScrollToItem.d.ts +79 -0
  256. package/src/components/text/Text.driver.d.ts +7 -0
  257. package/src/components/text/Text.driver.new.d.ts +17 -0
  258. package/src/components/text/index.d.ts +195 -0
  259. package/src/components/textField/CharCounter.d.ts +7 -0
  260. package/src/components/textField/ClearButton.d.ts +4 -0
  261. package/src/components/textField/FieldContext.d.ts +4 -0
  262. package/src/components/textField/FloatingPlaceholder.d.ts +7 -0
  263. package/src/components/textField/Input.d.ts +8 -0
  264. package/src/components/textField/Label.d.ts +7 -0
  265. package/src/components/textField/Presenter.d.ts +7 -0
  266. package/src/components/textField/TextField.driver.new.d.ts +129 -0
  267. package/src/components/textField/ValidationMessage.d.ts +7 -0
  268. package/src/components/textField/index.d.ts +114 -0
  269. package/src/components/textField/presets/outline.d.ts +737 -0
  270. package/src/components/textField/presets/underline.d.ts +735 -0
  271. package/src/components/textField/textInput/index.d.ts +1 -0
  272. package/src/components/textField/textInput/index.web.d.ts +3 -0
  273. package/src/components/textField/types.d.ts +287 -0
  274. package/src/components/textField/useFieldState.d.ts +16 -0
  275. package/src/components/textField/useImperativeInputHandle.d.ts +4 -0
  276. package/src/components/textField/usePreset.d.ts +1696 -0
  277. package/src/components/textField/validators.d.ts +9 -0
  278. package/src/components/textFieldOld/index.d.ts +71 -0
  279. package/src/components/timeline/Line.d.ts +10 -0
  280. package/src/components/timeline/Point.d.ts +9 -0
  281. package/src/components/timeline/index.d.ts +11 -0
  282. package/src/components/timeline/line.driver.d.ts +10 -0
  283. package/src/components/timeline/point.driver.d.ts +8 -0
  284. package/src/components/timeline/timeline.driver.d.ts +25 -0
  285. package/src/components/timeline/types.d.ts +50 -0
  286. package/src/components/touchableOpacity/index.d.ts +50 -0
  287. package/src/components/view/View.driver.new.d.ts +7 -0
  288. package/src/components/view/index.d.ts +46 -0
  289. package/src/components/wizard/WizardStates.d.ts +2 -0
  290. package/src/components/wizard/WizardStep.d.ts +4 -0
  291. package/src/components/wizard/index.d.ts +31 -0
  292. package/src/components/wizard/types.d.ts +90 -0
  293. package/src/helpers/AvatarHelper.d.ts +9 -0
  294. package/src/helpers/FormattingPresenter.d.ts +6 -0
  295. package/src/helpers/Profiler.d.ts +22 -0
  296. package/src/helpers/index.d.ts +3 -0
  297. package/src/hooks/index.d.ts +14 -0
  298. package/src/hooks/useCombinedRefs/index.d.ts +3 -0
  299. package/src/hooks/useDebounce/index.d.ts +5 -0
  300. package/src/hooks/useDidUpdate/index.d.ts +6 -0
  301. package/src/hooks/useHiddenLocation/index.d.ts +13 -0
  302. package/src/hooks/useHiddenLocation/index.web.d.ts +13 -0
  303. package/src/hooks/useKeyboardHeight/index.d.ts +5 -0
  304. package/src/hooks/useMeasure/index.d.ts +15 -0
  305. package/src/hooks/useModifiers/index.d.ts +3 -0
  306. package/src/hooks/useOrientation/index.d.ts +7 -0
  307. package/src/hooks/useScrollEnabler/index.d.ts +23 -0
  308. package/src/hooks/useScrollReached/index.d.ts +28 -0
  309. package/src/hooks/useScrollTo/index.d.ts +37 -0
  310. package/src/hooks/useScrollToItem/index.d.ts +65 -0
  311. package/src/hooks/useThemeProps/index.d.ts +2 -0
  312. package/src/hooks/useToggleValue/index.d.ts +2 -0
  313. package/src/incubator/TouchableOpacity.d.ts +52 -0
  314. package/src/incubator/calendar/Agenda.d.ts +4 -0
  315. package/src/incubator/calendar/CalendarContext.d.ts +4 -0
  316. package/src/incubator/calendar/CalendarItem.d.ts +5 -0
  317. package/src/incubator/calendar/Day.d.ts +4 -0
  318. package/src/incubator/calendar/Day_OLD.d.ts +4 -0
  319. package/src/incubator/calendar/Header.d.ts +4 -0
  320. package/src/incubator/calendar/Month.d.ts +4 -0
  321. package/src/incubator/calendar/TodayButton.d.ts +4 -0
  322. package/src/incubator/calendar/Week.d.ts +4 -0
  323. package/src/incubator/calendar/WeekDaysNames.d.ts +4 -0
  324. package/src/incubator/calendar/helpers/CalendarProcessor.d.ts +2 -0
  325. package/src/incubator/calendar/helpers/DataProcessor.d.ts +2 -0
  326. package/src/incubator/calendar/helpers/DateUtils.d.ts +23 -0
  327. package/src/incubator/calendar/index.d.ts +7 -0
  328. package/src/incubator/calendar/types.d.ts +118 -0
  329. package/src/incubator/expandableOverlay/ExpandableOverlay.driver.d.ts +7 -0
  330. package/src/incubator/expandableOverlay/index.d.ts +83 -0
  331. package/src/incubator/gradient/BorderGradient.d.ts +4 -0
  332. package/src/incubator/gradient/CircleGradient.d.ts +4 -0
  333. package/src/incubator/gradient/RectangleGradient.d.ts +4 -0
  334. package/src/incubator/gradient/index.d.ts +5 -0
  335. package/src/incubator/gradient/types.d.ts +26 -0
  336. package/src/incubator/gradient/useAngleTransform.d.ts +27 -0
  337. package/src/incubator/index.d.ts +9 -0
  338. package/src/incubator/slider/Slider.driver.d.ts +5 -0
  339. package/src/incubator/slider/SliderPresenter.d.ts +6 -0
  340. package/src/incubator/slider/Thumb.d.ts +24 -0
  341. package/src/incubator/slider/Track.d.ts +13 -0
  342. package/src/incubator/slider/index.d.ts +139 -0
  343. package/src/incubator/toast/Toast.driver.new.d.ts +54 -0
  344. package/src/incubator/toast/helpers/useToastAnimation.d.ts +22 -0
  345. package/src/incubator/toast/helpers/useToastPresets.d.ts +8 -0
  346. package/src/incubator/toast/helpers/useToastTimer.d.ts +6 -0
  347. package/src/incubator/toast/index.d.ts +9 -0
  348. package/src/incubator/toast/index.js +4 -1
  349. package/src/incubator/toast/types.d.ts +111 -0
  350. package/src/index.d.ts +92 -0
  351. package/src/optionalDependencies/BlurViewPackage.d.ts +2 -0
  352. package/src/optionalDependencies/BlurViewPackage.web.d.ts +2 -0
  353. package/src/optionalDependencies/DateTimePickerPackage.d.ts +2 -0
  354. package/src/optionalDependencies/FlashListPackage.d.ts +2 -0
  355. package/src/optionalDependencies/HapticFeedbackPackage.d.ts +2 -0
  356. package/src/optionalDependencies/LinearGradientPackage.d.ts +2 -0
  357. package/src/optionalDependencies/MomentPackage.d.ts +2 -0
  358. package/src/optionalDependencies/NetInfoPackage.d.ts +2 -0
  359. package/src/optionalDependencies/PostCssPackage.d.ts +5 -0
  360. package/src/optionalDependencies/ShimmerPackage.d.ts +2 -0
  361. package/src/optionalDependencies/SvgPackage.d.ts +3 -0
  362. package/src/optionalDependencies/index.d.ts +9 -0
  363. package/src/optionalDependencies/index.web.d.ts +7 -0
  364. package/src/services/HapticService.d.ts +15 -0
  365. package/src/services/LogService.d.ts +35 -0
  366. package/src/services/index.d.ts +2 -0
  367. package/src/style/borderRadiuses.d.ts +30 -0
  368. package/src/style/colorName.d.ts +8 -0
  369. package/src/style/colorNameMap.d.ts +2 -0
  370. package/src/style/colors.d.ts +274 -0
  371. package/src/style/colorsPalette.d.ts +101 -0
  372. package/src/style/components.d.ts +15 -0
  373. package/src/style/componentsColors.d.ts +5 -0
  374. package/src/style/designTokens.d.ts +69 -0
  375. package/src/style/designTokensDM.d.ts +69 -0
  376. package/src/style/dividers.d.ts +11 -0
  377. package/src/style/index.d.ts +13 -0
  378. package/src/style/scheme.d.ts +57 -0
  379. package/src/style/shadows.d.ts +223 -0
  380. package/src/style/spacings.d.ts +32 -0
  381. package/src/style/themeManager.d.ts +22 -0
  382. package/src/style/typography.d.ts +26 -0
  383. package/src/style/typographyPresets.d.ts +7 -0
  384. package/src/testkit/Component.driver.d.ts +30 -0
  385. package/src/testkit/DriverException.d.ts +12 -0
  386. package/src/testkit/UniDriver.d.ts +29 -0
  387. package/src/testkit/drivers/TestingLibraryDriver.d.ts +26 -0
  388. package/src/testkit/drivers/TestingLibraryDriver.js +1 -2
  389. package/src/testkit/index.d.ts +25 -0
  390. package/src/testkit/new/Component.driver.d.ts +16 -0
  391. package/src/testkit/new/useDraggable.driver.d.ts +15 -0
  392. package/src/testkit/new/usePressable.driver.d.ts +14 -0
  393. package/src/testkit/new/useScrollable.driver.d.ts +13 -0
  394. package/src/typings/assets.d.ts +52 -0
  395. package/src/typings/common.d.ts +12 -0
  396. package/src/typings/module.d.ts +13 -0
  397. package/src/typings/recorderTypes.d.ts +13 -0
  398. package/src/uilib-test-renderer/helper.d.ts +8 -0
  399. package/src/uilib-test-renderer/index.d.ts +4 -0
  400. package/src/uilib-test-renderer/scrollViewHelper.d.ts +9 -0
  401. package/src/utils/dateUtils.d.ts +2 -0
  402. package/src/utils/imageUtils.d.ts +5 -0
  403. package/src/utils/index.d.ts +4 -0
  404. package/src/utils/styleUtils.d.ts +7 -0
  405. package/src/utils/textUtils.d.ts +8 -0
  406. package/jestSetup/jest-setup.js +0 -154
  407. package/lib/components/DynamicFonts/FontDownloader.d.js +0 -1
  408. package/lib/components/DynamicFonts/FontLoader.d.js +0 -1
  409. package/lib/components/DynamicFonts/NoPermissionsAcquirer.d.js +0 -1
  410. package/lib/components/DynamicFonts/PermissionsAcquirer.android.d.js +0 -1
  411. package/lib/components/DynamicFonts/PermissionsAcquirer.ios.d.js +0 -2
  412. package/lib/components/DynamicFonts/PermissionsAcquirer.web.d.js +0 -2
  413. package/lib/components/DynamicFonts/RNFSPackage.d.js +0 -1
  414. package/lib/components/DynamicFonts/index.d.js +0 -3
  415. package/lib/components/HighlighterOverlayView/index.d.js +0 -1
  416. package/lib/components/HighlighterOverlayView/index.web.d.js +0 -1
  417. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.d.js +0 -2
  418. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.ios.d.js +0 -2
  419. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardViewBase.d.js +0 -2
  420. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.d.js +0 -1
  421. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.web.d.js +0 -1
  422. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.js +0 -1
  423. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/index.d.js +0 -5
  424. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.js +0 -1
  425. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.android.d.js +0 -1
  426. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.js +0 -1
  427. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/index.d.js +0 -1
  428. package/lib/components/Keyboard/KeyboardAccessoryView/index.d.js +0 -7
  429. package/lib/components/Keyboard/KeyboardAwareInsetsView/index.d.js +0 -1
  430. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.android.d.js +0 -1
  431. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.ios.d.js +0 -10
  432. package/lib/components/Keyboard/KeyboardTrackingView/index.d.js +0 -1
  433. package/lib/components/Keyboard/KeyboardTrackingView/index.web.d.js +0 -1
  434. package/lib/components/Keyboard/index.d.js +0 -4
  435. package/lib/components/SafeArea/SafeAreaInsetsManager.d.js +0 -1
  436. package/lib/components/SafeArea/SafeAreaSpacerView.d.js +0 -1
  437. package/lib/components/SafeArea/SafeAreaSpacerView.web.d.js +0 -1
  438. package/lib/components/SafeArea/index.d.js +0 -1
  439. package/lib/components/index.d.js +0 -6
  440. package/lib/scripts/releaseNative.js +0 -72
  441. package/lib/specs/HighlighterViewNativeComponent.d.js +0 -1
  442. package/lib/specs/HighlighterViewNativeComponent.d.ts +0 -61
  443. package/lib/specs/HighlighterViewNativeComponent.js +0 -8
  444. package/lib/specs/KeyboardTrackingViewNativeComponent.d.js +0 -1
  445. package/lib/specs/KeyboardTrackingViewNativeComponent.d.ts +0 -58
  446. package/lib/specs/KeyboardTrackingViewNativeComponent.js +0 -8
  447. package/scripts/build/.babelrc.exports.js +0 -6
  448. package/scripts/build/build.js +0 -35
  449. package/scripts/build/buildPackages/buildComponentsPackages.js +0 -18
  450. package/scripts/build/buildPackages/buildCustomPackages.js +0 -106
  451. package/scripts/build/buildPackages/index.js +0 -6
  452. package/scripts/createCalendarMockData.js +0 -37
  453. package/scripts/docs/buildDocs.js +0 -1
  454. package/scripts/prepush.js +0 -71
  455. package/scripts/release/prReleaseNotes.js +0 -6
  456. package/scripts/release/release.js +0 -99
  457. package/scripts/updateWebAssets.js +0 -88
  458. package/scripts/utils.js +0 -21
  459. package/src/assets/__tests__/Assets.spec.js +0 -110
  460. package/src/commons/__tests__/baseComponent.spec.js +0 -36
  461. package/src/commons/__tests__/constants.spec.js +0 -202
  462. package/src/commons/__tests__/modifiers.spec.js +0 -453
  463. package/src/components/WheelPicker/__tests__/index.spec.js +0 -121
  464. package/src/components/WheelPicker/__tests__/useListMiddleIndex.spec.js +0 -40
  465. package/src/components/WheelPicker/__tests__/usePresenter.spec.js +0 -87
  466. package/src/components/avatar/__tests__/index.spec.js +0 -25
  467. package/src/components/badge/__tests__/index.spec.js +0 -84
  468. package/src/components/button/__tests__/index.driver.spec.js +0 -209
  469. package/src/components/button/__tests__/index.spec.js +0 -287
  470. package/src/components/card/__tests__/CardPresenter.spec.js +0 -35
  471. package/src/components/carousel/__tests__/CarouselPresenter.spec.js +0 -52
  472. package/src/components/carousel/__tests__/index.spec.js +0 -89
  473. package/src/components/checkbox/__tests__/index.spec.js +0 -357
  474. package/src/components/chip/__tests__/index.spec.js +0 -63
  475. package/src/components/connectionStatusBar/__tests__/index.spec.js +0 -41
  476. package/src/components/dateTimePicker/__tests__/index.spec.js +0 -44
  477. package/src/components/dialog/__tests__/index.new.spec.js +0 -118
  478. package/src/components/featureHighlight/__tests__/index.spec.js +0 -76
  479. package/src/components/floatingButton/__tests__/index.spec.js +0 -229
  480. package/src/components/hint/__tests__/index.spec.js +0 -108
  481. package/src/components/image/__tests__/index.spec.js +0 -56
  482. package/src/components/maskedInput/__tests__/maskedInput.new.spec.js +0 -19
  483. package/src/components/maskedInput/__tests__/maskedInput.old.spec.js +0 -20
  484. package/src/components/modal/__tests__/index.spec.js +0 -58
  485. package/src/components/numberInput/__tests__/Presenter.spec.js +0 -374
  486. package/src/components/numberInput/__tests__/index.spec.js +0 -38
  487. package/src/components/panView/__tests__/panningUtil.spec.js +0 -693
  488. package/src/components/picker/__tests__/PickerPresenter.spec.js +0 -15
  489. package/src/components/picker/__tests__/index.spec.js +0 -364
  490. package/src/components/picker/helpers/__tests__/usePickerLabel.spec.js +0 -96
  491. package/src/components/radioButton/__tests__/index.spec.js +0 -43
  492. package/src/components/radioGroup/__tests__/index.spec.js +0 -96
  493. package/src/components/sectionsWheelPicker/__tests__/index.spec.js +0 -35
  494. package/src/components/sectionsWheelPicker/__tests__/mockSections.js +0 -28
  495. package/src/components/segmentedControl/__tests__/index.spec.js +0 -25
  496. package/src/components/slider/__tests__/index.spec.js +0 -35
  497. package/src/components/sortableGridList/__tests__/index.spec.js +0 -51
  498. package/src/components/sortableGridList/__tests__/usePresenter.spec.js +0 -231
  499. package/src/components/sortableList/__tests__/index.spec.js +0 -105
  500. package/src/components/switch/__tests__/index.spec.js +0 -96
  501. package/src/components/text/__tests__/index.driver.spec.js +0 -124
  502. package/src/components/text/__tests__/index.spec.js +0 -245
  503. package/src/components/textField/__tests__/Presenter.spec.js +0 -240
  504. package/src/components/textField/__tests__/index.driver.spec.js +0 -639
  505. package/src/components/timeline/__tests__/driver.index.spec.js +0 -133
  506. package/src/helpers/__tests__/AvatarHelper.spec.js +0 -170
  507. package/src/hooks/useDidUpdate/__tests__/useDidUpdate.spec.js +0 -80
  508. package/src/hooks/useOrientation/__tests__/useOrientation.spec.js +0 -70
  509. package/src/hooks/useToggleValue/__tests__/useToggleValue.spec.js +0 -89
  510. package/src/incubator/calendar/__tests__/DateUtils.spec.js +0 -367
  511. package/src/incubator/expandableOverlay/__tests__/index.spec.js +0 -114
  512. package/src/incubator/gradient/__tests__/useAngleTransform.spec.js +0 -126
  513. package/src/incubator/slider/__tests__/SliderPresenter.spec.js +0 -43
  514. package/src/incubator/slider/__tests__/index.spec.js +0 -34
  515. package/src/incubator/toast/__tests__/index.spec.js +0 -64
  516. package/src/style/__tests__/colors.spec.js +0 -313
  517. package/src/style/__tests__/scheme.spec.js +0 -119
  518. package/src/utils/__tests__/Playground.perf.js +0 -14
  519. package/src/utils/__tests__/imageUtils.spec.js +0 -54
  520. package/src/utils/__tests__/textUtils.spec.js +0 -446
@@ -0,0 +1,32 @@
1
+ apply plugin: 'com.android.library'
2
+
3
+ project.ext {
4
+ buildToolsVersion = rootProject.ext.has("buildToolsVersion") ? rootProject.ext.buildToolsVersion : '35.0.0'
5
+ minSdkVersion = rootProject.ext.has("minSdkVersion") ? rootProject.ext.minSdkVersion : 24
6
+ compileSdkVersion = rootProject.ext.has("compileSdkVersion") ? rootProject.ext.compileSdkVersion : 35
7
+ targetSdkVersion = rootProject.ext.has("targetSdkVersion") ? rootProject.ext.targetSdkVersion : 34
8
+ supportLibVersion = rootProject.ext.has("supportLibVersion") ? rootProject.ext.supportLibVersion : '28.0.0'
9
+ }
10
+
11
+ android {
12
+ namespace "com.wix.reactnativeuilib"
13
+ compileSdkVersion project.ext.compileSdkVersion
14
+ buildToolsVersion project.ext.buildToolsVersion
15
+
16
+ defaultConfig {
17
+ minSdkVersion project.ext.minSdkVersion
18
+ targetSdkVersion project.ext.targetSdkVersion
19
+ versionCode 1
20
+ versionName "1.0"
21
+ }
22
+ buildTypes {
23
+ release {
24
+ minifyEnabled false
25
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
26
+ }
27
+ }
28
+ }
29
+
30
+ dependencies {
31
+ implementation 'com.facebook.react:react-native:+'
32
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest
3
+ xmlns:android="http://schemas.android.com/apk/res/android">
4
+ </manifest>
@@ -0,0 +1,28 @@
1
+ package com.wix.reactnativeuilib;
2
+
3
+ import android.app.Application;
4
+ import com.facebook.react.ReactPackage;
5
+
6
+ import com.wix.reactnativeuilib.dynamicfont.DynamicFontPackage;
7
+ import com.wix.reactnativeuilib.highlighterview.HighlighterViewPackage;
8
+ import com.wix.reactnativeuilib.keyboardinput.KeyboardInputPackage;
9
+
10
+ import java.util.Arrays;
11
+ import java.util.List;
12
+
13
+ public class UiLibPackageList {
14
+
15
+ private final Application application;
16
+
17
+ public UiLibPackageList(Application application) {
18
+ this.application = application;
19
+ }
20
+
21
+ public List<ReactPackage> getPackageList() {
22
+ return Arrays.asList(
23
+ new DynamicFontPackage(),
24
+ new HighlighterViewPackage(),
25
+ new KeyboardInputPackage(application)
26
+ );
27
+ }
28
+ }
@@ -0,0 +1,139 @@
1
+ package com.wix.reactnativeuilib.dynamicfont;
2
+
3
+ import android.app.Activity;
4
+ import android.graphics.Typeface;
5
+ import android.util.Base64;
6
+
7
+ import com.facebook.react.bridge.Callback;
8
+ import com.facebook.react.bridge.ReactApplicationContext;
9
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
10
+ import com.facebook.react.bridge.ReactMethod;
11
+ import com.facebook.react.bridge.ReadableMap;
12
+ import com.facebook.react.views.text.ReactFontManager;
13
+
14
+ import java.io.File;
15
+ import java.io.FileOutputStream;
16
+
17
+ public class DynamicFontModule extends ReactContextBaseJavaModule {
18
+ int tempNameCounter = 0;
19
+
20
+ public DynamicFontModule(ReactApplicationContext reactContext) {
21
+ super(reactContext);
22
+ }
23
+
24
+ @Override
25
+ public String getName() {
26
+ return "DynamicFont";
27
+ }
28
+
29
+ // TODO: Needs to be tested
30
+ // @ReactMethod
31
+ // public void loadFontFromFile(final ReadableMap options, final Callback callback) {
32
+ // Activity currentActivity = getCurrentActivity();
33
+ // if (currentActivity == null) {
34
+ // callback.invoke("Invalid activity");
35
+ // return;
36
+ // }
37
+
38
+ // String filePath = options.hasKey("filePath") ? options.getString("filePath") : null,
39
+ // name = (options.hasKey("name")) ? options.getString("name") : null;
40
+
41
+ // if (filePath == null || filePath.length() == 0) {
42
+ // callback.invoke("filePath property empty");
43
+ // return;
44
+ // }
45
+
46
+ // File f = new File(filePath);
47
+
48
+ // if (f.exists() && f.canRead()) {
49
+ // boolean wasLoaded = false;
50
+ // try {
51
+ // Typeface typeface = Typeface.createFromFile(f);
52
+ // //Cache the font for react
53
+ // TODO: probably needs to be Typeface.NORMAL and not typeface.getStyle()
54
+ // ReactFontManager.getInstance().setTypeface(name, typeface.getStyle(), typeface);
55
+ // wasLoaded = true;
56
+ // } catch (Throwable e) {
57
+ // callback.invoke(e.getMessage());
58
+ // } finally {
59
+ // if (wasLoaded) {
60
+ // callback.invoke(null, name);
61
+ // }
62
+ // }
63
+ // } else {
64
+ // callback.invoke("invalid file");
65
+ // }
66
+ // }
67
+
68
+ @ReactMethod
69
+ public void loadFont(final ReadableMap options, final Callback callback) throws Exception {
70
+ Activity currentActivity = getCurrentActivity();
71
+ if (currentActivity == null) {
72
+ callback.invoke("Invalid activity");
73
+ return;
74
+ }
75
+
76
+ String name = (options.hasKey("name")) ? options.getString("name") : null,
77
+ data = (options.hasKey("data")) ? options.getString("data") : null,
78
+ type = null;
79
+
80
+ if (name == null || name.length() == 0) {
81
+ callback.invoke("Name property empty");
82
+ return;
83
+ }
84
+
85
+ if (data == null || data.length() == 0) {
86
+ callback.invoke("Data property empty");
87
+ return;
88
+ }
89
+
90
+ if (("data:").equalsIgnoreCase(data.substring(0, 5))) {
91
+ Integer pos = data.indexOf(',');
92
+ if (pos > 0) {
93
+ String[] encodingParams = data.substring(5, pos).split(";");
94
+ String mimeType = encodingParams[0];
95
+
96
+ data = data.substring(pos + 1);
97
+
98
+ if (("application/x-font-ttf").equalsIgnoreCase(mimeType) ||
99
+ ("application/x-font-truetype").equalsIgnoreCase(mimeType) ||
100
+ ("font/ttf").equalsIgnoreCase(mimeType)) {
101
+ type = "ttf";
102
+ } else if (("application/x-font-opentype").equalsIgnoreCase(mimeType) ||
103
+ ("font/opentype").equalsIgnoreCase(mimeType)) {
104
+ type = "otf";
105
+ }
106
+ }
107
+ }
108
+
109
+ if (options.hasKey("type"))
110
+ type = options.getString("type");
111
+
112
+ if (type == null)
113
+ type = "ttf";
114
+
115
+ try {
116
+ byte[] decodedBytes = Base64.decode(data, Base64.DEFAULT);
117
+ File cacheFile = new File(currentActivity.getCacheDir(), "tempFont" + (tempNameCounter++) + type);
118
+
119
+ FileOutputStream stream = new FileOutputStream(cacheFile);
120
+ try {
121
+ stream.write(decodedBytes);
122
+ } finally {
123
+ stream.close();
124
+ }
125
+
126
+ //Load the font from the temporary file we just created
127
+ Typeface typeface = Typeface.createFromFile(cacheFile);
128
+
129
+ //Cache the font for react
130
+ ReactFontManager.getInstance().setTypeface(name, Typeface.NORMAL, typeface);
131
+
132
+ cacheFile.delete();
133
+ } catch(Exception e) {
134
+ callback.invoke(e.getMessage());
135
+ } finally {
136
+ callback.invoke(null, name);
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,28 @@
1
+ package com.wix.reactnativeuilib.dynamicfont;
2
+
3
+ import java.util.Arrays;
4
+ import java.util.Collections;
5
+ import java.util.List;
6
+
7
+ import com.facebook.react.ReactPackage;
8
+ import com.facebook.react.bridge.NativeModule;
9
+ import com.facebook.react.bridge.ReactApplicationContext;
10
+ import com.facebook.react.uimanager.ViewManager;
11
+ import com.facebook.react.bridge.JavaScriptModule;
12
+
13
+ public class DynamicFontPackage implements ReactPackage {
14
+ @Override
15
+ public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
16
+ return Arrays.<NativeModule>asList(new DynamicFontModule(reactContext));
17
+ }
18
+
19
+ // Deprecated from RN 0.47
20
+ public List<Class<? extends JavaScriptModule>> createJSModules() {
21
+ return Collections.emptyList();
22
+ }
23
+
24
+ @Override
25
+ public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
26
+ return Collections.emptyList();
27
+ }
28
+ }
@@ -0,0 +1,33 @@
1
+ package com.wix.reactnativeuilib.highlighterview;
2
+
3
+ import android.content.res.Resources;
4
+ import android.graphics.RectF;
5
+
6
+ import com.facebook.react.bridge.ReadableMap;
7
+
8
+ public class HighlightFrame {
9
+ public float x;
10
+ public float y;
11
+ public float width;
12
+ public float height;
13
+
14
+ public HighlightFrame(Resources resources, ReadableMap highlightFrameMap) {
15
+ if (highlightFrameMap != null) {
16
+ x = UiUtils.pxToDp(resources, highlightFrameMap.getDouble("x"));
17
+ y = UiUtils.pxToDp(resources, highlightFrameMap.getDouble("y"));
18
+ width = UiUtils.pxToDp(resources, highlightFrameMap.getDouble("width"));
19
+ height = UiUtils.pxToDp(resources, highlightFrameMap.getDouble("height"));
20
+ }
21
+ }
22
+
23
+ public HighlightFrame(float x, float y, float width, float height) {
24
+ this.x = x;
25
+ this.y = y;
26
+ this.width = width;
27
+ this.height = height;
28
+ }
29
+
30
+ public RectF toRect() {
31
+ return new RectF(x, y, x + width,y + height);
32
+ }
33
+ }
@@ -0,0 +1,50 @@
1
+ package com.wix.reactnativeuilib.highlighterview;
2
+
3
+ import android.content.res.Resources;
4
+
5
+ import com.facebook.react.bridge.ReadableMap;
6
+ import com.facebook.react.bridge.ReadableType;
7
+
8
+ public class HighlightViewTagParams {
9
+ public float paddingTop = 0;
10
+ public float paddingLeft = 0;
11
+ public float paddingBottom = 0;
12
+ public float paddingRight = 0;
13
+ public float offsetX = 0;
14
+ public float offsetY = 0;
15
+
16
+ public HighlightViewTagParams(Resources resources, ReadableMap highlightViewTagParams) {
17
+ if (highlightViewTagParams != null) {
18
+ if (highlightViewTagParams.hasKey("padding")) {
19
+ if (highlightViewTagParams.getType("padding") == ReadableType.Number) {
20
+ float paddingValue = UiUtils.pxToDp(resources, highlightViewTagParams.getDouble("padding"));
21
+ paddingTop = paddingLeft = paddingBottom = paddingRight = paddingValue;
22
+ } else if (highlightViewTagParams.getType("padding") == ReadableType.Map) {
23
+ ReadableMap paddingMap = highlightViewTagParams.getMap("padding");
24
+ if (paddingMap.hasKey("top")) {
25
+ paddingTop = UiUtils.pxToDp(resources, paddingMap.getDouble("top"));
26
+ }
27
+ if (paddingMap.hasKey("left")) {
28
+ paddingLeft = UiUtils.pxToDp(resources, paddingMap.getDouble("left"));
29
+ }
30
+ if (paddingMap.hasKey("bottom")) {
31
+ paddingBottom = UiUtils.pxToDp(resources, paddingMap.getDouble("bottom"));
32
+ }
33
+ if (paddingMap.hasKey("right")) {
34
+ paddingRight = UiUtils.pxToDp(resources, paddingMap.getDouble("right"));
35
+ }
36
+ }
37
+ }
38
+
39
+ if (highlightViewTagParams.hasKey("offset")) {
40
+ ReadableMap offsetMap = highlightViewTagParams.getMap("offset");
41
+ if (offsetMap.hasKey("x")) {
42
+ offsetX = UiUtils.pxToDp(resources, offsetMap.getDouble("x"));
43
+ }
44
+ if (offsetMap.hasKey("y")) {
45
+ offsetY = UiUtils.pxToDp(resources, offsetMap.getDouble("y"));
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,167 @@
1
+ package com.wix.reactnativeuilib.highlighterview;
2
+
3
+ import android.annotation.TargetApi;
4
+ import android.content.Context;
5
+ import android.graphics.Canvas;
6
+ import android.graphics.Paint;
7
+ import android.graphics.PorterDuff;
8
+ import android.graphics.PorterDuffXfermode;
9
+ import android.graphics.RectF;
10
+ import android.view.View;
11
+ import android.util.SizeF;
12
+
13
+ import androidx.annotation.ColorInt;
14
+
15
+ public class HighlighterView extends View {
16
+ private RectF highlightFrame;
17
+ private RectF viewBasedHighlightFrame;
18
+ HighlightViewTagParams highlightViewTagParams;
19
+ private @ColorInt
20
+ int overlayColor;
21
+ private @ColorInt int strokeColor;
22
+ private float strokeWidth;
23
+ private float borderRadius;
24
+ private SizeF minimumRectSize;
25
+ private float innerPadding;
26
+
27
+ private static final PorterDuffXfermode porterDuffXfermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR);
28
+ private static final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
29
+
30
+ public HighlighterView(Context context) {
31
+ super(context);
32
+ setLayerType(LAYER_TYPE_HARDWARE, null);
33
+ }
34
+
35
+ private RectF rectToDraw() {
36
+ if (viewBasedHighlightFrame != null && viewBasedHighlightFrame.width() > 0 && viewBasedHighlightFrame.height() > 0) {
37
+ if (highlightViewTagParams == null) {
38
+ RectF frame = adjustFrame(viewBasedHighlightFrame);
39
+ return frame;
40
+ }
41
+
42
+ RectF highlightRect = new RectF(viewBasedHighlightFrame);
43
+ highlightRect.left -= highlightViewTagParams.paddingLeft;
44
+ highlightRect.top -= highlightViewTagParams.paddingTop;
45
+ highlightRect.right += highlightViewTagParams.paddingRight;
46
+ highlightRect.bottom += highlightViewTagParams.paddingBottom;
47
+
48
+ if (highlightViewTagParams.offsetX > 0) {
49
+ highlightRect.left += highlightViewTagParams.offsetX;
50
+ highlightRect.right += highlightViewTagParams.offsetX;
51
+ }
52
+ if (highlightViewTagParams.offsetY > 0) {
53
+ highlightRect.top += highlightViewTagParams.offsetY;
54
+ highlightRect.bottom += highlightViewTagParams.offsetY;
55
+ }
56
+ return highlightRect;
57
+ } else {
58
+ return highlightFrame;
59
+ }
60
+ }
61
+
62
+ private float getRadius(RectF rect) {
63
+ float newRadius = 0;
64
+ if (borderRadius > 0) {
65
+ newRadius = borderRadius;
66
+ }
67
+ else {
68
+ if (rect != null) {
69
+ newRadius = Math.min(rect.width() / 2, rect.height() / 2);
70
+ }
71
+ }
72
+ return newRadius;
73
+ }
74
+
75
+ public void setHighlightFrame(HighlightFrame frame) {
76
+ highlightFrame = frame.toRect();
77
+ invalidate();
78
+ }
79
+
80
+ public void setOverlayColor(@ColorInt int overlayColor) {
81
+ this.overlayColor = overlayColor;
82
+ invalidate();
83
+ }
84
+
85
+ public void setStrokeColor(@ColorInt int strokeColor) {
86
+ this.strokeColor = strokeColor;
87
+ invalidate();
88
+ }
89
+
90
+ public void setStrokeWidth(int strokeWidth) {
91
+ this.strokeWidth = UiUtils.pxToDp(getResources(), strokeWidth);
92
+ invalidate();
93
+ }
94
+
95
+ public void setBorderRadius(int borderRadius) {
96
+ this.borderRadius = UiUtils.pxToDp(getResources(), borderRadius);
97
+ invalidate();
98
+ }
99
+
100
+ public void setViewBasedHighlightFrame(HighlightFrame viewBasedHighlightFrame) {
101
+ this.viewBasedHighlightFrame = viewBasedHighlightFrame.toRect();
102
+ invalidate();
103
+ }
104
+
105
+ public void setHighlightViewTagParams(HighlightViewTagParams highlightViewTagParams) {
106
+ this.highlightViewTagParams = highlightViewTagParams;
107
+ invalidate();
108
+ }
109
+
110
+ @TargetApi(21)
111
+ public void setMinimumRectSize(SizeF minimumRectSize) {
112
+ float width = UiUtils.pxToDp(getResources(), minimumRectSize.getWidth());
113
+ float height = UiUtils.pxToDp(getResources(), minimumRectSize.getHeight());
114
+ this.minimumRectSize = new SizeF(width, height);
115
+ invalidate();
116
+ }
117
+
118
+ public void setInnerPadding(int innerPadding) {
119
+ this.innerPadding = UiUtils.pxToDp(getResources(), innerPadding); //innerPadding;
120
+ invalidate();
121
+ }
122
+
123
+ @TargetApi(21)
124
+ public RectF adjustFrame(RectF frame) {
125
+ float x = frame.left;
126
+ float y = frame.top;
127
+ float fWidth = frame.right - frame.left;
128
+ float fHeight = frame.bottom - frame.top;
129
+ float width = fWidth + (innerPadding * 2);
130
+ float height = fHeight + (innerPadding * 2);
131
+ if (minimumRectSize != null) {
132
+ width = width < minimumRectSize.getWidth() ? minimumRectSize.getWidth() : width;
133
+ height = height < minimumRectSize.getHeight() ? minimumRectSize.getHeight() : height;
134
+ }
135
+
136
+ x = x - ((width - fWidth) / 2);
137
+ y = y - ((height - fHeight) / 2);
138
+
139
+ return new RectF(x, y, x + width, y + height); // float left, float top, float right, float bottom
140
+ }
141
+
142
+ @Override
143
+ public void onDraw(Canvas canvas) {
144
+ super.onDraw(canvas);
145
+
146
+ paint.setColor(overlayColor);
147
+ paint.setStyle(Paint.Style.FILL);
148
+ canvas.drawPaint(paint);
149
+
150
+ RectF rect = rectToDraw();
151
+ float radius = getRadius(rect);
152
+
153
+ if(rect != null) {
154
+ paint.setXfermode(porterDuffXfermode);
155
+
156
+ canvas.drawRoundRect(rect, radius, radius, paint);
157
+
158
+ if (strokeWidth > 0) {
159
+ paint.setXfermode(null);
160
+ paint.setColor(strokeColor);
161
+ paint.setStrokeWidth(strokeWidth);
162
+ paint.setStyle(Paint.Style.STROKE);
163
+ canvas.drawRoundRect(rect, radius, radius, paint);
164
+ }
165
+ }
166
+ }
167
+ }
@@ -0,0 +1,131 @@
1
+ package com.wix.reactnativeuilib.highlighterview;
2
+
3
+ import android.annotation.TargetApi;
4
+ import android.app.Activity;
5
+ import android.graphics.Rect;
6
+ import android.util.Log;
7
+ import android.util.SizeF;
8
+ import android.view.View;
9
+
10
+ import com.facebook.react.bridge.ReadableMap;
11
+ import com.facebook.react.bridge.UIManager;
12
+ import com.facebook.react.uimanager.IllegalViewOperationException;
13
+ import com.facebook.react.uimanager.NativeViewHierarchyManager;
14
+ import com.facebook.react.uimanager.SimpleViewManager;
15
+ import com.facebook.react.uimanager.ThemedReactContext;
16
+ import com.facebook.react.uimanager.UIManagerHelper;
17
+ import com.facebook.react.uimanager.UIManagerModule;
18
+ import com.facebook.react.uimanager.annotations.ReactProp;
19
+ import com.facebook.react.uimanager.common.UIManagerType;
20
+
21
+ import javax.annotation.Nullable;
22
+
23
+ class HighlighterViewManager extends SimpleViewManager<HighlighterView> {
24
+ private static final String REACT_CLASS = "HighlighterView";
25
+
26
+ private ThemedReactContext context;
27
+
28
+ @Override
29
+ public String getName() {
30
+ return REACT_CLASS;
31
+ }
32
+
33
+ @Override
34
+ public HighlighterView createViewInstance(ThemedReactContext context) {
35
+ this.context = context;
36
+ HighlighterView view = new HighlighterView(context);
37
+ view.setFitsSystemWindows(true);
38
+ return view;
39
+ }
40
+
41
+ @ReactProp(name = "highlightFrame")
42
+ public void setHighlightFrame(HighlighterView view, ReadableMap highlightFrame) {
43
+ view.setHighlightFrame(new HighlightFrame(view.getResources(), highlightFrame));
44
+ }
45
+
46
+ @ReactProp(name = "overlayColor")
47
+ public void setOverlayColor(HighlighterView view, @Nullable Integer overlayColor) {
48
+ view.setOverlayColor((overlayColor == null) ? 0 : overlayColor);
49
+ }
50
+
51
+ @ReactProp(name = "borderRadius")
52
+ public void setBorderRadius(HighlighterView view, @Nullable Integer borderRadius) {
53
+ view.setBorderRadius((borderRadius == null) ? 0 : borderRadius);
54
+ }
55
+
56
+ @ReactProp(name = "strokeColor")
57
+ public void setStrokeColor(HighlighterView view, @Nullable Integer strokeColor) {
58
+ view.setStrokeColor((strokeColor == null) ? 0 : strokeColor);
59
+ }
60
+
61
+ @ReactProp(name = "strokeWidth")
62
+ public void setStrokeWidth(HighlighterView view, @Nullable Integer strokeWidth) {
63
+ view.setStrokeWidth((strokeWidth == null) ? 0 : strokeWidth);
64
+ }
65
+
66
+ @TargetApi(21)
67
+ @ReactProp(name = "minimumRectSize")
68
+ public void setMinimumRectSize(HighlighterView view, ReadableMap minimumRectSize) {
69
+ float width = (float) minimumRectSize.getDouble("width");
70
+ float height = (float) minimumRectSize.getDouble("height");
71
+ view.setMinimumRectSize(new SizeF(width, height));
72
+ }
73
+
74
+ @ReactProp(name = "innerPadding")
75
+ public void setInnerPadding(HighlighterView view, @Nullable Integer innerPadding) {
76
+ view.setInnerPadding((innerPadding == null) ? 0 : innerPadding);
77
+ }
78
+
79
+ @ReactProp(name = "highlightViewTag")
80
+ public void setHighlightViewTag(final HighlighterView view, Integer highlightViewTag) {
81
+ if (highlightViewTag != null) {
82
+ try {
83
+ UIManager uiManager = UIManagerHelper.getUIManagerForReactTag(context, highlightViewTag);
84
+ if (uiManager != null) {
85
+ final View resolvedView = uiManager.resolveView(highlightViewTag);
86
+ if (resolvedView != null) {
87
+ if (resolvedView.getWidth() == 0 || resolvedView.getHeight() == 0) {
88
+ resolvedView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
89
+ @Override
90
+ public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
91
+ float width = right - left;
92
+ float height = bottom - top;
93
+ if (width > 0 && height > 0) {
94
+ setViewBasedHighlightFrame(view, resolvedView);
95
+ resolvedView.removeOnLayoutChangeListener(this);
96
+ }
97
+ }
98
+ });
99
+ } else {
100
+ setViewBasedHighlightFrame(view, resolvedView);
101
+ }
102
+ } else {
103
+ Log.e("HighlighterView", "was not able to resolve highlightViewTag: " + highlightViewTag.toString());
104
+ }
105
+ } else {
106
+ Log.e("HighlighterView", "was not able to resolve get uiManager for highlightViewTag: " + highlightViewTag.toString());
107
+ }
108
+ } catch (IllegalViewOperationException e) {
109
+ Log.e("HighlighterView", "invalid highlightViewTag: " + highlightViewTag.toString() + " " + e.toString());
110
+ }
111
+ } else {
112
+ Log.e("HighlighterView", "highlightViewTag is null");
113
+ }
114
+ }
115
+
116
+ @ReactProp(name = "highlightViewTagParams")
117
+ public void setHighlightViewTagParams(HighlighterView view, ReadableMap highlightViewTagParams) {
118
+ view.setHighlightViewTagParams(new HighlightViewTagParams(view.getResources(), highlightViewTagParams));
119
+ }
120
+
121
+ private void setViewBasedHighlightFrame(HighlighterView view, View resolvedView) {
122
+ Activity currentActivity = context.getCurrentActivity();
123
+ if (currentActivity == null) {
124
+ return;
125
+ }
126
+
127
+ final float topOffset = UiUtils.getStatusBarHeight(view, currentActivity.getWindow());
128
+ Rect myViewRect = UiUtils.getVisibleRect(resolvedView);
129
+ view.setViewBasedHighlightFrame(new HighlightFrame(myViewRect.left, myViewRect.top - topOffset, resolvedView.getWidth(), resolvedView.getHeight()));
130
+ }
131
+ }
@@ -0,0 +1,28 @@
1
+ package com.wix.reactnativeuilib.highlighterview;
2
+
3
+ import com.facebook.react.ReactPackage;
4
+ import com.facebook.react.bridge.JavaScriptModule;
5
+ import com.facebook.react.bridge.NativeModule;
6
+ import com.facebook.react.bridge.ReactApplicationContext;
7
+ import com.facebook.react.uimanager.ViewManager;
8
+
9
+ import java.util.Arrays;
10
+ import java.util.Collections;
11
+ import java.util.List;
12
+
13
+ public class HighlighterViewPackage implements ReactPackage {
14
+
15
+ @Override
16
+ public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
17
+ return Collections.emptyList();
18
+ }
19
+
20
+ public List<Class<? extends JavaScriptModule>> createJSModules() {
21
+ return Collections.emptyList();
22
+ }
23
+
24
+ @Override
25
+ public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
26
+ return Arrays.<ViewManager>asList( new HighlighterViewManager() );
27
+ }
28
+ }