@nexara/nativeflow 0.1.8 → 0.1.10

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 (291) 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 +9 -4
  8. package/lib/commonjs/components/Button/Button.js.map +1 -1
  9. package/lib/commonjs/components/Button/utils.js +17 -10
  10. package/lib/commonjs/components/Button/utils.js.map +1 -1
  11. package/lib/commonjs/components/CheckBox/CheckBox.js.map +1 -1
  12. package/lib/commonjs/components/Chip/Chip.js.map +1 -1
  13. package/lib/commonjs/components/Chip/utils.js.map +1 -1
  14. package/lib/commonjs/components/Dialog/Dialog.js.map +1 -1
  15. package/lib/commonjs/components/Dialog/DialogBody.js.map +1 -1
  16. package/lib/commonjs/components/Dialog/DialogDescription.js.map +1 -1
  17. package/lib/commonjs/components/Dialog/DialogFoot.js.map +1 -1
  18. package/lib/commonjs/components/Dialog/DialogHead.js.map +1 -1
  19. package/lib/commonjs/components/Dialog/index.js.map +1 -1
  20. package/lib/commonjs/components/Divider/Divider.js.map +1 -1
  21. package/lib/commonjs/components/Grid/Grid.js.map +1 -1
  22. package/lib/commonjs/components/Icon/Icon.js.map +1 -1
  23. package/lib/commonjs/components/IconButton/IconButton.js.map +1 -1
  24. package/lib/commonjs/components/Link/Link.js.map +1 -1
  25. package/lib/commonjs/components/Menu/Menu.js.map +1 -1
  26. package/lib/commonjs/components/Menu/MenuItem.js.map +1 -1
  27. package/lib/commonjs/components/Menu/MenuItemLabel.js.map +1 -1
  28. package/lib/commonjs/components/Menu/calculations.js.map +1 -1
  29. package/lib/commonjs/components/Menu/index.js.map +1 -1
  30. package/lib/commonjs/components/Portal/Portal.js.map +1 -1
  31. package/lib/commonjs/components/Portal/PortalContext.js.map +1 -1
  32. package/lib/commonjs/components/Portal/PortalProvider.js.map +1 -1
  33. package/lib/commonjs/components/Progress/Progress.js.map +1 -1
  34. package/lib/commonjs/components/Provider/ContextManager.js.map +1 -1
  35. package/lib/commonjs/components/Provider/NativeProvider.js.map +1 -1
  36. package/lib/commonjs/components/Radio/RadioGroup.js.map +1 -1
  37. package/lib/commonjs/components/Radio/RadioItem.js.map +1 -1
  38. package/lib/commonjs/components/Radio/index.js.map +1 -1
  39. package/lib/commonjs/components/Slider/Slider.js.map +1 -1
  40. package/lib/commonjs/components/Stack/HStack.js.map +1 -1
  41. package/lib/commonjs/components/Stack/VStack.js.map +1 -1
  42. package/lib/commonjs/components/Stack/index.js.map +1 -1
  43. package/lib/commonjs/components/StyledComponents/StyledText.js +3 -1
  44. package/lib/commonjs/components/StyledComponents/StyledText.js.map +1 -1
  45. package/lib/commonjs/components/StyledComponents/StyledView.js.map +1 -1
  46. package/lib/commonjs/components/StyledComponents/index.js.map +1 -1
  47. package/lib/commonjs/components/Surface/Surface.js +3 -3
  48. package/lib/commonjs/components/Surface/Surface.js.map +1 -1
  49. package/lib/commonjs/components/Switch/Switch.js.map +1 -1
  50. package/lib/commonjs/components/TouchableRipple/TouchableRipple.js.map +1 -1
  51. package/lib/commonjs/components/UserInput/UserInput.js.map +1 -1
  52. package/lib/commonjs/components/UserInput/UserInputV2.js.map +1 -1
  53. package/lib/commonjs/components/UserInput/generateColors.js.map +1 -1
  54. package/lib/commonjs/constants/breakPoints.js.map +1 -1
  55. package/lib/commonjs/constants/dialogSizes.js.map +1 -1
  56. package/lib/commonjs/constants/index.js.map +1 -1
  57. package/lib/commonjs/constants/theme.js.map +1 -1
  58. package/lib/commonjs/constants/typographySizes.js.map +1 -1
  59. package/lib/commonjs/helpers/CalculateGridSize.js +1 -1
  60. package/lib/commonjs/helpers/CalculateGridSize.js.map +1 -1
  61. package/lib/commonjs/helpers/DeviceSizeCategory.js.map +1 -1
  62. package/lib/commonjs/helpers/ResponsiveCalculations.js +4 -1
  63. package/lib/commonjs/helpers/ResponsiveCalculations.js.map +1 -1
  64. package/lib/commonjs/helpers/index.js.map +1 -1
  65. package/lib/commonjs/hooks/index.js.map +1 -1
  66. package/lib/commonjs/hooks/useColorScheme.js.map +1 -1
  67. package/lib/commonjs/hooks/useConditionalWindowDimension.js.map +1 -1
  68. package/lib/commonjs/hooks/useScalingMode.js.map +1 -1
  69. package/lib/commonjs/hooks/useTheme.js.map +1 -1
  70. package/lib/commonjs/index.d.js.map +1 -1
  71. package/lib/commonjs/index.js.map +1 -1
  72. package/lib/commonjs/themes/DarkTheme.js.map +1 -1
  73. package/lib/commonjs/themes/LightTheme.js.map +1 -1
  74. package/lib/commonjs/themes/index.js.map +1 -1
  75. package/lib/commonjs/types/avatar.type.js.map +1 -1
  76. package/lib/commonjs/types/button.type.js.map +1 -1
  77. package/lib/commonjs/types/checkbox.type.js.map +1 -1
  78. package/lib/commonjs/types/chip.type.js.map +1 -1
  79. package/lib/commonjs/types/common.type.js.map +1 -1
  80. package/lib/commonjs/types/dialog.type.js.map +1 -1
  81. package/lib/commonjs/types/divider.type.js.map +1 -1
  82. package/lib/commonjs/types/grid.type.js.map +1 -1
  83. package/lib/commonjs/types/index.js.map +1 -1
  84. package/lib/commonjs/types/link.type.js.map +1 -1
  85. package/lib/commonjs/types/menu.type.js.map +1 -1
  86. package/lib/commonjs/types/progress.type.js.map +1 -1
  87. package/lib/commonjs/types/radio.type.js.map +1 -1
  88. package/lib/commonjs/types/stack.type.js.map +1 -1
  89. package/lib/commonjs/types/styledComponents.type.js.map +1 -1
  90. package/lib/commonjs/types/surface.type.js.map +1 -1
  91. package/lib/commonjs/types/switch.type.js.map +1 -1
  92. package/lib/commonjs/types/userInput.type.js.map +1 -1
  93. package/lib/commonjs/utils/index.js.map +1 -1
  94. package/lib/module/assets/svg/Check.js.map +1 -1
  95. package/lib/module/assets/svg/X.js.map +1 -1
  96. package/lib/module/assets/svg/index.js.map +1 -1
  97. package/lib/module/components/Avatar/AvatarImage.js.map +1 -1
  98. package/lib/module/components/Avatar/AvatarText.js.map +1 -1
  99. package/lib/module/components/Avatar/index.js.map +1 -1
  100. package/lib/module/components/Button/Button.js +10 -5
  101. package/lib/module/components/Button/Button.js.map +1 -1
  102. package/lib/module/components/Button/utils.js +17 -10
  103. package/lib/module/components/Button/utils.js.map +1 -1
  104. package/lib/module/components/CheckBox/CheckBox.js.map +1 -1
  105. package/lib/module/components/Chip/Chip.js.map +1 -1
  106. package/lib/module/components/Chip/utils.js.map +1 -1
  107. package/lib/module/components/Dialog/Dialog.js.map +1 -1
  108. package/lib/module/components/Dialog/DialogBody.js.map +1 -1
  109. package/lib/module/components/Dialog/DialogDescription.js.map +1 -1
  110. package/lib/module/components/Dialog/DialogFoot.js.map +1 -1
  111. package/lib/module/components/Dialog/DialogHead.js.map +1 -1
  112. package/lib/module/components/Dialog/index.js.map +1 -1
  113. package/lib/module/components/Divider/Divider.js.map +1 -1
  114. package/lib/module/components/Grid/Grid.js.map +1 -1
  115. package/lib/module/components/Icon/Icon.js.map +1 -1
  116. package/lib/module/components/IconButton/IconButton.js.map +1 -1
  117. package/lib/module/components/Link/Link.js.map +1 -1
  118. package/lib/module/components/Menu/Menu.js.map +1 -1
  119. package/lib/module/components/Menu/MenuItem.js.map +1 -1
  120. package/lib/module/components/Menu/MenuItemLabel.js.map +1 -1
  121. package/lib/module/components/Menu/calculations.js.map +1 -1
  122. package/lib/module/components/Menu/index.js.map +1 -1
  123. package/lib/module/components/Portal/Portal.js.map +1 -1
  124. package/lib/module/components/Portal/PortalContext.js.map +1 -1
  125. package/lib/module/components/Portal/PortalProvider.js.map +1 -1
  126. package/lib/module/components/Progress/Progress.js.map +1 -1
  127. package/lib/module/components/Provider/ContextManager.js.map +1 -1
  128. package/lib/module/components/Provider/NativeProvider.js.map +1 -1
  129. package/lib/module/components/Radio/RadioGroup.js.map +1 -1
  130. package/lib/module/components/Radio/RadioItem.js.map +1 -1
  131. package/lib/module/components/Radio/index.js.map +1 -1
  132. package/lib/module/components/Slider/Slider.js.map +1 -1
  133. package/lib/module/components/Stack/HStack.js.map +1 -1
  134. package/lib/module/components/Stack/VStack.js.map +1 -1
  135. package/lib/module/components/Stack/index.js.map +1 -1
  136. package/lib/module/components/StyledComponents/StyledText.js +3 -1
  137. package/lib/module/components/StyledComponents/StyledText.js.map +1 -1
  138. package/lib/module/components/StyledComponents/StyledView.js.map +1 -1
  139. package/lib/module/components/StyledComponents/index.js.map +1 -1
  140. package/lib/module/components/Surface/Surface.js +3 -3
  141. package/lib/module/components/Surface/Surface.js.map +1 -1
  142. package/lib/module/components/Switch/Switch.js.map +1 -1
  143. package/lib/module/components/TouchableRipple/TouchableRipple.js.map +1 -1
  144. package/lib/module/components/UserInput/UserInput.js.map +1 -1
  145. package/lib/module/components/UserInput/UserInputV2.js.map +1 -1
  146. package/lib/module/components/UserInput/generateColors.js.map +1 -1
  147. package/lib/module/constants/breakPoints.js.map +1 -1
  148. package/lib/module/constants/dialogSizes.js.map +1 -1
  149. package/lib/module/constants/index.js.map +1 -1
  150. package/lib/module/constants/theme.js.map +1 -1
  151. package/lib/module/constants/typographySizes.js.map +1 -1
  152. package/lib/module/helpers/CalculateGridSize.js +1 -1
  153. package/lib/module/helpers/CalculateGridSize.js.map +1 -1
  154. package/lib/module/helpers/DeviceSizeCategory.js.map +1 -1
  155. package/lib/module/helpers/ResponsiveCalculations.js +4 -1
  156. package/lib/module/helpers/ResponsiveCalculations.js.map +1 -1
  157. package/lib/module/helpers/index.js.map +1 -1
  158. package/lib/module/hooks/index.js.map +1 -1
  159. package/lib/module/hooks/useColorScheme.js.map +1 -1
  160. package/lib/module/hooks/useConditionalWindowDimension.js.map +1 -1
  161. package/lib/module/hooks/useScalingMode.js.map +1 -1
  162. package/lib/module/hooks/useTheme.js.map +1 -1
  163. package/lib/module/index.d.js.map +1 -1
  164. package/lib/module/index.js.map +1 -1
  165. package/lib/module/themes/DarkTheme.js.map +1 -1
  166. package/lib/module/themes/LightTheme.js.map +1 -1
  167. package/lib/module/themes/index.js.map +1 -1
  168. package/lib/module/types/avatar.type.js.map +1 -1
  169. package/lib/module/types/button.type.js.map +1 -1
  170. package/lib/module/types/checkbox.type.js.map +1 -1
  171. package/lib/module/types/chip.type.js.map +1 -1
  172. package/lib/module/types/common.type.js.map +1 -1
  173. package/lib/module/types/dialog.type.js.map +1 -1
  174. package/lib/module/types/divider.type.js.map +1 -1
  175. package/lib/module/types/grid.type.js.map +1 -1
  176. package/lib/module/types/index.js.map +1 -1
  177. package/lib/module/types/link.type.js.map +1 -1
  178. package/lib/module/types/menu.type.js.map +1 -1
  179. package/lib/module/types/progress.type.js.map +1 -1
  180. package/lib/module/types/radio.type.js.map +1 -1
  181. package/lib/module/types/stack.type.js.map +1 -1
  182. package/lib/module/types/styledComponents.type.js.map +1 -1
  183. package/lib/module/types/surface.type.js.map +1 -1
  184. package/lib/module/types/switch.type.js.map +1 -1
  185. package/lib/module/types/userInput.type.js.map +1 -1
  186. package/lib/module/utils/index.js.map +1 -1
  187. package/lib/typescript/commonjs/src/components/Button/Button.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/src/components/Button/utils.d.ts +2 -1
  189. package/lib/typescript/commonjs/src/components/Button/utils.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/src/components/UserInput/UserInput.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/src/helpers/ResponsiveCalculations.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/src/types/button.type.d.ts +2 -0
  193. package/lib/typescript/commonjs/src/types/button.type.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/src/types/surface.type.d.ts +1 -1
  195. package/lib/typescript/commonjs/src/types/surface.type.d.ts.map +1 -1
  196. package/lib/typescript/module/src/components/Button/Button.d.ts.map +1 -1
  197. package/lib/typescript/module/src/components/Button/utils.d.ts +2 -1
  198. package/lib/typescript/module/src/components/Button/utils.d.ts.map +1 -1
  199. package/lib/typescript/module/src/components/UserInput/UserInput.d.ts.map +1 -1
  200. package/lib/typescript/module/src/helpers/ResponsiveCalculations.d.ts.map +1 -1
  201. package/lib/typescript/module/src/types/button.type.d.ts +2 -0
  202. package/lib/typescript/module/src/types/button.type.d.ts.map +1 -1
  203. package/lib/typescript/module/src/types/surface.type.d.ts +1 -1
  204. package/lib/typescript/module/src/types/surface.type.d.ts.map +1 -1
  205. package/package.json +2 -2
  206. package/src/assets/svg/Check.tsx +16 -16
  207. package/src/assets/svg/X.tsx +15 -15
  208. package/src/assets/svg/index.ts +1 -1
  209. package/src/components/Avatar/AvatarImage.tsx +33 -33
  210. package/src/components/Avatar/AvatarText.tsx +34 -34
  211. package/src/components/Avatar/index.ts +8 -8
  212. package/src/components/Button/Button.tsx +216 -205
  213. package/src/components/Button/utils.ts +152 -141
  214. package/src/components/CheckBox/CheckBox.tsx +118 -118
  215. package/src/components/Chip/Chip.tsx +82 -82
  216. package/src/components/Chip/utils.ts +109 -109
  217. package/src/components/Dialog/Dialog.tsx +124 -124
  218. package/src/components/Dialog/DialogBody.tsx +31 -31
  219. package/src/components/Dialog/DialogDescription.tsx +27 -27
  220. package/src/components/Dialog/DialogFoot.tsx +35 -35
  221. package/src/components/Dialog/DialogHead.tsx +50 -50
  222. package/src/components/Dialog/index.ts +10 -10
  223. package/src/components/Divider/Divider.tsx +22 -22
  224. package/src/components/Grid/Grid.tsx +61 -61
  225. package/src/components/Icon/Icon.tsx +31 -31
  226. package/src/components/IconButton/IconButton.tsx +44 -44
  227. package/src/components/Link/Link.tsx +38 -38
  228. package/src/components/Menu/Menu.tsx +142 -142
  229. package/src/components/Menu/MenuItem.tsx +33 -33
  230. package/src/components/Menu/MenuItemLabel.tsx +21 -21
  231. package/src/components/Menu/calculations.ts +33 -33
  232. package/src/components/Menu/index.ts +7 -7
  233. package/src/components/Portal/Portal.tsx +18 -18
  234. package/src/components/Portal/PortalContext.tsx +9 -9
  235. package/src/components/Portal/PortalProvider.tsx +36 -36
  236. package/src/components/Progress/Progress.tsx +66 -66
  237. package/src/components/Provider/ContextManager.tsx +8 -8
  238. package/src/components/Provider/NativeProvider.tsx +72 -72
  239. package/src/components/Radio/RadioGroup.tsx +39 -39
  240. package/src/components/Radio/RadioItem.tsx +72 -72
  241. package/src/components/Radio/index.ts +8 -8
  242. package/src/components/Slider/Slider.tsx +45 -45
  243. package/src/components/Stack/HStack.tsx +32 -32
  244. package/src/components/Stack/VStack.tsx +26 -26
  245. package/src/components/Stack/index.ts +8 -8
  246. package/src/components/StyledComponents/StyledText.tsx +49 -49
  247. package/src/components/StyledComponents/StyledView.tsx +44 -44
  248. package/src/components/StyledComponents/index.tsx +5 -5
  249. package/src/components/Surface/Surface.tsx +31 -31
  250. package/src/components/Switch/Switch.tsx +36 -36
  251. package/src/components/TouchableRipple/TouchableRipple.tsx +92 -92
  252. package/src/components/UserInput/UserInput.tsx +135 -135
  253. package/src/components/UserInput/UserInputV2.tsx +132 -132
  254. package/src/components/UserInput/generateColors.ts +13 -13
  255. package/src/constants/breakPoints.ts +17 -17
  256. package/src/constants/dialogSizes.ts +11 -11
  257. package/src/constants/index.ts +2 -2
  258. package/src/constants/theme.ts +32 -32
  259. package/src/constants/typographySizes.ts +19 -19
  260. package/src/helpers/CalculateGridSize.ts +25 -25
  261. package/src/helpers/DeviceSizeCategory.ts +21 -21
  262. package/src/helpers/ResponsiveCalculations.ts +107 -104
  263. package/src/helpers/index.ts +2 -2
  264. package/src/hooks/index.ts +3 -3
  265. package/src/hooks/useColorScheme.tsx +11 -11
  266. package/src/hooks/useConditionalWindowDimension.tsx +7 -7
  267. package/src/hooks/useScalingMode.tsx +6 -6
  268. package/src/hooks/useTheme.tsx +12 -12
  269. package/src/index.d.ts +2 -2
  270. package/src/index.ts +52 -52
  271. package/src/themes/DarkTheme.ts +177 -177
  272. package/src/themes/LightTheme.ts +88 -88
  273. package/src/themes/index.ts +3 -3
  274. package/src/types/avatar.type.ts +40 -40
  275. package/src/types/button.type.ts +79 -76
  276. package/src/types/checkbox.type.ts +64 -64
  277. package/src/types/chip.type.ts +65 -65
  278. package/src/types/common.type.ts +109 -109
  279. package/src/types/dialog.type.ts +89 -89
  280. package/src/types/divider.type.ts +15 -15
  281. package/src/types/grid.type.ts +71 -71
  282. package/src/types/index.ts +16 -16
  283. package/src/types/link.type.ts +14 -14
  284. package/src/types/menu.type.ts +100 -100
  285. package/src/types/progress.type.ts +15 -15
  286. package/src/types/radio.type.ts +78 -78
  287. package/src/types/stack.type.ts +46 -46
  288. package/src/types/styledComponents.type.ts +70 -70
  289. package/src/types/surface.type.ts +19 -19
  290. package/src/types/switch.type.ts +39 -39
  291. package/src/types/userInput.type.ts +98 -98
