@nexara/nativeflow 0.1.8 → 0.1.9

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 (269) hide show
  1. package/lib/commonjs/assets/svg/Check.js.map +1 -1
  2. package/lib/commonjs/assets/svg/X.js.map +1 -1
  3. package/lib/commonjs/assets/svg/index.js.map +1 -1
  4. package/lib/commonjs/components/Avatar/AvatarImage.js.map +1 -1
  5. package/lib/commonjs/components/Avatar/AvatarText.js.map +1 -1
  6. package/lib/commonjs/components/Avatar/index.js.map +1 -1
  7. package/lib/commonjs/components/Button/Button.js.map +1 -1
  8. package/lib/commonjs/components/Button/utils.js.map +1 -1
  9. package/lib/commonjs/components/CheckBox/CheckBox.js.map +1 -1
  10. package/lib/commonjs/components/Chip/Chip.js.map +1 -1
  11. package/lib/commonjs/components/Chip/utils.js.map +1 -1
  12. package/lib/commonjs/components/Dialog/Dialog.js.map +1 -1
  13. package/lib/commonjs/components/Dialog/DialogBody.js.map +1 -1
  14. package/lib/commonjs/components/Dialog/DialogDescription.js.map +1 -1
  15. package/lib/commonjs/components/Dialog/DialogFoot.js.map +1 -1
  16. package/lib/commonjs/components/Dialog/DialogHead.js.map +1 -1
  17. package/lib/commonjs/components/Dialog/index.js.map +1 -1
  18. package/lib/commonjs/components/Divider/Divider.js.map +1 -1
  19. package/lib/commonjs/components/Grid/Grid.js.map +1 -1
  20. package/lib/commonjs/components/Icon/Icon.js.map +1 -1
  21. package/lib/commonjs/components/IconButton/IconButton.js.map +1 -1
  22. package/lib/commonjs/components/Link/Link.js.map +1 -1
  23. package/lib/commonjs/components/Menu/Menu.js.map +1 -1
  24. package/lib/commonjs/components/Menu/MenuItem.js.map +1 -1
  25. package/lib/commonjs/components/Menu/MenuItemLabel.js.map +1 -1
  26. package/lib/commonjs/components/Menu/calculations.js.map +1 -1
  27. package/lib/commonjs/components/Menu/index.js.map +1 -1
  28. package/lib/commonjs/components/Portal/Portal.js.map +1 -1
  29. package/lib/commonjs/components/Portal/PortalContext.js.map +1 -1
  30. package/lib/commonjs/components/Portal/PortalProvider.js.map +1 -1
  31. package/lib/commonjs/components/Progress/Progress.js.map +1 -1
  32. package/lib/commonjs/components/Provider/ContextManager.js.map +1 -1
  33. package/lib/commonjs/components/Provider/NativeProvider.js.map +1 -1
  34. package/lib/commonjs/components/Radio/RadioGroup.js.map +1 -1
  35. package/lib/commonjs/components/Radio/RadioItem.js.map +1 -1
  36. package/lib/commonjs/components/Radio/index.js.map +1 -1
  37. package/lib/commonjs/components/Slider/Slider.js.map +1 -1
  38. package/lib/commonjs/components/Stack/HStack.js.map +1 -1
  39. package/lib/commonjs/components/Stack/VStack.js.map +1 -1
  40. package/lib/commonjs/components/Stack/index.js.map +1 -1
  41. package/lib/commonjs/components/StyledComponents/StyledText.js.map +1 -1
  42. package/lib/commonjs/components/StyledComponents/StyledView.js.map +1 -1
  43. package/lib/commonjs/components/StyledComponents/index.js.map +1 -1
  44. package/lib/commonjs/components/Surface/Surface.js.map +1 -1
  45. package/lib/commonjs/components/Switch/Switch.js.map +1 -1
  46. package/lib/commonjs/components/TouchableRipple/TouchableRipple.js.map +1 -1
  47. package/lib/commonjs/components/UserInput/UserInput.js.map +1 -1
  48. package/lib/commonjs/components/UserInput/UserInputV2.js.map +1 -1
  49. package/lib/commonjs/components/UserInput/generateColors.js.map +1 -1
  50. package/lib/commonjs/constants/breakPoints.js.map +1 -1
  51. package/lib/commonjs/constants/dialogSizes.js.map +1 -1
  52. package/lib/commonjs/constants/index.js.map +1 -1
  53. package/lib/commonjs/constants/theme.js.map +1 -1
  54. package/lib/commonjs/constants/typographySizes.js.map +1 -1
  55. package/lib/commonjs/helpers/CalculateGridSize.js +1 -1
  56. package/lib/commonjs/helpers/CalculateGridSize.js.map +1 -1
  57. package/lib/commonjs/helpers/DeviceSizeCategory.js.map +1 -1
  58. package/lib/commonjs/helpers/ResponsiveCalculations.js +4 -1
  59. package/lib/commonjs/helpers/ResponsiveCalculations.js.map +1 -1
  60. package/lib/commonjs/helpers/index.js.map +1 -1
  61. package/lib/commonjs/hooks/index.js.map +1 -1
  62. package/lib/commonjs/hooks/useColorScheme.js.map +1 -1
  63. package/lib/commonjs/hooks/useConditionalWindowDimension.js.map +1 -1
  64. package/lib/commonjs/hooks/useScalingMode.js.map +1 -1
  65. package/lib/commonjs/hooks/useTheme.js.map +1 -1
  66. package/lib/commonjs/index.d.js.map +1 -1
  67. package/lib/commonjs/index.js.map +1 -1
  68. package/lib/commonjs/themes/DarkTheme.js.map +1 -1
  69. package/lib/commonjs/themes/LightTheme.js.map +1 -1
  70. package/lib/commonjs/themes/index.js.map +1 -1
  71. package/lib/commonjs/types/avatar.type.js.map +1 -1
  72. package/lib/commonjs/types/button.type.js.map +1 -1
  73. package/lib/commonjs/types/checkbox.type.js.map +1 -1
  74. package/lib/commonjs/types/chip.type.js.map +1 -1
  75. package/lib/commonjs/types/common.type.js.map +1 -1
  76. package/lib/commonjs/types/dialog.type.js.map +1 -1
  77. package/lib/commonjs/types/divider.type.js.map +1 -1
  78. package/lib/commonjs/types/grid.type.js.map +1 -1
  79. package/lib/commonjs/types/index.js.map +1 -1
  80. package/lib/commonjs/types/link.type.js.map +1 -1
  81. package/lib/commonjs/types/menu.type.js.map +1 -1
  82. package/lib/commonjs/types/progress.type.js.map +1 -1
  83. package/lib/commonjs/types/radio.type.js.map +1 -1
  84. package/lib/commonjs/types/stack.type.js.map +1 -1
  85. package/lib/commonjs/types/styledComponents.type.js.map +1 -1
  86. package/lib/commonjs/types/surface.type.js.map +1 -1
  87. package/lib/commonjs/types/switch.type.js.map +1 -1
  88. package/lib/commonjs/types/userInput.type.js.map +1 -1
  89. package/lib/commonjs/utils/index.js.map +1 -1
  90. package/lib/module/assets/svg/Check.js.map +1 -1
  91. package/lib/module/assets/svg/X.js.map +1 -1
  92. package/lib/module/assets/svg/index.js.map +1 -1
  93. package/lib/module/components/Avatar/AvatarImage.js.map +1 -1
  94. package/lib/module/components/Avatar/AvatarText.js.map +1 -1
  95. package/lib/module/components/Avatar/index.js.map +1 -1
  96. package/lib/module/components/Button/Button.js.map +1 -1
  97. package/lib/module/components/Button/utils.js.map +1 -1
  98. package/lib/module/components/CheckBox/CheckBox.js.map +1 -1
  99. package/lib/module/components/Chip/Chip.js.map +1 -1
  100. package/lib/module/components/Chip/utils.js.map +1 -1
  101. package/lib/module/components/Dialog/Dialog.js.map +1 -1
  102. package/lib/module/components/Dialog/DialogBody.js.map +1 -1
  103. package/lib/module/components/Dialog/DialogDescription.js.map +1 -1
  104. package/lib/module/components/Dialog/DialogFoot.js.map +1 -1
  105. package/lib/module/components/Dialog/DialogHead.js.map +1 -1
  106. package/lib/module/components/Dialog/index.js.map +1 -1
  107. package/lib/module/components/Divider/Divider.js.map +1 -1
  108. package/lib/module/components/Grid/Grid.js.map +1 -1
  109. package/lib/module/components/Icon/Icon.js.map +1 -1
  110. package/lib/module/components/IconButton/IconButton.js.map +1 -1
  111. package/lib/module/components/Link/Link.js.map +1 -1
  112. package/lib/module/components/Menu/Menu.js.map +1 -1
  113. package/lib/module/components/Menu/MenuItem.js.map +1 -1
  114. package/lib/module/components/Menu/MenuItemLabel.js.map +1 -1
  115. package/lib/module/components/Menu/calculations.js.map +1 -1
  116. package/lib/module/components/Menu/index.js.map +1 -1
  117. package/lib/module/components/Portal/Portal.js.map +1 -1
  118. package/lib/module/components/Portal/PortalContext.js.map +1 -1
  119. package/lib/module/components/Portal/PortalProvider.js.map +1 -1
  120. package/lib/module/components/Progress/Progress.js.map +1 -1
  121. package/lib/module/components/Provider/ContextManager.js.map +1 -1
  122. package/lib/module/components/Provider/NativeProvider.js.map +1 -1
  123. package/lib/module/components/Radio/RadioGroup.js.map +1 -1
  124. package/lib/module/components/Radio/RadioItem.js.map +1 -1
  125. package/lib/module/components/Radio/index.js.map +1 -1
  126. package/lib/module/components/Slider/Slider.js.map +1 -1
  127. package/lib/module/components/Stack/HStack.js.map +1 -1
  128. package/lib/module/components/Stack/VStack.js.map +1 -1
  129. package/lib/module/components/Stack/index.js.map +1 -1
  130. package/lib/module/components/StyledComponents/StyledText.js.map +1 -1
  131. package/lib/module/components/StyledComponents/StyledView.js.map +1 -1
  132. package/lib/module/components/StyledComponents/index.js.map +1 -1
  133. package/lib/module/components/Surface/Surface.js.map +1 -1
  134. package/lib/module/components/Switch/Switch.js.map +1 -1
  135. package/lib/module/components/TouchableRipple/TouchableRipple.js.map +1 -1
  136. package/lib/module/components/UserInput/UserInput.js.map +1 -1
  137. package/lib/module/components/UserInput/UserInputV2.js.map +1 -1
  138. package/lib/module/components/UserInput/generateColors.js.map +1 -1
  139. package/lib/module/constants/breakPoints.js.map +1 -1
  140. package/lib/module/constants/dialogSizes.js.map +1 -1
  141. package/lib/module/constants/index.js.map +1 -1
  142. package/lib/module/constants/theme.js.map +1 -1
  143. package/lib/module/constants/typographySizes.js.map +1 -1
  144. package/lib/module/helpers/CalculateGridSize.js +1 -1
  145. package/lib/module/helpers/CalculateGridSize.js.map +1 -1
  146. package/lib/module/helpers/DeviceSizeCategory.js.map +1 -1
  147. package/lib/module/helpers/ResponsiveCalculations.js +4 -1
  148. package/lib/module/helpers/ResponsiveCalculations.js.map +1 -1
  149. package/lib/module/helpers/index.js.map +1 -1
  150. package/lib/module/hooks/index.js.map +1 -1
  151. package/lib/module/hooks/useColorScheme.js.map +1 -1
  152. package/lib/module/hooks/useConditionalWindowDimension.js.map +1 -1
  153. package/lib/module/hooks/useScalingMode.js.map +1 -1
  154. package/lib/module/hooks/useTheme.js.map +1 -1
  155. package/lib/module/index.d.js.map +1 -1
  156. package/lib/module/index.js.map +1 -1
  157. package/lib/module/themes/DarkTheme.js.map +1 -1
  158. package/lib/module/themes/LightTheme.js.map +1 -1
  159. package/lib/module/themes/index.js.map +1 -1
  160. package/lib/module/types/avatar.type.js.map +1 -1
  161. package/lib/module/types/button.type.js.map +1 -1
  162. package/lib/module/types/checkbox.type.js.map +1 -1
  163. package/lib/module/types/chip.type.js.map +1 -1
  164. package/lib/module/types/common.type.js.map +1 -1
  165. package/lib/module/types/dialog.type.js.map +1 -1
  166. package/lib/module/types/divider.type.js.map +1 -1
  167. package/lib/module/types/grid.type.js.map +1 -1
  168. package/lib/module/types/index.js.map +1 -1
  169. package/lib/module/types/link.type.js.map +1 -1
  170. package/lib/module/types/menu.type.js.map +1 -1
  171. package/lib/module/types/progress.type.js.map +1 -1
  172. package/lib/module/types/radio.type.js.map +1 -1
  173. package/lib/module/types/stack.type.js.map +1 -1
  174. package/lib/module/types/styledComponents.type.js.map +1 -1
  175. package/lib/module/types/surface.type.js.map +1 -1
  176. package/lib/module/types/switch.type.js.map +1 -1
  177. package/lib/module/types/userInput.type.js.map +1 -1
  178. package/lib/module/utils/index.js.map +1 -1
  179. package/lib/typescript/commonjs/src/components/UserInput/UserInput.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/src/helpers/ResponsiveCalculations.d.ts.map +1 -1
  181. package/lib/typescript/module/src/components/UserInput/UserInput.d.ts.map +1 -1
  182. package/lib/typescript/module/src/helpers/ResponsiveCalculations.d.ts.map +1 -1
  183. package/package.json +2 -2
  184. package/src/assets/svg/Check.tsx +16 -16
  185. package/src/assets/svg/X.tsx +15 -15
  186. package/src/assets/svg/index.ts +1 -1
  187. package/src/components/Avatar/AvatarImage.tsx +33 -33
  188. package/src/components/Avatar/AvatarText.tsx +34 -34
  189. package/src/components/Avatar/index.ts +8 -8
  190. package/src/components/Button/Button.tsx +205 -205
  191. package/src/components/Button/utils.ts +141 -141
  192. package/src/components/CheckBox/CheckBox.tsx +118 -118
  193. package/src/components/Chip/Chip.tsx +82 -82
  194. package/src/components/Chip/utils.ts +109 -109
  195. package/src/components/Dialog/Dialog.tsx +124 -124
  196. package/src/components/Dialog/DialogBody.tsx +31 -31
  197. package/src/components/Dialog/DialogDescription.tsx +27 -27
  198. package/src/components/Dialog/DialogFoot.tsx +35 -35
  199. package/src/components/Dialog/DialogHead.tsx +50 -50
  200. package/src/components/Dialog/index.ts +10 -10
  201. package/src/components/Divider/Divider.tsx +22 -22
  202. package/src/components/Grid/Grid.tsx +61 -61
  203. package/src/components/Icon/Icon.tsx +31 -31
  204. package/src/components/IconButton/IconButton.tsx +44 -44
  205. package/src/components/Link/Link.tsx +38 -38
  206. package/src/components/Menu/Menu.tsx +142 -142
  207. package/src/components/Menu/MenuItem.tsx +33 -33
  208. package/src/components/Menu/MenuItemLabel.tsx +21 -21
  209. package/src/components/Menu/calculations.ts +33 -33
  210. package/src/components/Menu/index.ts +7 -7
  211. package/src/components/Portal/Portal.tsx +18 -18
  212. package/src/components/Portal/PortalContext.tsx +9 -9
  213. package/src/components/Portal/PortalProvider.tsx +36 -36
  214. package/src/components/Progress/Progress.tsx +66 -66
  215. package/src/components/Provider/ContextManager.tsx +8 -8
  216. package/src/components/Provider/NativeProvider.tsx +72 -72
  217. package/src/components/Radio/RadioGroup.tsx +39 -39
  218. package/src/components/Radio/RadioItem.tsx +72 -72
  219. package/src/components/Radio/index.ts +8 -8
  220. package/src/components/Slider/Slider.tsx +45 -45
  221. package/src/components/Stack/HStack.tsx +32 -32
  222. package/src/components/Stack/VStack.tsx +26 -26
  223. package/src/components/Stack/index.ts +8 -8
  224. package/src/components/StyledComponents/StyledText.tsx +49 -49
  225. package/src/components/StyledComponents/StyledView.tsx +44 -44
  226. package/src/components/StyledComponents/index.tsx +5 -5
  227. package/src/components/Surface/Surface.tsx +31 -31
  228. package/src/components/Switch/Switch.tsx +36 -36
  229. package/src/components/TouchableRipple/TouchableRipple.tsx +92 -92
  230. package/src/components/UserInput/UserInput.tsx +135 -135
  231. package/src/components/UserInput/UserInputV2.tsx +132 -132
  232. package/src/components/UserInput/generateColors.ts +13 -13
  233. package/src/constants/breakPoints.ts +17 -17
  234. package/src/constants/dialogSizes.ts +11 -11
  235. package/src/constants/index.ts +2 -2
  236. package/src/constants/theme.ts +32 -32
  237. package/src/constants/typographySizes.ts +19 -19
  238. package/src/helpers/CalculateGridSize.ts +25 -25
  239. package/src/helpers/DeviceSizeCategory.ts +21 -21
  240. package/src/helpers/ResponsiveCalculations.ts +107 -104
  241. package/src/helpers/index.ts +2 -2
  242. package/src/hooks/index.ts +3 -3
  243. package/src/hooks/useColorScheme.tsx +11 -11
  244. package/src/hooks/useConditionalWindowDimension.tsx +7 -7
  245. package/src/hooks/useScalingMode.tsx +6 -6
  246. package/src/hooks/useTheme.tsx +12 -12
  247. package/src/index.d.ts +2 -2
  248. package/src/index.ts +52 -52
  249. package/src/themes/DarkTheme.ts +177 -177
  250. package/src/themes/LightTheme.ts +88 -88
  251. package/src/themes/index.ts +3 -3
  252. package/src/types/avatar.type.ts +40 -40
  253. package/src/types/button.type.ts +76 -76
  254. package/src/types/checkbox.type.ts +64 -64
  255. package/src/types/chip.type.ts +65 -65
  256. package/src/types/common.type.ts +109 -109
  257. package/src/types/dialog.type.ts +89 -89
  258. package/src/types/divider.type.ts +15 -15
  259. package/src/types/grid.type.ts +71 -71
  260. package/src/types/index.ts +16 -16
  261. package/src/types/link.type.ts +14 -14
  262. package/src/types/menu.type.ts +100 -100
  263. package/src/types/progress.type.ts +15 -15
  264. package/src/types/radio.type.ts +78 -78
  265. package/src/types/stack.type.ts +46 -46
  266. package/src/types/styledComponents.type.ts +70 -70
  267. package/src/types/surface.type.ts +19 -19
  268. package/src/types/switch.type.ts +39 -39
  269. package/src/types/userInput.type.ts +98 -98
