@particle-network/ui-native 0.0.2

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 (168) hide show
  1. package/README.md +57 -0
  2. package/dist/components/ProgressWrapper/index.d.ts +35 -0
  3. package/dist/components/ProgressWrapper/index.js +120 -0
  4. package/dist/components/Text/index.d.ts +2 -0
  5. package/dist/components/Text/index.js +2 -0
  6. package/dist/components/Text/text.d.ts +4 -0
  7. package/dist/components/Text/text.js +196 -0
  8. package/dist/components/Text/text.types.d.ts +109 -0
  9. package/dist/components/Text/text.types.js +77 -0
  10. package/dist/components/UXButton/button.d.ts +3 -0
  11. package/dist/components/UXButton/button.js +74 -0
  12. package/dist/components/UXButton/button.styles.d.ts +53 -0
  13. package/dist/components/UXButton/button.styles.js +157 -0
  14. package/dist/components/UXButton/button.types.d.ts +18 -0
  15. package/dist/components/UXButton/button.types.js +0 -0
  16. package/dist/components/UXButton/index.d.ts +2 -0
  17. package/dist/components/UXButton/index.js +1 -0
  18. package/dist/components/UXCheckbox/checkbox-group.d.ts +8 -0
  19. package/dist/components/UXCheckbox/checkbox-group.js +30 -0
  20. package/dist/components/UXCheckbox/checkbox.d.ts +10 -0
  21. package/dist/components/UXCheckbox/checkbox.js +78 -0
  22. package/dist/components/UXCheckbox/context.d.ts +8 -0
  23. package/dist/components/UXCheckbox/context.js +8 -0
  24. package/dist/components/UXCheckbox/index.d.ts +4 -0
  25. package/dist/components/UXCheckbox/index.js +3 -0
  26. package/dist/components/UXCheckbox/types.d.ts +6 -0
  27. package/dist/components/UXCheckbox/types.js +0 -0
  28. package/dist/components/UXChip/chip.d.ts +3 -0
  29. package/dist/components/UXChip/chip.js +48 -0
  30. package/dist/components/UXChip/index.d.ts +2 -0
  31. package/dist/components/UXChip/index.js +1 -0
  32. package/dist/components/UXChip/styles.d.ts +24 -0
  33. package/dist/components/UXChip/styles.js +70 -0
  34. package/dist/components/UXChip/types.d.ts +11 -0
  35. package/dist/components/UXChip/types.js +0 -0
  36. package/dist/components/UXDivider/index.d.ts +8 -0
  37. package/dist/components/UXDivider/index.js +34 -0
  38. package/dist/components/UXHint/index.d.ts +7 -0
  39. package/dist/components/UXHint/index.js +19 -0
  40. package/dist/components/UXModal/index.d.ts +24 -0
  41. package/dist/components/UXModal/index.js +271 -0
  42. package/dist/components/UXPressable/index.d.ts +4 -0
  43. package/dist/components/UXPressable/index.js +36 -0
  44. package/dist/components/UXRadio/context.d.ts +7 -0
  45. package/dist/components/UXRadio/context.js +10 -0
  46. package/dist/components/UXRadio/index.d.ts +2 -0
  47. package/dist/components/UXRadio/index.js +2 -0
  48. package/dist/components/UXRadio/radio-group.d.ts +5 -0
  49. package/dist/components/UXRadio/radio-group.js +21 -0
  50. package/dist/components/UXRadio/radio.d.ts +5 -0
  51. package/dist/components/UXRadio/radio.js +67 -0
  52. package/dist/components/UXRadio/types.d.ts +10 -0
  53. package/dist/components/UXRadio/types.js +0 -0
  54. package/dist/components/UXSwitch/index.d.ts +2 -0
  55. package/dist/components/UXSwitch/index.js +1 -0
  56. package/dist/components/UXSwitch/styles.d.ts +16 -0
  57. package/dist/components/UXSwitch/styles.js +58 -0
  58. package/dist/components/UXSwitch/switch.d.ts +3 -0
  59. package/dist/components/UXSwitch/switch.js +103 -0
  60. package/dist/components/UXSwitch/types.d.ts +11 -0
  61. package/dist/components/UXSwitch/types.js +0 -0
  62. package/dist/components/UXTabs/context.d.ts +5 -0
  63. package/dist/components/UXTabs/context.js +8 -0
  64. package/dist/components/UXTabs/index.d.ts +4 -0
  65. package/dist/components/UXTabs/index.js +3 -0
  66. package/dist/components/UXTabs/styles.d.ts +30 -0
  67. package/dist/components/UXTabs/styles.js +191 -0
  68. package/dist/components/UXTabs/tab.d.ts +3 -0
  69. package/dist/components/UXTabs/tab.js +55 -0
  70. package/dist/components/UXTabs/tabs.d.ts +3 -0
  71. package/dist/components/UXTabs/tabs.js +66 -0
  72. package/dist/components/UXTabs/types.d.ts +23 -0
  73. package/dist/components/UXTabs/types.js +0 -0
  74. package/dist/components/UXTooltip/index.d.ts +6 -0
  75. package/dist/components/UXTooltip/index.js +32 -0
  76. package/dist/components/UXTouchableOpacity/index.d.ts +4 -0
  77. package/dist/components/UXTouchableOpacity/index.js +24 -0
  78. package/dist/components/index.d.ts +22 -0
  79. package/dist/components/index.js +22 -0
  80. package/dist/components/input/index.d.ts +3 -0
  81. package/dist/components/input/index.js +2 -0
  82. package/dist/components/input/input.d.ts +3 -0
  83. package/dist/components/input/input.js +138 -0
  84. package/dist/components/input/number-input.d.ts +3 -0
  85. package/dist/components/input/number-input.js +231 -0
  86. package/dist/components/input/styles.d.ts +31 -0
  87. package/dist/components/input/styles.js +102 -0
  88. package/dist/components/input/types.d.ts +61 -0
  89. package/dist/components/input/types.js +0 -0
  90. package/dist/components/layout/Box/box.d.ts +12 -0
  91. package/dist/components/layout/Box/box.js +89 -0
  92. package/dist/components/layout/Box/index.d.ts +3 -0
  93. package/dist/components/layout/Box/index.js +2 -0
  94. package/dist/components/layout/Box/useBox.style.d.ts +3 -0
  95. package/dist/components/layout/Box/useBox.style.js +141 -0
  96. package/dist/components/layout/Box/useBox.type.d.ts +292 -0
  97. package/dist/components/layout/Box/useBox.type.js +0 -0
  98. package/dist/components/layout/Center.d.ts +5 -0
  99. package/dist/components/layout/Center.js +10 -0
  100. package/dist/components/layout/Circle.d.ts +7 -0
  101. package/dist/components/layout/Circle.js +14 -0
  102. package/dist/components/layout/Flex/flex.d.ts +6 -0
  103. package/dist/components/layout/Flex/flex.js +33 -0
  104. package/dist/components/layout/Flex/index.d.ts +4 -0
  105. package/dist/components/layout/Flex/index.js +3 -0
  106. package/dist/components/layout/Flex/useFlex.style.d.ts +3 -0
  107. package/dist/components/layout/Flex/useFlex.style.js +122 -0
  108. package/dist/components/layout/Flex/useFlex.type.d.ts +65 -0
  109. package/dist/components/layout/Flex/useFlex.type.js +0 -0
  110. package/dist/components/layout/Flex/useFlexBox.style.d.ts +134 -0
  111. package/dist/components/layout/Flex/useFlexBox.style.js +26 -0
  112. package/dist/components/layout/HStack.d.ts +5 -0
  113. package/dist/components/layout/HStack.js +11 -0
  114. package/dist/components/layout/Square.d.ts +9 -0
  115. package/dist/components/layout/Square.js +14 -0
  116. package/dist/components/layout/VStack.d.ts +5 -0
  117. package/dist/components/layout/VStack.js +14 -0
  118. package/dist/hooks/index.d.ts +5 -0
  119. package/dist/hooks/index.js +5 -0
  120. package/dist/hooks/useColors.d.ts +7 -0
  121. package/dist/hooks/useColors.js +18 -0
  122. package/dist/hooks/useKeyboard.d.ts +4 -0
  123. package/dist/hooks/useKeyboard.js +29 -0
  124. package/dist/hooks/useRadius.d.ts +7 -0
  125. package/dist/hooks/useRadius.js +16 -0
  126. package/dist/hooks/useSpacing.d.ts +7 -0
  127. package/dist/hooks/useSpacing.js +16 -0
  128. package/dist/hooks/useTheme.d.ts +5 -0
  129. package/dist/hooks/useTheme.js +6 -0
  130. package/dist/icons/CheckboxOffIcon.d.ts +4 -0
  131. package/dist/icons/CheckboxOffIcon.js +21 -0
  132. package/dist/icons/CheckboxOnIcon.d.ts +4 -0
  133. package/dist/icons/CheckboxOnIcon.js +26 -0
  134. package/dist/icons/DotIcon.d.ts +4 -0
  135. package/dist/icons/DotIcon.js +23 -0
  136. package/dist/icons/QuestionIcon.d.ts +4 -0
  137. package/dist/icons/QuestionIcon.js +30 -0
  138. package/dist/icons/RadioOffIcon.d.ts +4 -0
  139. package/dist/icons/RadioOffIcon.js +22 -0
  140. package/dist/icons/RadioOnIcon.d.ts +4 -0
  141. package/dist/icons/RadioOnIcon.js +42 -0
  142. package/dist/icons/types.d.ts +6 -0
  143. package/dist/icons/types.js +0 -0
  144. package/dist/index.d.ts +5 -0
  145. package/dist/index.js +4 -0
  146. package/dist/provider/ThemeContext.d.ts +3 -0
  147. package/dist/provider/ThemeContext.js +15 -0
  148. package/dist/provider/ThemeProvider.d.ts +10 -0
  149. package/dist/provider/ThemeProvider.js +31 -0
  150. package/dist/provider/index.d.ts +2 -0
  151. package/dist/provider/index.js +2 -0
  152. package/dist/theme/colors.d.ts +6 -0
  153. package/dist/theme/colors.js +17 -0
  154. package/dist/theme/index.d.ts +7 -0
  155. package/dist/theme/index.js +16 -0
  156. package/dist/theme/opacity.d.ts +2 -0
  157. package/dist/theme/opacity.js +3 -0
  158. package/dist/theme/radius.d.ts +3 -0
  159. package/dist/theme/radius.js +10 -0
  160. package/dist/theme/spacing.d.ts +3 -0
  161. package/dist/theme/spacing.js +10 -0
  162. package/dist/types/index.d.ts +1 -0
  163. package/dist/types/index.js +0 -0
  164. package/dist/types/theme.d.ts +17 -0
  165. package/dist/types/theme.js +0 -0
  166. package/dist/utils/triggerHapticFeedback.d.ts +5 -0
  167. package/dist/utils/triggerHapticFeedback.js +16 -0
  168. package/package.json +110 -0
