react-native-ui-lib 8.1.1 → 8.1.5

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 (515) 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/specs/HighlighterViewNativeComponent.ts +78 -0
  69. package/lib/specs/KeyboardTrackingViewNativeComponent.ts +74 -0
  70. package/package.json +2 -25
  71. package/src/assets/Assets.d.ts +5 -0
  72. package/src/assets/emojis/index.d.ts +1343 -0
  73. package/src/assets/index.d.ts +3 -0
  74. package/src/assets/internal/index.d.ts +4 -0
  75. package/src/commons/Config.d.ts +24 -0
  76. package/src/commons/Constants.d.ts +54 -0
  77. package/src/commons/UIComponent.d.ts +4 -0
  78. package/src/commons/asBaseComponent.d.ts +15 -0
  79. package/src/commons/baseComponent.d.ts +2 -0
  80. package/src/commons/forwardRef.d.ts +8 -0
  81. package/src/commons/modifiers.d.ts +118 -0
  82. package/src/commons/new.d.ts +8 -0
  83. package/src/commons/withScrollEnabler.d.ts +13 -0
  84. package/src/commons/withScrollReached.d.ts +35 -0
  85. package/src/components/WheelPicker/Item.d.ts +28 -0
  86. package/src/components/WheelPicker/WheelPicker.driver.d.ts +18 -0
  87. package/src/components/WheelPicker/WheelPickerItem.driver.d.ts +8 -0
  88. package/src/components/WheelPicker/helpers/useListMiddleIndex.d.ts +6 -0
  89. package/src/components/WheelPicker/index.d.ts +88 -0
  90. package/src/components/WheelPicker/types.d.ts +6 -0
  91. package/src/components/WheelPicker/usePresenter.d.ts +21 -0
  92. package/src/components/actionBar/index.d.ts +35 -0
  93. package/src/components/actionSheet/index.d.ts +80 -0
  94. package/src/components/animatedImage/index.d.ts +28 -0
  95. package/src/components/avatar/index.d.ts +382 -0
  96. package/src/components/badge/index.d.ts +879 -0
  97. package/src/components/baseInput/Validators.d.ts +8 -0
  98. package/src/components/baseInput/index.d.ts +29 -0
  99. package/src/components/button/Button.driver.new.d.ts +34 -0
  100. package/src/components/button/ButtonConstants.d.ts +26 -0
  101. package/src/components/button/index.d.ts +573 -0
  102. package/src/components/button/types.d.ts +157 -0
  103. package/src/components/card/CardContext.d.ts +3 -0
  104. package/src/components/card/CardImage.d.ts +20 -0
  105. package/src/components/card/CardPresenter.d.ts +12 -0
  106. package/src/components/card/CardSection.d.ts +79 -0
  107. package/src/components/card/asCardChild.d.ts +6 -0
  108. package/src/components/card/index.d.ts +120 -0
  109. package/src/components/carousel/Carousel.driver.new.d.ts +9 -0
  110. package/src/components/carousel/CarouselPresenter.d.ts +9 -0
  111. package/src/components/carousel/index.d.ts +73 -0
  112. package/src/components/carousel/types.d.ts +107 -0
  113. package/src/components/checkbox/Checkbox.driver.d.ts +15 -0
  114. package/src/components/checkbox/index.d.ts +129 -0
  115. package/src/components/chip/chip.driver.d.ts +33 -0
  116. package/src/components/chip/index.d.ts +209 -0
  117. package/src/components/chipsInput/index.d.ts +55 -0
  118. package/src/components/colorPalette/index.d.ts +116 -0
  119. package/src/components/colorPicker/ColorPickerDialog.d.ts +39 -0
  120. package/src/components/colorPicker/ColorPickerDialogHeader.d.ts +9 -0
  121. package/src/components/colorPicker/ColorPickerDialogSliders.d.ts +10 -0
  122. package/src/components/colorPicker/ColorPickerPresenter.d.ts +16 -0
  123. package/src/components/colorPicker/ColorPickerPreview.d.ts +12 -0
  124. package/src/components/colorPicker/index.d.ts +45 -0
  125. package/src/components/colorSwatch/index.d.ts +50 -0
  126. package/src/components/connectionStatusBar/index.d.ts +33 -0
  127. package/src/components/connectionStatusBar/types.d.ts +28 -0
  128. package/src/components/dash/index.d.ts +19 -0
  129. package/src/components/dateTimePicker/DateTimePicker.driver.d.ts +7 -0
  130. package/src/components/dateTimePicker/index.d.ts +288 -0
  131. package/src/components/dateTimePicker/useOldApi.d.ts +27 -0
  132. package/src/components/dialog/Dialog.driver.new.d.ts +6 -0
  133. package/src/components/dialog/DialogHeader.d.ts +4 -0
  134. package/src/components/dialog/index.d.ts +15 -0
  135. package/src/components/dialog/types.d.ts +138 -0
  136. package/src/components/dialog/useDialogContent.d.ts +13 -0
  137. package/src/components/drawer/Swipeable.d.ts +94 -0
  138. package/src/components/drawer/index.d.ts +161 -0
  139. package/src/components/expandableSection/index.d.ts +40 -0
  140. package/src/components/fadedScrollView/index.d.ts +59 -0
  141. package/src/components/fader/index.d.ts +37 -0
  142. package/src/components/featureHighlight/index.d.ts +147 -0
  143. package/src/components/floatingButton/index.d.ts +89 -0
  144. package/src/components/gradient/index.d.ts +19 -0
  145. package/src/components/gridList/index.d.ts +5 -0
  146. package/src/components/gridList/types.d.ts +29 -0
  147. package/src/components/gridList/useGridLayout.d.ts +15 -0
  148. package/src/components/gridListItem/index.d.ts +132 -0
  149. package/src/components/gridView/index.d.ts +80 -0
  150. package/src/components/hint/Hint.driver.d.ts +6 -0
  151. package/src/components/hint/Hint.driver.new.d.ts +19 -0
  152. package/src/components/hint/HintAnchor.d.ts +13 -0
  153. package/src/components/hint/HintBubble.d.ts +12 -0
  154. package/src/components/hint/HintMockChildren.d.ts +8 -0
  155. package/src/components/hint/HintOld.d.ts +196 -0
  156. package/src/components/hint/hooks/useHintAccessibility.d.ts +10 -0
  157. package/src/components/hint/hooks/useHintLayout.d.ts +13 -0
  158. package/src/components/hint/hooks/useHintPosition.d.ts +29 -0
  159. package/src/components/hint/hooks/useHintVisibility.d.ts +6 -0
  160. package/src/components/hint/index.d.ts +14 -0
  161. package/src/components/hint/types.d.ts +106 -0
  162. package/src/components/icon/index.d.ts +97 -0
  163. package/src/components/image/Image.driver.d.ts +4 -0
  164. package/src/components/image/Image.driver.new.d.ts +2 -0
  165. package/src/components/image/index.d.ts +192 -0
  166. package/src/components/listItem/ListItemPart.d.ts +15 -0
  167. package/src/components/listItem/index.d.ts +52 -0
  168. package/src/components/listItem/types.d.ts +60 -0
  169. package/src/components/loaderScreen/index.d.ts +13 -0
  170. package/src/components/loaderScreen/types.d.ts +32 -0
  171. package/src/components/marquee/index.d.ts +5 -0
  172. package/src/components/marquee/types.d.ts +35 -0
  173. package/src/components/maskedInput/index.d.ts +5 -0
  174. package/src/components/maskedInput/new.d.ts +22 -0
  175. package/src/components/modal/Modal.driver.new.d.ts +8 -0
  176. package/src/components/modal/TopBar.d.ts +89 -0
  177. package/src/components/modal/index.d.ts +64 -0
  178. package/src/components/numberInput/NumberInput.driver.d.ts +6 -0
  179. package/src/components/numberInput/Presenter.d.ts +21 -0
  180. package/src/components/numberInput/index.d.ts +57 -0
  181. package/src/components/overlay/index.d.ts +68 -0
  182. package/src/components/pageControl/index.d.ts +56 -0
  183. package/src/components/panView/index.d.ts +21 -0
  184. package/src/components/panView/panningUtil.d.ts +38 -0
  185. package/src/components/panView/usePanGesture.d.ts +49 -0
  186. package/src/components/picker/Picker.driver.new.d.ts +44 -0
  187. package/src/components/picker/PickerContext.d.ts +4 -0
  188. package/src/components/picker/PickerItem.d.ts +11 -0
  189. package/src/components/picker/PickerItemsList.d.ts +4 -0
  190. package/src/components/picker/PickerPresenter.d.ts +7 -0
  191. package/src/components/picker/PickerSelectionStatusBar.d.ts +3 -0
  192. package/src/components/picker/helpers/useFieldType.d.ts +373 -0
  193. package/src/components/picker/helpers/useImperativePickerHandle.d.ts +5 -0
  194. package/src/components/picker/helpers/useNewPickerProps.d.ts +3 -0
  195. package/src/components/picker/helpers/usePickerLabel.d.ts +17 -0
  196. package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +4 -0
  197. package/src/components/picker/helpers/usePickerSearch.d.ts +9 -0
  198. package/src/components/picker/helpers/usePickerSelection.d.ts +16 -0
  199. package/src/components/picker/index.d.ts +15 -0
  200. package/src/components/picker/types.d.ts +321 -0
  201. package/src/components/pieChart/PieSegment.d.ts +34 -0
  202. package/src/components/pieChart/index.d.ts +15 -0
  203. package/src/components/progressBar/index.d.ts +65 -0
  204. package/src/components/progressiveImage/index.d.ts +23 -0
  205. package/src/components/radioButton/RadioButton.driver.d.ts +9 -0
  206. package/src/components/radioButton/index.d.ts +121 -0
  207. package/src/components/radioGroup/RadioGroup.driver.d.ts +13 -0
  208. package/src/components/radioGroup/RadioGroupContext.d.ts +14 -0
  209. package/src/components/radioGroup/asRadioGroupChild.d.ts +2 -0
  210. package/src/components/radioGroup/index.d.ts +47 -0
  211. package/src/components/scrollBar/index.d.ts +88 -0
  212. package/src/components/searchInput/index.d.ts +37 -0
  213. package/src/components/searchInput/types.d.ts +66 -0
  214. package/src/components/sectionsWheelPicker/SectionsWheelPicker.driver.d.ts +25 -0
  215. package/src/components/sectionsWheelPicker/index.d.ts +43 -0
  216. package/src/components/segmentedControl/index.d.ts +90 -0
  217. package/src/components/segmentedControl/segment.d.ts +111 -0
  218. package/src/components/segmentedControl/useSegmentedControlPreset.d.ts +10 -0
  219. package/src/components/skeletonView/index.d.ts +163 -0
  220. package/src/components/slider/ColorSliderGroup.d.ts +13 -0
  221. package/src/components/slider/GradientSlider.d.ts +20 -0
  222. package/src/components/slider/SliderContext.d.ts +8 -0
  223. package/src/components/slider/Thumb.d.ts +32 -0
  224. package/src/components/slider/index.d.ts +31 -0
  225. package/src/components/slider/slider.driver.d.ts +5 -0
  226. package/src/components/slider/types.d.ts +197 -0
  227. package/src/components/sortableGridList/SortableItem.d.ts +6 -0
  228. package/src/components/sortableGridList/index.d.ts +5 -0
  229. package/src/components/sortableGridList/types.d.ts +34 -0
  230. package/src/components/sortableGridList/usePresenter.d.ts +21 -0
  231. package/src/components/sortableList/SortableList.driver.new.d.ts +2 -0
  232. package/src/components/sortableList/SortableListContext.d.ts +19 -0
  233. package/src/components/sortableList/SortableListItem.d.ts +8 -0
  234. package/src/components/sortableList/SortableListItem.driver.new.d.ts +11 -0
  235. package/src/components/sortableList/index.d.ts +5 -0
  236. package/src/components/sortableList/types.d.ts +48 -0
  237. package/src/components/sortableList/usePresenter.d.ts +12 -0
  238. package/src/components/stackAggregator/index.d.ts +89 -0
  239. package/src/components/stateScreen/index.d.ts +5 -0
  240. package/src/components/stateScreen/types.d.ts +30 -0
  241. package/src/components/stepper/index.d.ts +47 -0
  242. package/src/components/svgImage/index.d.ts +14 -0
  243. package/src/components/svgImage/index.web.d.ts +18 -0
  244. package/src/components/switch/index.d.ts +102 -0
  245. package/src/components/switch/switch.driver.d.ts +18 -0
  246. package/src/components/tabController/PageCarousel.d.ts +9 -0
  247. package/src/components/tabController/TabBar.d.ts +97 -0
  248. package/src/components/tabController/TabBarContext.d.ts +18 -0
  249. package/src/components/tabController/TabBarItem.d.ts +105 -0
  250. package/src/components/tabController/TabPage.d.ts +33 -0
  251. package/src/components/tabController/index.d.ts +48 -0
  252. package/src/components/tabController/useImperativeTabControllerHandle.d.ts +6 -0
  253. package/src/components/tabController/useScrollToItem.d.ts +79 -0
  254. package/src/components/text/Text.driver.d.ts +7 -0
  255. package/src/components/text/Text.driver.new.d.ts +17 -0
  256. package/src/components/text/index.d.ts +195 -0
  257. package/src/components/textField/CharCounter.d.ts +7 -0
  258. package/src/components/textField/ClearButton.d.ts +4 -0
  259. package/src/components/textField/FieldContext.d.ts +4 -0
  260. package/src/components/textField/FloatingPlaceholder.d.ts +7 -0
  261. package/src/components/textField/Input.d.ts +8 -0
  262. package/src/components/textField/Label.d.ts +7 -0
  263. package/src/components/textField/Presenter.d.ts +7 -0
  264. package/src/components/textField/TextField.driver.new.d.ts +129 -0
  265. package/src/components/textField/ValidationMessage.d.ts +7 -0
  266. package/src/components/textField/index.d.ts +114 -0
  267. package/src/components/textField/presets/outline.d.ts +737 -0
  268. package/src/components/textField/presets/underline.d.ts +735 -0
  269. package/src/components/textField/textInput/index.d.ts +1 -0
  270. package/src/components/textField/textInput/index.web.d.ts +3 -0
  271. package/src/components/textField/types.d.ts +287 -0
  272. package/src/components/textField/useFieldState.d.ts +16 -0
  273. package/src/components/textField/useImperativeInputHandle.d.ts +4 -0
  274. package/src/components/textField/usePreset.d.ts +1696 -0
  275. package/src/components/textField/validators.d.ts +9 -0
  276. package/src/components/textFieldOld/index.d.ts +71 -0
  277. package/src/components/timeline/Line.d.ts +10 -0
  278. package/src/components/timeline/Point.d.ts +9 -0
  279. package/src/components/timeline/index.d.ts +11 -0
  280. package/src/components/timeline/line.driver.d.ts +10 -0
  281. package/src/components/timeline/point.driver.d.ts +8 -0
  282. package/src/components/timeline/timeline.driver.d.ts +25 -0
  283. package/src/components/timeline/types.d.ts +50 -0
  284. package/src/components/touchableOpacity/index.d.ts +50 -0
  285. package/src/components/view/View.driver.new.d.ts +7 -0
  286. package/src/components/view/index.d.ts +46 -0
  287. package/src/components/wizard/WizardStates.d.ts +2 -0
  288. package/src/components/wizard/WizardStep.d.ts +4 -0
  289. package/src/components/wizard/index.d.ts +31 -0
  290. package/src/components/wizard/types.d.ts +90 -0
  291. package/src/helpers/AvatarHelper.d.ts +9 -0
  292. package/src/helpers/FormattingPresenter.d.ts +6 -0
  293. package/src/helpers/Profiler.d.ts +22 -0
  294. package/src/helpers/index.d.ts +3 -0
  295. package/src/hooks/index.d.ts +14 -0
  296. package/src/hooks/useCombinedRefs/index.d.ts +3 -0
  297. package/src/hooks/useDebounce/index.d.ts +5 -0
  298. package/src/hooks/useDidUpdate/index.d.ts +6 -0
  299. package/src/hooks/useHiddenLocation/index.d.ts +13 -0
  300. package/src/hooks/useHiddenLocation/index.web.d.ts +13 -0
  301. package/src/hooks/useKeyboardHeight/index.d.ts +5 -0
  302. package/src/hooks/useMeasure/index.d.ts +15 -0
  303. package/src/hooks/useModifiers/index.d.ts +3 -0
  304. package/src/hooks/useOrientation/index.d.ts +7 -0
  305. package/src/hooks/useScrollEnabler/index.d.ts +23 -0
  306. package/src/hooks/useScrollReached/index.d.ts +28 -0
  307. package/src/hooks/useScrollTo/index.d.ts +37 -0
  308. package/src/hooks/useScrollToItem/index.d.ts +65 -0
  309. package/src/hooks/useThemeProps/index.d.ts +2 -0
  310. package/src/hooks/useToggleValue/index.d.ts +2 -0
  311. package/src/incubator/TouchableOpacity.d.ts +52 -0
  312. package/src/incubator/calendar/Agenda.d.ts +4 -0
  313. package/src/incubator/calendar/CalendarContext.d.ts +4 -0
  314. package/src/incubator/calendar/CalendarItem.d.ts +5 -0
  315. package/src/incubator/calendar/Day.d.ts +4 -0
  316. package/src/incubator/calendar/Day_OLD.d.ts +4 -0
  317. package/src/incubator/calendar/Header.d.ts +4 -0
  318. package/src/incubator/calendar/Month.d.ts +4 -0
  319. package/src/incubator/calendar/TodayButton.d.ts +4 -0
  320. package/src/incubator/calendar/Week.d.ts +4 -0
  321. package/src/incubator/calendar/WeekDaysNames.d.ts +4 -0
  322. package/src/incubator/calendar/helpers/CalendarProcessor.d.ts +2 -0
  323. package/src/incubator/calendar/helpers/DataProcessor.d.ts +2 -0
  324. package/src/incubator/calendar/helpers/DateUtils.d.ts +23 -0
  325. package/src/incubator/calendar/index.d.ts +7 -0
  326. package/src/incubator/calendar/types.d.ts +118 -0
  327. package/src/incubator/expandableOverlay/ExpandableOverlay.driver.d.ts +7 -0
  328. package/src/incubator/expandableOverlay/index.d.ts +83 -0
  329. package/src/incubator/gradient/BorderGradient.d.ts +4 -0
  330. package/src/incubator/gradient/CircleGradient.d.ts +4 -0
  331. package/src/incubator/gradient/RectangleGradient.d.ts +4 -0
  332. package/src/incubator/gradient/index.d.ts +5 -0
  333. package/src/incubator/gradient/types.d.ts +26 -0
  334. package/src/incubator/gradient/useAngleTransform.d.ts +27 -0
  335. package/src/incubator/index.d.ts +9 -0
  336. package/src/incubator/slider/Slider.driver.d.ts +5 -0
  337. package/src/incubator/slider/SliderPresenter.d.ts +6 -0
  338. package/src/incubator/slider/Thumb.d.ts +24 -0
  339. package/src/incubator/slider/Track.d.ts +13 -0
  340. package/src/incubator/slider/index.d.ts +139 -0
  341. package/src/incubator/toast/Toast.driver.new.d.ts +54 -0
  342. package/src/incubator/toast/helpers/useToastAnimation.d.ts +22 -0
  343. package/src/incubator/toast/helpers/useToastPresets.d.ts +8 -0
  344. package/src/incubator/toast/helpers/useToastTimer.d.ts +6 -0
  345. package/src/incubator/toast/index.d.ts +9 -0
  346. package/src/incubator/toast/index.js +4 -1
  347. package/src/incubator/toast/types.d.ts +111 -0
  348. package/src/index.d.ts +92 -0
  349. package/src/optionalDependencies/BlurViewPackage.d.ts +2 -0
  350. package/src/optionalDependencies/BlurViewPackage.web.d.ts +2 -0
  351. package/src/optionalDependencies/DateTimePickerPackage.d.ts +2 -0
  352. package/src/optionalDependencies/FlashListPackage.d.ts +2 -0
  353. package/src/optionalDependencies/HapticFeedbackPackage.d.ts +2 -0
  354. package/src/optionalDependencies/LinearGradientPackage.d.ts +2 -0
  355. package/src/optionalDependencies/MomentPackage.d.ts +2 -0
  356. package/src/optionalDependencies/NetInfoPackage.d.ts +2 -0
  357. package/src/optionalDependencies/PostCssPackage.d.ts +5 -0
  358. package/src/optionalDependencies/ShimmerPackage.d.ts +2 -0
  359. package/src/optionalDependencies/SvgPackage.d.ts +3 -0
  360. package/src/optionalDependencies/index.d.ts +9 -0
  361. package/src/optionalDependencies/index.web.d.ts +7 -0
  362. package/src/services/HapticService.d.ts +15 -0
  363. package/src/services/LogService.d.ts +35 -0
  364. package/src/services/index.d.ts +2 -0
  365. package/src/style/borderRadiuses.d.ts +30 -0
  366. package/src/style/colorName.d.ts +8 -0
  367. package/src/style/colorNameMap.d.ts +2 -0
  368. package/src/style/colors.d.ts +274 -0
  369. package/src/style/colorsPalette.d.ts +101 -0
  370. package/src/style/components.d.ts +15 -0
  371. package/src/style/componentsColors.d.ts +5 -0
  372. package/src/style/designTokens.d.ts +69 -0
  373. package/src/style/designTokensDM.d.ts +69 -0
  374. package/src/style/dividers.d.ts +11 -0
  375. package/src/style/index.d.ts +13 -0
  376. package/src/style/scheme.d.ts +57 -0
  377. package/src/style/shadows.d.ts +223 -0
  378. package/src/style/spacings.d.ts +32 -0
  379. package/src/style/themeManager.d.ts +22 -0
  380. package/src/style/typography.d.ts +26 -0
  381. package/src/style/typographyPresets.d.ts +7 -0
  382. package/src/testkit/Component.driver.d.ts +30 -0
  383. package/src/testkit/DriverException.d.ts +12 -0
  384. package/src/testkit/UniDriver.d.ts +29 -0
  385. package/src/testkit/drivers/TestingLibraryDriver.d.ts +26 -0
  386. package/src/testkit/index.d.ts +25 -0
  387. package/src/testkit/new/Component.driver.d.ts +16 -0
  388. package/src/testkit/new/useDraggable.driver.d.ts +15 -0
  389. package/src/testkit/new/usePressable.driver.d.ts +14 -0
  390. package/src/testkit/new/useScrollable.driver.d.ts +13 -0
  391. package/src/typings/assets.d.ts +52 -0
  392. package/src/typings/common.d.ts +12 -0
  393. package/src/typings/module.d.ts +13 -0
  394. package/src/typings/recorderTypes.d.ts +13 -0
  395. package/src/uilib-test-renderer/helper.d.ts +8 -0
  396. package/src/uilib-test-renderer/index.d.ts +4 -0
  397. package/src/uilib-test-renderer/scrollViewHelper.d.ts +9 -0
  398. package/src/utils/dateUtils.d.ts +2 -0
  399. package/src/utils/imageUtils.d.ts +5 -0
  400. package/src/utils/index.d.ts +4 -0
  401. package/src/utils/styleUtils.d.ts +7 -0
  402. package/src/utils/textUtils.d.ts +8 -0
  403. package/jestSetup/jest-setup.js +0 -154
  404. package/lib/components/DynamicFonts/FontDownloader.d.js +0 -1
  405. package/lib/components/DynamicFonts/FontLoader.d.js +0 -1
  406. package/lib/components/DynamicFonts/NoPermissionsAcquirer.d.js +0 -1
  407. package/lib/components/DynamicFonts/PermissionsAcquirer.android.d.js +0 -1
  408. package/lib/components/DynamicFonts/PermissionsAcquirer.ios.d.js +0 -2
  409. package/lib/components/DynamicFonts/PermissionsAcquirer.web.d.js +0 -2
  410. package/lib/components/DynamicFonts/RNFSPackage.d.js +0 -1
  411. package/lib/components/DynamicFonts/index.d.js +0 -3
  412. package/lib/components/HighlighterOverlayView/index.d.js +0 -1
  413. package/lib/components/HighlighterOverlayView/index.web.d.js +0 -1
  414. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.d.js +0 -2
  415. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.ios.d.js +0 -2
  416. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardViewBase.d.js +0 -2
  417. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.d.js +0 -1
  418. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.web.d.js +0 -1
  419. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.js +0 -1
  420. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/index.d.js +0 -5
  421. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.js +0 -1
  422. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.android.d.js +0 -1
  423. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.js +0 -1
  424. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/index.d.js +0 -1
  425. package/lib/components/Keyboard/KeyboardAccessoryView/index.d.js +0 -7
  426. package/lib/components/Keyboard/KeyboardAwareInsetsView/index.d.js +0 -1
  427. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.android.d.js +0 -1
  428. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.ios.d.js +0 -10
  429. package/lib/components/Keyboard/KeyboardTrackingView/index.d.js +0 -1
  430. package/lib/components/Keyboard/KeyboardTrackingView/index.web.d.js +0 -1
  431. package/lib/components/Keyboard/index.d.js +0 -4
  432. package/lib/components/SafeArea/SafeAreaInsetsManager.d.js +0 -1
  433. package/lib/components/SafeArea/SafeAreaSpacerView.d.js +0 -1
  434. package/lib/components/SafeArea/SafeAreaSpacerView.web.d.js +0 -1
  435. package/lib/components/SafeArea/index.d.js +0 -1
  436. package/lib/components/index.d.js +0 -6
  437. package/lib/scripts/releaseNative.js +0 -72
  438. package/lib/specs/HighlighterViewNativeComponent.d.js +0 -1
  439. package/lib/specs/HighlighterViewNativeComponent.js +0 -8
  440. package/lib/specs/KeyboardTrackingViewNativeComponent.d.js +0 -1
  441. package/lib/specs/KeyboardTrackingViewNativeComponent.js +0 -8
  442. package/scripts/build/.babelrc.exports.js +0 -6
  443. package/scripts/build/build.js +0 -35
  444. package/scripts/build/buildPackages/buildComponentsPackages.js +0 -18
  445. package/scripts/build/buildPackages/buildCustomPackages.js +0 -106
  446. package/scripts/build/buildPackages/index.js +0 -6
  447. package/scripts/createCalendarMockData.js +0 -37
  448. package/scripts/docs/buildDocs.js +0 -1
  449. package/scripts/prepush.js +0 -71
  450. package/scripts/release/prReleaseNotes.js +0 -6
  451. package/scripts/release/release.js +0 -99
  452. package/scripts/updateWebAssets.js +0 -88
  453. package/scripts/utils.js +0 -21
  454. package/src/assets/__tests__/Assets.spec.js +0 -110
  455. package/src/commons/__tests__/baseComponent.spec.js +0 -36
  456. package/src/commons/__tests__/constants.spec.js +0 -202
  457. package/src/commons/__tests__/modifiers.spec.js +0 -453
  458. package/src/components/WheelPicker/__tests__/index.spec.js +0 -121
  459. package/src/components/WheelPicker/__tests__/useListMiddleIndex.spec.js +0 -40
  460. package/src/components/WheelPicker/__tests__/usePresenter.spec.js +0 -87
  461. package/src/components/avatar/__tests__/index.spec.js +0 -25
  462. package/src/components/badge/__tests__/index.spec.js +0 -84
  463. package/src/components/button/__tests__/index.driver.spec.js +0 -209
  464. package/src/components/button/__tests__/index.spec.js +0 -287
  465. package/src/components/card/__tests__/CardPresenter.spec.js +0 -35
  466. package/src/components/carousel/__tests__/CarouselPresenter.spec.js +0 -52
  467. package/src/components/carousel/__tests__/index.spec.js +0 -89
  468. package/src/components/checkbox/__tests__/index.spec.js +0 -357
  469. package/src/components/chip/__tests__/index.spec.js +0 -63
  470. package/src/components/connectionStatusBar/__tests__/index.spec.js +0 -41
  471. package/src/components/dateTimePicker/__tests__/index.spec.js +0 -44
  472. package/src/components/dialog/__tests__/index.new.spec.js +0 -118
  473. package/src/components/featureHighlight/__tests__/index.spec.js +0 -76
  474. package/src/components/floatingButton/__tests__/index.spec.js +0 -229
  475. package/src/components/hint/__tests__/index.spec.js +0 -108
  476. package/src/components/image/__tests__/index.spec.js +0 -56
  477. package/src/components/maskedInput/__tests__/maskedInput.new.spec.js +0 -19
  478. package/src/components/maskedInput/__tests__/maskedInput.old.spec.js +0 -20
  479. package/src/components/modal/__tests__/index.spec.js +0 -58
  480. package/src/components/numberInput/__tests__/Presenter.spec.js +0 -374
  481. package/src/components/numberInput/__tests__/index.spec.js +0 -38
  482. package/src/components/panView/__tests__/panningUtil.spec.js +0 -693
  483. package/src/components/picker/__tests__/PickerPresenter.spec.js +0 -15
  484. package/src/components/picker/__tests__/index.spec.js +0 -364
  485. package/src/components/picker/helpers/__tests__/usePickerLabel.spec.js +0 -96
  486. package/src/components/radioButton/__tests__/index.spec.js +0 -43
  487. package/src/components/radioGroup/__tests__/index.spec.js +0 -96
  488. package/src/components/sectionsWheelPicker/__tests__/index.spec.js +0 -35
  489. package/src/components/sectionsWheelPicker/__tests__/mockSections.js +0 -28
  490. package/src/components/segmentedControl/__tests__/index.spec.js +0 -25
  491. package/src/components/slider/__tests__/index.spec.js +0 -35
  492. package/src/components/sortableGridList/__tests__/index.spec.js +0 -51
  493. package/src/components/sortableGridList/__tests__/usePresenter.spec.js +0 -231
  494. package/src/components/sortableList/__tests__/index.spec.js +0 -105
  495. package/src/components/switch/__tests__/index.spec.js +0 -96
  496. package/src/components/text/__tests__/index.driver.spec.js +0 -124
  497. package/src/components/text/__tests__/index.spec.js +0 -245
  498. package/src/components/textField/__tests__/Presenter.spec.js +0 -240
  499. package/src/components/textField/__tests__/index.driver.spec.js +0 -639
  500. package/src/components/timeline/__tests__/driver.index.spec.js +0 -133
  501. package/src/helpers/__tests__/AvatarHelper.spec.js +0 -170
  502. package/src/hooks/useDidUpdate/__tests__/useDidUpdate.spec.js +0 -80
  503. package/src/hooks/useOrientation/__tests__/useOrientation.spec.js +0 -70
  504. package/src/hooks/useToggleValue/__tests__/useToggleValue.spec.js +0 -89
  505. package/src/incubator/calendar/__tests__/DateUtils.spec.js +0 -367
  506. package/src/incubator/expandableOverlay/__tests__/index.spec.js +0 -114
  507. package/src/incubator/gradient/__tests__/useAngleTransform.spec.js +0 -126
  508. package/src/incubator/slider/__tests__/SliderPresenter.spec.js +0 -43
  509. package/src/incubator/slider/__tests__/index.spec.js +0 -34
  510. package/src/incubator/toast/__tests__/index.spec.js +0 -64
  511. package/src/style/__tests__/colors.spec.js +0 -313
  512. package/src/style/__tests__/scheme.spec.js +0 -119
  513. package/src/utils/__tests__/Playground.perf.js +0 -14
  514. package/src/utils/__tests__/imageUtils.spec.js +0 -54
  515. package/src/utils/__tests__/textUtils.spec.js +0 -446
