@umituz/react-native-settings 2.4.1 → 3.0.0
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.
- package/package.json +5 -13
- package/src/presentation/components/SettingItem.tsx +4 -4
- package/lib/__tests__/setup.d.ts +0 -5
- package/lib/__tests__/setup.d.ts.map +0 -1
- package/lib/__tests__/setup.js +0 -143
- package/lib/__tests__/setup.js.map +0 -1
- package/lib/domain/repositories/ISettingsRepository.d.ts +0 -51
- package/lib/domain/repositories/ISettingsRepository.d.ts.map +0 -1
- package/lib/domain/repositories/ISettingsRepository.js +0 -8
- package/lib/domain/repositories/ISettingsRepository.js.map +0 -1
- package/lib/index.d.ts +0 -35
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -32
- package/lib/index.js.map +0 -1
- package/lib/infrastructure/storage/SettingsStore.d.ts +0 -36
- package/lib/infrastructure/storage/SettingsStore.d.ts.map +0 -1
- package/lib/infrastructure/storage/SettingsStore.js +0 -144
- package/lib/infrastructure/storage/SettingsStore.js.map +0 -1
- package/lib/presentation/components/CloudSyncSetting.d.ts +0 -16
- package/lib/presentation/components/CloudSyncSetting.d.ts.map +0 -1
- package/lib/presentation/components/CloudSyncSetting.js +0 -30
- package/lib/presentation/components/CloudSyncSetting.js.map +0 -1
- package/lib/presentation/components/DisclaimerCard.d.ts +0 -15
- package/lib/presentation/components/DisclaimerCard.d.ts.map +0 -1
- package/lib/presentation/components/DisclaimerCard.js +0 -73
- package/lib/presentation/components/DisclaimerCard.js.map +0 -1
- package/lib/presentation/components/DisclaimerModal.d.ts +0 -13
- package/lib/presentation/components/DisclaimerModal.d.ts.map +0 -1
- package/lib/presentation/components/DisclaimerModal.js +0 -62
- package/lib/presentation/components/DisclaimerModal.js.map +0 -1
- package/lib/presentation/components/DisclaimerSetting.d.ts +0 -39
- package/lib/presentation/components/DisclaimerSetting.d.ts.map +0 -1
- package/lib/presentation/components/DisclaimerSetting.js +0 -59
- package/lib/presentation/components/DisclaimerSetting.js.map +0 -1
- package/lib/presentation/components/SettingItem.d.ts +0 -45
- package/lib/presentation/components/SettingItem.d.ts.map +0 -1
- package/lib/presentation/components/SettingItem.js +0 -113
- package/lib/presentation/components/SettingItem.js.map +0 -1
- package/lib/presentation/components/SettingsErrorBoundary.d.ts +0 -23
- package/lib/presentation/components/SettingsErrorBoundary.d.ts.map +0 -1
- package/lib/presentation/components/SettingsErrorBoundary.js +0 -73
- package/lib/presentation/components/SettingsErrorBoundary.js.map +0 -1
- package/lib/presentation/components/SettingsFooter.d.ts +0 -11
- package/lib/presentation/components/SettingsFooter.d.ts.map +0 -1
- package/lib/presentation/components/SettingsFooter.js +0 -31
- package/lib/presentation/components/SettingsFooter.js.map +0 -1
- package/lib/presentation/components/SettingsSection.d.ts +0 -13
- package/lib/presentation/components/SettingsSection.d.ts.map +0 -1
- package/lib/presentation/components/SettingsSection.js +0 -37
- package/lib/presentation/components/SettingsSection.js.map +0 -1
- package/lib/presentation/components/StorageClearSetting.d.ts +0 -16
- package/lib/presentation/components/StorageClearSetting.d.ts.map +0 -1
- package/lib/presentation/components/StorageClearSetting.js +0 -21
- package/lib/presentation/components/StorageClearSetting.js.map +0 -1
- package/lib/presentation/components/UserProfileHeader.d.ts +0 -30
- package/lib/presentation/components/UserProfileHeader.d.ts.map +0 -1
- package/lib/presentation/components/UserProfileHeader.js +0 -119
- package/lib/presentation/components/UserProfileHeader.js.map +0 -1
- package/lib/presentation/screens/AppearanceScreen.d.ts +0 -8
- package/lib/presentation/screens/AppearanceScreen.d.ts.map +0 -1
- package/lib/presentation/screens/AppearanceScreen.js +0 -8
- package/lib/presentation/screens/AppearanceScreen.js.map +0 -1
- package/lib/presentation/screens/SettingsScreen.d.ts +0 -38
- package/lib/presentation/screens/SettingsScreen.d.ts.map +0 -1
- package/lib/presentation/screens/SettingsScreen.js +0 -37
- package/lib/presentation/screens/SettingsScreen.js.map +0 -1
- package/lib/presentation/screens/components/AboutLegalSection.d.ts +0 -15
- package/lib/presentation/screens/components/AboutLegalSection.d.ts.map +0 -1
- package/lib/presentation/screens/components/AboutLegalSection.js +0 -28
- package/lib/presentation/screens/components/AboutLegalSection.js.map +0 -1
- package/lib/presentation/screens/components/AppearanceSection.d.ts +0 -12
- package/lib/presentation/screens/components/AppearanceSection.d.ts.map +0 -1
- package/lib/presentation/screens/components/AppearanceSection.js +0 -21
- package/lib/presentation/screens/components/AppearanceSection.js.map +0 -1
- package/lib/presentation/screens/components/LanguageSection.d.ts +0 -12
- package/lib/presentation/screens/components/LanguageSection.d.ts.map +0 -1
- package/lib/presentation/screens/components/LanguageSection.js +0 -26
- package/lib/presentation/screens/components/LanguageSection.js.map +0 -1
- package/lib/presentation/screens/components/NotificationsSection.d.ts +0 -12
- package/lib/presentation/screens/components/NotificationsSection.d.ts.map +0 -1
- package/lib/presentation/screens/components/NotificationsSection.js +0 -58
- package/lib/presentation/screens/components/NotificationsSection.js.map +0 -1
- package/lib/presentation/screens/components/SettingsContent.d.ts +0 -36
- package/lib/presentation/screens/components/SettingsContent.d.ts.map +0 -1
- package/lib/presentation/screens/components/SettingsContent.js +0 -81
- package/lib/presentation/screens/components/SettingsContent.js.map +0 -1
- package/lib/presentation/screens/components/SettingsHeader.d.ts +0 -12
- package/lib/presentation/screens/components/SettingsHeader.d.ts.map +0 -1
- package/lib/presentation/screens/components/SettingsHeader.js +0 -59
- package/lib/presentation/screens/components/SettingsHeader.js.map +0 -1
- package/lib/presentation/screens/components/index.d.ts +0 -9
- package/lib/presentation/screens/components/index.d.ts.map +0 -1
- package/lib/presentation/screens/components/index.js +0 -9
- package/lib/presentation/screens/components/index.js.map +0 -1
- package/lib/presentation/screens/hooks/useFeatureDetection.d.ts +0 -21
- package/lib/presentation/screens/hooks/useFeatureDetection.d.ts.map +0 -1
- package/lib/presentation/screens/hooks/useFeatureDetection.js +0 -82
- package/lib/presentation/screens/hooks/useFeatureDetection.js.map +0 -1
- package/lib/presentation/screens/types/CustomSection.d.ts +0 -19
- package/lib/presentation/screens/types/CustomSection.d.ts.map +0 -1
- package/lib/presentation/screens/types/CustomSection.js +0 -6
- package/lib/presentation/screens/types/CustomSection.js.map +0 -1
- package/lib/presentation/screens/types/ExtendedConfig.d.ts +0 -68
- package/lib/presentation/screens/types/ExtendedConfig.d.ts.map +0 -1
- package/lib/presentation/screens/types/ExtendedConfig.js +0 -6
- package/lib/presentation/screens/types/ExtendedConfig.js.map +0 -1
- package/lib/presentation/screens/types/FeatureConfig.d.ts +0 -95
- package/lib/presentation/screens/types/FeatureConfig.d.ts.map +0 -1
- package/lib/presentation/screens/types/FeatureConfig.js +0 -6
- package/lib/presentation/screens/types/FeatureConfig.js.map +0 -1
- package/lib/presentation/screens/types/SettingsConfig.d.ts +0 -97
- package/lib/presentation/screens/types/SettingsConfig.d.ts.map +0 -1
- package/lib/presentation/screens/types/SettingsConfig.js +0 -6
- package/lib/presentation/screens/types/SettingsConfig.js.map +0 -1
- package/lib/presentation/screens/types/index.d.ts +0 -10
- package/lib/presentation/screens/types/index.d.ts.map +0 -1
- package/lib/presentation/screens/types/index.js +0 -6
- package/lib/presentation/screens/types/index.js.map +0 -1
- package/lib/presentation/screens/utils/normalizeConfig.d.ts +0 -44
- package/lib/presentation/screens/utils/normalizeConfig.d.ts.map +0 -1
- package/lib/presentation/screens/utils/normalizeConfig.js +0 -38
- package/lib/presentation/screens/utils/normalizeConfig.js.map +0 -1
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Disclaimer Card Component
|
|
3
|
-
* Extracted from DisclaimerSetting to follow single responsibility and 200-line rules
|
|
4
|
-
*/
|
|
5
|
-
import React from 'react';
|
|
6
|
-
export interface DisclaimerCardProps {
|
|
7
|
-
title: string;
|
|
8
|
-
shortMessage: string;
|
|
9
|
-
iconName: string;
|
|
10
|
-
iconColor: string;
|
|
11
|
-
backgroundColor: string;
|
|
12
|
-
onPress: () => void;
|
|
13
|
-
}
|
|
14
|
-
export declare const DisclaimerCard: React.FC<DisclaimerCardProps>;
|
|
15
|
-
//# sourceMappingURL=DisclaimerCard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisclaimerCard.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/DisclaimerCard.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmDxD,CAAC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Disclaimer Card Component
|
|
3
|
-
* Extracted from DisclaimerSetting to follow single responsibility and 200-line rules
|
|
4
|
-
*/
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { View, StyleSheet, TouchableOpacity, } from 'react-native';
|
|
7
|
-
import { useAppDesignTokens, withAlpha } from '@umituz/react-native-design-system-theme';
|
|
8
|
-
import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system-atoms';
|
|
9
|
-
export const DisclaimerCard = ({ title, shortMessage, iconName, iconColor, backgroundColor, onPress, }) => {
|
|
10
|
-
const tokens = useAppDesignTokens();
|
|
11
|
-
const styles = getStyles(tokens);
|
|
12
|
-
return (<TouchableOpacity style={[
|
|
13
|
-
styles.container,
|
|
14
|
-
{ backgroundColor },
|
|
15
|
-
]} onPress={onPress} activeOpacity={0.7} testID="disclaimer-setting">
|
|
16
|
-
{/* Icon and Title Row */}
|
|
17
|
-
<View style={styles.headerRow}>
|
|
18
|
-
<View style={[
|
|
19
|
-
styles.iconContainer,
|
|
20
|
-
{
|
|
21
|
-
backgroundColor: withAlpha(iconColor, 0.2),
|
|
22
|
-
borderColor: withAlpha(iconColor, 0.4),
|
|
23
|
-
borderWidth: 1,
|
|
24
|
-
},
|
|
25
|
-
]}>
|
|
26
|
-
<AtomicIcon name={iconName} color="warning"/>
|
|
27
|
-
</View>
|
|
28
|
-
<AtomicText type="bodyLarge" color="primary" style={styles.title}>
|
|
29
|
-
{title}
|
|
30
|
-
</AtomicText>
|
|
31
|
-
<AtomicIcon name="ArrowRight" color="secondary" size="sm"/>
|
|
32
|
-
</View>
|
|
33
|
-
|
|
34
|
-
{/* Short Message */}
|
|
35
|
-
<AtomicText type="bodySmall" color="secondary" style={styles.shortMessage}>
|
|
36
|
-
{shortMessage}
|
|
37
|
-
</AtomicText>
|
|
38
|
-
</TouchableOpacity>);
|
|
39
|
-
};
|
|
40
|
-
const getStyles = (tokens) => StyleSheet.create({
|
|
41
|
-
container: {
|
|
42
|
-
paddingHorizontal: tokens.spacing.md,
|
|
43
|
-
paddingVertical: tokens.spacing.md,
|
|
44
|
-
marginHorizontal: tokens.spacing.md,
|
|
45
|
-
marginTop: 8,
|
|
46
|
-
marginBottom: 8,
|
|
47
|
-
borderRadius: 12,
|
|
48
|
-
},
|
|
49
|
-
headerRow: {
|
|
50
|
-
flexDirection: 'row',
|
|
51
|
-
alignItems: 'center',
|
|
52
|
-
marginBottom: 12,
|
|
53
|
-
},
|
|
54
|
-
iconContainer: {
|
|
55
|
-
width: 40,
|
|
56
|
-
height: 40,
|
|
57
|
-
borderRadius: 20,
|
|
58
|
-
alignItems: 'center',
|
|
59
|
-
justifyContent: 'center',
|
|
60
|
-
marginRight: 12,
|
|
61
|
-
},
|
|
62
|
-
title: {
|
|
63
|
-
flex: 1,
|
|
64
|
-
fontWeight: tokens.typography.labelLarge.fontWeight,
|
|
65
|
-
fontSize: tokens.typography.labelLarge.fontSize,
|
|
66
|
-
},
|
|
67
|
-
shortMessage: {
|
|
68
|
-
lineHeight: 18,
|
|
69
|
-
paddingLeft: 52, // Align with title (40px icon + 12px margin)
|
|
70
|
-
fontSize: 13,
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=DisclaimerCard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisclaimerCard.js","sourceRoot":"","sources":["../../../src/presentation/components/DisclaimerCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Disclaimer Modal Component
|
|
3
|
-
* Extracted from DisclaimerSetting to follow single responsibility and 200-line rules
|
|
4
|
-
*/
|
|
5
|
-
import React from 'react';
|
|
6
|
-
export interface DisclaimerModalProps {
|
|
7
|
-
visible: boolean;
|
|
8
|
-
title: string;
|
|
9
|
-
content: string;
|
|
10
|
-
onClose: () => void;
|
|
11
|
-
}
|
|
12
|
-
export declare const DisclaimerModal: React.FC<DisclaimerModalProps>;
|
|
13
|
-
//# sourceMappingURL=DisclaimerModal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisclaimerModal.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/DisclaimerModal.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmD1D,CAAC"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Disclaimer Modal Component
|
|
3
|
-
* Extracted from DisclaimerSetting to follow single responsibility and 200-line rules
|
|
4
|
-
*/
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { View, StyleSheet, TouchableOpacity, ScrollView, } from 'react-native';
|
|
7
|
-
import { useAppDesignTokens } from '@umituz/react-native-design-system-theme';
|
|
8
|
-
import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system-atoms';
|
|
9
|
-
export const DisclaimerModal = ({ visible, title, content, onClose, }) => {
|
|
10
|
-
const tokens = useAppDesignTokens();
|
|
11
|
-
const styles = getStyles(tokens);
|
|
12
|
-
if (!visible)
|
|
13
|
-
return null;
|
|
14
|
-
return (<View style={[
|
|
15
|
-
styles.modalContainer,
|
|
16
|
-
{ backgroundColor: tokens.colors.backgroundPrimary },
|
|
17
|
-
]}>
|
|
18
|
-
{/* Modal Header */}
|
|
19
|
-
<View style={[
|
|
20
|
-
styles.modalHeader,
|
|
21
|
-
{ borderBottomColor: tokens.colors.borderLight },
|
|
22
|
-
]}>
|
|
23
|
-
<AtomicText type="headlineMedium" color="primary">
|
|
24
|
-
{title}
|
|
25
|
-
</AtomicText>
|
|
26
|
-
<TouchableOpacity onPress={onClose} testID="close-disclaimer-modal">
|
|
27
|
-
<AtomicIcon name="X" color="primary" size="md"/>
|
|
28
|
-
</TouchableOpacity>
|
|
29
|
-
</View>
|
|
30
|
-
|
|
31
|
-
{/* Scrollable Content */}
|
|
32
|
-
<ScrollView style={styles.modalContent} contentContainerStyle={styles.modalContentContainer}>
|
|
33
|
-
<AtomicText type="bodyMedium" color="primary" style={styles.modalText}>
|
|
34
|
-
{content}
|
|
35
|
-
</AtomicText>
|
|
36
|
-
</ScrollView>
|
|
37
|
-
</View>);
|
|
38
|
-
};
|
|
39
|
-
const getStyles = (tokens) => StyleSheet.create({
|
|
40
|
-
modalContainer: {
|
|
41
|
-
flex: 1,
|
|
42
|
-
},
|
|
43
|
-
modalHeader: {
|
|
44
|
-
flexDirection: 'row',
|
|
45
|
-
justifyContent: 'space-between',
|
|
46
|
-
alignItems: 'center',
|
|
47
|
-
paddingHorizontal: 20,
|
|
48
|
-
paddingVertical: 16,
|
|
49
|
-
borderBottomWidth: 1,
|
|
50
|
-
},
|
|
51
|
-
modalContent: {
|
|
52
|
-
flex: 1,
|
|
53
|
-
},
|
|
54
|
-
modalContentContainer: {
|
|
55
|
-
padding: 20,
|
|
56
|
-
},
|
|
57
|
-
modalText: {
|
|
58
|
-
lineHeight: 24,
|
|
59
|
-
fontSize: 15,
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=DisclaimerModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisclaimerModal.js","sourceRoot":"","sources":["../../../src/presentation/components/DisclaimerModal.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,IAAI,EACJ,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AASlF,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,OAAO,EACP,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,cAAc;YACrB,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;SACrD,CAAC,CAEF;MAAA,CAAC,kBAAkB,CACnB;MAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,WAAW;YAClB,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;SACjD,CAAC,CAEF;QAAA,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAC/C;UAAA,CAAC,KAAK,CACR;QAAA,EAAE,UAAU,CACZ;QAAA,CAAC,gBAAgB,CACf,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,MAAM,CAAC,wBAAwB,CAE/B;UAAA,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAChD;QAAA,EAAE,gBAAgB,CACpB;MAAA,EAAE,IAAI,CAEN;;MAAA,CAAC,wBAAwB,CACzB;MAAA,CAAC,UAAU,CACT,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAC3B,qBAAqB,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAEpD;QAAA,CAAC,UAAU,CACT,IAAI,CAAC,YAAY,CACjB,KAAK,CAAC,SAAS,CACf,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAExB;UAAA,CAAC,OAAO,CACV;QAAA,EAAE,UAAU,CACd;MAAA,EAAE,UAAU,CACd;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAA6C,EAAE,EAAE,CAClE,UAAU,CAAC,MAAM,CAAC;IAChB,cAAc,EAAE;QACd,IAAI,EAAE,CAAC;KACR;IAED,WAAW,EAAE;QACX,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE;QACnB,iBAAiB,EAAE,CAAC;KACrB;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC;KACR;IAED,qBAAqB,EAAE;QACrB,OAAO,EAAE,EAAE;KACZ;IAED,SAAS,EAAE;QACT,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DisclaimerSetting Component
|
|
3
|
-
*
|
|
4
|
-
* Displays customizable disclaimer with important legal notice
|
|
5
|
-
* Used in About screens for apps that require disclaimers
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Tappable card that opens full disclaimer modal
|
|
9
|
-
* - Warning icon with background color
|
|
10
|
-
* - Internationalized title and message
|
|
11
|
-
* - Full-screen modal with scrollable content
|
|
12
|
-
* - NO shadows (CLAUDE.md compliance)
|
|
13
|
-
* - Universal across iOS, Android, Web (NO Platform.OS checks)
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
* - Import and use in AboutScreen
|
|
17
|
-
* - Requires translations: settings.disclaimer.title, settings.disclaimer.message, settings.disclaimer.shortMessage
|
|
18
|
-
*/
|
|
19
|
-
import React from 'react';
|
|
20
|
-
export interface DisclaimerSettingProps {
|
|
21
|
-
/** Custom title translation key */
|
|
22
|
-
titleKey?: string;
|
|
23
|
-
/** Custom message translation key */
|
|
24
|
-
messageKey?: string;
|
|
25
|
-
/** Custom short message translation key */
|
|
26
|
-
shortMessageKey?: string;
|
|
27
|
-
/** Custom icon name */
|
|
28
|
-
iconName?: string;
|
|
29
|
-
/** Custom icon color */
|
|
30
|
-
iconColor?: string;
|
|
31
|
-
/** Custom background color */
|
|
32
|
-
backgroundColor?: string;
|
|
33
|
-
/** Custom modal title */
|
|
34
|
-
modalTitle?: string;
|
|
35
|
-
/** Custom modal content */
|
|
36
|
-
modalContent?: string;
|
|
37
|
-
}
|
|
38
|
-
export declare const DisclaimerSetting: React.FC<DisclaimerSettingProps>;
|
|
39
|
-
//# sourceMappingURL=DisclaimerSetting.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisclaimerSetting.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/DisclaimerSetting.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAQhE,MAAM,WAAW,sBAAsB;IACrC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAkE9D,CAAC"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DisclaimerSetting Component
|
|
3
|
-
*
|
|
4
|
-
* Displays customizable disclaimer with important legal notice
|
|
5
|
-
* Used in About screens for apps that require disclaimers
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Tappable card that opens full disclaimer modal
|
|
9
|
-
* - Warning icon with background color
|
|
10
|
-
* - Internationalized title and message
|
|
11
|
-
* - Full-screen modal with scrollable content
|
|
12
|
-
* - NO shadows (CLAUDE.md compliance)
|
|
13
|
-
* - Universal across iOS, Android, Web (NO Platform.OS checks)
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
* - Import and use in AboutScreen
|
|
17
|
-
* - Requires translations: settings.disclaimer.title, settings.disclaimer.message, settings.disclaimer.shortMessage
|
|
18
|
-
*/
|
|
19
|
-
import React, { useState, useEffect, useCallback } from 'react';
|
|
20
|
-
import { Modal } from 'react-native';
|
|
21
|
-
import { useAppDesignTokens, withAlpha } from '@umituz/react-native-design-system-theme';
|
|
22
|
-
import { useLocalization } from '@umituz/react-native-localization';
|
|
23
|
-
import { DisclaimerCard } from './DisclaimerCard';
|
|
24
|
-
import { DisclaimerModal } from './DisclaimerModal';
|
|
25
|
-
export const DisclaimerSetting = ({ titleKey = "settings.disclaimer.title", messageKey = "settings.disclaimer.message", shortMessageKey = "settings.disclaimer.shortMessage", iconName = "AlertTriangle", iconColor, backgroundColor, modalTitle, modalContent, }) => {
|
|
26
|
-
const { t } = useLocalization();
|
|
27
|
-
const tokens = useAppDesignTokens();
|
|
28
|
-
const [modalVisible, setModalVisible] = useState(false);
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
return () => {
|
|
31
|
-
setModalVisible(false);
|
|
32
|
-
};
|
|
33
|
-
}, []);
|
|
34
|
-
const title = modalTitle || t(titleKey);
|
|
35
|
-
const content = modalContent || t(messageKey);
|
|
36
|
-
const shortMessage = t(shortMessageKey);
|
|
37
|
-
const finalIconColor = iconColor || tokens.colors.warning;
|
|
38
|
-
const finalBackgroundColor = backgroundColor || withAlpha(finalIconColor, 0.1);
|
|
39
|
-
const handleOpenModal = useCallback(() => {
|
|
40
|
-
setModalVisible(true);
|
|
41
|
-
if (__DEV__) {
|
|
42
|
-
console.log('DisclaimerSetting: Modal opened');
|
|
43
|
-
}
|
|
44
|
-
}, []);
|
|
45
|
-
const handleCloseModal = useCallback(() => {
|
|
46
|
-
setModalVisible(false);
|
|
47
|
-
if (__DEV__) {
|
|
48
|
-
console.log('DisclaimerSetting: Modal closed');
|
|
49
|
-
}
|
|
50
|
-
}, []);
|
|
51
|
-
return (<>
|
|
52
|
-
<DisclaimerCard title={title} shortMessage={shortMessage} iconName={iconName} iconColor={finalIconColor} backgroundColor={finalBackgroundColor} onPress={handleOpenModal}/>
|
|
53
|
-
|
|
54
|
-
<Modal visible={modalVisible} animationType="slide" presentationStyle="pageSheet" onRequestClose={handleCloseModal}>
|
|
55
|
-
<DisclaimerModal visible={modalVisible} title={title} content={content} onClose={handleCloseModal}/>
|
|
56
|
-
</Modal>
|
|
57
|
-
</>);
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=DisclaimerSetting.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisclaimerSetting.js","sourceRoot":"","sources":["../../../src/presentation/components/DisclaimerSetting.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,QAAQ,GAAG,2BAA2B,EACtC,UAAU,GAAG,6BAA6B,EAC1C,eAAe,GAAG,kCAAkC,EACpD,QAAQ,GAAG,eAAe,EAC1B,SAAS,EACT,eAAe,EACf,UAAU,EACV,YAAY,GACb,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAC1D,MAAM,oBAAoB,GAAG,eAAe,IAAI,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAE/E,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,EACE;MAAA,CAAC,cAAc,CACb,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,SAAS,CAAC,CAAC,cAAc,CAAC,CAC1B,eAAe,CAAC,CAAC,oBAAoB,CAAC,CACtC,OAAO,CAAC,CAAC,eAAe,CAAC,EAG3B;;MAAA,CAAC,KAAK,CACJ,OAAO,CAAC,CAAC,YAAY,CAAC,CACtB,aAAa,CAAC,OAAO,CACrB,iBAAiB,CAAC,WAAW,CAC7B,cAAc,CAAC,CAAC,gBAAgB,CAAC,CAEjC;QAAA,CAAC,eAAe,CACd,OAAO,CAAC,CAAC,YAAY,CAAC,CACtB,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,gBAAgB,CAAC,EAE9B;MAAA,EAAE,KAAK,CACT;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Setting Item Component
|
|
3
|
-
* Single Responsibility: Render a single settings item
|
|
4
|
-
* Material Design 3 style with hover effects and modern spacing
|
|
5
|
-
*/
|
|
6
|
-
import React from "react";
|
|
7
|
-
import { type LucideIcon } from "lucide-react-native";
|
|
8
|
-
export interface SettingItemProps {
|
|
9
|
-
/** Icon component from lucide-react-native */
|
|
10
|
-
icon: LucideIcon | React.ComponentType<{
|
|
11
|
-
size?: number;
|
|
12
|
-
color?: string;
|
|
13
|
-
}>;
|
|
14
|
-
/** Main title text */
|
|
15
|
-
title: string;
|
|
16
|
-
/** Optional description/value text */
|
|
17
|
-
value?: string;
|
|
18
|
-
/** Callback when pressed */
|
|
19
|
-
onPress?: () => void;
|
|
20
|
-
/** Show switch instead of chevron */
|
|
21
|
-
showSwitch?: boolean;
|
|
22
|
-
/** Switch value */
|
|
23
|
-
switchValue?: boolean;
|
|
24
|
-
/** Switch change handler */
|
|
25
|
-
onSwitchChange?: (value: boolean) => void;
|
|
26
|
-
/** Is last item in section (no divider) */
|
|
27
|
-
isLast?: boolean;
|
|
28
|
-
/** Custom icon color */
|
|
29
|
-
iconColor?: string;
|
|
30
|
-
/** Custom title color */
|
|
31
|
-
titleColor?: string;
|
|
32
|
-
/** Test ID for E2E testing */
|
|
33
|
-
testID?: string;
|
|
34
|
-
/** Disable the item */
|
|
35
|
-
disabled?: boolean;
|
|
36
|
-
/** Custom switch thumb color */
|
|
37
|
-
switchThumbColor?: string;
|
|
38
|
-
/** Custom switch track colors */
|
|
39
|
-
switchTrackColors?: {
|
|
40
|
-
false: string;
|
|
41
|
-
true: string;
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
export declare const SettingItem: React.FC<SettingItemProps>;
|
|
45
|
-
//# sourceMappingURL=SettingItem.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingItem.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/SettingItem.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGpE,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,iBAAiB,CAAC,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsGlD,CAAC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Setting Item Component
|
|
3
|
-
* Single Responsibility: Render a single settings item
|
|
4
|
-
* Material Design 3 style with hover effects and modern spacing
|
|
5
|
-
*/
|
|
6
|
-
import React from "react";
|
|
7
|
-
import { View, Text, Pressable, StyleSheet, Switch } from "react-native";
|
|
8
|
-
import { ChevronRight } from "lucide-react-native";
|
|
9
|
-
import { useAppDesignTokens } from "@umituz/react-native-design-system-theme";
|
|
10
|
-
export const SettingItem = ({ icon: Icon, title, value, onPress, showSwitch = false, switchValue, onSwitchChange, isLast = false, iconColor, titleColor, testID, disabled = false, switchThumbColor, switchTrackColors, }) => {
|
|
11
|
-
const tokens = useAppDesignTokens();
|
|
12
|
-
const colors = tokens.colors;
|
|
13
|
-
const spacing = tokens.spacing;
|
|
14
|
-
return (<>
|
|
15
|
-
<Pressable style={({ pressed }) => [
|
|
16
|
-
styles.container,
|
|
17
|
-
{
|
|
18
|
-
backgroundColor: pressed && !disabled && !showSwitch
|
|
19
|
-
? `${colors.primary}08`
|
|
20
|
-
: 'transparent',
|
|
21
|
-
},
|
|
22
|
-
]} onPress={onPress} disabled={showSwitch || disabled} testID={testID}>
|
|
23
|
-
<View style={styles.content}>
|
|
24
|
-
<View style={[
|
|
25
|
-
styles.iconContainer,
|
|
26
|
-
{
|
|
27
|
-
backgroundColor: iconColor
|
|
28
|
-
? `${iconColor}15`
|
|
29
|
-
: `${colors.primary}15`,
|
|
30
|
-
},
|
|
31
|
-
]}>
|
|
32
|
-
<Icon size={24} color={iconColor || colors.primary}/>
|
|
33
|
-
</View>
|
|
34
|
-
<View style={styles.textContainer}>
|
|
35
|
-
<Text style={[
|
|
36
|
-
styles.title,
|
|
37
|
-
{
|
|
38
|
-
color: disabled
|
|
39
|
-
? colors.textSecondary
|
|
40
|
-
: titleColor || colors.textPrimary,
|
|
41
|
-
opacity: disabled ? 0.5 : 1,
|
|
42
|
-
},
|
|
43
|
-
]} numberOfLines={1}>
|
|
44
|
-
{title}
|
|
45
|
-
</Text>
|
|
46
|
-
{value && !showSwitch && (<Text style={[styles.value, { color: colors.textSecondary }]} numberOfLines={2}>
|
|
47
|
-
{value}
|
|
48
|
-
</Text>)}
|
|
49
|
-
</View>
|
|
50
|
-
</View>
|
|
51
|
-
|
|
52
|
-
<View style={styles.rightContainer}>
|
|
53
|
-
{showSwitch ? (<Switch value={switchValue} onValueChange={onSwitchChange} trackColor={switchTrackColors || {
|
|
54
|
-
false: `${colors.textSecondary}30`,
|
|
55
|
-
true: colors.primary,
|
|
56
|
-
}} thumbColor={switchThumbColor || "#FFFFFF"} ios_backgroundColor={`${colors.textSecondary}30`}/>) : (<ChevronRight size={20} color={colors.textSecondary}/>)}
|
|
57
|
-
</View>
|
|
58
|
-
</Pressable>
|
|
59
|
-
|
|
60
|
-
{!isLast && (<View style={[
|
|
61
|
-
styles.divider,
|
|
62
|
-
{ backgroundColor: `${colors.textSecondary}20` },
|
|
63
|
-
]}/>)}
|
|
64
|
-
</>);
|
|
65
|
-
};
|
|
66
|
-
const styles = StyleSheet.create({
|
|
67
|
-
container: {
|
|
68
|
-
flexDirection: "row",
|
|
69
|
-
alignItems: "center",
|
|
70
|
-
justifyContent: "space-between",
|
|
71
|
-
paddingHorizontal: 16,
|
|
72
|
-
paddingVertical: 16,
|
|
73
|
-
minHeight: 72,
|
|
74
|
-
},
|
|
75
|
-
content: {
|
|
76
|
-
flexDirection: "row",
|
|
77
|
-
alignItems: "center",
|
|
78
|
-
flex: 1,
|
|
79
|
-
},
|
|
80
|
-
iconContainer: {
|
|
81
|
-
width: 48,
|
|
82
|
-
height: 48,
|
|
83
|
-
borderRadius: 12,
|
|
84
|
-
justifyContent: "center",
|
|
85
|
-
alignItems: "center",
|
|
86
|
-
marginRight: 16,
|
|
87
|
-
},
|
|
88
|
-
textContainer: {
|
|
89
|
-
flex: 1,
|
|
90
|
-
minWidth: 0,
|
|
91
|
-
},
|
|
92
|
-
title: {
|
|
93
|
-
fontSize: 16,
|
|
94
|
-
fontWeight: "500",
|
|
95
|
-
lineHeight: 20,
|
|
96
|
-
},
|
|
97
|
-
value: {
|
|
98
|
-
fontSize: 14,
|
|
99
|
-
fontWeight: "400",
|
|
100
|
-
marginTop: 4,
|
|
101
|
-
lineHeight: 18,
|
|
102
|
-
},
|
|
103
|
-
rightContainer: {
|
|
104
|
-
flexDirection: "row",
|
|
105
|
-
alignItems: "center",
|
|
106
|
-
gap: 8,
|
|
107
|
-
},
|
|
108
|
-
divider: {
|
|
109
|
-
height: 1,
|
|
110
|
-
marginLeft: 80,
|
|
111
|
-
},
|
|
112
|
-
});
|
|
113
|
-
//# sourceMappingURL=SettingItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingItem.js","sourceRoot":"","sources":["../../../src/presentation/components/SettingItem.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAoC9E,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACtD,IAAI,EAAE,IAAI,EACV,KAAK,EACL,KAAK,EACL,OAAO,EACP,UAAU,GAAG,KAAK,EAClB,WAAW,EACX,cAAc,EACd,MAAM,GAAG,KAAK,EACd,SAAS,EACT,UAAU,EACV,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE/B,OAAO,CACL,EACE;MAAA,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS;YAChB;gBACE,eAAe,EAAE,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;oBAClD,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI;oBACvB,CAAC,CAAC,aAAa;aAClB;SACF,CAAC,CACF,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,CACjC,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;UAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,aAAa;YACpB;gBACE,eAAe,EAAE,SAAS;oBACxB,CAAC,CAAC,GAAG,SAAS,IAAI;oBAClB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI;aAC1B;SACF,CAAC,CAEF;YAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,EACrD;UAAA,EAAE,IAAI,CACN;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAChC;YAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,KAAK;YACZ;gBACE,KAAK,EAAE,QAAQ;oBACb,CAAC,CAAC,MAAM,CAAC,aAAa;oBACtB,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW;gBACpC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC5B;SACF,CAAC,CACF,aAAa,CAAC,CAAC,CAAC,CAAC,CAEjB;cAAA,CAAC,KAAK,CACR;YAAA,EAAE,IAAI,CACN;YAAA,CAAC,KAAK,IAAI,CAAC,UAAU,IAAI,CACvB,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CACvD,aAAa,CAAC,CAAC,CAAC,CAAC,CAEjB;gBAAA,CAAC,KAAK,CACR;cAAA,EAAE,IAAI,CAAC,CACR,CACH;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,IAAI,CAEN;;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CACjC;UAAA,CAAC,UAAU,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CACL,KAAK,CAAC,CAAC,WAAW,CAAC,CACnB,aAAa,CAAC,CAAC,cAAc,CAAC,CAC9B,UAAU,CAAC,CAAC,iBAAiB,IAAI;gBAC/B,KAAK,EAAE,GAAG,MAAM,CAAC,aAAa,IAAI;gBAClC,IAAI,EAAE,MAAM,CAAC,OAAO;aACrB,CAAC,CACF,UAAU,CAAC,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAC1C,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,EACjD,CACH,CAAC,CAAC,CAAC,CACF,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAG,CACxD,CACH;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,SAAS,CAEX;;MAAA,CAAC,CAAC,MAAM,IAAI,CACV,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;gBACL,MAAM,CAAC,OAAO;gBACd,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE;aACjD,CAAC,EACF,CACH,CACH;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,eAAe;QAC/B,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,EAAE;KACd;IACD,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,IAAI,EAAE,CAAC;KACR;IACD,aAAa,EAAE;QACb,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,EAAE;KAChB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,CAAC;KACZ;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,EAAE;KACf;IACD,cAAc,EAAE;QACd,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,CAAC;KACP;IACD,OAAO,EAAE;QACP,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings Error Boundary Component
|
|
3
|
-
* Catches and handles errors in settings components
|
|
4
|
-
*/
|
|
5
|
-
import React, { Component, ReactNode } from 'react';
|
|
6
|
-
interface Props {
|
|
7
|
-
children: ReactNode;
|
|
8
|
-
fallback?: ReactNode;
|
|
9
|
-
fallbackTitle?: string;
|
|
10
|
-
fallbackMessage?: string;
|
|
11
|
-
}
|
|
12
|
-
interface State {
|
|
13
|
-
hasError: boolean;
|
|
14
|
-
error?: Error;
|
|
15
|
-
}
|
|
16
|
-
export declare class SettingsErrorBoundary extends Component<Props, State> {
|
|
17
|
-
constructor(props: Props);
|
|
18
|
-
static getDerivedStateFromError(error: Error): State;
|
|
19
|
-
componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
|
|
20
|
-
render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
|
|
21
|
-
}
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=SettingsErrorBoundary.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/SettingsErrorBoundary.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpD,UAAU,KAAK;IACb,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,KAAK;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,qBAAsB,SAAQ,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;gBACpD,KAAK,EAAE,KAAK;IAKxB,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAI3C,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAM1D,MAAM;CAiBhB"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings Error Boundary Component
|
|
3
|
-
* Catches and handles errors in settings components
|
|
4
|
-
*/
|
|
5
|
-
import React, { Component } from 'react';
|
|
6
|
-
import { View, StyleSheet } from 'react-native';
|
|
7
|
-
import { useAppDesignTokens } from '@umituz/react-native-design-system-theme';
|
|
8
|
-
import { AtomicText, AtomicIcon } from '@umituz/react-native-design-system-atoms';
|
|
9
|
-
export class SettingsErrorBoundary extends Component {
|
|
10
|
-
constructor(props) {
|
|
11
|
-
super(props);
|
|
12
|
-
this.state = { hasError: false };
|
|
13
|
-
}
|
|
14
|
-
static getDerivedStateFromError(error) {
|
|
15
|
-
return { hasError: true, error };
|
|
16
|
-
}
|
|
17
|
-
componentDidCatch(error, errorInfo) {
|
|
18
|
-
if (__DEV__) {
|
|
19
|
-
console.error('Settings Error Boundary caught an error:', error, errorInfo);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
render() {
|
|
23
|
-
if (this.state.hasError) {
|
|
24
|
-
if (this.props.fallback) {
|
|
25
|
-
return this.props.fallback;
|
|
26
|
-
}
|
|
27
|
-
return (<ErrorBoundaryFallback error={this.state.error} fallbackTitle={this.props.fallbackTitle} fallbackMessage={this.props.fallbackMessage}/>);
|
|
28
|
-
}
|
|
29
|
-
return this.props.children;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
const ErrorBoundaryFallback = ({ error, fallbackTitle = "error_boundary.title", fallbackMessage = "error_boundary.message" }) => {
|
|
33
|
-
const tokens = useAppDesignTokens();
|
|
34
|
-
const title = __DEV__ && error?.message ? "error_boundary.dev_title" : fallbackTitle;
|
|
35
|
-
const message = __DEV__ && error?.message
|
|
36
|
-
? `error_boundary.dev_message: ${error.message}`
|
|
37
|
-
: fallbackMessage;
|
|
38
|
-
return (<View style={[styles.container, { backgroundColor: tokens.colors.backgroundPrimary }]}>
|
|
39
|
-
<View style={[styles.content, { backgroundColor: tokens.colors.surface }]}>
|
|
40
|
-
<AtomicIcon name="AlertTriangle" color="warning" size="lg" style={styles.icon}/>
|
|
41
|
-
<AtomicText type="headlineSmall" color="primary" style={styles.title}>
|
|
42
|
-
{title}
|
|
43
|
-
</AtomicText>
|
|
44
|
-
<AtomicText type="bodyMedium" color="secondary" style={styles.message}>
|
|
45
|
-
{message}
|
|
46
|
-
</AtomicText>
|
|
47
|
-
</View>
|
|
48
|
-
</View>);
|
|
49
|
-
};
|
|
50
|
-
const styles = StyleSheet.create({
|
|
51
|
-
container: {
|
|
52
|
-
flex: 1,
|
|
53
|
-
padding: 16,
|
|
54
|
-
justifyContent: 'center',
|
|
55
|
-
},
|
|
56
|
-
content: {
|
|
57
|
-
alignItems: 'center',
|
|
58
|
-
padding: 24,
|
|
59
|
-
borderRadius: 12,
|
|
60
|
-
},
|
|
61
|
-
icon: {
|
|
62
|
-
marginBottom: 16,
|
|
63
|
-
},
|
|
64
|
-
title: {
|
|
65
|
-
marginBottom: 8,
|
|
66
|
-
textAlign: 'center',
|
|
67
|
-
},
|
|
68
|
-
message: {
|
|
69
|
-
textAlign: 'center',
|
|
70
|
-
lineHeight: 20,
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=SettingsErrorBoundary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsErrorBoundary.js","sourceRoot":"","sources":["../../../src/presentation/components/SettingsErrorBoundary.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAclF,MAAM,OAAO,qBAAsB,SAAQ,SAAuB;IAChE,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAEQ,iBAAiB,CAAC,KAAY,EAAE,SAA0B;QACjE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC7B,CAAC;YAED,OAAO,CACL,CAAC,qBAAqB,CACpB,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CACxB,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CACxC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAC5C,CACH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF;AAQD,MAAM,qBAAqB,GAAyC,CAAC,EACnE,KAAK,EACL,aAAa,GAAG,sBAAsB,EACtC,eAAe,GAAG,wBAAwB,EAC3C,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC;IACrF,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,EAAE,OAAO;QACvC,CAAC,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE;QAChD,CAAC,CAAC,eAAe,CAAC;IAEpB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CACpF;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CACxE;QAAA,CAAC,UAAU,CACT,IAAI,CAAC,eAAe,CACpB,KAAK,CAAC,SAAS,CACf,IAAI,CAAC,IAAI,CACT,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAErB;QAAA,CAAC,UAAU,CACT,IAAI,CAAC,eAAe,CACpB,KAAK,CAAC,SAAS,CACf,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAEpB;UAAA,CAAC,KAAK,CACR;QAAA,EAAE,UAAU,CACZ;QAAA,CAAC,UAAU,CACT,IAAI,CAAC,YAAY,CACjB,KAAK,CAAC,WAAW,CACjB,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAEtB;UAAA,CAAC,OAAO,CACV;QAAA,EAAE,UAAU,CACd;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,QAAQ;KACzB;IACD,OAAO,EAAE;QACP,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;KACjB;IACD,IAAI,EAAE;QACJ,YAAY,EAAE,EAAE;KACjB;IACD,KAAK,EAAE;QACL,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings Footer Component
|
|
3
|
-
* Single Responsibility: Display app version information
|
|
4
|
-
*/
|
|
5
|
-
import React from "react";
|
|
6
|
-
export interface SettingsFooterProps {
|
|
7
|
-
/** Custom version text (optional) */
|
|
8
|
-
versionText?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const SettingsFooter: React.FC<SettingsFooterProps>;
|
|
11
|
-
//# sourceMappingURL=SettingsFooter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsFooter.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/SettingsFooter.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkBxD,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings Footer Component
|
|
3
|
-
* Single Responsibility: Display app version information
|
|
4
|
-
*/
|
|
5
|
-
import React from "react";
|
|
6
|
-
import { View, Text, StyleSheet } from "react-native";
|
|
7
|
-
import { useLocalization } from "@umituz/react-native-localization";
|
|
8
|
-
import { useAppDesignTokens } from "@umituz/react-native-design-system-theme";
|
|
9
|
-
export const SettingsFooter = ({ versionText, }) => {
|
|
10
|
-
const { t } = useLocalization();
|
|
11
|
-
const tokens = useAppDesignTokens();
|
|
12
|
-
const colors = tokens.colors;
|
|
13
|
-
const displayText = versionText ||
|
|
14
|
-
`${t("settings.about.version")} ${t("settings.about.versionNumber")}`;
|
|
15
|
-
return (<View style={styles.container}>
|
|
16
|
-
<Text style={[styles.text, { color: colors.textSecondary }]}>
|
|
17
|
-
{displayText}
|
|
18
|
-
</Text>
|
|
19
|
-
</View>);
|
|
20
|
-
};
|
|
21
|
-
const styles = StyleSheet.create({
|
|
22
|
-
container: {
|
|
23
|
-
paddingVertical: 24,
|
|
24
|
-
alignItems: "center",
|
|
25
|
-
},
|
|
26
|
-
text: {
|
|
27
|
-
fontSize: 12,
|
|
28
|
-
fontWeight: "500",
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=SettingsFooter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsFooter.js","sourceRoot":"","sources":["../../../src/presentation/components/SettingsFooter.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAO9E,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,MAAM,WAAW,GACf,WAAW;QACX,GAAG,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,EAAE,CAAC;IAExE,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAC1D;QAAA,CAAC,WAAW,CACd;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,QAAQ;KACrB;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings Section Component
|
|
3
|
-
* Single Responsibility: Render a settings section with title and container
|
|
4
|
-
*/
|
|
5
|
-
import React from "react";
|
|
6
|
-
export interface SettingsSectionProps {
|
|
7
|
-
/** Section title */
|
|
8
|
-
title: string;
|
|
9
|
-
/** Section content */
|
|
10
|
-
children: React.ReactNode;
|
|
11
|
-
}
|
|
12
|
-
export declare const SettingsSection: React.FC<SettingsSectionProps>;
|
|
13
|
-
//# sourceMappingURL=SettingsSection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsSection.d.ts","sourceRoot":"","sources":["../../../src/presentation/components/SettingsSection.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiB1D,CAAC"}
|