@@ -1,104 +1,107 @@
1
- import { Dimensions, PixelRatio } from 'react-native';
2
- import { getGlobalContext } from '../components/Provider/ContextManager';
3
- import type { scalingModeTypes } from '../types';
4
-
5
-
6
- const {
7
- width: SCREEN_WIDTH,
8
- height: SCREEN_HEIGHT,
9
- } = Dimensions.get('window');
10
-
11
- // const isResponsive = true;
12
- const guidelineBaseWidth = 350;
13
- const guidelineBaseHeight = 680;
14
- const [shortDimension, longDimension] = SCREEN_WIDTH < SCREEN_HEIGHT ? [SCREEN_WIDTH, SCREEN_HEIGHT] : [SCREEN_HEIGHT, SCREEN_WIDTH];
15
-
16
- type scalingCacheKey = 'hScale' | 'vScale' | 'fs';
17
-
18
- const scalingCache = new Map<scalingCacheKey, object>();
19
-
20
- const checkIsPhone = (size: number): number => {
21
- if (SCREEN_WIDTH <= 430 && SCREEN_WIDTH >= 375) {
22
- return size;
23
- }
24
- return 0;
25
- }
26
-
27
- const scale = (size: number, cacheKey: scalingCacheKey, mode: scalingModeTypes) => {
28
- if (checkIsPhone(size)) {
29
- return size;
30
- }
31
- const cacheScaleValue: any = scalingCache.get(cacheKey) || {};
32
- let finalSize;
33
- if (cacheScaleValue?.[size]) {
34
- return cacheScaleValue?.[size];
35
- }
36
- if (mode === 'partial') {
37
- // const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.40;
38
- const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.20;
39
- let scale = ((cacheKey === 'hScale' ? shortDimension : longDimension) / guidelineBaseHeight);
40
- scale = 1 + (scale - 1) * slowDownRate;
41
- let adjustedSize = size * Math.max(scale, 0.80);
42
- finalSize = Math.floor(PixelRatio.roundToNearestPixel(adjustedSize));
43
- } else {
44
- const baseScaleFactor = (cacheKey === 'hScale' ? (shortDimension / guidelineBaseWidth) : (longDimension / guidelineBaseHeight));
45
- const clampedScaleFactor = Math.max(0.9, Math.min(baseScaleFactor, 1.2));
46
- finalSize = Math.round(PixelRatio.roundToNearestPixel(size * clampedScaleFactor))
47
- }
48
- cacheScaleValue[size] = finalSize;
49
- cacheScaleValue[size] = finalSize;
50
- scalingCache.set(cacheKey, cacheScaleValue);
51
- return finalSize;
52
- }
53
-
54
- export const horizontalScale = (size: number): number => {
55
- const scalingMode = getGlobalContext().scaling.mode;
56
- return scale(size, 'hScale', scalingMode ?? 0);
57
- }
58
-
59
- export const verticalScale = (size: number): number => {
60
- const scalingMode = getGlobalContext().scaling.mode;
61
- return scale(size, 'vScale', scalingMode ?? 0);
62
- }
63
-
64
-
65
- // export const moderateScale = (size: number, factor = 0.5): number => {
66
- // if (isResponsive) {
67
- // return size + ((shortDimension / guidelineBaseWidth * size) - size) * factor;
68
- // } else {
69
- // return size + factor + 1;
70
- // }
71
- // }
72
- // export const moderateVerticalScale = (size: number, factor = 0.5): number => {
73
- // if (isResponsive) {
74
- // return size + (longDimension / guidelineBaseHeight * size) * factor;
75
- // } else {
76
- // return size + factor + 5;
77
- // }
78
- // }
79
-
80
- export const responsiveFontSize = (fontSize: number): number => {
81
- if (checkIsPhone(fontSize)) {
82
- return fontSize;
83
- }
84
- const fsCache: any = scalingCache.get('fs') || {};
85
- if (fsCache?.[fontSize]) {
86
- return fsCache?.[fontSize];
87
- }
88
- // const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.20
89
- const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.15
90
- const screenDiagonal = Math.sqrt(SCREEN_WIDTH ** 2 + SCREEN_HEIGHT ** 2);
91
- const baseScreenDiagonal = Math.sqrt(360 ** 2 + 640 ** 2);
92
- let scale = screenDiagonal / baseScreenDiagonal;
93
- scale = 1 + (scale - 1) * slowDownRate;
94
- let adjustedFontSize = fontSize * Math.max(scale, 0.85);
95
- const finalSize = Math.floor(PixelRatio.roundToNearestPixel(adjustedFontSize));
96
- fsCache[fontSize] = finalSize;
97
- scalingCache.set('fs', fsCache)
98
- return finalSize;
99
- };
100
-
101
-
102
-
103
-
104
-
1
+ import { Dimensions, PixelRatio } from 'react-native';
2
+ import { getGlobalContext } from '../components/Provider/ContextManager';
3
+ import type { scalingModeTypes } from '../types';
4
+
5
+
6
+ const {
7
+ width: SCREEN_WIDTH,
8
+ height: SCREEN_HEIGHT,
9
+ } = Dimensions.get('window');
10
+
11
+ // const isResponsive = true;
12
+ const guidelineBaseWidth = 350;
13
+ const guidelineBaseHeight = 680;
14
+ const [shortDimension, longDimension] = SCREEN_WIDTH < SCREEN_HEIGHT ? [SCREEN_WIDTH, SCREEN_HEIGHT] : [SCREEN_HEIGHT, SCREEN_WIDTH];
15
+
16
+ type scalingCacheKey = 'hScale' | 'vScale' | 'fs';
17
+
18
+ const scalingCache = new Map<scalingCacheKey, object>();
19
+
20
+ const checkIsPhone = (size: number): number => {
21
+ // if (SCREEN_WIDTH <= 430 && SCREEN_WIDTH >= 375) {
22
+ // return size;
23
+ // }
24
+ if (SCREEN_WIDTH <= 430) {
25
+ return size;
26
+ }
27
+ return 0;
28
+ }
29
+
30
+ const scale = (size: number, cacheKey: scalingCacheKey, mode: scalingModeTypes) => {
31
+ if (checkIsPhone(size)) {
32
+ return size;
33
+ }
34
+ const cacheScaleValue: any = scalingCache.get(cacheKey) || {};
35
+ let finalSize;
36
+ if (cacheScaleValue?.[size]) {
37
+ return cacheScaleValue?.[size];
38
+ }
39
+ if (mode === 'partial') {
40
+ // const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.40;
41
+ const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.20;
42
+ let scale = ((cacheKey === 'hScale' ? shortDimension : longDimension) / guidelineBaseHeight);
43
+ scale = 1 + (scale - 1) * slowDownRate;
44
+ let adjustedSize = size * Math.max(scale, 0.80);
45
+ finalSize = Math.floor(PixelRatio.roundToNearestPixel(adjustedSize));
46
+ } else {
47
+ const baseScaleFactor = (cacheKey === 'hScale' ? (shortDimension / guidelineBaseWidth) : (longDimension / guidelineBaseHeight));
48
+ const clampedScaleFactor = Math.max(0.9, Math.min(baseScaleFactor, 1.2));
49
+ finalSize = Math.round(PixelRatio.roundToNearestPixel(size * clampedScaleFactor))
50
+ }
51
+ cacheScaleValue[size] = finalSize;
52
+ cacheScaleValue[size] = finalSize;
53
+ scalingCache.set(cacheKey, cacheScaleValue);
54
+ return finalSize;
55
+ }
56
+
57
+ export const horizontalScale = (size: number): number => {
58
+ const scalingMode = getGlobalContext().scaling.mode;
59
+ return scale(size, 'hScale', scalingMode ?? 0);
60
+ }
61
+
62
+ export const verticalScale = (size: number): number => {
63
+ const scalingMode = getGlobalContext().scaling.mode;
64
+ return scale(size, 'vScale', scalingMode ?? 0);
65
+ }
66
+
67
+
68
+ // export const moderateScale = (size: number, factor = 0.5): number => {
69
+ // if (isResponsive) {
70
+ // return size + ((shortDimension / guidelineBaseWidth * size) - size) * factor;
71
+ // } else {
72
+ // return size + factor + 1;
73
+ // }
74
+ // }
75
+ // export const moderateVerticalScale = (size: number, factor = 0.5): number => {
76
+ // if (isResponsive) {
77
+ // return size + (longDimension / guidelineBaseHeight * size) * factor;
78
+ // } else {
79
+ // return size + factor + 5;
80
+ // }
81
+ // }
82
+
83
+ export const responsiveFontSize = (fontSize: number): number => {
84
+ if (checkIsPhone(fontSize)) {
85
+ return fontSize;
86
+ }
87
+ const fsCache: any = scalingCache.get('fs') || {};
88
+ if (fsCache?.[fontSize]) {
89
+ return fsCache?.[fontSize];
90
+ }
91
+ // const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.20
92
+ const slowDownRate = SCREEN_WIDTH < 375 ? 2 : 0.15
93
+ const screenDiagonal = Math.sqrt(SCREEN_WIDTH ** 2 + SCREEN_HEIGHT ** 2);
94
+ const baseScreenDiagonal = Math.sqrt(360 ** 2 + 640 ** 2);
95
+ let scale = screenDiagonal / baseScreenDiagonal;
96
+ scale = 1 + (scale - 1) * slowDownRate;
97
+ let adjustedFontSize = fontSize * Math.max(scale, 0.85);
98
+ const finalSize = Math.floor(PixelRatio.roundToNearestPixel(adjustedFontSize));
99
+ fsCache[fontSize] = finalSize;
100
+ scalingCache.set('fs', fsCache)
101
+ return finalSize;
102
+ };
103
+
104
+
105
+
106
+
107
+
@@ -1,3 +1,3 @@
1
- export { default as getGridValue } from './CalculateGridSize';
2
- export { default as deviceScreenSizeCategory } from './DeviceSizeCategory';
1
+ export { default as getGridValue } from './CalculateGridSize';
2
+ export { default as deviceScreenSizeCategory } from './DeviceSizeCategory';
3
3
  export * from "./ResponsiveCalculations";
