@umituz/react-native-settings 2.4.0 → 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.
Files changed (122) hide show
  1. package/package.json +5 -13
  2. package/src/presentation/components/SettingItem.tsx +4 -4
  3. package/lib/__tests__/setup.d.ts +0 -5
  4. package/lib/__tests__/setup.d.ts.map +0 -1
  5. package/lib/__tests__/setup.js +0 -143
  6. package/lib/__tests__/setup.js.map +0 -1
  7. package/lib/domain/repositories/ISettingsRepository.d.ts +0 -51
  8. package/lib/domain/repositories/ISettingsRepository.d.ts.map +0 -1
  9. package/lib/domain/repositories/ISettingsRepository.js +0 -8
  10. package/lib/domain/repositories/ISettingsRepository.js.map +0 -1
  11. package/lib/index.d.ts +0 -35
  12. package/lib/index.d.ts.map +0 -1
  13. package/lib/index.js +0 -32
  14. package/lib/index.js.map +0 -1
  15. package/lib/infrastructure/storage/SettingsStore.d.ts +0 -36
  16. package/lib/infrastructure/storage/SettingsStore.d.ts.map +0 -1
  17. package/lib/infrastructure/storage/SettingsStore.js +0 -144
  18. package/lib/infrastructure/storage/SettingsStore.js.map +0 -1
  19. package/lib/presentation/components/CloudSyncSetting.d.ts +0 -16
  20. package/lib/presentation/components/CloudSyncSetting.d.ts.map +0 -1
  21. package/lib/presentation/components/CloudSyncSetting.js +0 -30
  22. package/lib/presentation/components/CloudSyncSetting.js.map +0 -1
  23. package/lib/presentation/components/DisclaimerCard.d.ts +0 -15
  24. package/lib/presentation/components/DisclaimerCard.d.ts.map +0 -1
  25. package/lib/presentation/components/DisclaimerCard.js +0 -73
  26. package/lib/presentation/components/DisclaimerCard.js.map +0 -1
  27. package/lib/presentation/components/DisclaimerModal.d.ts +0 -13
  28. package/lib/presentation/components/DisclaimerModal.d.ts.map +0 -1
  29. package/lib/presentation/components/DisclaimerModal.js +0 -62
  30. package/lib/presentation/components/DisclaimerModal.js.map +0 -1
  31. package/lib/presentation/components/DisclaimerSetting.d.ts +0 -39
  32. package/lib/presentation/components/DisclaimerSetting.d.ts.map +0 -1
  33. package/lib/presentation/components/DisclaimerSetting.js +0 -59
  34. package/lib/presentation/components/DisclaimerSetting.js.map +0 -1
  35. package/lib/presentation/components/SettingItem.d.ts +0 -45
  36. package/lib/presentation/components/SettingItem.d.ts.map +0 -1
  37. package/lib/presentation/components/SettingItem.js +0 -113
  38. package/lib/presentation/components/SettingItem.js.map +0 -1
  39. package/lib/presentation/components/SettingsErrorBoundary.d.ts +0 -23
  40. package/lib/presentation/components/SettingsErrorBoundary.d.ts.map +0 -1
  41. package/lib/presentation/components/SettingsErrorBoundary.js +0 -73
  42. package/lib/presentation/components/SettingsErrorBoundary.js.map +0 -1
  43. package/lib/presentation/components/SettingsFooter.d.ts +0 -11
  44. package/lib/presentation/components/SettingsFooter.d.ts.map +0 -1
  45. package/lib/presentation/components/SettingsFooter.js +0 -31
  46. package/lib/presentation/components/SettingsFooter.js.map +0 -1
  47. package/lib/presentation/components/SettingsSection.d.ts +0 -13
  48. package/lib/presentation/components/SettingsSection.d.ts.map +0 -1
  49. package/lib/presentation/components/SettingsSection.js +0 -37
  50. package/lib/presentation/components/SettingsSection.js.map +0 -1
  51. package/lib/presentation/components/StorageClearSetting.d.ts +0 -16
  52. package/lib/presentation/components/StorageClearSetting.d.ts.map +0 -1
  53. package/lib/presentation/components/StorageClearSetting.js +0 -21
  54. package/lib/presentation/components/StorageClearSetting.js.map +0 -1
  55. package/lib/presentation/components/UserProfileHeader.d.ts +0 -30
  56. package/lib/presentation/components/UserProfileHeader.d.ts.map +0 -1
  57. package/lib/presentation/components/UserProfileHeader.js +0 -119
  58. package/lib/presentation/components/UserProfileHeader.js.map +0 -1
  59. package/lib/presentation/screens/AppearanceScreen.d.ts +0 -8
  60. package/lib/presentation/screens/AppearanceScreen.d.ts.map +0 -1
  61. package/lib/presentation/screens/AppearanceScreen.js +0 -8
  62. package/lib/presentation/screens/AppearanceScreen.js.map +0 -1
  63. package/lib/presentation/screens/SettingsScreen.d.ts +0 -38
  64. package/lib/presentation/screens/SettingsScreen.d.ts.map +0 -1
  65. package/lib/presentation/screens/SettingsScreen.js +0 -37
  66. package/lib/presentation/screens/SettingsScreen.js.map +0 -1
  67. package/lib/presentation/screens/components/AboutLegalSection.d.ts +0 -15
  68. package/lib/presentation/screens/components/AboutLegalSection.d.ts.map +0 -1
  69. package/lib/presentation/screens/components/AboutLegalSection.js +0 -28
  70. package/lib/presentation/screens/components/AboutLegalSection.js.map +0 -1
  71. package/lib/presentation/screens/components/AppearanceSection.d.ts +0 -12
  72. package/lib/presentation/screens/components/AppearanceSection.d.ts.map +0 -1
  73. package/lib/presentation/screens/components/AppearanceSection.js +0 -21
  74. package/lib/presentation/screens/components/AppearanceSection.js.map +0 -1
  75. package/lib/presentation/screens/components/LanguageSection.d.ts +0 -12
  76. package/lib/presentation/screens/components/LanguageSection.d.ts.map +0 -1
  77. package/lib/presentation/screens/components/LanguageSection.js +0 -26
  78. package/lib/presentation/screens/components/LanguageSection.js.map +0 -1
  79. package/lib/presentation/screens/components/NotificationsSection.d.ts +0 -12
  80. package/lib/presentation/screens/components/NotificationsSection.d.ts.map +0 -1
  81. package/lib/presentation/screens/components/NotificationsSection.js +0 -58
  82. package/lib/presentation/screens/components/NotificationsSection.js.map +0 -1
  83. package/lib/presentation/screens/components/SettingsContent.d.ts +0 -36
  84. package/lib/presentation/screens/components/SettingsContent.d.ts.map +0 -1
  85. package/lib/presentation/screens/components/SettingsContent.js +0 -81
  86. package/lib/presentation/screens/components/SettingsContent.js.map +0 -1
  87. package/lib/presentation/screens/components/SettingsHeader.d.ts +0 -12
  88. package/lib/presentation/screens/components/SettingsHeader.d.ts.map +0 -1
  89. package/lib/presentation/screens/components/SettingsHeader.js +0 -59
  90. package/lib/presentation/screens/components/SettingsHeader.js.map +0 -1
  91. package/lib/presentation/screens/components/index.d.ts +0 -9
  92. package/lib/presentation/screens/components/index.d.ts.map +0 -1
  93. package/lib/presentation/screens/components/index.js +0 -9
  94. package/lib/presentation/screens/components/index.js.map +0 -1
  95. package/lib/presentation/screens/hooks/useFeatureDetection.d.ts +0 -21
  96. package/lib/presentation/screens/hooks/useFeatureDetection.d.ts.map +0 -1
  97. package/lib/presentation/screens/hooks/useFeatureDetection.js +0 -82
  98. package/lib/presentation/screens/hooks/useFeatureDetection.js.map +0 -1
  99. package/lib/presentation/screens/types/CustomSection.d.ts +0 -19
  100. package/lib/presentation/screens/types/CustomSection.d.ts.map +0 -1
  101. package/lib/presentation/screens/types/CustomSection.js +0 -6
  102. package/lib/presentation/screens/types/CustomSection.js.map +0 -1
  103. package/lib/presentation/screens/types/ExtendedConfig.d.ts +0 -68
  104. package/lib/presentation/screens/types/ExtendedConfig.d.ts.map +0 -1
  105. package/lib/presentation/screens/types/ExtendedConfig.js +0 -6
  106. package/lib/presentation/screens/types/ExtendedConfig.js.map +0 -1
  107. package/lib/presentation/screens/types/FeatureConfig.d.ts +0 -95
  108. package/lib/presentation/screens/types/FeatureConfig.d.ts.map +0 -1
  109. package/lib/presentation/screens/types/FeatureConfig.js +0 -6
  110. package/lib/presentation/screens/types/FeatureConfig.js.map +0 -1
  111. package/lib/presentation/screens/types/SettingsConfig.d.ts +0 -97
  112. package/lib/presentation/screens/types/SettingsConfig.d.ts.map +0 -1
  113. package/lib/presentation/screens/types/SettingsConfig.js +0 -6
  114. package/lib/presentation/screens/types/SettingsConfig.js.map +0 -1
  115. package/lib/presentation/screens/types/index.d.ts +0 -10
  116. package/lib/presentation/screens/types/index.d.ts.map +0 -1
  117. package/lib/presentation/screens/types/index.js +0 -6
  118. package/lib/presentation/screens/types/index.js.map +0 -1
  119. package/lib/presentation/screens/utils/normalizeConfig.d.ts +0 -44
  120. package/lib/presentation/screens/utils/normalizeConfig.d.ts.map +0 -1
  121. package/lib/presentation/screens/utils/normalizeConfig.js +0 -38
  122. 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":"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"}
@@ -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":"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"}
@@ -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"}