react-native-ui-lib 7.46.1 → 7.46.2-snapshot.7314

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 (217) hide show
  1. package/babel.config.js +12 -0
  2. package/index.js +1 -0
  3. package/lib/android/build.gradle +5 -5
  4. package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +0 -2
  5. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +31 -23
  6. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +1 -1
  7. package/lib/components/{HighlighterOverlayView.d.ts → HighlighterOverlayView/index.d.ts} +1 -1
  8. package/lib/components/HighlighterOverlayView/index.js +49 -0
  9. package/lib/components/{HighlighterOverlayView.web.d.ts → HighlighterOverlayView/index.web.d.ts} +1 -1
  10. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.android.d.ts +5 -2
  11. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.js +51 -0
  12. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.ios.d.ts +1 -1
  13. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/CustomKeyboardView.ios.js +3 -3
  14. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/CustomKeyboardView}/CustomKeyboardViewBase.d.ts +3 -0
  15. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/CustomKeyboardView}/CustomKeyboardViewBase.js +1 -1
  16. package/lib/components/Keyboard/{KeyboardInput/utils → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager}/__tests__/EventEmitterManager.spec.js +1 -1
  17. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/KeyboardRegistry}/__tests__/KeyboardRegistry.spec.js +1 -1
  18. package/lib/components/Keyboard/{KeyboardInput/KeyboardRegistry.d.ts → KeyboardAccessoryView/KeyboardRegistry/index.d.ts} +1 -1
  19. package/lib/components/Keyboard/{KeyboardInput/KeyboardRegistry.js → KeyboardAccessoryView/KeyboardRegistry/index.js} +1 -1
  20. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView/KeyboardRegistry}/keyboardRegistry.api.json +9 -9
  21. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.ts +26 -0
  22. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.js +91 -0
  23. package/lib/components/Keyboard/{KeyboardInput/KeyboardAccessoryView.d.ts → KeyboardAccessoryView/index.d.ts} +11 -1
  24. package/lib/components/Keyboard/{KeyboardInput/KeyboardAccessoryView.js → KeyboardAccessoryView/index.js} +31 -5
  25. package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/keyboardAccessoryView.api.json +5 -5
  26. package/lib/components/Keyboard/{KeyboardTracking/KeyboardAwareInsetsView.d.ts → KeyboardAwareInsetsView/index.d.ts} +1 -1
  27. package/lib/components/Keyboard/{KeyboardTracking/KeyboardAwareInsetsView.js → KeyboardAwareInsetsView/index.js} +1 -1
  28. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.ios.d.ts +1 -4
  29. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.ios.js +5 -8
  30. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.d.ts +2 -2
  31. package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/keyboardTrackingView.api.json +11 -20
  32. package/lib/components/Keyboard/index.d.ts +6 -6
  33. package/lib/components/Keyboard/index.js +6 -6
  34. package/lib/components/SafeArea/SafeAreaInsetsManager.d.ts +21 -7
  35. package/lib/components/SafeArea/SafeAreaInsetsManager.js +95 -31
  36. package/lib/components/SafeArea/SafeAreaSpacerView.d.ts +2 -2
  37. package/lib/components/SafeArea/SafeAreaSpacerView.js +63 -9
  38. package/lib/components/SafeArea/__tests__/SafeAreaInsetsManager.spec.js +274 -0
  39. package/lib/components/SafeArea/index.d.ts +10 -0
  40. package/lib/components/SafeArea/index.js +11 -0
  41. package/lib/components/index.d.ts +1 -1
  42. package/lib/components/index.js +1 -1
  43. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +52 -8
  44. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +1 -7
  45. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +1 -1
  46. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +109 -41
  47. package/lib/package.json +1 -1
  48. package/lib/react-native.config.js +1 -3
  49. package/metro.config.js +2 -2
  50. package/package.json +24 -24
  51. package/panView.d.ts +2 -0
  52. package/panView.js +1 -0
  53. package/react-native.config.js +1 -3
  54. package/src/commons/Constants.js +2 -5
  55. package/src/components/KeyboardAwareScrollView/KeyboardAwareBase.js +5 -1
  56. package/src/components/actionSheet/index.d.ts +2 -12
  57. package/src/components/actionSheet/index.js +3 -42
  58. package/src/components/badge/index.d.ts +107 -47
  59. package/src/components/button/button.api.json +1 -1
  60. package/src/components/button/index.d.ts +53 -23
  61. package/src/components/button/types.d.ts +0 -1
  62. package/src/components/colorPicker/ColorPickerDialog.d.ts +1 -1
  63. package/src/components/colorPicker/ColorPickerDialog.js +1 -1
  64. package/src/components/dateTimePicker/index.d.ts +186 -5
  65. package/src/components/dateTimePicker/index.js +3 -4
  66. package/src/components/dialog/dialog.api.json +31 -37
  67. package/src/{incubator → components}/dialog/dialogHeader.api.json +2 -2
  68. package/src/components/dialog/index.d.ts +13 -105
  69. package/src/components/dialog/index.js +204 -212
  70. package/src/{incubator → components}/dialog/types.d.ts +0 -19
  71. package/src/{incubator → components}/dialog/types.js +1 -3
  72. package/src/{incubator → components}/dialog/useDialogContent.d.ts +1 -1
  73. package/src/components/drawer/Swipeable.js +1 -2
  74. package/src/components/drawer/index.js +31 -25
  75. package/src/components/fadedScrollView/index.js +7 -2
  76. package/src/components/featureHighlight/index.d.ts +1 -1
  77. package/src/components/index.js +0 -19
  78. package/src/components/modal/index.d.ts +5 -0
  79. package/src/components/modal/index.js +14 -10
  80. package/src/components/modal/modal.api.json +5 -0
  81. package/src/{incubator → components}/panView/index.d.ts +3 -3
  82. package/src/{incubator → components}/panView/index.js +4 -4
  83. package/src/{incubator → components}/panView/usePanGesture.d.ts +1 -1
  84. package/src/components/picker/Picker.driver.new.d.ts +2 -2
  85. package/src/components/picker/Picker.driver.new.js +3 -3
  86. package/src/components/picker/PickerItem.js +6 -20
  87. package/src/components/picker/PickerPresenter.d.ts +0 -1
  88. package/src/components/picker/PickerPresenter.js +1 -23
  89. package/src/components/picker/api/picker.api.json +0 -1
  90. package/src/components/picker/api/pickerItem.api.json +0 -5
  91. package/src/components/picker/helpers/useFieldType.d.ts +53 -23
  92. package/src/components/picker/helpers/usePickerLabel.d.ts +1 -1
  93. package/src/components/picker/helpers/usePickerLabel.js +2 -3
  94. package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +1 -1
  95. package/src/components/picker/helpers/usePickerMigrationWarnings.js +0 -12
  96. package/src/components/picker/helpers/usePickerSearch.d.ts +1 -1
  97. package/src/components/picker/helpers/usePickerSearch.js +4 -8
  98. package/src/components/picker/helpers/usePickerSelection.d.ts +1 -1
  99. package/src/components/picker/helpers/usePickerSelection.js +2 -10
  100. package/src/components/picker/index.js +4 -22
  101. package/src/components/picker/types.d.ts +1 -24
  102. package/src/components/segmentedControl/index.js +3 -3
  103. package/src/components/slider/GradientSlider.d.ts +1 -1
  104. package/src/components/sortableGridList/SortableItem.js +13 -4
  105. package/src/components/sortableList/SortableListItem.js +13 -4
  106. package/src/components/stackAggregator/index.js +16 -11
  107. package/src/components/text/Text.driver.new.d.ts +2 -2
  108. package/src/components/text/Text.driver.new.js +2 -2
  109. package/src/components/textField/Input.js +0 -1
  110. package/src/components/textField/TextField.driver.new.d.ts +2 -2
  111. package/src/components/textField/TextField.driver.new.js +2 -2
  112. package/src/components/textField/presets/outline.d.ts +106 -46
  113. package/src/components/textField/presets/underline.d.ts +106 -46
  114. package/src/components/textField/usePreset.d.ts +72 -44
  115. package/src/hooks/index.d.ts +1 -0
  116. package/src/hooks/index.js +1 -0
  117. package/src/{incubator/hooks/useHiddenLocation.web.d.ts → hooks/useHiddenLocation/index.d.ts} +1 -1
  118. package/src/{incubator/hooks/useHiddenLocation.d.ts → hooks/useHiddenLocation/index.web.d.ts} +1 -1
  119. package/src/hooks/useKeyboardHeight/index.d.ts +5 -0
  120. package/src/hooks/useKeyboardHeight/index.js +23 -0
  121. package/src/incubator/expandableOverlay/ExpandableOverlay.driver.js +1 -1
  122. package/src/incubator/expandableOverlay/index.d.ts +42 -3
  123. package/src/incubator/expandableOverlay/index.js +1 -4
  124. package/src/incubator/gradient/BorderGradient.d.ts +4 -0
  125. package/src/incubator/gradient/BorderGradient.js +45 -0
  126. package/src/incubator/gradient/CircleGradient.d.ts +4 -0
  127. package/src/incubator/gradient/CircleGradient.js +35 -0
  128. package/src/incubator/gradient/RectangleGradient.d.ts +4 -0
  129. package/src/incubator/gradient/RectangleGradient.js +32 -0
  130. package/src/incubator/gradient/index.d.ts +5 -0
  131. package/src/incubator/gradient/index.js +31 -0
  132. package/src/incubator/gradient/types.d.ts +26 -0
  133. package/src/incubator/gradient/types.js +1 -0
  134. package/src/incubator/gradient/useAngleTransform.d.ts +27 -0
  135. package/src/incubator/gradient/useAngleTransform.js +72 -0
  136. package/src/incubator/index.d.ts +1 -2
  137. package/src/incubator/index.js +2 -3
  138. package/src/incubator/toast/index.js +1 -1
  139. package/src/index.d.ts +3 -10
  140. package/src/index.js +41 -160
  141. package/src/optionalDependencies/LinearGradientPackage.d.ts +1 -1
  142. package/src/style/borderRadiuses.d.ts +2 -0
  143. package/src/style/borderRadiuses.js +1 -0
  144. package/src/testkit/index.d.ts +1 -1
  145. package/src/testkit/index.js +1 -1
  146. package/src/testkit/new/Component.driver.d.ts +4 -1
  147. package/src/testkit/new/Component.driver.js +3 -3
  148. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReactHacks.java +0 -30
  149. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReflectionUtils.java +0 -34
  150. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/DefaultKeyListener.java +0 -33
  151. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/KeyListenerProxy.java +0 -53
  152. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule.java +0 -54
  153. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerPackage.java +0 -28
  154. package/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/ViewUtils.java +0 -36
  155. package/lib/components/HighlighterOverlayView.js +0 -40
  156. package/lib/components/Keyboard/KeyboardInput/CustomKeyboardView/CustomKeyboardView.android.js +0 -28
  157. package/lib/components/Keyboard/KeyboardInput/utils/KeyboardUtils.d.ts +0 -11
  158. package/lib/components/Keyboard/KeyboardInput/utils/KeyboardUtils.js +0 -17
  159. package/panningViews.d.ts +0 -2
  160. package/panningViews.js +0 -1
  161. package/sharedTransition.d.ts +0 -2
  162. package/sharedTransition.js +0 -1
  163. package/src/components/dialog/DialogDismissibleView.d.ts +0 -34
  164. package/src/components/dialog/DialogDismissibleView.js +0 -184
  165. package/src/components/dialog/OverlayFadingBackground.d.ts +0 -14
  166. package/src/components/dialog/OverlayFadingBackground.js +0 -45
  167. package/src/components/panningViews/asPanViewConsumer.d.ts +0 -3
  168. package/src/components/panningViews/asPanViewConsumer.js +0 -16
  169. package/src/components/panningViews/panDismissibleView.d.ts +0 -51
  170. package/src/components/panningViews/panDismissibleView.js +0 -350
  171. package/src/components/panningViews/panGestureView.d.ts +0 -23
  172. package/src/components/panningViews/panGestureView.js +0 -156
  173. package/src/components/panningViews/panListenerView.d.ts +0 -66
  174. package/src/components/panningViews/panListenerView.js +0 -155
  175. package/src/components/panningViews/panResponderView.d.ts +0 -19
  176. package/src/components/panningViews/panResponderView.js +0 -79
  177. package/src/components/panningViews/panningContext.d.ts +0 -3
  178. package/src/components/panningViews/panningContext.js +0 -4
  179. package/src/components/panningViews/panningProvider.d.ts +0 -73
  180. package/src/components/panningViews/panningProvider.js +0 -101
  181. package/src/components/sharedTransition/ShareTransitionContext.js +0 -3
  182. package/src/components/sharedTransition/SharedArea.js +0 -153
  183. package/src/components/sharedTransition/SourceElement.js +0 -44
  184. package/src/components/sharedTransition/TargetElement.js +0 -38
  185. package/src/components/sharedTransition/index.js +0 -9
  186. package/src/incubator/dialog/dialog.api.json +0 -54
  187. package/src/incubator/dialog/index.d.ts +0 -15
  188. package/src/incubator/dialog/index.js +0 -218
  189. /package/lib/components/{HighlighterOverlayView.web.js → HighlighterOverlayView/index.web.js} +0 -0
  190. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.d.ts +0 -0
  191. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.js +0 -0
  192. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.web.d.ts +0 -0
  193. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/CustomKeyboardView/index.web.js +0 -0
  194. /package/lib/components/Keyboard/{KeyboardInput/utils/EventEmitterManager.d.ts → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.ts} +0 -0
  195. /package/lib/components/Keyboard/{KeyboardInput/utils/EventEmitterManager.js → KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.js} +0 -0
  196. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.android.d.ts +0 -0
  197. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.android.js +0 -0
  198. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.ts +0 -0
  199. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/TextInputKeyboardManager.ios.js +0 -0
  200. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/index.d.ts +0 -0
  201. /package/lib/components/Keyboard/{KeyboardInput → KeyboardAccessoryView}/TextInputKeyboardManager/index.js +0 -0
  202. /package/lib/components/Keyboard/{KeyboardTracking → KeyboardAwareInsetsView}/keyboardAwareInsetsView.api.json +0 -0
  203. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.android.d.ts +0 -0
  204. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/KeyboardTrackingView.android.js +0 -0
  205. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.js +0 -0
  206. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.web.d.ts +0 -0
  207. /package/lib/components/Keyboard/{KeyboardTracking/KeyboardTrackingView → KeyboardTrackingView}/index.web.js +0 -0
  208. /package/src/{incubator → components}/dialog/Dialog.driver.new.d.ts +0 -0
  209. /package/src/{incubator → components}/dialog/Dialog.driver.new.js +0 -0
  210. /package/src/{incubator → components}/dialog/DialogHeader.d.ts +0 -0
  211. /package/src/{incubator → components}/dialog/DialogHeader.js +0 -0
  212. /package/src/{incubator → components}/dialog/useDialogContent.js +0 -0
  213. /package/src/{incubator → components}/panView/panningUtil.d.ts +0 -0
  214. /package/src/{incubator → components}/panView/panningUtil.js +0 -0
  215. /package/src/{incubator → components}/panView/usePanGesture.js +0 -0
  216. /package/src/{incubator/hooks/useHiddenLocation.js → hooks/useHiddenLocation/index.js} +0 -0
  217. /package/src/{incubator/hooks/useHiddenLocation.web.js → hooks/useHiddenLocation/index.web.js} +0 -0
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import { LinearGradientPackage } from "../../optionalDependencies";
3
+ const LinearGradient = LinearGradientPackage?.default;
4
+ import View from "../../components/view";
5
+ import Spacings from "../../style/spacings";
6
+ import Colors from "../../style/colors";
7
+ import useAngleTransform from "./useAngleTransform";
8
+ const BorderGradient = props => {
9
+ const {
10
+ colors,
11
+ borderWidth = Spacings.s1,
12
+ borderRadius,
13
+ children,
14
+ width,
15
+ height,
16
+ angle,
17
+ ...others
18
+ } = props;
19
+ const innerWidth = width ? width - borderWidth * 2 : undefined;
20
+ const innerHeight = height ? height - borderWidth * 2 : undefined;
21
+ const {
22
+ start,
23
+ end
24
+ } = useAngleTransform({
25
+ angle
26
+ });
27
+ if (!LinearGradient) {
28
+ return null;
29
+ }
30
+ return <View width={width} height={height}>
31
+ <LinearGradient colors={colors} start={start} end={end} style={{
32
+ borderRadius
33
+ }}>
34
+ <View bg-white width={innerWidth} height={innerHeight} style={{
35
+ margin: borderWidth,
36
+ borderRadius,
37
+ borderWidth: 0,
38
+ borderColor: Colors.transparent
39
+ }} {...others}>
40
+ {children}
41
+ </View>
42
+ </LinearGradient>
43
+ </View>;
44
+ };
45
+ export default BorderGradient;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { CircleGradientProps } from './types';
3
+ declare const CircleGradient: (props: CircleGradientProps) => React.JSX.Element | null;
4
+ export default CircleGradient;
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { LinearGradientPackage } from "../../optionalDependencies";
3
+ const LinearGradient = LinearGradientPackage?.default;
4
+ import View from "../../components/view";
5
+ import useAngleTransform from "./useAngleTransform";
6
+ const CircleGradient = props => {
7
+ const {
8
+ colors,
9
+ radius,
10
+ angle,
11
+ children,
12
+ ...others
13
+ } = props;
14
+ const internalDiameter = radius ? radius * 2 : undefined;
15
+ const {
16
+ start,
17
+ end
18
+ } = useAngleTransform({
19
+ angle
20
+ });
21
+ if (!LinearGradient) {
22
+ return null;
23
+ }
24
+ return <View width={internalDiameter} height={internalDiameter} style={{
25
+ borderRadius: 999,
26
+ overflow: 'hidden'
27
+ }}>
28
+ <LinearGradient colors={colors} start={start} end={end}>
29
+ <View width={internalDiameter} height={internalDiameter} {...others}>
30
+ {children}
31
+ </View>
32
+ </LinearGradient>
33
+ </View>;
34
+ };
35
+ export default CircleGradient;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { RectangleGradientProps } from './types';
3
+ declare const RectangleGradient: (props: RectangleGradientProps) => React.JSX.Element | null;
4
+ export default RectangleGradient;
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { LinearGradientPackage } from "../../optionalDependencies";
3
+ const LinearGradient = LinearGradientPackage?.default;
4
+ import View from "../../components/view";
5
+ import useAngleTransform from "./useAngleTransform";
6
+ const RectangleGradient = props => {
7
+ const {
8
+ colors,
9
+ width,
10
+ height,
11
+ angle,
12
+ children,
13
+ ...others
14
+ } = props;
15
+ const {
16
+ start,
17
+ end
18
+ } = useAngleTransform({
19
+ angle
20
+ });
21
+ if (!LinearGradient) {
22
+ return null;
23
+ }
24
+ return <View width={width} height={height}>
25
+ <LinearGradient colors={colors} start={start} end={end}>
26
+ <View width={width} height={height} {...others}>
27
+ {children}
28
+ </View>
29
+ </LinearGradient>
30
+ </View>;
31
+ };
32
+ export default RectangleGradient;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { GradientProps } from './types';
3
+ export { GradientProps };
4
+ declare const Gradient: (props: GradientProps) => React.JSX.Element | null;
5
+ export default Gradient;
@@ -0,0 +1,31 @@
1
+ import React, { useEffect } from 'react';
2
+ import { LinearGradientPackage } from "../../optionalDependencies";
3
+ const LinearGradient = LinearGradientPackage?.default;
4
+ import { LogService } from "../../services";
5
+ import { GradientProps } from "./types";
6
+ import RectangleGradient from "./RectangleGradient";
7
+ import CircleGradient from "./CircleGradient";
8
+ import BorderGradient from "./BorderGradient";
9
+ export { GradientProps };
10
+ const Gradient = props => {
11
+ const {
12
+ type = 'rectangle',
13
+ ...others
14
+ } = props;
15
+ useEffect(() => {
16
+ if (LinearGradient === undefined) {
17
+ LogService.error(`RNUILib Gradient requires installing "react-native-linear-gradient" dependency`);
18
+ }
19
+ }, []);
20
+ switch (type) {
21
+ case 'rectangle':
22
+ return <RectangleGradient {...others} />;
23
+ case 'circle':
24
+ return <CircleGradient {...others} />;
25
+ case 'border':
26
+ return <BorderGradient {...others} />;
27
+ default:
28
+ return null;
29
+ }
30
+ };
31
+ export default Gradient;
@@ -0,0 +1,26 @@
1
+ import type { LinearGradientProps } from 'react-native-linear-gradient';
2
+ type CommonGradientProps = Pick<LinearGradientProps, 'colors' | 'children'> & {
3
+ angle?: number;
4
+ center?: boolean;
5
+ centerH?: boolean;
6
+ centerV?: boolean;
7
+ };
8
+ export type GradientProps = ({
9
+ type: 'rectangle';
10
+ } & RectangleGradientProps) | ({
11
+ type: 'circle';
12
+ } & CircleGradientProps) | ({
13
+ type: 'border';
14
+ } & BorderGradientProps);
15
+ export type RectangleGradientProps = CommonGradientProps & {
16
+ width?: number;
17
+ height?: number;
18
+ };
19
+ export type CircleGradientProps = CommonGradientProps & {
20
+ radius: number;
21
+ };
22
+ export type BorderGradientProps = RectangleGradientProps & {
23
+ borderWidth?: number;
24
+ borderRadius?: number;
25
+ };
26
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,27 @@
1
+ declare function getStartEndFromAngle(angle?: number): {
2
+ start: {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ end: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ };
11
+ export declare const _forTesting: {
12
+ getStartEndFromAngle: typeof getStartEndFromAngle;
13
+ };
14
+ export type AngleTransformProps = {
15
+ angle?: number;
16
+ };
17
+ declare const useAngleTransform: (props: AngleTransformProps) => {
18
+ start: {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ end: {
23
+ x: number;
24
+ y: number;
25
+ };
26
+ };
27
+ export default useAngleTransform;
@@ -0,0 +1,72 @@
1
+ import { useMemo } from 'react';
2
+ const EPSILON = 1e-12;
3
+ function getStartEndFromAngle(angle = 0) {
4
+ // Normalize angle to [0, 360)
5
+ let a = angle % 360;
6
+ if (a < 0) {
7
+ a += 360;
8
+ }
9
+ const rad = a * Math.PI / 180;
10
+
11
+ // Direction vector where 0deg points up, 90deg right, etc.
12
+ const vx = Math.sin(rad);
13
+ const vy = -Math.cos(rad);
14
+
15
+ // Distance from center (0.5,0.5) to box edge along v
16
+ const denomX = Math.abs(vx) > EPSILON ? 0.5 / Math.abs(vx) : Number.POSITIVE_INFINITY;
17
+ const denomY = Math.abs(vy) > EPSILON ? 0.5 / Math.abs(vy) : Number.POSITIVE_INFINITY;
18
+ const t = Math.min(denomX, denomY);
19
+ const cx = 0.5;
20
+ const cy = 0.5;
21
+ const end = {
22
+ x: cx + vx * t,
23
+ y: cy + vy * t
24
+ };
25
+ const start = {
26
+ x: cx - vx * t,
27
+ y: cy - vy * t
28
+ };
29
+
30
+ // Quantize to avoid tiny floating errors for canonical angles (0, 45, 90, ...).
31
+ const quantize = v => {
32
+ if (Math.abs(v - 0) < EPSILON) {
33
+ return 0;
34
+ }
35
+ if (Math.abs(v - 0.5) < EPSILON) {
36
+ return 0.5;
37
+ }
38
+ if (Math.abs(v - 1) < EPSILON) {
39
+ return 1;
40
+ }
41
+ // Clamp just in case of tiny over/underflows
42
+ if (v < 0) {
43
+ return 0;
44
+ }
45
+ if (v > 1) {
46
+ return 1;
47
+ }
48
+ return v;
49
+ };
50
+ return {
51
+ start: {
52
+ x: quantize(start.x),
53
+ y: quantize(start.y)
54
+ },
55
+ end: {
56
+ x: quantize(end.x),
57
+ y: quantize(end.y)
58
+ }
59
+ };
60
+ }
61
+ export const _forTesting = {
62
+ getStartEndFromAngle
63
+ }; // exporting private functions for testing only
64
+
65
+ const useAngleTransform = props => {
66
+ const {
67
+ angle
68
+ } = props;
69
+ const startEnd = useMemo(() => getStartEndFromAngle(angle), [angle]);
70
+ return startEnd;
71
+ };
72
+ export default useAngleTransform;
@@ -3,8 +3,7 @@ export { default as ExpandableOverlay, ExpandableOverlayProps, ExpandableOverlay
3
3
  export { default as TextField, TextFieldProps, FieldContextType, TextFieldMethods, TextFieldRef, TextFieldValidationMessagePosition, TextFieldValidator } from '../components/textField';
4
4
  export { default as Toast, ToastProps, ToastPresets } from './toast';
5
5
  export { default as TouchableOpacity, TouchableOpacityProps } from './TouchableOpacity';
6
- export { default as PanView, PanViewProps, PanViewDirections, PanViewDismissThreshold } from './panView';
7
6
  export { default as Slider, SliderRef, SliderProps } from './slider';
8
- export { default as Dialog, DialogProps, DialogHeaderProps, DialogStatics, DialogImperativeMethods } from './dialog';
9
7
  export { default as ChipsInput, ChipsInputProps, ChipsInputChangeReason, ChipsInputChipProps } from '../components/chipsInput';
10
8
  export { default as WheelPicker, WheelPickerProps, WheelPickerItemProps, WheelPickerAlign, WheelPickerItemValue } from '../components/WheelPicker';
9
+ export { default as Gradient, GradientProps } from './gradient';
@@ -4,9 +4,8 @@ export { default as ExpandableOverlay, ExpandableOverlayProps, ExpandableOverlay
4
4
  export { default as TextField, TextFieldProps, FieldContextType, TextFieldMethods, TextFieldRef, TextFieldValidationMessagePosition, TextFieldValidator } from "../components/textField";
5
5
  export { default as Toast, ToastProps, ToastPresets } from "./toast";
6
6
  export { default as TouchableOpacity, TouchableOpacityProps } from "./TouchableOpacity";
7
- export { default as PanView, PanViewProps, PanViewDirections, PanViewDismissThreshold } from "./panView";
8
7
  export { default as Slider, SliderRef, SliderProps } from "./slider";
9
- export { default as Dialog, DialogProps, DialogHeaderProps, DialogStatics, DialogImperativeMethods } from "./dialog";
10
8
  // TODO: delete exports after fully removing from private
11
9
  export { default as ChipsInput, ChipsInputProps, ChipsInputChangeReason, ChipsInputChipProps } from "../components/chipsInput";
12
- export { default as WheelPicker, WheelPickerProps, WheelPickerItemProps, WheelPickerAlign, WheelPickerItemValue } from "../components/WheelPicker";
10
+ export { default as WheelPicker, WheelPickerProps, WheelPickerItemProps, WheelPickerAlign, WheelPickerItemValue } from "../components/WheelPicker";
11
+ export { default as Gradient, GradientProps } from "./gradient";
@@ -7,7 +7,7 @@ import View from "../../components/view";
7
7
  import Text from "../../components/text";
8
8
  import Icon from "../../components/icon";
9
9
  import Button from "../../components/button";
10
- import PanView from "../panView";
10
+ import PanView from "../../components/panView";
11
11
  import { ToastProps, ToastPresets } from "./types";
12
12
  import useToastTimer from "./helpers/useToastTimer";
13
13
  import useToastPresets from "./helpers/useToastPresets";
package/src/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export * from 'uilib-native';
6
6
  export { asBaseComponent, Config, Constants, forwardRef, withScrollEnabler, WithScrollEnablerProps, withScrollReached, WithScrollReachedProps, UIComponent, BaseComponentInjectedProps, ForwardRefInjectedProps, ContainerModifiers, MarginModifiers, PaddingModifiers, TypographyModifiers, ColorsModifiers, BackgroundColorModifier } from './commons/new';
7
7
  export { BaseComponent, PureBaseComponent } from './commons';
8
8
  import * as Incubator from './incubator';
9
- export { ExpandableOverlayProps, ExpandableOverlayMethods, ToastProps, ToastPresets, PanViewProps, PanViewDirections, PanViewDismissThreshold } from './incubator';
9
+ export { ExpandableOverlayProps, ExpandableOverlayMethods, ToastProps, ToastPresets } from './incubator';
10
10
  import * as Hooks from './hooks';
11
11
  import * as Modifiers from './commons/modifiers';
12
12
  export { default as LogService } from './services/LogService';
@@ -32,7 +32,7 @@ export { default as ColorSwatch, ColorSwatchProps, ColorInfo } from './component
32
32
  export { default as ConnectionStatusBar, ConnectionStatusBarProps } from './components/connectionStatusBar';
33
33
  export { default as Dash, DashProps } from './components/dash';
34
34
  export { default as DateTimePicker, DateTimePickerProps, DateTimePickerMode } from './components/dateTimePicker';
35
- export { default as Dialog, DialogProps, DialogDirections, DialogDirectionsEnum } from './components/dialog';
35
+ export { default as Dialog, DialogProps, DialogHeaderProps, DialogStatics, DialogImperativeMethods, DialogDirections, DialogDirectionsEnum } from './components/dialog';
36
36
  export { default as Drawer, DrawerProps, DrawerItemProps } from './components/drawer';
37
37
  export { default as ExpandableSection, ExpandableSectionProps } from './components/expandableSection';
38
38
  export { default as Fader, FaderProps, FaderPosition } from './components/fader';
@@ -60,14 +60,8 @@ export { default as Modal, ModalProps, ModalTopBarProps } from './components/mod
60
60
  export { default as NumberInput, NumberInputProps, NumberInputData } from './components/numberInput';
61
61
  export { default as Overlay, OverlayTypes } from './components/overlay';
62
62
  export { default as PageControl, PageControlProps } from './components/pageControl';
63
- export { default as PanDismissibleView, PanDismissibleViewProps, DismissibleAnimationProps } from './components/panningViews/panDismissibleView';
64
- export { default as PanGestureView, PanGestureViewProps } from './components/panningViews/panGestureView';
65
- export { default as PanListenerView, PanListenerViewProps } from './components/panningViews/panListenerView';
66
- export { default as PanningContext } from './components/panningViews/panningContext';
67
- export { default as PanningProvider, PanningDirections, PanLocationProps, PanAmountsProps, PanDirectionsProps } from './components/panningViews/panningProvider';
68
- export { default as PanResponderView, PanResponderViewProps } from './components/panningViews/panResponderView';
69
- export { default as asPanViewConsumer } from './components/panningViews/asPanViewConsumer';
70
63
  export { default as Picker, PickerProps, PickerItemProps, PickerValue, PickerModes, PickerFieldTypes, PickerSearchStyle, RenderCustomModalProps, PickerItemsListProps, PickerMethods, PickerSelectionStatusProps } from './components/picker';
64
+ export { default as PanView, PanViewProps, PanningDirections, PanningDirectionsEnum, PanViewDirections, PanViewDirectionsEnum, PanViewDismissThreshold } from './components/panView';
71
65
  export { default as PieChart, type PieChartProps, PieChartSegmentProps } from './components/pieChart';
72
66
  export { default as ProgressBar, ProgressBarProps } from './components/progressBar';
73
67
  export { default as ProgressiveImage, ProgressiveImageProps } from './components/progressiveImage';
@@ -79,7 +73,6 @@ export { default as ScrollBar, ScrollBarProps } from './components/scrollBar';
79
73
  export { default as SearchInput, SearchInputProps, SearchInputRef } from './components/searchInput';
80
74
  export { default as SectionsWheelPicker, SectionsWheelPickerProps } from './components/sectionsWheelPicker';
81
75
  export { default as SegmentedControl, SegmentedControlProps, SegmentedControlItemProps, SegmentedControlPreset } from './components/segmentedControl';
82
- export { default as SharedTransition } from './components/sharedTransition';
83
76
  export { default as SkeletonView, SkeletonViewProps } from './components/skeletonView';
84
77
  export { default as SortableGridList, SortableGridListProps } from './components/sortableGridList';
85
78
  export { default as SortableList, SortableListProps, SortableListItemProps } from './components/sortableList';