@@ -0,0 +1,115 @@
1
+ #import "DynamicFont.h"
2
+ #import <CoreText/CoreText.h>
3
+ #import <UIKit/UIKit.h>
4
+ #import <Foundation/Foundation.h>
5
+
6
+ @implementation DynamicFont
7
+
8
+ - (dispatch_queue_t)methodQueue
9
+ {
10
+ return dispatch_get_main_queue();
11
+ }
12
+ RCT_EXPORT_MODULE()
13
+
14
+ // TODO: Needs to be tested (notice param name "path" here)
15
+ // RCT_EXPORT_METHOD(
16
+ // loadFontFromFile:(NSDictionary *)options callback:(RCTResponseSenderBlock)callback)
17
+ // {
18
+ // NSString *path = [options valueForKey:@"path"];
19
+ // NSString *name = [options valueForKey:@"name"];
20
+ // NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
21
+ // CFErrorRef error;
22
+ // CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data);
23
+ // CGFontRef font = CGFontCreateWithDataProvider(provider);
24
+ // NSString *newFontName = (__bridge NSString *)CGFontCopyPostScriptName(font);
25
+ // if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
26
+ // CFStringRef errorDescription = CFErrorCopyDescription(error);
27
+ // NSLog(@"Failed to load font: %@", errorDescription);
28
+ // CFRelease(errorDescription);
29
+ // callback(@[@"Failed to load font: %@", (__bridge NSString *)errorDescription]);
30
+ // }
31
+ // CFRelease(font);
32
+ // CFRelease(provider);
33
+ // // Resolve to the caller.
34
+ // callback(@[[NSNull null], newFontName]);
35
+ // }
36
+
37
+ RCT_EXPORT_METHOD(loadFont:(NSDictionary *)options callback:(RCTResponseSenderBlock)callback)
38
+ {
39
+ NSString *name = [options valueForKey:@"name"];
40
+ NSString *data = [options valueForKey:@"data"];
41
+ NSString *type = NULL;
42
+
43
+ if ([name isEqual:[NSNull null]]) {
44
+ callback(@[@"Name property is empty"]);
45
+ return;
46
+ }
47
+
48
+ if ([data isEqual:[NSNull null]]) {
49
+ callback(@[@"Data property is empty"]);
50
+ return;
51
+ }
52
+
53
+ if ([[[data substringWithRange:NSMakeRange(0, 5)] lowercaseString] isEqualToString:@"data:"]) {
54
+ NSArray *parts = [data componentsSeparatedByString:@","];
55
+ NSString *mimeType = [parts objectAtIndex:0];
56
+
57
+ data = [parts objectAtIndex:1];
58
+
59
+ if (![mimeType isEqual:[NSNull null]]) {
60
+ mimeType = [[[mimeType substringFromIndex:5] componentsSeparatedByString:@";"] objectAtIndex:0];
61
+
62
+ if ([mimeType isEqualToString:@"application/x-font-ttf"] ||
63
+ [mimeType isEqualToString:@"application/x-font-truetype"] ||
64
+ [mimeType isEqualToString:@"font/ttf"]) {
65
+ type = @"ttf";
66
+ } else if ( [mimeType isEqualToString:@"application/x-font-opentype"] ||
67
+ [mimeType isEqualToString:@"font/opentype"]) {
68
+ type = @"otf";
69
+ }
70
+ }
71
+ }
72
+
73
+ if ([type isEqual:[NSNull null]])
74
+ type = [options valueForKey:@"type"];
75
+
76
+ if ([type isEqual:[NSNull null]])
77
+ type = @"ttf";
78
+
79
+ NSData *decodedData = [[NSData alloc]initWithBase64EncodedString:data options:NSDataBase64DecodingIgnoreUnknownCharacters];
80
+ CGDataProviderRef fontDataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)decodedData);
81
+
82
+ [UIFont familyNames];
83
+
84
+ CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);
85
+ NSString *newFontName = (__bridge NSString *)CGFontCopyPostScriptName(newFont);
86
+
87
+ UIFont* font = [UIFont fontWithName:newFontName size:16];
88
+ if (font != nil) {
89
+ CGDataProviderRelease(fontDataProvider);
90
+ callback(@[[NSNull null], newFontName]);
91
+ return;
92
+ }
93
+
94
+ CFErrorRef error;
95
+ if (! CTFontManagerRegisterGraphicsFont(newFont, &error)) {
96
+ CFStringRef errorDescription = CFErrorCopyDescription(error);
97
+ NSLog(@"Failed to register font: %@", errorDescription);
98
+
99
+ callback(@[@"Failed to register font: %@", (__bridge NSString *)errorDescription]);
100
+
101
+ CFRelease(errorDescription);
102
+ CGFontRelease(newFont);
103
+ CGDataProviderRelease(fontDataProvider);
104
+
105
+ return;
106
+ }
107
+
108
+ CGFontRelease(newFont);
109
+ CGDataProviderRelease(fontDataProvider);
110
+
111
+ callback(@[[NSNull null], newFontName]);
112
+ }
113
+
114
+ @end
115
+
@@ -0,0 +1,19 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTBridge.h>
3
+
4
+ @interface HighlighterView : UIView
5
+
6
+ - (id)initWithFrame:(CGRect)frame bridge:(RCTBridge*)bridge;
7
+
8
+ @property (nonatomic) CGRect highlightFrame;
9
+ @property (nonatomic, strong) NSNumber *borderRadius;
10
+ @property (nonatomic, strong) UIColor *overlayColor;
11
+ @property (nonatomic, strong) UIColor *strokeColor;
12
+ @property (nonatomic, strong) NSNumber *strokeWidth;
13
+ @property (nonatomic, strong) NSNumber *highlightViewTag;
14
+ @property (nonatomic, strong) NSDictionary *highlightViewTagParams;
15
+ @property (nonatomic) CGSize minimumRectSize;
16
+ @property (nonatomic) CGFloat innerPadding;
17
+
18
+
19
+ @end
@@ -0,0 +1,216 @@
1
+
2
+ #import "HighlighterView.h"
3
+ #import <React/RCTUIManager.h>
4
+
5
+ #define kDefaultOverlayColor [UIColor colorWithWhite:0 alpha:0.8]
6
+
7
+ @interface HighlighterView ()
8
+ {
9
+ RCTBridge* _bridge;
10
+ CGRect _viewBasedHighlightFrame;
11
+ UIView *_highlightedView;
12
+ }
13
+ @end
14
+
15
+ @implementation HighlighterView
16
+
17
+ - (id)initWithFrame:(CGRect)frame bridge:(RCTBridge*)bridge
18
+ {
19
+ self = [super initWithFrame:frame];
20
+ if (self)
21
+ {
22
+ _bridge = bridge;
23
+ self.highlightFrame = CGRectNull;
24
+ _viewBasedHighlightFrame = CGRectNull;
25
+ self.backgroundColor = [UIColor clearColor];
26
+ self.overlayColor = kDefaultOverlayColor;
27
+ self.minimumRectSize = CGSizeZero;
28
+ self.innerPadding = 0;
29
+ }
30
+ return self;
31
+ }
32
+
33
+ - (void)dealloc
34
+ {
35
+ [self clearObserver];
36
+ }
37
+
38
+ - (BOOL)isFrameValid:(CGRect)frame
39
+ {
40
+ return !CGRectIsNull(frame) && frame.size.width > 0 && frame.size.height > 0;
41
+ }
42
+
43
+ -(CGRect)adjustFrame:(CGRect)frame {
44
+ CGFloat x = frame.origin.x;
45
+ CGFloat y = frame.origin.y;
46
+ CGFloat width = frame.size.width + self.innerPadding * 2;
47
+ CGFloat height = frame.size.height + self.innerPadding * 2;
48
+
49
+ width = width < self.minimumRectSize.width ? self.minimumRectSize.width : width;
50
+ height = height < self.minimumRectSize.height ? self.minimumRectSize.height : height;
51
+ x = x - ((width - frame.size.width) / 2);
52
+ y = y - ((height - frame.size.height) / 2);
53
+
54
+ return CGRectMake(x, y, width, height);
55
+ }
56
+
57
+ -(CGRect)getHighlightRect
58
+ {
59
+ CGRect highlightRect = self.highlightFrame;
60
+ if ([self isFrameValid:_viewBasedHighlightFrame]) {
61
+ // highlightRect = _viewBasedHighlightFrame;
62
+ highlightRect = [self adjustFrame: _viewBasedHighlightFrame];
63
+ if (_highlightViewTagParams != nil) {
64
+ id padding = _highlightViewTagParams[@"padding"];
65
+ if (padding != nil) {
66
+ if ([padding isKindOfClass:[NSNumber class]]) {
67
+ CGFloat paddingValue = [(NSNumber*)padding floatValue];
68
+ highlightRect = CGRectMake(_viewBasedHighlightFrame.origin.x - paddingValue,
69
+ _viewBasedHighlightFrame.origin.y - paddingValue,
70
+ _viewBasedHighlightFrame.size.width + paddingValue * 2,
71
+ _viewBasedHighlightFrame.size.height + paddingValue * 2);
72
+ } else if ([padding isKindOfClass:[NSDictionary class]]) {
73
+ NSDictionary *paddingDic = (NSDictionary*)padding;
74
+ CGFloat top = [paddingDic[@"top"] floatValue];
75
+ CGFloat left = [paddingDic[@"left"] floatValue];
76
+ CGFloat bottom = [paddingDic[@"bottom"] floatValue];
77
+ CGFloat right = [paddingDic[@"right"] floatValue];
78
+ highlightRect = CGRectMake(_viewBasedHighlightFrame.origin.x - left,
79
+ _viewBasedHighlightFrame.origin.y - top,
80
+ _viewBasedHighlightFrame.size.width + right + left,
81
+ _viewBasedHighlightFrame.size.height + bottom + top);
82
+ }
83
+ }
84
+
85
+ NSDictionary *offset = _highlightViewTagParams[@"offset"];
86
+ if (offset != nil) {
87
+ highlightRect = CGRectOffset(highlightRect, [offset[@"x"] floatValue], [offset[@"y"] floatValue]);
88
+ }
89
+ }
90
+ }
91
+ return highlightRect;
92
+ }
93
+
94
+ - (CGSize)getCornerRadiiForHighlightRect:(CGRect)highlightRect {
95
+ CGSize cornerRadii = CGSizeMake(highlightRect.size.width/2, highlightRect.size.height/2);
96
+ if (self.borderRadius != nil) {
97
+ CGFloat radius = [self.borderRadius floatValue];
98
+ cornerRadii = CGSizeMake(radius, radius);
99
+ }
100
+ return cornerRadii;
101
+ }
102
+
103
+ - (void)drawRect:(CGRect)rect
104
+ {
105
+ if (![self isFrameValid:self.highlightFrame] && ![self isFrameValid:_viewBasedHighlightFrame]) {
106
+ UIColor *color = self.overlayColor ? self.overlayColor : [UIColor clearColor];
107
+ [color setFill];
108
+ UIRectFill(rect);
109
+ return;
110
+ }
111
+
112
+ CGContextRef context = UIGraphicsGetCurrentContext();
113
+ CGContextClearRect(context, rect);
114
+
115
+ CGRect highlightRect = [self getHighlightRect];
116
+ CGSize cornerRadii = [self getCornerRadiiForHighlightRect:highlightRect];
117
+
118
+ UIBezierPath *clipPath = [UIBezierPath bezierPathWithRect:CGRectInfinite];
119
+ UIBezierPath *roundPath = [UIBezierPath bezierPathWithRoundedRect:highlightRect byRoundingCorners:UIRectCornerAllCorners cornerRadii:cornerRadii];
120
+ [clipPath appendPath:roundPath];
121
+ clipPath.usesEvenOddFillRule = YES;
122
+
123
+ CGContextSaveGState(context);
124
+ [clipPath addClip];
125
+ [self.overlayColor setFill];
126
+ UIRectFill(rect);
127
+
128
+ if (self.strokeColor && self.strokeWidth) {
129
+ CGContextAddPath(context, roundPath.CGPath);
130
+ [self.strokeColor setStroke];
131
+ CGContextSetLineWidth(context, [self.strokeWidth floatValue]);
132
+ CGContextStrokePath(context);
133
+ }
134
+
135
+ CGContextRestoreGState(context);
136
+ }
137
+
138
+ -(void)setHighlightFrame:(CGRect)highlightFrame
139
+ {
140
+ if ([self isFrameValid:highlightFrame]) {
141
+ _highlightFrame = highlightFrame;
142
+ [self setNeedsDisplay];
143
+ }
144
+ }
145
+
146
+ -(void)setOverlayColor:(UIColor *)overlayColor
147
+ {
148
+ _overlayColor = overlayColor;
149
+ [self setNeedsDisplay];
150
+ }
151
+
152
+ -(void)setMinimumRectSize:(CGSize)minimumRectSize
153
+ {
154
+ _minimumRectSize = minimumRectSize;
155
+ [self setNeedsDisplay];
156
+ }
157
+
158
+ -(void)setInnerPadding:(CGFloat)innerPadding
159
+ {
160
+ _innerPadding = innerPadding;
161
+ [self setNeedsDisplay];
162
+ }
163
+
164
+ -(void)setViewBasedHighlightFrameFromView:(UIView*)view {
165
+ _viewBasedHighlightFrame = [self convertRect:view.frame fromView:view.superview];
166
+ [self setNeedsDisplay];
167
+ }
168
+
169
+ -(void)setHighlightViewTag:(NSNumber *)highlightViewTag
170
+ {
171
+ if (highlightViewTag) {
172
+ UIView *view = [_bridge.uiManager viewForReactTag:highlightViewTag];
173
+ if (view != nil) {
174
+ if (view.frame.size.width == 0 || view.frame.size.height == 0) {
175
+ _highlightedView = view;
176
+ [_highlightedView.layer addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];
177
+ [_highlightedView.layer addObserver:self forKeyPath:@"bounds" options:NSKeyValueObservingOptionNew context:NULL];
178
+ } else {
179
+ [self setViewBasedHighlightFrameFromView:view];
180
+ }
181
+ }
182
+ }
183
+ }
184
+
185
+ -(void)setHighlightViewTagParams:(NSDictionary*)highlightViewTagParams
186
+ {
187
+ _highlightViewTagParams = highlightViewTagParams;
188
+ [self setNeedsDisplay];
189
+ }
190
+
191
+ #pragma mark - KVO
192
+
193
+ -(void)clearObserver
194
+ {
195
+ if (_highlightedView != nil) {
196
+ [_highlightedView.layer removeObserver:self forKeyPath:@"frame"];
197
+ [_highlightedView.layer removeObserver:self forKeyPath:@"bounds"];
198
+ _highlightedView = nil;
199
+ }
200
+ }
201
+
202
+ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
203
+ {
204
+ if ((object == _highlightedView.layer) && ([keyPath isEqualToString:@"frame"] || [keyPath isEqualToString:@"bounds"]))
205
+ {
206
+ CGRect frame = [change[NSKeyValueChangeNewKey] CGRectValue];
207
+ if (frame.size.width > 0 && frame.size.height > 0) {
208
+ dispatch_async(dispatch_get_main_queue(), ^{
209
+ [self setViewBasedHighlightFrameFromView:_highlightedView];
210
+ [self clearObserver];
211
+ });
212
+ }
213
+ }
214
+ }
215
+
216
+ @end
@@ -0,0 +1,6 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import <React/RCTViewManager.h>
3
+
4
+ @interface HighlighterViewManager : RCTViewManager
5
+
6
+ @end
@@ -0,0 +1,28 @@
1
+ #import "HighlighterViewManager.h"
2
+ #import "HighlighterView.h"
3
+
4
+ @implementation HighlighterViewManager
5
+
6
+ RCT_EXPORT_MODULE()
7
+
8
+ - (dispatch_queue_t)methodQueue {
9
+ return dispatch_get_main_queue();
10
+ }
11
+
12
+ - (UIView *)view
13
+ {
14
+ return [[HighlighterView alloc] initWithFrame:CGRectZero bridge:self.bridge];
15
+ }
16
+
17
+ RCT_REMAP_VIEW_PROPERTY(highlightFrame, highlightFrame, CGRect)
18
+ RCT_REMAP_VIEW_PROPERTY(highlightViewTag, highlightViewTag, NSNumber)
19
+ RCT_REMAP_VIEW_PROPERTY(highlightViewTagParams, highlightViewTagParams, NSDictionary)
20
+ RCT_REMAP_VIEW_PROPERTY(overlayColor, overlayColor, UIColor)
21
+ RCT_REMAP_VIEW_PROPERTY(borderRadius, borderRadius, NSNumber)
22
+ RCT_REMAP_VIEW_PROPERTY(strokeColor, strokeColor, UIColor)
23
+ RCT_REMAP_VIEW_PROPERTY(strokeWidth, strokeWidth, NSNumber)
24
+ RCT_REMAP_VIEW_PROPERTY(minimumRectSize, minimumRectSize, CGSize)
25
+ RCT_REMAP_VIEW_PROPERTY(innerPadding, innerPadding, CGFloat)
26
+
27
+
28
+ @end
@@ -0,0 +1,39 @@
1
+ //
2
+ // Color+Interpolation.h
3
+ //
4
+ // Created by Leo Natan on 01/10/2016.
5
+ // Copyright © 2016 Leo Natan. All rights reserved.
6
+ //
7
+
8
+ #if __has_include(<UIKit/UIKit.h>) || __has_include(<AppKit/AppKit.h>)
9
+
10
+ #import "LNInterpolable.h"
11
+
12
+ #if __has_include(<UIKit/UIKit.h>)
13
+ #import <UIKit/UIKit.h>
14
+ #else
15
+ #import <AppKit/AppKit.h>
16
+ #endif
17
+
18
+ /**
19
+ Interpolate using the LAB color space for optimal quality. This constant is equal to @c LNUseDefaultInterpolationBehavior.
20
+ */
21
+ extern LNInterpolationBehavior const RNUIInterpolationBehaviorUseLABColorSpace;
22
+
23
+ /**
24
+ Interpolate using the RGB color space.
25
+ */
26
+ extern LNInterpolationBehavior const RNUIInterpolationBehaviorUseRGBColorSpace;
27
+
28
+ /**
29
+ Interpolates between colors.
30
+
31
+ By default, colors are interpolated in the Lab color space for optimal quality at the expense of some performance. Use @c LNUseRGBInterpolationBehavior for better performance but suboptimal quality.
32
+ */
33
+ #if __has_include(<UIKit/UIKit.h>)
34
+ @interface UIColor (LNInterpolation) <LNInterpolable> @end
35
+ #else
36
+ @interface NSColor (LNInterpolation) <LNInterpolable> @end
37
+ #endif
38
+
39
+ #endif
@@ -0,0 +1,160 @@
1
+ //
2
+ // Color+Interpolation.m
3
+ //
4
+ // Created by Leo Natan on 01/10/2016.
5
+ // Copyright © 2016 Leo Natan. All rights reserved.
6
+ //
7
+
8
+ #if __has_include(<UIKit/UIKit.h>) || __has_include(<AppKit/AppKit.h>)
9
+
10
+ #import "Color+Interpolation.h"
11
+
12
+ #if __has_include(<UIKit/UIKit.h>)
13
+ #define Color UIColor
14
+ #else
15
+ #define Color NSColor
16
+ #endif
17
+
18
+ #define SWAP(x, y) do { __typeof(x) __ZZZZ__SWAP = x; x = y; y = __ZZZZ__SWAP; } while(0)
19
+
20
+ //Same value as LNInterpolationBehaviorUseDefault
21
+ LNInterpolationBehavior const RNUIInterpolationBehaviorUseLABColorSpace = @"LNInterpolationBehaviorUseDefault";
22
+ LNInterpolationBehavior const RNUIInterpolationBehaviorUseRGBColorSpace = @"LNInterpolationBehaviorUseRGB";
23
+
24
+ extern double LNLinearInterpolate(double from, double to, double p);
25
+
26
+ static NSArray<NSNumber*>* LNRGBComponentsFromColor(Color* color)
27
+ {
28
+ size_t numberOfComponents = CGColorGetNumberOfComponents(color.CGColor);
29
+ const CGFloat* components = CGColorGetComponents(color.CGColor);
30
+
31
+ return numberOfComponents == 2 ? @[@(components[0]), @(components[0]), @(components[0]), @(components[1])] : @[@(components[0]), @(components[1]), @(components[2]), @(components[3])];
32
+ }
33
+
34
+ static Color* LNColorFromRGBComponents(NSArray<NSNumber*>* components)
35
+ {
36
+ return [Color colorWithRed:components[0].doubleValue green:components[1].doubleValue blue:components[2].doubleValue alpha:components[3].doubleValue];
37
+ }
38
+
39
+ static NSArray<NSNumber*>* LNLabComponentsFromColor(Color* color)
40
+ {
41
+ NSArray<NSNumber*>* rgbComponents = LNRGBComponentsFromColor(color);
42
+ CGFloat r = rgbComponents[0].doubleValue;
43
+ CGFloat g = rgbComponents[1].doubleValue;
44
+ CGFloat b = rgbComponents[2].doubleValue;
45
+
46
+ //RGB -> XYZ
47
+ //http://www.brucelindbloom.com/index.html?Eqn_RGB_to_XYZ.html
48
+
49
+ r = (r > 0.04045) ? pow((r + 0.055) / 1.055, 2.4) : (r / 12.92);
50
+ g = (g > 0.04045) ? pow((g + 0.055) / 1.055, 2.4) : (g / 12.92);
51
+ b = (b > 0.04045) ? pow((b + 0.055) / 1.055, 2.4) : (b / 12.92);
52
+
53
+ //http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html (sRGB -> XYZ)
54
+ CGFloat x = r * 41.24564 + g * 35.75761 + b * 18.04375;
55
+ CGFloat y = r * 21.26729 + g * 71.51522 + b * 07.21750;
56
+ CGFloat z = r * 01.93339 + g * 11.91920 + b * 95.03041;
57
+
58
+ //XYZ -> Lab
59
+ //http://www.brucelindbloom.com/index.html?Eqn_XYZ_to_Lab.html
60
+
61
+ static const CGFloat eps = 216.0 / 24389.0;
62
+ static const CGFloat k = 24389.0 / 27.0;
63
+
64
+ x = x / 100.0;//95.047;
65
+ y = y / 100.0;//100.000;
66
+ z = z / 100.0;//108.883;
67
+
68
+ x = x > eps ? pow(x, 1.0 / 3.0) : (k * x + 16.0) / 116.0;
69
+ y = y > eps ? pow(y, 1.0 / 3.0) : (k * y + 16.0) / 116.0;
70
+ z = z > eps ? pow(z, 1.0 / 3.0) : (k * z + 16.0) / 116.0;
71
+
72
+ CGFloat l = 116 * y - 16;
73
+ CGFloat a = 500 * (x - y);
74
+ b = 200 * (y - z);
75
+
76
+ return @[@(l), @(a), @(b), rgbComponents[3]];
77
+ }
78
+
79
+ static Color* LNColorFromLabComponents(NSArray<NSNumber*>* components)
80
+ {
81
+ CGFloat l = components[0].doubleValue;
82
+ CGFloat a = components[1].doubleValue;
83
+ CGFloat b = components[2].doubleValue;
84
+
85
+ //Lab -> XYZ
86
+ //http://www.brucelindbloom.com/index.html?Eqn_Lab_to_XYZ.html
87
+
88
+ static const CGFloat eps = 216.0 / 24389.0;
89
+ static const CGFloat k = 24389.0 / 27.0;
90
+
91
+ CGFloat y = (l + 16.0) / 116.0;
92
+ CGFloat x = a / 500 + y;
93
+ CGFloat z = y - b / 200;
94
+
95
+ x = pow(x, 3.0) > eps ? pow(x, 3.0) : (116 * x - 16) / k;
96
+ y = l > k * eps ? pow((l + 16) / 116, 3.0) : l / k;
97
+ z = pow(z, 3.0) > eps ? pow(z, 3.0) : (116 * z - 16) / k;
98
+
99
+ x = x * 1.0;//.95047;
100
+ y = y * 1.0;//1.00000;
101
+ z = z * 1.0;//1.08883;
102
+
103
+ //XYZ -> RGB
104
+
105
+ //http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html (XYZ -> sRGB)
106
+ CGFloat r = x * 3.2404542 + y * -1.5371385 + z * -0.4985314;
107
+ CGFloat g = x * -0.9692660 + y * 1.8760108 + z * 0.0415560;
108
+ b = x * 0.0556434 + y * -0.2040259 + z * 1.0572252;
109
+
110
+ r = r <= 0.0031308 ? 12.92 * r : 1.055 * pow(r, 1.0 / 2.4) - 0.055;
111
+ g = g <= 0.0031308 ? 12.92 * g : 1.055 * pow(g, 1.0 / 2.4) - 0.055;
112
+ b = b <= 0.0031308 ? 12.92 * b : 1.055 * pow(b, 1.0 / 2.4) - 0.055;
113
+
114
+ // return Color
115
+ return LNColorFromRGBComponents(@[@(r), @(g), @(b), components[3]]);
116
+ }
117
+
118
+ static inline Color* LNInterpolateColor(Color* fromValue, Color* toValue, CGFloat p, NSArray* (*compConverter)(Color*), Color* (*colorConverter)(NSArray*))
119
+ {
120
+ NSArray<NSNumber*>* arrayC1 = compConverter(fromValue);
121
+ NSArray<NSNumber*>* arrayC2 = compConverter(toValue);
122
+
123
+ NSMutableArray<NSNumber*>* arrayOutput = [NSMutableArray new];
124
+ [arrayC1 enumerateObjectsUsingBlock:^(NSNumber * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
125
+ arrayOutput[idx] = @(LNLinearInterpolate(obj.doubleValue, arrayC2[idx].doubleValue, p));
126
+ }];
127
+
128
+ return colorConverter(arrayOutput);
129
+ }
130
+
131
+ @implementation Color (Interpolation)
132
+
133
+ - (instancetype)interpolateToValue:(Color*)toValue progress:(double)p
134
+ {
135
+ return [self interpolateToValue:toValue progress:p behavior:LNInterpolationBehaviorUseDefault];
136
+ }
137
+
138
+ - (instancetype)interpolateToValue:(id)toValue progress:(double)p behavior:(LNInterpolationBehavior)behavior
139
+ {
140
+ if([toValue isKindOfClass:[Color class]] == NO)
141
+ {
142
+ return nil;
143
+ }
144
+
145
+ if(p <= 0)
146
+ {
147
+ return self;
148
+ }
149
+
150
+ if(p >= 1)
151
+ {
152
+ return toValue;
153
+ }
154
+
155
+ return LNInterpolateColor(self, toValue, p, behavior == RNUIInterpolationBehaviorUseRGBColorSpace ? LNRGBComponentsFromColor : LNLabComponentsFromColor, behavior == RNUIInterpolationBehaviorUseRGBColorSpace ? LNColorFromRGBComponents : LNColorFromLabComponents);
156
+ }
157
+
158
+ @end
159
+
160
+ #endif
@@ -0,0 +1,36 @@
1
+ //
2
+ // LNFrameAnimator.h
3
+ // KeyboardTransitionDemo
4
+ //
5
+ // Created by Leo Natan (Wix) on 11/05/2017.
6
+ // Copyright © 2017 Wix. All rights reserved.
7
+ //
8
+
9
+ @import UIKit;
10
+
11
+ @protocol LNAnimationTemp <NSObject>
12
+
13
+ @property (nonatomic) CGFloat progress;
14
+
15
+ @end
16
+
17
+ @interface LNViewAnimationTemp : NSObject <LNAnimationTemp>
18
+
19
+ @property (nonatomic, strong, readonly) UIView* view;
20
+ @property (nonatomic, strong, readonly) NSString* keyPath;
21
+ @property (nonatomic, strong, readonly) id toValue;
22
+
23
+ + (instancetype)animationWithView:(UIView*)view keyPath:(NSString*)keyPath toValue:(id)toValue;
24
+
25
+ @end
26
+
27
+ @interface LNAnimatorTemp : NSObject
28
+
29
+ @property (nonatomic, readonly) NSTimeInterval duration;
30
+ @property (nonatomic, strong, readonly) NSArray<id<LNAnimationTemp>>* animations;
31
+
32
+ + (instancetype)animatorWithDuration:(NSTimeInterval)duration animations:(NSArray<id<LNAnimationTemp>>*)animations completionHandler:(void(^)(BOOL completed))completionHandler;
33
+
34
+ - (void)start;
35
+
36
+ @end