@@ -1,4 +1,4 @@
1
- export { default as useTheme } from './useTheme';
2
- export { default as useScalingMode } from './useScalingMode';
3
- export { default as useColorScheme } from './useColorScheme';
1
+ export { default as useTheme } from './useTheme';
2
+ export { default as useScalingMode } from './useScalingMode';
3
+ export { default as useColorScheme } from './useColorScheme';
4
4
  export { default as useConditionalWindowDimension } from './useConditionalWindowDimension';
@@ -1,12 +1,12 @@
1
- import { useContext } from 'react';
2
- import { Context } from '../components/Provider/NativeProvider';
3
-
4
- const useColorScheme = () => {
5
- const context = useContext(Context)?.mode;
6
- if (!context) {
7
- throw new Error('useColorScheme must be used within a NativeProvider');
8
- }
9
- return context;
10
- };
11
-
1
+ import { useContext } from 'react';
2
+ import { Context } from '../components/Provider/NativeProvider';
3
+
4
+ const useColorScheme = () => {
5
+ const context = useContext(Context)?.mode;
6
+ if (!context) {
7
+ throw new Error('useColorScheme must be used within a NativeProvider');
8
+ }
9
+ return context;
10
+ };
11
+
12
12
  export default useColorScheme;
@@ -1,7 +1,7 @@
1
- import { useWindowDimensions } from "react-native";
2
-
3
- const useConditionalWindowDimension = (isTrackDimension: boolean): { width: number | undefined; height: number | undefined } => {
4
- return isTrackDimension ? useWindowDimensions() : { width: undefined, height: undefined }
5
- }
6
-
7
- export default useConditionalWindowDimension;
1
+ import { useWindowDimensions } from "react-native";
2
+
3
+ const useConditionalWindowDimension = (isTrackDimension: boolean): { width: number | undefined; height: number | undefined } => {
4
+ return isTrackDimension ? useWindowDimensions() : { width: undefined, height: undefined }
5
+ }
6
+
7
+ export default useConditionalWindowDimension;
@@ -1,6 +1,6 @@
1
- import { useContext } from 'react';
2
- import { Context } from '../components/Provider/NativeProvider';
3
-
4
- const useScalingMode = () => useContext(Context)?.scaling;
5
-
6
- export default useScalingMode;
1
+ import { useContext } from 'react';
2
+ import { Context } from '../components/Provider/NativeProvider';
3
+
4
+ const useScalingMode = () => useContext(Context)?.scaling;
5
+
6
+ export default useScalingMode;
@@ -1,13 +1,13 @@
1
- import { useContext } from 'react';
2
- import { Context } from '../components/Provider/NativeProvider';
3
-
4
-
5
- const useTheme = (isTrackTheme: boolean = true) => {
6
- const context = isTrackTheme ? useContext(Context)?.theme : undefined;
7
- if (isTrackTheme && !context) {
8
- throw new Error('Ensure that your code is wrapped with NativeProvider in App.js, and make sure you are not using the useTheme hook outside of the NativeProvider.');
9
- }
10
- return context;
11
- };
12
-
1
+ import { useContext } from 'react';
2
+ import { Context } from '../components/Provider/NativeProvider';
3
+
4
+
5
+ const useTheme = (isTrackTheme: boolean = true) => {
6
+ const context = isTrackTheme ? useContext(Context)?.theme : undefined;
7
+ if (isTrackTheme && !context) {
8
+ throw new Error('Ensure that your code is wrapped with NativeProvider in App.js, and make sure you are not using the useTheme hook outside of the NativeProvider.');
9
+ }
10
+ return context;
11
+ };
12
+
13
13
  export default useTheme;