@@ -1,67 +1,67 @@
1
- import { useEffect, useMemo, useRef, type FC } from 'react';
2
- import { Animated, StyleSheet } from "react-native";
3
- import { verticalScale } from "../../helpers/ResponsiveCalculations";
4
- import { StyledView } from '../StyledComponents';
5
- import { useTheme } from '../../hooks';
6
- import type { ProgressProps } from '../../types';
7
-
8
- const Progress: FC<ProgressProps> = ({
9
- value = 50,
10
- thickness = 5,
11
- br = 100,
12
- trackColor,
13
- progressColor,
14
- }) => {
15
-
16
- const animatedWidth = useRef(new Animated.Value(value)).current;
17
- const theme = useTheme();
18
- trackColor = theme?.colors.palette.natural[200];
19
-
20
- useEffect(() => {
21
- Animated.timing(animatedWidth, {
22
- toValue: value / 100,
23
- duration: 1000,
24
- useNativeDriver: true,
25
- }).start();
26
- }, [value]);
27
-
28
- const dynamicStyles = useMemo(() => ({
29
- TRACK: {
30
- backgroundColor: trackColor,
31
- borderRadius: verticalScale(br),
32
- height: verticalScale(thickness),
33
- },
34
- TRACK_ITEM: {
35
- backgroundColor: progressColor ?? theme?.colors.brand.primary,
36
- borderRadius: verticalScale(br),
37
- }
38
- }), [br, trackColor, thickness, progressColor, theme]);
39
-
40
- const animatedViewStyle = {
41
- transform: [{ scaleX: animatedWidth }],
42
- transformOrigin: 'left'
43
- }
44
-
45
- return (<>
46
- <StyledView
47
- style={[STYLES.TRACK, dynamicStyles.TRACK]}
48
- >
49
- <Animated.View
50
- style={[STYLES.TRACK_ITEM, dynamicStyles.TRACK_ITEM, animatedViewStyle]}
51
- />
52
- </StyledView>
53
- </>);
54
- };
55
- export default Progress;
56
- export type { ProgressProps };
57
-
58
- const STYLES = StyleSheet.create({
59
- TRACK: {
60
- overflow: 'hidden',
61
- width: '100%',
62
- },
63
- TRACK_ITEM: {
64
- width: "100%",
65
- height: '100%'
66
- }
1
+ import { useEffect, useMemo, useRef, type FC } from 'react';
2
+ import { Animated, StyleSheet } from "react-native";
3
+ import { verticalScale } from "../../helpers/ResponsiveCalculations";
4
+ import { StyledView } from '../StyledComponents';
5
+ import { useTheme } from '../../hooks';
6
+ import type { ProgressProps } from '../../types';
7
+
8
+ const Progress: FC<ProgressProps> = ({
9
+ value = 50,
10
+ thickness = 5,
11
+ br = 100,
12
+ trackColor,
13
+ progressColor,
14
+ }) => {
15
+
16
+ const animatedWidth = useRef(new Animated.Value(value)).current;
17
+ const theme = useTheme();
18
+ trackColor = theme?.colors.palette.natural[200];
19
+
20
+ useEffect(() => {
21
+ Animated.timing(animatedWidth, {
22
+ toValue: value / 100,
23
+ duration: 1000,
24
+ useNativeDriver: true,
25
+ }).start();
26
+ }, [value]);
27
+
28
+ const dynamicStyles = useMemo(() => ({
29
+ TRACK: {
30
+ backgroundColor: trackColor,
31
+ borderRadius: verticalScale(br),
32
+ height: verticalScale(thickness),
33
+ },
34
+ TRACK_ITEM: {
35
+ backgroundColor: progressColor ?? theme?.colors.brand.primary,
36
+ borderRadius: verticalScale(br),
37
+ }
38
+ }), [br, trackColor, thickness, progressColor, theme]);
39
+
40
+ const animatedViewStyle = {
41
+ transform: [{ scaleX: animatedWidth }],
42
+ transformOrigin: 'left'
43
+ }
44
+
45
+ return (<>
46
+ <StyledView
47
+ style={[STYLES.TRACK, dynamicStyles.TRACK]}
48
+ >
49
+ <Animated.View
50
+ style={[STYLES.TRACK_ITEM, dynamicStyles.TRACK_ITEM, animatedViewStyle]}
51
+ />
52
+ </StyledView>
53
+ </>);
54
+ };
55
+ export default Progress;
56
+ export type { ProgressProps };
57
+
58
+ const STYLES = StyleSheet.create({
59
+ TRACK: {
60
+ overflow: 'hidden',
61
+ width: '100%',
62
+ },
63
+ TRACK_ITEM: {
64
+ width: "100%",
65
+ height: '100%'
66
+ }
67
67
  });
@@ -1,9 +1,9 @@
1
- let _contextValue: any = null
2
-
3
- export const setGlobalContext = (ctx: any) => {
4
- _contextValue = ctx;
5
- };
6
-
7
- export const getGlobalContext = () => {
8
- return _contextValue;
1
+ let _contextValue: any = null
2
+
3
+ export const setGlobalContext = (ctx: any) => {
4
+ _contextValue = ctx;
5
+ };
6
+
7
+ export const getGlobalContext = () => {
8
+ return _contextValue;
9
9
  };
@@ -1,73 +1,73 @@
1
- import React, { createContext, useMemo, useState } from 'react';
2
- import type { ReactNode } from "react";
3
- import { LightTheme, DarkTheme } from '../../themes';
4
- import type { scalingModeTypes, Theme, themeModeTypes, ThemeTypes } from '../../types';
5
- import { setGlobalContext } from './ContextManager';
6
-
7
- type ProviderProps = {
8
- /**
9
- * The child components that will be wrapped by the provider.
10
- * This ensures all components within the provider have access to the theme context.
11
- */
12
- children: ReactNode;
13
-
14
- /**
15
- * Determines whether the theme should be responsive based on screen size.
16
- * Default: `true`
17
- */
18
- // isResponsive?: boolean;
19
-
20
- /**
21
- * Custom theme object that overrides the default light/dark themes.
22
- * If not provided, the default themes (LightTheme/DarkTheme) will be used.
23
- */
24
- theme?: Theme;
25
-
26
- options?: {
27
- defaultTheme?: themeModeTypes;
28
- scalingMode?: scalingModeTypes;
29
- }
30
- };
31
-
32
- type ThemeContextType = {
33
- theme?: ThemeTypes & {
34
- toggleThemeMode: () => void;
35
- };
36
- mode?: themeModeTypes;
37
- scaling: { mode: scalingModeTypes }
38
- };
39
-
40
-
41
- export const Context = createContext<ThemeContextType>({
42
- mode: 'light',
43
- theme: { ...LightTheme, toggleThemeMode: () => { } },
44
- scaling: { mode: 'partial' }
45
- });
46
-
47
- const NativeProvider: React.FC<ProviderProps> = ({
48
- children,
49
- theme,
50
- options
51
- }) => {
52
- const [mode, setMode] = useState<themeModeTypes>(options?.defaultTheme ?? 'light');
53
- const toggleThemeMode = () => setMode((prev) => prev === 'dark' ? 'light' : 'dark');
54
- const setTheme = { ...((theme && theme[mode]) || (mode === 'light' ? LightTheme : DarkTheme)), toggleThemeMode };
55
- const value = useMemo(() => ({
56
- theme: setTheme,
57
- mode,
58
- scaling: { mode: options?.scalingMode ?? 'partial' }
59
- }), [theme, mode, options]);
60
-
61
- // useLayoutEffect(() => {
62
- // setGlobalContext(value);
63
- // }, [value]);
64
- setGlobalContext(value);
65
-
66
- return (<>
67
- <Context.Provider value={value}>
68
- {children}
69
- </Context.Provider>
70
- </>);
71
- }
72
- export default NativeProvider;
1
+ import React, { createContext, useMemo, useState } from 'react';
2
+ import type { ReactNode } from "react";
3
+ import { LightTheme, DarkTheme } from '../../themes';
4
+ import type { scalingModeTypes, Theme, themeModeTypes, ThemeTypes } from '../../types';
5
+ import { setGlobalContext } from './ContextManager';
6
+
7
+ type ProviderProps = {
8
+ /**
9
+ * The child components that will be wrapped by the provider.
10
+ * This ensures all components within the provider have access to the theme context.
11
+ */
12
+ children: ReactNode;
13
+
14
+ /**
15
+ * Determines whether the theme should be responsive based on screen size.
16
+ * Default: `true`
17
+ */
18
+ // isResponsive?: boolean;
19
+
20
+ /**
21
+ * Custom theme object that overrides the default light/dark themes.
22
+ * If not provided, the default themes (LightTheme/DarkTheme) will be used.
23
+ */
24
+ theme?: Theme;
25
+
26
+ options?: {
27
+ defaultTheme?: themeModeTypes;
28
+ scalingMode?: scalingModeTypes;
29
+ }
30
+ };
31
+
32
+ type ThemeContextType = {
33
+ theme?: ThemeTypes & {
34
+ toggleThemeMode: () => void;
35
+ };
36
+ mode?: themeModeTypes;
37
+ scaling: { mode: scalingModeTypes }
38
+ };
39
+
40
+
41
+ export const Context = createContext<ThemeContextType>({
42
+ mode: 'light',
43
+ theme: { ...LightTheme, toggleThemeMode: () => { } },
44
+ scaling: { mode: 'partial' }
45
+ });
46
+
47
+ const NativeProvider: React.FC<ProviderProps> = ({
48
+ children,
49
+ theme,
50
+ options
51
+ }) => {
52
+ const [mode, setMode] = useState<themeModeTypes>(options?.defaultTheme ?? 'light');
53
+ const toggleThemeMode = () => setMode((prev) => prev === 'dark' ? 'light' : 'dark');
54
+ const setTheme = { ...((theme && theme[mode]) || (mode === 'light' ? LightTheme : DarkTheme)), toggleThemeMode };
55
+ const value = useMemo(() => ({
56
+ theme: setTheme,
57
+ mode,
58
+ scaling: { mode: options?.scalingMode ?? 'partial' }
59
+ }), [theme, mode, options]);
60
+
61
+ // useLayoutEffect(() => {
62
+ // setGlobalContext(value);
63
+ // }, [value]);
64
+ setGlobalContext(value);
65
+
66
+ return (<>
67
+ <Context.Provider value={value}>
68
+ {children}
69
+ </Context.Provider>
70
+ </>);
71
+ }
72
+ export default NativeProvider;
73
73
  export type { ProviderProps };
@@ -1,40 +1,40 @@
1
- import React, { useCallback, useState, type FC } from "react";
2
- import { StyledView } from "../StyledComponents";
3
- import type { RadioGroupProps } from "../../types";
4
-
5
-
6
- const RadioGroup: FC<RadioGroupProps> = ({
7
- name,
8
- defaultValue,
9
- children,
10
- onSelect,
11
- ...rest
12
- }) => {
13
-
14
- const [selectedChildren, setSelectedChildren] = useState<string>(defaultValue ?? '');
15
-
16
- const renderChildren = useCallback(() => {
17
- return React.Children.toArray(children).map((child) => {
18
- if (React.isValidElement<{ name: string; value: string; active: boolean; disabled?: boolean; onPress: () => void; }>(child)) {
19
- return React.cloneElement(child, {
20
- active: selectedChildren === child.props.value,
21
- onPress: () => {
22
- if (!('disabled' in child.props) && !child?.props?.disabled) {
23
- child.props?.onPress?.();
24
- onSelect?.(name || child.props.name, child.props.value);
25
- setSelectedChildren(child?.props?.value);
26
- }
27
- }
28
- })
29
- }
30
- return null;
31
- })
32
- }, [children, selectedChildren]);
33
-
34
- return (<>
35
- <StyledView flexDirection='row' gap={15} {...rest}>
36
- {renderChildren()}
37
- </StyledView>
38
- </>);
39
- }
1
+ import React, { useCallback, useState, type FC } from "react";
2
+ import { StyledView } from "../StyledComponents";
3
+ import type { RadioGroupProps } from "../../types";
4
+
5
+
6
+ const RadioGroup: FC<RadioGroupProps> = ({
7
+ name,
8
+ defaultValue,
9
+ children,
10
+ onSelect,
11
+ ...rest
12
+ }) => {
13
+
14
+ const [selectedChildren, setSelectedChildren] = useState<string>(defaultValue ?? '');
15
+
16
+ const renderChildren = useCallback(() => {
17
+ return React.Children.toArray(children).map((child) => {
18
+ if (React.isValidElement<{ name: string; value: string; active: boolean; disabled?: boolean; onPress: () => void; }>(child)) {
19
+ return React.cloneElement(child, {
20
+ active: selectedChildren === child.props.value,
21
+ onPress: () => {
22
+ if (!('disabled' in child.props) && !child?.props?.disabled) {
23
+ child.props?.onPress?.();
24
+ onSelect?.(name || child.props.name, child.props.value);
25
+ setSelectedChildren(child?.props?.value);
26
+ }
27
+ }
28
+ })
29
+ }
30
+ return null;
31
+ })
32
+ }, [children, selectedChildren]);
33
+
34
+ return (<>
35
+ <StyledView flexDirection='row' gap={15} {...rest}>
36
+ {renderChildren()}
37
+ </StyledView>
38
+ </>);
39
+ }
40
40
  export default RadioGroup;
@@ -1,72 +1,72 @@
1
- import { useMemo, type FC } from "react";
2
- import { StyledText, StyledView } from "../StyledComponents";
3
- import { StyleSheet, TouchableOpacity, type ViewStyle } from "react-native";
4
- import { horizontalScale } from "../../helpers";
5
- import { useTheme } from "../../hooks";
6
- import type { RadioItemProps } from "../../types";
7
-
8
- const RadioItem: FC<RadioItemProps> = ({
9
- size = 22,
10
- stroke = 2,
11
- color,
12
- active = false,
13
- name,
14
- disabled,
15
- label,
16
- fs,
17
- fScale = 'base',
18
- ff,
19
- labelStyle,
20
- ...rest
21
- }) => {
22
-
23
- const STYLES = useMemo(customStyles, []);
24
- const theme = useTheme();
25
-
26
- const themedColor = (disabled && theme?.colors.states.disabled) || (color ?? theme?.colors.brand.primary);
27
-
28
- const dynamicStyles: ViewStyle = {
29
- borderColor: themedColor,
30
- borderWidth: stroke,
31
- padding: 2,
32
- height: size,
33
- width: size,
34
- }
35
- return (<>
36
- <TouchableOpacity
37
- {...rest}
38
- >
39
- <StyledView style={STYLES.MAIN_CONT}>
40
- <StyledView style={[STYLES.RADIO_OUTER_CONT, dynamicStyles]}>
41
- {
42
- active &&
43
- <StyledView style={[STYLES.RADIO_INNER_CONT]} bg={themedColor} />
44
- }
45
- </StyledView>
46
- {
47
- label &&
48
- <StyledText variant={disabled ? 'disabled' : 'primary'} ff={ff} fs={fs} fScale={fScale} style={labelStyle} >{label}</StyledText>
49
- }
50
- </StyledView>
51
- </TouchableOpacity>
52
- </>);
53
- }
54
-
55
- export default RadioItem;
56
-
57
- const customStyles = () => StyleSheet.create({
58
- MAIN_CONT: {
59
- flexDirection: 'row',
60
- gap: horizontalScale(15),
61
- alignItems: 'center',
62
- },
63
- RADIO_OUTER_CONT: {
64
- borderRadius: 100,
65
- overflow: 'hidden'
66
- },
67
- RADIO_INNER_CONT: {
68
- width: '100%',
69
- height: '100%',
70
- borderRadius: 100
71
- }
72
- });
1
+ import { useMemo, type FC } from "react";
2
+ import { StyledText, StyledView } from "../StyledComponents";
3
+ import { StyleSheet, TouchableOpacity, type ViewStyle } from "react-native";
4
+ import { horizontalScale } from "../../helpers";
5
+ import { useTheme } from "../../hooks";
6
+ import type { RadioItemProps } from "../../types";
7
+
8
+ const RadioItem: FC<RadioItemProps> = ({
9
+ size = 22,
10
+ stroke = 2,
11
+ color,
12
+ active = false,
13
+ name,
14
+ disabled,
15
+ label,
16
+ fs,
17
+ fScale = 'base',
18
+ ff,
19
+ labelStyle,
20
+ ...rest
21
+ }) => {
22
+
23
+ const STYLES = useMemo(customStyles, []);
24
+ const theme = useTheme();
25
+
26
+ const themedColor = (disabled && theme?.colors.states.disabled) || (color ?? theme?.colors.brand.primary);
27
+
28
+ const dynamicStyles: ViewStyle = {
29
+ borderColor: themedColor,
30
+ borderWidth: stroke,
31
+ padding: 2,
32
+ height: size,
33
+ width: size,
34
+ }
35
+ return (<>
36
+ <TouchableOpacity
37
+ {...rest}
38
+ >
39
+ <StyledView style={STYLES.MAIN_CONT}>
40
+ <StyledView style={[STYLES.RADIO_OUTER_CONT, dynamicStyles]}>
41
+ {
42
+ active &&
43
+ <StyledView style={[STYLES.RADIO_INNER_CONT]} bg={themedColor} />
44
+ }
45
+ </StyledView>
46
+ {
47
+ label &&
48
+ <StyledText variant={disabled ? 'disabled' : 'primary'} ff={ff} fs={fs} fScale={fScale} style={labelStyle} >{label}</StyledText>
49
+ }
50
+ </StyledView>
51
+ </TouchableOpacity>
52
+ </>);
53
+ }
54
+
55
+ export default RadioItem;
56
+
57
+ const customStyles = () => StyleSheet.create({
58
+ MAIN_CONT: {
59
+ flexDirection: 'row',
60
+ gap: horizontalScale(15),
61
+ alignItems: 'center',
62
+ },
63
+ RADIO_OUTER_CONT: {
64
+ borderRadius: 100,
65
+ overflow: 'hidden'
66
+ },
67
+ RADIO_INNER_CONT: {
68
+ width: '100%',
69
+ height: '100%',
70
+ borderRadius: 100
71
+ }
72
+ });
@@ -1,9 +1,9 @@
1
- import RadioGroup from "./RadioGroup";
2
- import RadioItem from "./RadioItem";
3
-
4
- const Radio = {
5
- Group: RadioGroup,
6
- Item: RadioItem
7
- }
8
-
1
+ import RadioGroup from "./RadioGroup";
2
+ import RadioItem from "./RadioItem";
3
+
4
+ const Radio = {
5
+ Group: RadioGroup,
6
+ Item: RadioItem
7
+ }
8
+
9
9
  export default Radio;
@@ -1,45 +1,45 @@
1
- import React from 'react';
2
- import { StyleSheet } from "react-native";
3
- import { verticalScale, } from "../../helpers/ResponsiveCalculations";
4
- import { StyledView } from '../StyledComponents';
5
-
6
-
7
- type SliderProps = {
8
- value?: number;
9
- size?: number;
10
- trackColor?: string;
11
- progressColor?: string;
12
- }
13
-
14
- const Slider: React.FC<SliderProps> = ({
15
- value = 50,
16
- size = 5,
17
- trackColor = '#645E64',
18
- progressColor = '#fff',
19
- }) => {
20
-
21
- const STYLES = StyleSheet.create({
22
- TRACK: {
23
- backgroundColor: trackColor,
24
- // borderRadius: moderateScale(100),
25
- // overflow: 'hidden'
26
- },
27
- TRACK_ITEM: {
28
- backgroundColor: progressColor,
29
- height: verticalScale(size),
30
- width: `${value}%`,
31
- // borderRadius: moderateScale(100)
32
- }
33
- });
34
-
35
-
36
- return (<>
37
- <StyledView f={1} style={STYLES.TRACK}>
38
- <StyledView style={STYLES.TRACK_ITEM} >
39
-
40
- </StyledView>
41
- </StyledView>
42
- </>);
43
- };
44
- export default Slider;
45
- export type { SliderProps };
1
+ import React from 'react';
2
+ import { StyleSheet } from "react-native";
3
+ import { verticalScale, } from "../../helpers/ResponsiveCalculations";
4
+ import { StyledView } from '../StyledComponents';
5
+
6
+
7
+ type SliderProps = {
8
+ value?: number;
9
+ size?: number;
10
+ trackColor?: string;
11
+ progressColor?: string;
12
+ }
13
+
14
+ const Slider: React.FC<SliderProps> = ({
15
+ value = 50,
16
+ size = 5,
17
+ trackColor = '#645E64',
18
+ progressColor = '#fff',
19
+ }) => {
20
+
21
+ const STYLES = StyleSheet.create({
22
+ TRACK: {
23
+ backgroundColor: trackColor,
24
+ // borderRadius: moderateScale(100),
25
+ // overflow: 'hidden'
26
+ },
27
+ TRACK_ITEM: {
28
+ backgroundColor: progressColor,
29
+ height: verticalScale(size),
30
+ width: `${value}%`,
31
+ // borderRadius: moderateScale(100)
32
+ }
33
+ });
34
+
35
+
36
+ return (<>
37
+ <StyledView f={1} style={STYLES.TRACK}>
38
+ <StyledView style={STYLES.TRACK_ITEM} >
39
+
40
+ </StyledView>
41
+ </StyledView>
42
+ </>);
43
+ };
44
+ export default Slider;
45
+ export type { SliderProps };