@umituz/react-native-settings 4.20.0 → 4.20.1

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 (27) hide show
  1. package/package.json +21 -21
  2. package/src/domains/about/presentation/components/AboutContent.tsx +10 -7
  3. package/src/domains/about/presentation/components/AboutHeader.tsx +10 -9
  4. package/src/domains/about/presentation/components/AboutSettingItem.tsx +16 -15
  5. package/src/domains/about/presentation/screens/AboutScreen.tsx +11 -10
  6. package/src/domains/appearance/presentation/components/AppearanceHeader.tsx +2 -2
  7. package/src/domains/appearance/presentation/components/AppearancePreview.tsx +11 -11
  8. package/src/domains/appearance/presentation/components/CustomColorsSection.tsx +4 -4
  9. package/src/domains/appearance/presentation/components/ThemeModeSection.tsx +3 -3
  10. package/src/domains/appearance/presentation/components/ThemeOption.tsx +17 -17
  11. package/src/domains/appearance/presentation/screens/AppearanceScreen.tsx +2 -2
  12. package/src/domains/disclaimer/presentation/components/DisclaimerCard.tsx +15 -15
  13. package/src/domains/disclaimer/presentation/components/DisclaimerModal.tsx +5 -5
  14. package/src/domains/disclaimer/presentation/screens/DisclaimerScreen.tsx +9 -9
  15. package/src/domains/faqs/presentation/components/FAQCategory.tsx +4 -4
  16. package/src/domains/faqs/presentation/components/FAQItem.tsx +11 -11
  17. package/src/domains/faqs/presentation/components/FAQSearchBar.tsx +6 -6
  18. package/src/domains/faqs/presentation/screens/FAQScreen.tsx +4 -4
  19. package/src/domains/feedback/presentation/components/FeedbackForm.tsx +19 -17
  20. package/src/domains/feedback/presentation/components/FeedbackModal.tsx +9 -7
  21. package/src/domains/legal/presentation/screens/LegalScreen.tsx +6 -6
  22. package/src/domains/legal/presentation/screens/PrivacyPolicyScreen.tsx +13 -10
  23. package/src/domains/legal/presentation/screens/TermsOfServiceScreen.tsx +13 -10
  24. package/src/domains/rating/presentation/components/StarRating.tsx +9 -4
  25. package/src/domains/video-tutorials/index.ts +1 -0
  26. package/src/domains/video-tutorials/presentation/components/VideoTutorialCard.tsx +35 -31
  27. package/src/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.tsx +11 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-settings",
3
- "version": "4.20.0",
3
+ "version": "4.20.1",
4
4
  "description": "Complete settings hub for React Native apps - consolidated package with settings, about, legal, appearance, feedback, FAQs, and rating",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -39,14 +39,14 @@
39
39
  "@react-navigation/native": ">=6.0.0",
40
40
  "@react-navigation/stack": ">=6.0.0",
41
41
  "@tanstack/react-query": ">=5.0.0",
42
- "@umituz/react-native-auth": "*",
43
- "@umituz/react-native-design-system": "*",
44
- "@umituz/react-native-localization": "*",
45
- "@umituz/react-native-notifications": "*",
46
- "@umituz/react-native-onboarding": "*",
47
- "@umituz/react-native-sentry": "*",
48
- "@umituz/react-native-storage": "*",
49
- "@umituz/react-native-tanstack": "*",
42
+ "@umituz/react-native-auth": "latest",
43
+ "@umituz/react-native-design-system": "latest",
44
+ "@umituz/react-native-localization": "latest",
45
+ "@umituz/react-native-notifications": "latest",
46
+ "@umituz/react-native-onboarding": "latest",
47
+ "@umituz/react-native-sentry": "latest",
48
+ "@umituz/react-native-storage": "latest",
49
+ "@umituz/react-native-tanstack": "latest",
50
50
  "react": ">=19.0.0",
51
51
  "react-native": ">=0.81.0",
52
52
  "react-native-safe-area-context": ">=4.0.0",
@@ -67,18 +67,18 @@
67
67
  "@types/react": "~19.1.10",