package/src/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- declare module '@nexara/nativeflow' {
2
- export { Button } from 'components/Button/Button';
1
+ declare module '@nexara/nativeflow' {
2
+ export { Button } from 'components/Button/Button';
3
3
  }
package/src/index.ts CHANGED
@@ -1,52 +1,52 @@
1
- export { default as NativeProvider } from './components/Provider/NativeProvider';
2
- export { horizontalScale, verticalScale, responsiveFontSize } from './helpers/ResponsiveCalculations';
3
- export { default as Chip } from './components/Chip/Chip';
4
- export { default as Radio } from './components/Radio';
5
- export { default as Button } from './components/Button/Button';
6
-
7
- export { default as Stack } from './components/Stack';
8
- export { StyledText, StyledView } from './components/StyledComponents';
9
- export { default as UserInput } from './components/UserInput/UserInput';
10
- export { default as Grid } from './components/Grid/Grid';
11
- export { default as Progress } from './components/Progress/Progress';
12
- // export { default as Slider } from './components/Slider/Slider';
13
- export { default as Surface } from './components/Surface/Surface';
14
- export { default as Switch } from './components/Switch/Switch';
15
- // export { default as TouchableRipple } from './components/TouchableRipple/TouchableRipple';
16
- export { Dialog, DialogHead, DialogBody, DialogFoot, DialogDescription } from './components/Dialog';
17
- export { default as CheckBox } from './components/CheckBox/CheckBox';
18
- export { default as Avatar } from './components/Avatar';
19
- export { default as Divider } from './components/Divider/Divider';
20
- export { Menu, MenuItem, MenuItemLabel } from './components/Menu';
21
- export { default as IconButton } from './components/IconButton/IconButton';
22
- export { default as Icon } from './components/Icon/Icon';
23
- export { default as PortalProvider } from './components/Portal/PortalProvider';
24
- export { default as Link } from './components/Link/Link';
25
- export { default as LightTheme } from './themes/LightTheme';
26
- export { default as DarkTheme } from './themes/DarkTheme';
27
- export { useColorScheme, useTheme } from './hooks';
28
-
29
-
30
- export type { ChipProps } from './components/Chip/Chip';
31
- export type { ButtonProps } from './components/Button/Button';
32
- export type { HStackProps } from './components/Stack';
33
- export type { VStackProps } from './components/Stack';
34
- export type { StyledTextProps, StyledViewProps } from './components/StyledComponents';
35
- export type { UserInputProps } from './components/UserInput/UserInput';
36
- export type { ProviderProps } from './components/Provider/NativeProvider';
37
- export type { GridProps } from './components/Grid/Grid';
38
- export type { ProgressProps } from './components/Progress/Progress';
39
- export type { SliderProps } from './components/Slider/Slider';
40
- export type { SurfaceProps } from './components/Surface/Surface';
41
- export type { SwitchProps } from './components/Switch/Switch';
42
- // export type { TouchableRippleProps } from './components/TouchableRipple/TouchableRipple';
43
- export type { DialogProps, DialogHeadProps, DialogBodyProps, DialogFootProps, DialogDescriptionProps } from './components/Dialog';
44
- export type { CheckBoxProps } from './components/CheckBox/CheckBox';
45
- export type { AvatarTextProps, AvatarImageProps } from './components/Avatar';
46
- export type { DividerProps } from './components/Divider/Divider';
47
- export type { MenuProps, MenuItemProps, MenuItemLabelProps } from './components/Menu';
48
- export type { IconButtonProps } from './components/IconButton/IconButton';
49
- export type { IconProps } from './components/Icon/Icon';
50
- export type { LinkProps } from './types/link.type';
51
- export type { RadioGroupProps, RadioItemProps } from './types/radio.type';
52
- // export type { PortalProviderProps } from './components/Portal/PortalProvider';
1
+ export { default as NativeProvider } from './components/Provider/NativeProvider';
2
+ export { horizontalScale, verticalScale, responsiveFontSize } from './helpers/ResponsiveCalculations';
3
+ export { default as Chip } from './components/Chip/Chip';
4
+ export { default as Radio } from './components/Radio';
5
+ export { default as Button } from './components/Button/Button';
6
+
7
+ export { default as Stack } from './components/Stack';
8
+ export { StyledText, StyledView } from './components/StyledComponents';
9
+ export { default as UserInput } from './components/UserInput/UserInput';
10
+ export { default as Grid } from './components/Grid/Grid';
11
+ export { default as Progress } from './components/Progress/Progress';
12
+ // export { default as Slider } from './components/Slider/Slider';
13
+ export { default as Surface } from './components/Surface/Surface';
14
+ export { default as Switch } from './components/Switch/Switch';
15
+ // export { default as TouchableRipple } from './components/TouchableRipple/TouchableRipple';
16
+ export { Dialog, DialogHead, DialogBody, DialogFoot, DialogDescription } from './components/Dialog';
17
+ export { default as CheckBox } from './components/CheckBox/CheckBox';
18
+ export { default as Avatar } from './components/Avatar';
19
+ export { default as Divider } from './components/Divider/Divider';
20
+ export { Menu, MenuItem, MenuItemLabel } from './components/Menu';
21
+ export { default as IconButton } from './components/IconButton/IconButton';
22
+ export { default as Icon } from './components/Icon/Icon';
23
+ export { default as PortalProvider } from './components/Portal/PortalProvider';
24
+ export { default as Link } from './components/Link/Link';
25
+ export { default as LightTheme } from './themes/LightTheme';
26
+ export { default as DarkTheme } from './themes/DarkTheme';
27
+ export { useColorScheme, useTheme } from './hooks';
28
+
29
+
30
+ export type { ChipProps } from './components/Chip/Chip';
31
+ export type { ButtonProps } from './components/Button/Button';
32
+ export type { HStackProps } from './components/Stack';
33
+ export type { VStackProps } from './components/Stack';
34
+ export type { StyledTextProps, StyledViewProps } from './components/StyledComponents';
35
+ export type { UserInputProps } from './components/UserInput/UserInput';
36
+ export type { ProviderProps } from './components/Provider/NativeProvider';
37
+ export type { GridProps } from './components/Grid/Grid';
38
+ export type { ProgressProps } from './components/Progress/Progress';
39
+ export type { SliderProps } from './components/Slider/Slider';
40
+ export type { SurfaceProps } from './components/Surface/Surface';
41
+ export type { SwitchProps } from './components/Switch/Switch';
42
+ // export type { TouchableRippleProps } from './components/TouchableRipple/TouchableRipple';
43
+ export type { DialogProps, DialogHeadProps, DialogBodyProps, DialogFootProps, DialogDescriptionProps } from './components/Dialog';
44
+ export type { CheckBoxProps } from './components/CheckBox/CheckBox';
45
+ export type { AvatarTextProps, AvatarImageProps } from './components/Avatar';
46
+ export type { DividerProps } from './components/Divider/Divider';
47
+ export type { MenuProps, MenuItemProps, MenuItemLabelProps } from './components/Menu';
48
+ export type { IconButtonProps } from './components/IconButton/IconButton';
49
+ export type { IconProps } from './components/Icon/Icon';
50
+ export type { LinkProps } from './types/link.type';
51
+ export type { RadioGroupProps, RadioItemProps } from './types/radio.type';
52
+ // export type { PortalProviderProps } from './components/Portal/PortalProvider';