@@ -0,0 +1,42 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import react_native_svg, { ClipPath, Defs, G, Path } from "react-native-svg";
4
+ import { useColors } from "../hooks/index.js";
5
+ const RadioOnIcon_RadioOnIcon = ({ size = 16, color = 'default', ...props })=>{
6
+ const { getColor } = useColors();
7
+ const colorValue = getColor(color);
8
+ return /*#__PURE__*/ jsxs(react_native_svg, {
9
+ fill: "none",
10
+ height: size,
11
+ viewBox: "0 0 16 16",
12
+ width: size,
13
+ ...props,
14
+ children: [
15
+ /*#__PURE__*/ jsxs(G, {
16
+ clipPath: "url(#a)",
17
+ children: [
18
+ /*#__PURE__*/ jsx(Path, {
19
+ d: "M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Z",
20
+ stroke: colorValue,
21
+ strokeWidth: 1.2
22
+ }),
23
+ /*#__PURE__*/ jsx(Path, {
24
+ d: "M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z",
25
+ fill: colorValue
26
+ })
27
+ ]
28
+ }),
29
+ /*#__PURE__*/ jsx(Defs, {
30
+ children: /*#__PURE__*/ jsx(ClipPath, {
31
+ id: "a",
32
+ children: /*#__PURE__*/ jsx(Path, {
33
+ d: "M0 0h16v16H0z",
34
+ fill: "#fff"
35
+ })
36
+ })
37
+ })
38
+ ]
39
+ });
40
+ };
41
+ const RadioOnIcon = RadioOnIcon_RadioOnIcon;
42
+ export { RadioOnIcon as default };
@@ -0,0 +1,6 @@
1
+ import type { SvgProps } from 'react-native-svg';
2
+ import type { UXForegroundColor } from '@particle-network/ui-shared';
3
+ export type IconProps = SvgProps & {
4
+ size?: number;
5
+ color?: UXForegroundColor;
6
+ };
File without changes
@@ -0,0 +1,5 @@
1
+ export * from './components';
2
+ export * from './provider';
3
+ export * from './hooks';
4
+ export * from './theme';
5
+ export type * from './types';
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./components/index.js";
2
+ export * from "./provider/index.js";
3
+ export * from "./hooks/index.js";
4
+ export * from "./theme/index.js";
@@ -0,0 +1,3 @@
1
+ import type { ThemeContextValue } from '../types/theme';
2
+ export declare const ThemeContextProvider: import("react").Provider<ThemeContextValue | undefined>;
3
+ export declare function useThemeContext(): ThemeContextValue;
@@ -0,0 +1,15 @@
1
+ import { createContext, useContext } from "react";
2
+ import { createTheme } from "../theme/index.js";
3
+ const ThemeContext = /*#__PURE__*/ createContext(void 0);
4
+ const ThemeContextProvider = ThemeContext.Provider;
5
+ function useThemeContext() {
6
+ const context = useContext(ThemeContext);
7
+ if (!context) return {
8
+ theme: createTheme('light'),
9
+ config: {
10
+ theme: 'light'
11
+ }
12
+ };
13
+ return context;
14
+ }
15
+ export { ThemeContextProvider, useThemeContext };
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { DynamicColors } from '@particle-network/ui-shared';
3
+ import type { ThemeMode } from '../types';
4
+ export interface ThemeProviderProps {
5
+ children: React.ReactNode;
6
+ theme?: ThemeMode;
7
+ dynamicColors?: DynamicColors;
8
+ onThemeChange?: (theme: ThemeMode) => void;
9
+ }
10
+ export declare function ThemeProvider({ children, theme, dynamicColors, onThemeChange }: ThemeProviderProps): React.JSX.Element;
@@ -0,0 +1,31 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { createTheme } from "../theme/index.js";
4
+ import { ThemeContextProvider } from "./ThemeContext.js";
5
+ function ThemeProvider({ children, theme = 'light', dynamicColors, onThemeChange }) {
6
+ const config = useMemo(()=>({
7
+ theme,
8
+ dynamicColors
9
+ }), [
10
+ theme,
11
+ dynamicColors
12
+ ]);
13
+ const themeObject = useMemo(()=>createTheme(theme, dynamicColors), [
14
+ theme,
15
+ dynamicColors
16
+ ]);
17
+ const contextValue = useMemo(()=>({
18
+ theme: themeObject,
19
+ config,
20
+ setTheme: onThemeChange
21
+ }), [
22
+ themeObject,
23
+ config,
24
+ onThemeChange
25
+ ]);
26
+ return /*#__PURE__*/ jsx(ThemeContextProvider, {
27
+ value: contextValue,
28
+ children: children
29
+ });
30
+ }
31
+ export { ThemeProvider };
@@ -0,0 +1,2 @@
1
+ export * from './ThemeContext';
2
+ export * from './ThemeProvider';
@@ -0,0 +1,2 @@
1
+ export * from "./ThemeContext.js";
2
+ export * from "./ThemeProvider.js";
@@ -0,0 +1,6 @@
1
+ import { type DynamicColors, type ThemeColors } from '@particle-network/ui-shared';
2
+ export declare const DEFAULT_DYNAMIC_COLORS: {
3
+ bullish: string;
4
+ bearish: string;
5
+ };
6
+ export declare function getColors(theme: 'light' | 'dark', dynamicColors?: DynamicColors): ThemeColors;
@@ -0,0 +1,17 @@
1
+ import { colorMap } from "@particle-network/ui-shared";
2
+ const DEFAULT_DYNAMIC_COLORS = {
3
+ bullish: '#45B167',
4
+ bearish: '#E84A5A'
5
+ };
6
+ function getColors(theme, dynamicColors) {
7
+ const mergedDynamicColors = {
8
+ ...DEFAULT_DYNAMIC_COLORS,
9
+ ...dynamicColors
10
+ };
11
+ return {
12
+ ...colorMap[theme],
13
+ bullish: mergedDynamicColors.bullish,
14
+ bearish: mergedDynamicColors.bearish
15
+ };
16
+ }
17
+ export { DEFAULT_DYNAMIC_COLORS, getColors };
@@ -0,0 +1,7 @@
1
+ import type { DynamicColors } from '@particle-network/ui-shared';
2
+ import type { Theme, ThemeMode } from '../types';
3
+ export declare function createTheme(theme: ThemeMode, dynamicColors?: DynamicColors): Theme;
4
+ export * from './colors';
5
+ export * from './opacity';
6
+ export * from './radius';
7
+ export * from './spacing';
@@ -0,0 +1,16 @@
1
+ import { getColors } from "./colors.js";
2
+ import { createRadius } from "./radius.js";
3
+ import { createSpacing } from "./spacing.js";
4
+ export * from "./colors.js";
5
+ export * from "./opacity.js";
6
+ export * from "./radius.js";
7
+ export * from "./spacing.js";
8
+ function createTheme(theme, dynamicColors) {
9
+ return {
10
+ theme,
11
+ colors: getColors(theme, dynamicColors),
12
+ spacing: createSpacing(),
13
+ radius: createRadius()
14
+ };
15
+ }
16
+ export { createTheme };
@@ -0,0 +1,2 @@
1
+ export declare const disabledOpacity = 0.4;
2
+ export declare const hoverOpacity = 0.7;
@@ -0,0 +1,3 @@
1
+ const disabledOpacity = 0.4;
2
+ const hoverOpacity = 0.7;
3
+ export { disabledOpacity, hoverOpacity };
@@ -0,0 +1,3 @@
1
+ import { type RadiusScale } from '@particle-network/ui-shared';
2
+ export declare function createRadius(): RadiusScale;
3
+ export declare const radius: RadiusScale;
@@ -0,0 +1,10 @@
1
+ import { moderateScale } from "react-native-size-matters";
2
+ import { radiusMap } from "@particle-network/ui-shared";
3
+ function createRadius() {
4
+ return Object.entries(radiusMap).reduce((acc, [key, value])=>{
5
+ acc[key] = 'full' === key ? value : moderateScale(value);
6
+ return acc;
7
+ }, {});
8
+ }
9
+ const radius = createRadius();
10
+ export { createRadius, radius };
@@ -0,0 +1,3 @@
1
+ import { type SpacingScale } from '@particle-network/ui-shared';
2
+ export declare function createSpacing(): SpacingScale;
3
+ export declare const spacing: SpacingScale;
@@ -0,0 +1,10 @@
1
+ import { ms } from "react-native-size-matters";
2
+ import { spacingMap } from "@particle-network/ui-shared";
3
+ function createSpacing() {
4
+ return Object.entries(spacingMap).reduce((acc, [key, value])=>{
5
+ acc[key] = ms(value);
6
+ return acc;
7
+ }, {});
8
+ }
9
+ const spacing = createSpacing();
10
+ export { createSpacing, spacing };
@@ -0,0 +1 @@
1
+ export type * from './theme';
File without changes
@@ -0,0 +1,17 @@
1
+ import type { DynamicColors, RadiusScale, SpacingScale, ThemeColors } from '@particle-network/ui-shared';
2
+ export type ThemeMode = 'light' | 'dark';
3
+ export interface ThemeConfig {
4
+ theme: ThemeMode;
5
+ dynamicColors?: DynamicColors;
6
+ }
7
+ export interface Theme {
8
+ theme: ThemeMode;
9
+ colors: ThemeColors;
10
+ spacing: SpacingScale;
11
+ radius: RadiusScale;
12
+ }
13
+ export interface ThemeContextValue {
14
+ theme: Theme;
15
+ config: ThemeConfig;
16
+ setTheme?: (theme: ThemeMode) => void;
17
+ }
File without changes
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Triggers haptic feedback based on the given style.
3
+ * @param style - The feedback style, can be 'light', 'medium', or 'heavy'.
4
+ */
5
+ export declare const triggerHapticFeedback: (style?: "light" | "medium" | "heavy") => Promise<void>;
@@ -0,0 +1,16 @@
1
+ import { ImpactFeedbackStyle, impactAsync } from "expo-haptics";
2
+ const triggerHapticFeedback = async (style = 'light')=>{
3
+ try {
4
+ const feedbackStyleMap = {
5
+ light: ImpactFeedbackStyle.Light,
6
+ medium: ImpactFeedbackStyle.Medium,
7
+ heavy: ImpactFeedbackStyle.Heavy
8
+ };
9
+ const feedbackStyle = feedbackStyleMap[style];
10
+ if (feedbackStyle) await impactAsync(feedbackStyle);
11
+ else console.warn(`Invalid haptic feedback style: ${style}`);
12
+ } catch (error) {
13
+ console.error('Failed to trigger haptic feedback:', error);
14
+ }
15
+ };
16
+ export { triggerHapticFeedback };
package/package.json ADDED
@@ -0,0 +1,110 @@
1
+ {
2
+ "name": "@particle-network/ui-native",
3
+ "version": "0.0.2",
4
+ "license": "MIT",
5
+ "main": "./entry.js",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "start": "expo start",
10
+ "android": "expo start --android",
11
+ "ios": "expo start --ios",
12
+ "web": "storybook dev -p 6006",
13
+ "storybook:build": "storybook build --docs",
14
+ "storybook:preview": "serve storybook-static",
15
+ "storybook:generate": "sb-rn-get-stories",
16
+ "type-check": "npx tsc --noEmit -p ./tsconfig.json",
17
+ "build": "rslib build",
18
+ "build:watch": "rslib build --watch",
19
+ "publish": "./scripts/publish.sh",
20
+ "publish:patch": "npm version patch && yarn publish",
21
+ "publish:minor": "npm version minor && yarn publish",
22
+ "publish:major": "npm version major && yarn publish",
23
+ "lint": "eslint . --no-error-on-unmatched-pattern --quiet",
24
+ "lint:fix": "eslint . --fix --no-error-on-unmatched-pattern --quiet",
25
+ "clean": "rm -rf .turbo node_modules dist"
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "README.md",
30
+ "LICENSE"
31
+ ],
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://gitlab.minijoy.work/frontend/ux-design",
35
+ "directory": "packages/ui-react-native"
36
+ },
37
+ "keywords": [
38
+ "react-native",
39
+ "ui-components",
40
+ "design-system",
41
+ "expo",
42
+ "typescript"
43
+ ],
44
+ "author": "UniversalX",
45
+ "dependencies": {
46
+ "@particle-network/ui-shared": "*"
47
+ },
48
+ "devDependencies": {
49
+ "@babel/core": "^7.24.0",
50
+ "@babel/preset-env": "^7.25.4",
51
+ "@chromatic-com/storybook": "^4.0.0",
52
+ "@expo/metro-runtime": "~5.0.4",
53
+ "@gorhom/bottom-sheet": "^5.1.2",
54
+ "@react-native-async-storage/async-storage": "2.1.2",
55
+ "@react-native-community/datetimepicker": "8.4.1",
56
+ "@react-native-community/slider": "4.5.6",
57
+ "@particle-network/eslint-config": "*",
58
+ "@rsbuild/core": "^1.5.0",
59
+ "@rsbuild/plugin-react": "^1.3.5",
60
+ "@rslib/core": "^0.12.2",
61
+ "@storybook/addon-docs": "^9",
62
+ "@storybook/addon-ondevice-actions": "^9",
63
+ "@storybook/addon-ondevice-backgrounds": "^9",
64
+ "@storybook/addon-ondevice-controls": "^9",
65
+ "@storybook/addon-ondevice-notes": "^9",
66
+ "@storybook/react": "^9",
67
+ "@storybook/react-native": "^9",
68
+ "@storybook/react-native-web-vite": "^9",
69
+ "@types/react": "~19.0.10",
70
+ "ahooks": "^3.9.4",
71
+ "babel-plugin-module-resolver": "^5.0.2",
72
+ "babel-plugin-react-docgen-typescript": "^1.5.1",
73
+ "cross-env": "^7.0.3",
74
+ "expo": "~53.0.22",
75
+ "expo-constants": "~17.1.6",
76
+ "expo-haptics": "^14.1.4",
77
+ "expo-status-bar": "~2.2.3",
78
+ "lucide-react-native": "^0.541.0",
79
+ "react": "19.0.0",
80
+ "react-dom": "19.0.0",
81
+ "react-native": "0.79.5",
82
+ "react-native-gesture-handler": "~2.24.0",
83
+ "react-native-paper": "^5.14.5",
84
+ "react-native-reanimated": "~3.17.4",
85
+ "react-native-safe-area-context": "5.4.0",
86
+ "react-native-size-matters": "^0.4.2",
87
+ "react-native-svg": "15.11.2",
88
+ "react-native-web": "^0.20.0",
89
+ "storybook": "^9",
90
+ "typescript": "~5.8.3",
91
+ "vite": "^6.3.5"
92
+ },
93
+ "resolutions": {
94
+ "react-docgen-typescript": "2.2.2",
95
+ "react-native-web": "^0.20.0",
96
+ "unfetch": "^4.2.0"
97
+ },
98
+ "overrides": {
99
+ "react-docgen-typescript": "2.2.2",
100
+ "react-native-web": "^0.20.0",
101
+ "unfetch": "^4.2.0"
102
+ },
103
+ "expo": {
104
+ "doctor": {
105
+ "reactNativeDirectoryCheck": {
106
+ "listUnknownPackages": false
107
+ }
108
+ }
109
+ }
110
+ }