68
68
  "@typescript-eslint/eslint-plugin": "^7.18.0",
69
69
  "@typescript-eslint/parser": "^7.18.0",
70
- "@umituz/react-native-auth": "^3.2.0",
71
- "@umituz/react-native-design-system": "^2.5.1",
72
- "@umituz/react-native-filesystem": "^2.1.7",
73
- "@umituz/react-native-firebase": "^1.13.28",
74
- "@umituz/react-native-haptics": "^1.0.3",
75
- "@umituz/react-native-localization": "*",
76
- "@umituz/react-native-notifications": "*",
77
- "@umituz/react-native-onboarding": "*",
78
- "@umituz/react-native-sentry": "^1.4.2",
79
- "@umituz/react-native-storage": "*",
80
- "@umituz/react-native-tanstack": "*",
81
- "@umituz/react-native-uuid": "^1.2.2",
70
+ "@umituz/react-native-auth": "latest",
71
+ "@umituz/react-native-design-system": "latest",
72
+ "@umituz/react-native-filesystem": "latest",
73
+ "@umituz/react-native-firebase": "latest",
74
+ "@umituz/react-native-haptics": "latest",
75
+ "@umituz/react-native-localization": "latest",
76
+ "@umituz/react-native-notifications": "latest",
77
+ "@umituz/react-native-onboarding": "latest",
78
+ "@umituz/react-native-sentry": "latest",
79
+ "@umituz/react-native-storage": "latest",
80
+ "@umituz/react-native-tanstack": "latest",
81
+ "@umituz/react-native-uuid": "latest",
82
82
  "eslint": "^8.57.0",
83
83
  "eslint-plugin-react": "^7.37.5",
84
84
  "eslint-plugin-react-native": "^5.0.0",
@@ -19,6 +19,7 @@ export interface AboutContentProps {
19
19
 
20
20
  const AboutSectionHeader: React.FC<{ title: string }> = ({ title }) => {
21
21
  const tokens = useAppDesignTokens();
22
+ const styles = getStyles(tokens);
22
23
  const colors = tokens.colors;
23
24
 
24
25
  return (
@@ -30,6 +31,8 @@ export const AboutContent: React.FC<AboutContentProps> = ({
30
31
  appInfo,
31
32
  config,
32
33
  }) => {
34
+ const tokens = useAppDesignTokens();
35
+ const styles = getStyles(tokens);
33
36
  const hasContactInfo = appInfo.developer || appInfo.contactEmail || appInfo.websiteUrl;
34
37
  const hasMoreInfo = appInfo.moreAppsUrl;
35
38
 
@@ -86,19 +89,19 @@ export const AboutContent: React.FC<AboutContentProps> = ({
86
89
  );
87
90
  };
88
91
 
89
- const styles = StyleSheet.create({
92
+ const getStyles = (tokens: any) => StyleSheet.create({
90
93
  content: {
91
- paddingVertical: 8,
94
+ paddingVertical: 8 * tokens.spacingMultiplier,
92
95
  },
93
96
  section: {
94
- marginBottom: 24,
97
+ marginBottom: 24 * tokens.spacingMultiplier,
95
98
  },
96
99
  sectionHeader: {
97
- fontSize: 13,
100
+ fontSize: tokens.typography.labelSmall.responsiveFontSize,
98
101
  fontWeight: '600',
99
- marginBottom: 8,
100
- paddingHorizontal: 16,
102
+ marginBottom: 8 * tokens.spacingMultiplier,
103
+ paddingHorizontal: 16 * tokens.spacingMultiplier,
101
104
  textTransform: 'uppercase',
102
- letterSpacing: 0.5,
105
+ letterSpacing: 0.5 * tokens.spacingMultiplier,
103
106
  },
104
107
  });
@@ -38,6 +38,7 @@ export const AboutHeader: React.FC<AboutHeaderProps> = ({
38
38
  testID,
39
39
  }) => {
40
40
  const tokens = useAppDesignTokens();
41
+ const styles = getStyles(tokens);
41
42
  const colors = tokens.colors;
42
43
 
43
44
  return (
@@ -55,25 +56,25 @@ export const AboutHeader: React.FC<AboutHeaderProps> = ({
55
56
  );
56
57
  };
57
58
 
58
- const styles = StyleSheet.create({
59
+ const getStyles = (tokens: any) => StyleSheet.create({
59
60
  header: {
60
61
  alignItems: 'center',
61
- paddingVertical: 24,
62
- paddingHorizontal: 16,
62
+ paddingVertical: 24 * tokens.spacingMultiplier,
63
+ paddingHorizontal: 16 * tokens.spacingMultiplier,
63
64
  borderBottomWidth: 1,
64
65
  },
65
66
  appName: {
66
- fontSize: 24,
67
+ fontSize: tokens.typography.headlineMedium.responsiveFontSize,
67
68
  fontWeight: 'bold',
68
- marginBottom: 4,
69
+ marginBottom: 4 * tokens.spacingMultiplier,
69
70
  },
70
71
  version: {
71
- fontSize: 16,
72
- marginBottom: 8,
72
+ fontSize: tokens.typography.bodyLarge.responsiveFontSize,
73
+ marginBottom: 8 * tokens.spacingMultiplier,
73
74
  },
74
75
  description: {
75
- fontSize: 14,
76
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
76
77
  textAlign: 'center',
77
- lineHeight: 20,
78
+ lineHeight: 20 * tokens.spacingMultiplier,
78
79
  },
79
80
  });
@@ -64,6 +64,7 @@ export const AboutSettingItem: React.FC<AboutSettingItemProps> = ({
64
64
  chevronColor,
65
65
  }) => {
66
66
  const tokens = useAppDesignTokens();
67
+ const styles = getStyles(tokens);
67
68
  const colors = tokens.colors;
68
69
 
69
70
  // Memoize container type to prevent unnecessary re-renders
@@ -79,7 +80,7 @@ export const AboutSettingItem: React.FC<AboutSettingItemProps> = ({
79
80
  disabled && styles.disabled,
80
81
  containerStyle
81
82
  ];
82
- }, [disabled, containerStyle, colors.surface]);
83
+ }, [disabled, containerStyle, colors.surface, styles]);
83
84
 
84
85
  // Memoize icon container styles
85
86
  const iconContainerStyles = useMemo(() => {
@@ -87,7 +88,7 @@ export const AboutSettingItem: React.FC<AboutSettingItemProps> = ({
87
88
  styles.iconContainer,
88
89
  iconContainerStyle
89
90
  ];
90
- }, [iconContainerStyle]);
91
+ }, [iconContainerStyle, styles]);
91
92
 
92
93
  // Memoize chevron styles
93
94
  const chevronStyles = useMemo(() => {
@@ -95,7 +96,7 @@ export const AboutSettingItem: React.FC<AboutSettingItemProps> = ({
95
96
  styles.chevron,
96
97
  { color: chevronColor || colors.textSecondary }
97
98
  ];
98
- }, [chevronColor, colors.textSecondary]);
99
+ }, [chevronColor, colors.textSecondary, styles]);
99
100
 
100
101
  // Memoize press handler to prevent unnecessary re-renders
101
102
  const handlePress = useCallback(() => {
@@ -129,7 +130,7 @@ export const AboutSettingItem: React.FC<AboutSettingItemProps> = ({
129
130
  )}
130
131
  </View>
131
132
  );
132
- }, [title, description, titleStyle, descriptionStyle, colors.textPrimary, colors.textSecondary]);
133
+ }, [title, description, titleStyle, descriptionStyle, colors.textPrimary, colors.textSecondary, styles]);
133
134
 
134
135
  // Memoize value rendering
135
136
  const renderValue = useMemo(() => {
@@ -140,7 +141,7 @@ export const AboutSettingItem: React.FC<AboutSettingItemProps> = ({
140
141
  return (
141
142
  <Text style={[styles.value, { color: colors.textSecondary }, valueStyle]}>{value}</Text>
142
143
  );
143
- }, [value, valueStyle, colors.textSecondary]);
144
+ }, [value, valueStyle, colors.textSecondary, styles]);
144
145
 
145
146
  // Memoize chevron rendering
146
147
  const renderChevron = useMemo(() => {
@@ -168,18 +169,18 @@ export const AboutSettingItem: React.FC<AboutSettingItemProps> = ({
168
169
  );
169
170
  };
170
171
 
171
- const styles = StyleSheet.create({
172
+ const getStyles = (tokens: any) => StyleSheet.create({
172
173
  container: {
173
174
  flexDirection: 'row',
174
175
  alignItems: 'center',
175
- paddingVertical: 12,
176
- paddingHorizontal: 16,
176
+ paddingVertical: 12 * tokens.spacingMultiplier,
177
+ paddingHorizontal: 16 * tokens.spacingMultiplier,
177
178
  },
178
179
  disabled: {
179
180
  opacity: 0.5,
180
181
  },
181
182
  iconContainer: {
182
- marginRight: 12,
183
+ marginRight: 12 * tokens.spacingMultiplier,
183
184
  alignItems: 'center',
184
185
  justifyContent: 'center',
185
186
  },
@@ -187,22 +188,22 @@ const styles = StyleSheet.create({
187
188
  flex: 1,
188
189
  },
189
190
  title: {
190
- fontSize: 16,
191
+ fontSize: tokens.typography.bodyLarge.responsiveFontSize,
191
192
  fontWeight: '500',
192
193
  },
193
194
  description: {
194
- fontSize: 14,
195
- marginTop: 2,
195
+ fontSize: tokens.typography.bodySmall.responsiveFontSize,
196
+ marginTop: 2 * tokens.spacingMultiplier,
196
197
  },
197
198
  value: {
198
- fontSize: 16,
199
- marginRight: 8,
199
+ fontSize: tokens.typography.bodyLarge.responsiveFontSize,
200
+ marginRight: 8 * tokens.spacingMultiplier,
200
201
  flexShrink: 1,
201
202
  textAlign: 'right',
202
203
  maxWidth: '60%',
203
204
  },
204
205
  chevron: {
205
- fontSize: 20,
206
+ fontSize: 20 * tokens.spacingMultiplier,
206
207
  fontWeight: '300',
207
208
  },
208
209
  });
@@ -52,6 +52,7 @@ export const AboutScreen: React.FC<AboutScreenProps> = ({
52
52
  testID,
53
53
  }) => {
54
54
  const tokens = useAppDesignTokens();
55
+ const styles = getStyles(tokens);
55
56
  const colors = tokens.colors;
56
57
 
57
58
  const { appInfo, loading, error } = useAboutInfo({
@@ -91,7 +92,7 @@ export const AboutScreen: React.FC<AboutScreenProps> = ({
91
92
  {footerComponent}
92
93
  </View>
93
94
  );
94
- }, [footerComponent, colors.border]);
95
+ }, [footerComponent, colors.border, styles]);
95
96
 
96
97
  // Memoize content rendering
97
98
  const renderContent = useCallback(() => {
@@ -114,7 +115,7 @@ export const AboutScreen: React.FC<AboutScreenProps> = ({
114
115
  { backgroundColor: colors.backgroundPrimary },
115
116
  containerStyle
116
117
  ];
117
- }, [containerStyle, colors.backgroundPrimary]);
118
+ }, [containerStyle, colors.backgroundPrimary, styles]);
118
119
 
119
120
  const texts = config.texts || {};
120
121
 
@@ -164,7 +165,7 @@ export const AboutScreen: React.FC<AboutScreenProps> = ({
164
165
  <ScrollView
165
166
  style={containerStyles}
166
167
  testID={testID}
167
- contentContainerStyle={{ paddingBottom: 32 }}
168
+ contentContainerStyle={{ paddingBottom: 32 * tokens.spacingMultiplier }}
168
169
  >
169
170
  {renderHeader()}
170
171
  {renderContent()}
@@ -173,23 +174,23 @@ export const AboutScreen: React.FC<AboutScreenProps> = ({
173
174
  );
174
175
  };
175
176
 
176
- const styles = StyleSheet.create({
177
+ const getStyles = (tokens: any) => StyleSheet.create({
177
178
  container: {
178
179
  flex: 1,
179
180
  },
180
181
  footer: {
181
- paddingVertical: 16,
182
- paddingHorizontal: 16,
182
+ paddingVertical: 16 * tokens.spacingMultiplier,
183
+ paddingHorizontal: 16 * tokens.spacingMultiplier,
183
184
  borderTopWidth: 1,
184
185
  },
185
186
  loadingText: {
186
187
  textAlign: 'center',
187
- fontSize: 16,
188
- marginTop: 20,
188
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
189
+ marginTop: 20 * tokens.spacingMultiplier,
189
190
  },
190
191
  errorText: {
191
192
  textAlign: 'center',
192
- fontSize: 16,
193
- marginTop: 20,
193
+ fontSize: tokens.typography.bodyMedium.responsiveFontSize,
194
+ marginTop: 20 * tokens.spacingMultiplier,
194
195
  },
195
196
  });
@@ -59,9 +59,9 @@ export const AppearanceHeader: React.FC<AppearanceHeaderProps> = ({
59
59
  const getStyles = (tokens: DesignTokens) =>
60
60
  StyleSheet.create({
61
61
  header: {
62
- marginBottom: tokens.spacing.lg,
62
+ marginBottom: tokens.spacing.lg * tokens.spacingMultiplier,
63
63
  },
64
64
  headerSubtitle: {
65
- marginTop: tokens.spacing.sm,
65
+ marginTop: tokens.spacing.sm * tokens.spacingMultiplier,
66
66
  },
67
67
  });
@@ -106,35 +106,35 @@ export const AppearancePreview: React.FC<AppearancePreviewProps> = ({
106
106
  const getStyles = (tokens: DesignTokens) =>
107
107
  StyleSheet.create({
108
108
  previewSection: {
109
- marginBottom: tokens.spacing.lg,
109
+ marginBottom: tokens.spacing.lg * tokens.spacingMultiplier,
110
110
  },
111
111
  sectionTitle: {
112
- marginBottom: tokens.spacing.xs,
112
+ marginBottom: tokens.spacing.xs * tokens.spacingMultiplier,
113
113
  },
114
114
  sectionDescription: {
115
- marginBottom: tokens.spacing.md,
115
+ marginBottom: tokens.spacing.md * tokens.spacingMultiplier,
116
116
  },
117
117
  previewContainer: {
118
118
  backgroundColor: tokens.colors.surface,
119
- borderRadius: 12,
120
- padding: tokens.spacing.md,
119
+ borderRadius: 12 * tokens.spacingMultiplier,
120
+ padding: tokens.spacing.md * tokens.spacingMultiplier,
121
121
  borderLeftWidth: 4,
122
122
  borderLeftColor: tokens.colors.primary,
123
123
  },
124
124
  previewColorRow: {
125
125
  flexDirection: "row",
126
126
  flexWrap: "wrap",
127
- gap: tokens.spacing.md,
128
- marginTop: tokens.spacing.sm,
127
+ gap: tokens.spacing.md * tokens.spacingMultiplier,
128
+ marginTop: tokens.spacing.sm * tokens.spacingMultiplier,
129
129
  },
130
130
  previewColorItem: {
131
131
  alignItems: "center",
132
132
  },
133
133
  previewColorCircle: {
134
- width: 32,
135
- height: 32,
136
- borderRadius: 16,
137
- marginBottom: tokens.spacing.xs,
134
+ width: 32 * tokens.spacingMultiplier,
135
+ height: 32 * tokens.spacingMultiplier,
136
+ borderRadius: 16 * tokens.spacingMultiplier,
137
+ marginBottom: tokens.spacing.xs * tokens.spacingMultiplier,
138
138
  borderWidth: 1,
139
139
  borderColor: tokens.colors.border,
140
140
  },
@@ -166,21 +166,21 @@ export const CustomColorsSection: React.FC<CustomColorsSectionProps> = ({
166
166
  const getStyles = (tokens: DesignTokens) =>
167
167
  StyleSheet.create({
168
168
  section: {
169
- marginBottom: tokens.spacing.xl,
169
+ marginBottom: tokens.spacing.xl * tokens.spacingMultiplier,
170
170
  },
171
171
  sectionHeader: {
172
172
  flexDirection: "row",
173
173
  justifyContent: "space-between",
174
174
  alignItems: "flex-start",
175
- marginBottom: tokens.spacing.md,
175
+ marginBottom: tokens.spacing.md * tokens.spacingMultiplier,
176
176
  },
177
177
  titleContainer: {
178
178
  flex: 1,
179
179
  },
180
180
  sectionTitle: {
181
- marginBottom: tokens.spacing.xs,
181
+ marginBottom: tokens.spacing.xs * tokens.spacingMultiplier,
182
182
  },
183
183
  sectionDescription: {
184
- marginBottom: tokens.spacing.md,
184
+ marginBottom: tokens.spacing.md * tokens.spacingMultiplier,
185
185
  },
186
186
  });
@@ -99,12 +99,12 @@ export const ThemeModeSection: React.FC<ThemeModeSectionProps> = ({
99
99
  const getStyles = (tokens: DesignTokens) =>
100
100
  StyleSheet.create({
101
101
  section: {
102
- marginBottom: tokens.spacing.xl,
102
+ marginBottom: tokens.spacing.xl * tokens.spacingMultiplier,
103
103
  },
104
104
  sectionTitle: {
105
- marginBottom: tokens.spacing.xs,
105
+ marginBottom: tokens.spacing.xs * tokens.spacingMultiplier,
106
106
  },
107
107
  sectionDescription: {
108
- marginBottom: tokens.spacing.md,
108
+ marginBottom: tokens.spacing.md * tokens.spacingMultiplier,
109
109
  },
110
110
  });
@@ -41,7 +41,7 @@ export const ThemeOption: React.FC<ThemeOptionProps> = ({
41
41
  >
42
42
  <View style={styles.header}>
43
43
  <View style={styles.iconContainer}>
44
- <AtomicIcon name={iconName} customSize={24} customColor={tokens.colors.primary} />
44
+ <AtomicIcon name={iconName} customSize={24 * tokens.spacingMultiplier} customColor={tokens.colors.primary} />
45
45
  </View>
46
46
  <View style={styles.textContainer}>
47
47
  <AtomicText type="titleLarge" color="primary">
@@ -53,7 +53,7 @@ export const ThemeOption: React.FC<ThemeOptionProps> = ({
53
53
  </View>
54
54
  <AtomicIcon
55
55
  name={isSelected ? "checkmark-circle-outline" : "ellipse-outline"}
56
- customSize={24}
56
+ customSize={24 * tokens.spacingMultiplier}
57
57
  customColor={isSelected ? tokens.colors.primary : tokens.colors.secondary}
58
58
  />
59
59
  </View>
@@ -93,9 +93,9 @@ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
93
93
  StyleSheet.create({
94
94
  container: {
95
95
  backgroundColor: tokens.colors.surface,
96
- borderRadius: 12,
97
- padding: 16,
98
- marginBottom: 16,
96
+ borderRadius: 12 * tokens.spacingMultiplier,
97
+ padding: 16 * tokens.spacingMultiplier,
98
+ marginBottom: 16 * tokens.spacingMultiplier,
99
99
  borderWidth: 2,
100
100
  borderColor: tokens.colors.border,
101
101
  },
@@ -105,34 +105,34 @@ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
105
105
  header: {
106
106
  flexDirection: "row",
107
107
  alignItems: "center",
108
- marginBottom: 12,
108
+ marginBottom: 12 * tokens.spacingMultiplier,
109
109
  },
110
110
  iconContainer: {
111
- width: 48,
112
- height: 48,
113
- borderRadius: 24,
111
+ width: 48 * tokens.spacingMultiplier,
112
+ height: 48 * tokens.spacingMultiplier,
113
+ borderRadius: 24 * tokens.spacingMultiplier,
114
114
  backgroundColor: `${tokens.colors.primary}15`,
115
115
  justifyContent: "center",
116
116
  alignItems: "center",
117
- marginRight: 12,
117
+ marginRight: 12 * tokens.spacingMultiplier,
118
118
  },
119
119
  textContainer: {
120
120
  flex: 1,
121
121
  },
122
122
  description: {
123
- marginBottom: 12,
124
- lineHeight: 20,
123
+ marginBottom: 12 * tokens.spacingMultiplier,
124
+ lineHeight: 20 * tokens.spacingMultiplier,
125
125
  },
126
126
  featuresContainer: {
127
127
  backgroundColor: `${tokens.colors.primary}08`,
128
- borderRadius: 8,
129
- padding: 12,
128
+ borderRadius: 8 * tokens.spacingMultiplier,
129
+ padding: 12 * tokens.spacingMultiplier,
130
130
  },
131
131
  featuresTitle: {
132
- marginBottom: 8,
132
+ marginBottom: 8 * tokens.spacingMultiplier,
133
133
  },
134
134
  feature: {
135
- marginBottom: 4,
136
- lineHeight: 18,
135
+ marginBottom: 4 * tokens.spacingMultiplier,
136
+ lineHeight: 18 * tokens.spacingMultiplier,
137
137
  },
138
138
  });
@@ -221,7 +221,7 @@ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
221
221
  flex: 1,
222
222
  },
223
223
  scrollContent: {
224
- padding: tokens.spacing.md,
225
- paddingBottom: tokens.spacing.xl,
224
+ padding: tokens.spacing.md * tokens.spacingMultiplier,
225
+ paddingBottom: tokens.spacing.xl * tokens.spacingMultiplier,
226
226
  },
227
227
  });
@@ -78,38 +78,38 @@ export const DisclaimerCard: React.FC<DisclaimerCardProps> = ({
78
78
  const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
79
79
  StyleSheet.create({
80
80
  container: {
81
- paddingHorizontal: tokens.spacing.md,
82
- paddingVertical: tokens.spacing.md,
83
- marginHorizontal: tokens.spacing.md,
84
- marginTop: 8,
85
- marginBottom: 8,
86
- borderRadius: 12,
81
+ paddingHorizontal: tokens.spacing.md * tokens.spacingMultiplier,
82
+ paddingVertical: tokens.spacing.md * tokens.spacingMultiplier,
83
+ marginHorizontal: tokens.spacing.md * tokens.spacingMultiplier,
84
+ marginTop: 8 * tokens.spacingMultiplier,
85
+ marginBottom: 8 * tokens.spacingMultiplier,
86
+ borderRadius: 12 * tokens.spacingMultiplier,
87
87
  },
88
88
 
89
89
  headerRow: {
90
90
  flexDirection: 'row',
91
91
  alignItems: 'center',
92
- marginBottom: 12,
92
+ marginBottom: 12 * tokens.spacingMultiplier,
93
93
  },
94
94
 
95
95
  iconContainer: {
96
- width: 40,
97
- height: 40,
98
- borderRadius: 20,
96
+ width: 40 * tokens.spacingMultiplier,
97
+ height: 40 * tokens.spacingMultiplier,
98
+ borderRadius: 20 * tokens.spacingMultiplier,
99
99
  alignItems: 'center',
100
100
  justifyContent: 'center',
101
- marginRight: 12,
101
+ marginRight: 12 * tokens.spacingMultiplier,
102
102
  },
103
103
 
104
104
  title: {
105
105
  flex: 1,
106
106
  fontWeight: tokens.typography.labelLarge.fontWeight as any,
107
- fontSize: tokens.typography.labelLarge.fontSize,
107
+ fontSize: tokens.typography.labelLarge.responsiveFontSize,
108
108
  },
109
109
 
110
110
  shortMessage: {
111
- lineHeight: 18,
112
- paddingLeft: 52, // Align with title (40px icon + 12px margin)
113
- fontSize: 13,
111
+ lineHeight: 18 * tokens.spacingMultiplier,
112
+ paddingLeft: 52 * tokens.spacingMultiplier, // Align with title (40px icon + 12px margin)
113
+ fontSize: 13 * tokens.spacingMultiplier, // Or tokens.typography.bodySmall.responsiveFontSize
114
114
  },
115
115
  });
@@ -81,8 +81,8 @@ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
81
81
  flexDirection: 'row',
82
82
  justifyContent: 'space-between',
83
83
  alignItems: 'center',
84
- paddingHorizontal: 20,
85
- paddingVertical: 16,
84
+ paddingHorizontal: 20 * tokens.spacingMultiplier,
85
+ paddingVertical: 16 * tokens.spacingMultiplier,
86
86
  borderBottomWidth: 1,
87
87
  },
88
88
 
@@ -91,11 +91,11 @@ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
91
91
  },
92
92
 
93
93
  modalContentContainer: {
94
- padding: 20,
94
+ padding: 20 * tokens.spacingMultiplier,
95
95
  },
96
96
 
97
97
  modalText: {
98
- lineHeight: 24,
99
- fontSize: 15,
98
+ lineHeight: 24 * tokens.spacingMultiplier,
99
+ fontSize: 15 * tokens.spacingMultiplier, // or tokens.typography.bodyMedium.responsiveFontSize
100
100
  },
101
101
  });
@@ -68,7 +68,7 @@ export const DisclaimerScreen: React.FC<DisclaimerScreenProps> = ({
68
68
  },
69
69
  ]}
70
70
  >
71
- <AtomicIcon name={iconName as any} color="warning" size="lg" />
71
+ <AtomicIcon name={iconName as any} color="warning" size="xl" />
72
72
  </View>
73
73
  </View>
74
74
 
@@ -95,27 +95,27 @@ const getStyles = (tokens: ReturnType<typeof useAppDesignTokens>) =>
95
95
  flex: 1,
96
96
  },
97
97
  scrollContent: {
98
- padding: tokens.spacing.lg,
99
- paddingTop: tokens.spacing.xl,
98
+ padding: tokens.spacing.lg * tokens.spacingMultiplier,
99
+ paddingTop: tokens.spacing.xl * tokens.spacingMultiplier,
100
100
  },
101
101
  iconHeader: {
102
102
  alignItems: 'center',
103
- marginBottom: tokens.spacing.lg,
103
+ marginBottom: tokens.spacing.lg * tokens.spacingMultiplier,
104
104
  },
105
105
  iconContainer: {
106
- width: 72,
107
- height: 72,
108
- borderRadius: 36,
106
+ width: 72 * tokens.spacingMultiplier,
107
+ height: 72 * tokens.spacingMultiplier,
108
+ borderRadius: 36 * tokens.spacingMultiplier,
109
109
  alignItems: 'center',
110
110
  justifyContent: 'center',
111
111
  borderWidth: 2,
112
112
  },
113
113
  title: {
114
114
  textAlign: 'center',
115
- marginBottom: tokens.spacing.lg,
115
+ marginBottom: tokens.spacing.lg * tokens.spacingMultiplier,
116
116
  },
117
117
  content: {
118
- lineHeight: 24,
118
+ lineHeight: 24 * tokens.spacingMultiplier,
119
119
  textAlign: 'left',
120
120
  },
121
121
  });
@@ -35,11 +35,11 @@ export const FAQCategoryComponent: React.FC<FAQCategoryProps> = ({
35
35
  () =>
36
36
  StyleSheet.create({
37
37
  container: {
38
- marginBottom: tokens.spacing.xl,
38
+ marginBottom: tokens.spacing.xl * tokens.spacingMultiplier,
39
39
  },
40
40
  titleContainer: {
41
- marginBottom: tokens.spacing.sm,
42
- paddingHorizontal: tokens.spacing.lg,
41
+ marginBottom: tokens.spacing.sm * tokens.spacingMultiplier,
42
+ paddingHorizontal: tokens.spacing.lg * tokens.spacingMultiplier,
43
43
  flexDirection: 'row',
44
44
  alignItems: 'center',
45
45
  },
@@ -47,7 +47,7 @@ export const FAQCategoryComponent: React.FC<FAQCategoryProps> = ({
47
47
  flex: 1,
48
48
  height: 1,
49
49
  backgroundColor: tokens.colors.border,
50
- marginLeft: tokens.spacing.md,
50
+ marginLeft: tokens.spacing.md * tokens.spacingMultiplier,
51
51
  }
52
52
  }),
53
53
  [tokens]