@echoform/echo-ui 0.1.0 → 0.2.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/README.md +57 -10
- package/dist/components/EchoChangeProfileNameModal.d.ts +59 -0
- package/dist/components/EchoChangeProfileNameModal.d.ts.map +1 -0
- package/dist/components/EchoChangeProfileNameModal.js +317 -0
- package/dist/components/EchoChangeProfileNameModal.js.map +1 -0
- package/dist/components/EchoColorPicker.d.ts +34 -0
- package/dist/components/EchoColorPicker.d.ts.map +1 -0
- package/dist/components/EchoColorPicker.js +206 -0
- package/dist/components/EchoColorPicker.js.map +1 -0
- package/dist/components/EchoConnectedAppsModal.d.ts +40 -0
- package/dist/components/EchoConnectedAppsModal.d.ts.map +1 -0
- package/dist/components/EchoConnectedAppsModal.js +220 -0
- package/dist/components/EchoConnectedAppsModal.js.map +1 -0
- package/dist/components/EchoDeleteProfilePanel.d.ts +63 -0
- package/dist/components/EchoDeleteProfilePanel.d.ts.map +1 -0
- package/dist/components/EchoDeleteProfilePanel.js +286 -0
- package/dist/components/EchoDeleteProfilePanel.js.map +1 -0
- package/dist/components/EchoDeletionIntercept.d.ts +39 -0
- package/dist/components/EchoDeletionIntercept.d.ts.map +1 -0
- package/dist/components/EchoDeletionIntercept.js +212 -0
- package/dist/components/EchoDeletionIntercept.js.map +1 -0
- package/dist/components/EchoDeletionStatusCard.d.ts +35 -0
- package/dist/components/EchoDeletionStatusCard.d.ts.map +1 -0
- package/dist/components/EchoDeletionStatusCard.js +156 -0
- package/dist/components/EchoDeletionStatusCard.js.map +1 -0
- package/dist/components/EchoEmblem.d.ts +93 -0
- package/dist/components/EchoEmblem.d.ts.map +1 -0
- package/dist/components/EchoEmblem.js +308 -0
- package/dist/components/EchoEmblem.js.map +1 -0
- package/dist/components/EchoEmblemPicker.d.ts +71 -0
- package/dist/components/EchoEmblemPicker.d.ts.map +1 -0
- package/dist/components/EchoEmblemPicker.js +490 -0
- package/dist/components/EchoEmblemPicker.js.map +1 -0
- package/dist/components/EchoErrorBanner.d.ts +17 -0
- package/dist/components/EchoErrorBanner.d.ts.map +1 -0
- package/dist/components/EchoErrorBanner.js +48 -0
- package/dist/components/EchoErrorBanner.js.map +1 -0
- package/dist/components/EchoFormField.d.ts +27 -0
- package/dist/components/EchoFormField.d.ts.map +1 -0
- package/dist/components/EchoFormField.js +49 -0
- package/dist/components/EchoFormField.js.map +1 -0
- package/dist/components/EchoLinkButton.d.ts +16 -0
- package/dist/components/EchoLinkButton.d.ts.map +1 -0
- package/dist/components/EchoLinkButton.js +37 -0
- package/dist/components/EchoLinkButton.js.map +1 -0
- package/dist/components/EchoMoreScreen.d.ts +41 -0
- package/dist/components/EchoMoreScreen.d.ts.map +1 -0
- package/dist/components/EchoMoreScreen.js +94 -0
- package/dist/components/EchoMoreScreen.js.map +1 -0
- package/dist/components/EchoPasswordField.d.ts +28 -0
- package/dist/components/EchoPasswordField.d.ts.map +1 -0
- package/dist/components/EchoPasswordField.js +67 -0
- package/dist/components/EchoPasswordField.js.map +1 -0
- package/dist/components/EchoPrimaryButton.d.ts +23 -0
- package/dist/components/EchoPrimaryButton.d.ts.map +1 -0
- package/dist/components/EchoPrimaryButton.js +54 -0
- package/dist/components/EchoPrimaryButton.js.map +1 -0
- package/dist/components/EchoProfileCard.d.ts +35 -0
- package/dist/components/EchoProfileCard.d.ts.map +1 -0
- package/dist/components/EchoProfileCard.js +206 -0
- package/dist/components/EchoProfileCard.js.map +1 -0
- package/dist/components/EchoProfileDivider.d.ts +14 -0
- package/dist/components/EchoProfileDivider.d.ts.map +1 -0
- package/dist/components/EchoProfileDivider.js +31 -0
- package/dist/components/EchoProfileDivider.js.map +1 -0
- package/dist/components/EchoProfileHero.d.ts +48 -0
- package/dist/components/EchoProfileHero.d.ts.map +1 -0
- package/dist/components/EchoProfileHero.js +215 -0
- package/dist/components/EchoProfileHero.js.map +1 -0
- package/dist/components/EchoProfileOverview.d.ts +18 -0
- package/dist/components/EchoProfileOverview.d.ts.map +1 -0
- package/dist/components/EchoProfileOverview.js +36 -0
- package/dist/components/EchoProfileOverview.js.map +1 -0
- package/dist/components/EchoProfileRow.d.ts +60 -0
- package/dist/components/EchoProfileRow.d.ts.map +1 -0
- package/dist/components/EchoProfileRow.js +113 -0
- package/dist/components/EchoProfileRow.js.map +1 -0
- package/dist/components/EchoProfileSection.d.ts +29 -0
- package/dist/components/EchoProfileSection.d.ts.map +1 -0
- package/dist/components/EchoProfileSection.js +58 -0
- package/dist/components/EchoProfileSection.js.map +1 -0
- package/dist/components/EchoRewardNotificationBanner.d.ts +61 -0
- package/dist/components/EchoRewardNotificationBanner.d.ts.map +1 -0
- package/dist/components/EchoRewardNotificationBanner.js +272 -0
- package/dist/components/EchoRewardNotificationBanner.js.map +1 -0
- package/dist/components/EchoSettingsRow.d.ts +24 -0
- package/dist/components/EchoSettingsRow.d.ts.map +1 -0
- package/dist/components/EchoSettingsRow.js +84 -0
- package/dist/components/EchoSettingsRow.js.map +1 -0
- package/dist/components/EchoSettingsSection.d.ts +16 -0
- package/dist/components/EchoSettingsSection.d.ts.map +1 -0
- package/dist/components/EchoSettingsSection.js +48 -0
- package/dist/components/EchoSettingsSection.js.map +1 -0
- package/dist/components/EchoSignOutButton.d.ts +28 -0
- package/dist/components/EchoSignOutButton.d.ts.map +1 -0
- package/dist/components/EchoSignOutButton.js +67 -0
- package/dist/components/EchoSignOutButton.js.map +1 -0
- package/dist/components/EchoSuccessBanner.d.ts +17 -0
- package/dist/components/EchoSuccessBanner.d.ts.map +1 -0
- package/dist/components/EchoSuccessBanner.js +48 -0
- package/dist/components/EchoSuccessBanner.js.map +1 -0
- package/dist/components/EchoSyncPanel.d.ts +165 -0
- package/dist/components/EchoSyncPanel.d.ts.map +1 -0
- package/dist/components/EchoSyncPanel.js +913 -0
- package/dist/components/EchoSyncPanel.js.map +1 -0
- package/dist/components/EchoSyncPromptModal.d.ts +87 -0
- package/dist/components/EchoSyncPromptModal.d.ts.map +1 -0
- package/dist/components/EchoSyncPromptModal.js +351 -0
- package/dist/components/EchoSyncPromptModal.js.map +1 -0
- package/dist/components/EchoTitlePicker.d.ts +72 -0
- package/dist/components/EchoTitlePicker.d.ts.map +1 -0
- package/dist/components/EchoTitlePicker.js +487 -0
- package/dist/components/EchoTitlePicker.js.map +1 -0
- package/dist/components/EchoVerificationCodeInput.d.ts +40 -0
- package/dist/components/EchoVerificationCodeInput.d.ts.map +1 -0
- package/dist/components/EchoVerificationCodeInput.js +140 -0
- package/dist/components/EchoVerificationCodeInput.js.map +1 -0
- package/dist/components/EchoWelcome.d.ts +44 -0
- package/dist/components/EchoWelcome.d.ts.map +1 -0
- package/dist/components/EchoWelcome.js +289 -0
- package/dist/components/EchoWelcome.js.map +1 -0
- package/dist/components/EchoWhyBecomeAnEchoModal.d.ts +34 -0
- package/dist/components/EchoWhyBecomeAnEchoModal.d.ts.map +1 -0
- package/dist/components/EchoWhyBecomeAnEchoModal.js +321 -0
- package/dist/components/EchoWhyBecomeAnEchoModal.js.map +1 -0
- package/dist/components/EchoformInfoButton.d.ts +27 -0
- package/dist/components/EchoformInfoButton.d.ts.map +1 -0
- package/dist/components/EchoformInfoButton.js +60 -0
- package/dist/components/EchoformInfoButton.js.map +1 -0
- package/dist/components/EchoformInfoModal.d.ts +63 -0
- package/dist/components/EchoformInfoModal.d.ts.map +1 -0
- package/dist/components/EchoformInfoModal.js +347 -0
- package/dist/components/EchoformInfoModal.js.map +1 -0
- package/dist/echoColors.d.ts +58 -0
- package/dist/echoColors.d.ts.map +1 -0
- package/dist/echoColors.js +94 -0
- package/dist/echoColors.js.map +1 -0
- package/dist/index.d.ts +71 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -4
- package/dist/index.js.map +1 -1
- package/dist/theme.d.ts +48 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +51 -0
- package/dist/theme.js.map +1 -0
- package/dist/titleRarity.d.ts +19 -0
- package/dist/titleRarity.d.ts.map +1 -0
- package/dist/titleRarity.js +46 -0
- package/dist/titleRarity.js.map +1 -0
- package/package.json +6 -5
- package/dist/components/EchoUITest.d.ts +0 -14
- package/dist/components/EchoUITest.d.ts.map +0 -1
- package/dist/components/EchoUITest.js +0 -53
- package/dist/components/EchoUITest.js.map +0 -1
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EchoDeleteProfilePanel
|
|
4
|
+
*
|
|
5
|
+
* Presentation-only Delete Echo Profile trigger + expanded confirmation panel.
|
|
6
|
+
* Extracted from the delete-account section of the Echo UI Reference account screen.
|
|
7
|
+
*
|
|
8
|
+
* COLLAPSED STATE
|
|
9
|
+
* ───────────────
|
|
10
|
+
* Shows a discrete "Delete Echo Profile" text trigger.
|
|
11
|
+
*
|
|
12
|
+
* EXPANDED STATE
|
|
13
|
+
* ──────────────
|
|
14
|
+
* Shows the full confirmation panel with:
|
|
15
|
+
* • "Before you delete:" info block with five canonical warnings
|
|
16
|
+
* • DELETE confirmation text field
|
|
17
|
+
* • Cancel and Schedule Deletion buttons
|
|
18
|
+
*
|
|
19
|
+
* LOCAL DATA WARNING
|
|
20
|
+
* ──────────────────
|
|
21
|
+
* The text "Your local [hostAppName] data on this device is not affected."
|
|
22
|
+
* uses the supplied hostAppName so this component is host-app neutral.
|
|
23
|
+
* Default: "this app".
|
|
24
|
+
*
|
|
25
|
+
* CONFIRM BUTTON GUARD
|
|
26
|
+
* ────────────────────
|
|
27
|
+
* The Schedule Deletion button is only enabled when:
|
|
28
|
+
* confirmationText.trim() === 'DELETE' && !loading
|
|
29
|
+
* The package enforces this UI condition; onConfirm remains host-owned.
|
|
30
|
+
*
|
|
31
|
+
* HOST RESPONSIBILITIES
|
|
32
|
+
* ─────────────────────
|
|
33
|
+
* • expanded / confirmationText state
|
|
34
|
+
* • onOpen / onChangeConfirmationText / onCancel / onConfirm handlers
|
|
35
|
+
* • Actual account-deletion RPC (onConfirm)
|
|
36
|
+
* • Alerts / announcements after deletion is scheduled
|
|
37
|
+
*
|
|
38
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
39
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
40
|
+
*/
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.EchoDeleteProfilePanel = EchoDeleteProfilePanel;
|
|
46
|
+
const react_1 = __importDefault(require("react"));
|
|
47
|
+
const react_native_1 = require("react-native");
|
|
48
|
+
const vector_icons_1 = require("@expo/vector-icons");
|
|
49
|
+
const theme_1 = require("../theme");
|
|
50
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
51
|
+
// Warning items (canonical five)
|
|
52
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
53
|
+
function warningItems(hostAppName) {
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
icon: 'schedule',
|
|
57
|
+
color: theme_1.COLORS.warning,
|
|
58
|
+
text: 'A 15-day grace period begins. Restore your profile at any time before it expires.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
icon: 'cloud-off',
|
|
62
|
+
color: theme_1.COLORS.error,
|
|
63
|
+
text: 'All Echoform cloud data associated with your Echo Profile is permanently deleted.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
icon: 'phone-android',
|
|
67
|
+
color: theme_1.COLORS.neonBlue,
|
|
68
|
+
text: `Your local ${hostAppName} data on this device is not affected.`,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
icon: 'email',
|
|
72
|
+
color: theme_1.COLORS.textMuted,
|
|
73
|
+
text: 'Your email address becomes available for a new account registration.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
icon: 'warning-amber',
|
|
77
|
+
color: theme_1.COLORS.error,
|
|
78
|
+
text: 'This cannot be undone after the grace period expires.',
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
83
|
+
// Component
|
|
84
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
85
|
+
function EchoDeleteProfilePanel({ expanded, confirmationText, loading = false, hostAppName = 'this app', onOpen, onChangeConfirmationText, onCancel, onConfirm, }) {
|
|
86
|
+
const canConfirm = confirmationText.trim() === 'DELETE' && !loading;
|
|
87
|
+
const a11yInfoLabel = [
|
|
88
|
+
'Before you delete:',
|
|
89
|
+
'A 15-day grace period begins. Restore your profile at any time before it expires.',
|
|
90
|
+
'All Echoform cloud data associated with your Echo Profile is permanently deleted.',
|
|
91
|
+
`Your local ${hostAppName} data on this device is not affected.`,
|
|
92
|
+
'Your email address becomes available for a new account registration.',
|
|
93
|
+
'This cannot be undone after the grace period expires.',
|
|
94
|
+
].join(' ');
|
|
95
|
+
if (!expanded) {
|
|
96
|
+
return (<react_native_1.View style={styles.triggerWrap}>
|
|
97
|
+
<react_native_1.Pressable onPress={onOpen} style={({ pressed }) => [
|
|
98
|
+
styles.trigger,
|
|
99
|
+
pressed && { opacity: 0.75 },
|
|
100
|
+
]} accessibilityLabel="Delete Echo Profile" accessibilityRole="button" accessibilityHint="Opens the account deletion section">
|
|
101
|
+
<vector_icons_1.MaterialIcons name="delete-forever" size={18} color={theme_1.COLORS.error} importantForAccessibility="no" accessibilityElementsHidden/>
|
|
102
|
+
<react_native_1.Text style={styles.triggerText}>Delete Echo Profile</react_native_1.Text>
|
|
103
|
+
</react_native_1.Pressable>
|
|
104
|
+
</react_native_1.View>);
|
|
105
|
+
}
|
|
106
|
+
return (<react_native_1.View style={styles.panel}>
|
|
107
|
+
<react_native_1.Text style={styles.panelTitle} accessibilityRole="header">
|
|
108
|
+
Delete Echo Profile
|
|
109
|
+
</react_native_1.Text>
|
|
110
|
+
|
|
111
|
+
{/* Before you delete info block */}
|
|
112
|
+
<react_native_1.View style={styles.infoBlock} accessible accessibilityRole="text" accessibilityLabel={a11yInfoLabel}>
|
|
113
|
+
<react_native_1.Text style={styles.infoTitle} importantForAccessibility="no">
|
|
114
|
+
Before you delete:
|
|
115
|
+
</react_native_1.Text>
|
|
116
|
+
{warningItems(hostAppName).map((item, i) => (<react_native_1.View key={i} style={styles.infoRow} importantForAccessibility="no" accessibilityElementsHidden>
|
|
117
|
+
<vector_icons_1.MaterialIcons name={item.icon} size={16} color={item.color}/>
|
|
118
|
+
<react_native_1.Text style={[
|
|
119
|
+
styles.infoText,
|
|
120
|
+
{ color: item.color === theme_1.COLORS.error ? theme_1.COLORS.error : theme_1.COLORS.textSecondary },
|
|
121
|
+
]}>
|
|
122
|
+
{item.text}
|
|
123
|
+
</react_native_1.Text>
|
|
124
|
+
</react_native_1.View>))}
|
|
125
|
+
</react_native_1.View>
|
|
126
|
+
|
|
127
|
+
{/* Confirmation field */}
|
|
128
|
+
<react_native_1.View style={styles.confirmRow}>
|
|
129
|
+
<react_native_1.Text style={styles.confirmLabel}>
|
|
130
|
+
{'Type '}
|
|
131
|
+
<react_native_1.Text style={styles.confirmKeyword}>DELETE</react_native_1.Text>
|
|
132
|
+
{' to confirm:'}
|
|
133
|
+
</react_native_1.Text>
|
|
134
|
+
<react_native_1.TextInput style={styles.confirmInput} value={confirmationText} onChangeText={onChangeConfirmationText} placeholder="DELETE" placeholderTextColor={theme_1.COLORS.textMuted} autoCapitalize="characters" autoCorrect={false} accessibilityLabel="Type DELETE to confirm account deletion" accessibilityHint="Must contain DELETE in capitals to enable the confirm button"/>
|
|
135
|
+
</react_native_1.View>
|
|
136
|
+
|
|
137
|
+
{/* Actions */}
|
|
138
|
+
<react_native_1.View style={styles.actions}>
|
|
139
|
+
<react_native_1.Pressable onPress={onCancel} style={({ pressed }) => [
|
|
140
|
+
styles.cancelBtn,
|
|
141
|
+
pressed && { opacity: 0.75 },
|
|
142
|
+
]} accessibilityLabel="Cancel, do not delete" accessibilityRole="button">
|
|
143
|
+
<react_native_1.Text style={styles.cancelBtnText}>Cancel</react_native_1.Text>
|
|
144
|
+
</react_native_1.Pressable>
|
|
145
|
+
|
|
146
|
+
<react_native_1.Pressable onPress={canConfirm ? onConfirm : undefined} disabled={!canConfirm} style={({ pressed }) => [
|
|
147
|
+
styles.confirmBtn,
|
|
148
|
+
pressed && canConfirm && { opacity: 0.75 },
|
|
149
|
+
!canConfirm && styles.confirmBtnDisabled,
|
|
150
|
+
]} accessibilityLabel="Confirm Echo Profile deletion" accessibilityRole="button" accessibilityHint="Schedules permanent deletion after a 15-day grace period" accessibilityState={{ disabled: !canConfirm }}>
|
|
151
|
+
{loading ? (<react_native_1.ActivityIndicator size="small" color="#fff"/>) : (<react_native_1.Text style={styles.confirmBtnText}>Schedule Deletion</react_native_1.Text>)}
|
|
152
|
+
</react_native_1.Pressable>
|
|
153
|
+
</react_native_1.View>
|
|
154
|
+
</react_native_1.View>);
|
|
155
|
+
}
|
|
156
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
157
|
+
// Styles
|
|
158
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
159
|
+
const styles = react_native_1.StyleSheet.create({
|
|
160
|
+
// Collapsed trigger
|
|
161
|
+
triggerWrap: {
|
|
162
|
+
marginTop: theme_1.SPACING.xs,
|
|
163
|
+
},
|
|
164
|
+
trigger: {
|
|
165
|
+
flexDirection: 'row',
|
|
166
|
+
alignItems: 'center',
|
|
167
|
+
justifyContent: 'center',
|
|
168
|
+
gap: theme_1.SPACING.sm,
|
|
169
|
+
paddingVertical: theme_1.SPACING.sm,
|
|
170
|
+
minHeight: 44,
|
|
171
|
+
},
|
|
172
|
+
triggerText: {
|
|
173
|
+
fontSize: theme_1.FONTS.sm,
|
|
174
|
+
color: theme_1.COLORS.error,
|
|
175
|
+
fontWeight: '600',
|
|
176
|
+
opacity: 0.75,
|
|
177
|
+
},
|
|
178
|
+
// Expanded panel
|
|
179
|
+
panel: {
|
|
180
|
+
backgroundColor: theme_1.COLORS.surface,
|
|
181
|
+
borderRadius: theme_1.RADIUS.xl,
|
|
182
|
+
borderWidth: 1,
|
|
183
|
+
borderColor: theme_1.COLORS.error + '55',
|
|
184
|
+
padding: theme_1.SPACING.xl,
|
|
185
|
+
gap: theme_1.SPACING.md,
|
|
186
|
+
},
|
|
187
|
+
panelTitle: {
|
|
188
|
+
fontSize: theme_1.FONTS.lg,
|
|
189
|
+
fontWeight: '800',
|
|
190
|
+
color: theme_1.COLORS.error,
|
|
191
|
+
textAlign: 'center',
|
|
192
|
+
letterSpacing: 0.3,
|
|
193
|
+
},
|
|
194
|
+
// Info block
|
|
195
|
+
infoBlock: {
|
|
196
|
+
backgroundColor: theme_1.COLORS.error + '08',
|
|
197
|
+
borderRadius: theme_1.RADIUS.lg,
|
|
198
|
+
borderWidth: 1,
|
|
199
|
+
borderColor: theme_1.COLORS.error + '22',
|
|
200
|
+
padding: theme_1.SPACING.md,
|
|
201
|
+
gap: theme_1.SPACING.sm,
|
|
202
|
+
},
|
|
203
|
+
infoTitle: {
|
|
204
|
+
fontSize: theme_1.FONTS.sm,
|
|
205
|
+
fontWeight: '700',
|
|
206
|
+
color: theme_1.COLORS.textPrimary,
|
|
207
|
+
marginBottom: theme_1.SPACING.xs,
|
|
208
|
+
},
|
|
209
|
+
infoRow: {
|
|
210
|
+
flexDirection: 'row',
|
|
211
|
+
alignItems: 'flex-start',
|
|
212
|
+
gap: theme_1.SPACING.sm,
|
|
213
|
+
},
|
|
214
|
+
infoText: {
|
|
215
|
+
flex: 1,
|
|
216
|
+
fontSize: theme_1.FONTS.sm,
|
|
217
|
+
lineHeight: 20,
|
|
218
|
+
},
|
|
219
|
+
// Confirmation field
|
|
220
|
+
confirmRow: {
|
|
221
|
+
gap: theme_1.SPACING.xs,
|
|
222
|
+
},
|
|
223
|
+
confirmLabel: {
|
|
224
|
+
fontSize: theme_1.FONTS.sm,
|
|
225
|
+
color: theme_1.COLORS.textSecondary,
|
|
226
|
+
fontWeight: '600',
|
|
227
|
+
},
|
|
228
|
+
confirmKeyword: {
|
|
229
|
+
color: theme_1.COLORS.error,
|
|
230
|
+
fontWeight: '800',
|
|
231
|
+
fontFamily: react_native_1.Platform.OS === 'ios' ? 'Menlo' : 'monospace',
|
|
232
|
+
},
|
|
233
|
+
confirmInput: {
|
|
234
|
+
backgroundColor: theme_1.COLORS.surfaceHigh,
|
|
235
|
+
borderRadius: theme_1.RADIUS.md,
|
|
236
|
+
borderWidth: 1,
|
|
237
|
+
borderColor: theme_1.COLORS.error + '66',
|
|
238
|
+
paddingHorizontal: theme_1.SPACING.md,
|
|
239
|
+
paddingVertical: theme_1.SPACING.sm,
|
|
240
|
+
fontSize: theme_1.FONTS.md,
|
|
241
|
+
color: theme_1.COLORS.textPrimary,
|
|
242
|
+
minHeight: 48,
|
|
243
|
+
fontFamily: react_native_1.Platform.OS === 'ios' ? 'Menlo' : 'monospace',
|
|
244
|
+
letterSpacing: 2,
|
|
245
|
+
},
|
|
246
|
+
// Actions row
|
|
247
|
+
actions: {
|
|
248
|
+
flexDirection: 'row',
|
|
249
|
+
gap: theme_1.SPACING.md,
|
|
250
|
+
},
|
|
251
|
+
cancelBtn: {
|
|
252
|
+
flex: 1,
|
|
253
|
+
alignItems: 'center',
|
|
254
|
+
justifyContent: 'center',
|
|
255
|
+
borderRadius: theme_1.RADIUS.lg,
|
|
256
|
+
borderWidth: 1,
|
|
257
|
+
borderColor: theme_1.COLORS.border,
|
|
258
|
+
backgroundColor: theme_1.COLORS.surfaceHigh,
|
|
259
|
+
paddingVertical: theme_1.SPACING.md,
|
|
260
|
+
minHeight: 48,
|
|
261
|
+
},
|
|
262
|
+
cancelBtnText: {
|
|
263
|
+
fontSize: theme_1.FONTS.sm,
|
|
264
|
+
fontWeight: '600',
|
|
265
|
+
color: theme_1.COLORS.textSecondary,
|
|
266
|
+
},
|
|
267
|
+
confirmBtn: {
|
|
268
|
+
flex: 1,
|
|
269
|
+
alignItems: 'center',
|
|
270
|
+
justifyContent: 'center',
|
|
271
|
+
borderRadius: theme_1.RADIUS.lg,
|
|
272
|
+
backgroundColor: theme_1.COLORS.error,
|
|
273
|
+
paddingVertical: theme_1.SPACING.md,
|
|
274
|
+
minHeight: 48,
|
|
275
|
+
},
|
|
276
|
+
confirmBtnDisabled: {
|
|
277
|
+
opacity: 0.4,
|
|
278
|
+
},
|
|
279
|
+
confirmBtnText: {
|
|
280
|
+
fontSize: theme_1.FONTS.sm,
|
|
281
|
+
fontWeight: '700',
|
|
282
|
+
color: '#fff',
|
|
283
|
+
letterSpacing: 0.3,
|
|
284
|
+
},
|
|
285
|
+
});
|
|
286
|
+
//# sourceMappingURL=EchoDeleteProfilePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoDeleteProfilePanel.js","sourceRoot":"","sources":["../../src/components/EchoDeleteProfilePanel.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;;;AA+EH,wDA+IC;AA5ND,kDAA0B;AAC1B,+CAQsB;AACtB,qDAAmD;AACnD,oCAA0D;AA4B1D,gFAAgF;AAChF,iCAAiC;AACjC,gFAAgF;AAEhF,SAAS,YAAY,CAAC,WAAmB;IACvC,OAAO;QACL;YACE,IAAI,EAAG,UAAU;YACjB,KAAK,EAAE,cAAM,CAAC,OAAO;YACrB,IAAI,EAAG,mFAAmF;SAC3F;QACD;YACE,IAAI,EAAG,WAAW;YAClB,KAAK,EAAE,cAAM,CAAC,KAAK;YACnB,IAAI,EAAG,mFAAmF;SAC3F;QACD;YACE,IAAI,EAAG,eAAe;YACtB,KAAK,EAAE,cAAM,CAAC,QAAQ;YACtB,IAAI,EAAG,cAAc,WAAW,uCAAuC;SACxE;QACD;YACE,IAAI,EAAG,OAAO;YACd,KAAK,EAAE,cAAM,CAAC,SAAS;YACvB,IAAI,EAAG,sEAAsE;SAC9E;QACD;YACE,IAAI,EAAG,eAAe;YACtB,KAAK,EAAE,cAAM,CAAC,KAAK;YACnB,IAAI,EAAG,uDAAuD;SAC/D;KACO,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,SAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,gBAAgB,EAChB,OAAO,GAAQ,KAAK,EACpB,WAAW,GAAI,UAAU,EACzB,MAAM,EACN,wBAAwB,EACxB,QAAQ,EACR,SAAS,GACmB;IAC5B,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC;IAEpE,MAAM,aAAa,GAAG;QACpB,oBAAoB;QACpB,mFAAmF;QACnF,mFAAmF;QACnF,cAAc,WAAW,uCAAuC;QAChE,sEAAsE;QACtE,uDAAuD;KACxD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CACL,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B;QAAA,CAAC,wBAAS,CACR,OAAO,CAAC,CAAC,MAAM,CAAC,CAChB,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACtB,MAAM,CAAC,OAAO;gBACd,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAC7B,CAAC,CACF,kBAAkB,CAAC,qBAAqB,CACxC,iBAAiB,CAAC,QAAQ,CAC1B,iBAAiB,CAAC,oCAAoC,CAEtD;UAAA,CAAC,4BAAa,CACZ,IAAI,CAAC,gBAAgB,CACrB,IAAI,CAAC,CAAC,EAAE,CAAC,CACT,KAAK,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,CACpB,yBAAyB,CAAC,IAAI,CAC9B,2BAA2B,EAE7B;UAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,mBAAmB,EAAE,mBAAI,CAC5D;QAAA,EAAE,wBAAS,CACb;MAAA,EAAE,mBAAI,CAAC,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACxB;MAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CACxD;;MACF,EAAE,mBAAI,CAEN;;MAAA,CAAC,kCAAkC,CACnC;MAAA,CAAC,mBAAI,CACH,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CACxB,UAAU,CACV,iBAAiB,CAAC,MAAM,CACxB,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAElC;QAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAC3D;;QACF,EAAE,mBAAI,CACN;QAAA,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC,mBAAI,CACH,GAAG,CAAC,CAAC,CAAC,CAAC,CACP,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACtB,yBAAyB,CAAC,IAAI,CAC9B,2BAA2B,CAE3B;YAAA,CAAC,4BAAa,CACZ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAW,CAAC,CACvB,IAAI,CAAC,CAAC,EAAE,CAAC,CACT,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAEpB;YAAA,CAAC,mBAAI,CACH,KAAK,CAAC,CAAC;gBACL,MAAM,CAAC,QAAQ;gBACf,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,cAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAM,CAAC,aAAa,EAAE;aAC7E,CAAC,CAEF;cAAA,CAAC,IAAI,CAAC,IAAI,CACZ;YAAA,EAAE,mBAAI,CACR;UAAA,EAAE,mBAAI,CAAC,CACR,CAAC,CACJ;MAAA,EAAE,mBAAI,CAEN;;MAAA,CAAC,wBAAwB,CACzB;MAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAC7B;QAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAC/B;UAAA,CAAC,OAAO,CACR;UAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,mBAAI,CAChD;UAAA,CAAC,cAAc,CACjB;QAAA,EAAE,mBAAI,CACN;QAAA,CAAC,wBAAS,CACR,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAC3B,KAAK,CAAC,CAAC,gBAAgB,CAAC,CACxB,YAAY,CAAC,CAAC,wBAAwB,CAAC,CACvC,WAAW,CAAC,QAAQ,CACpB,oBAAoB,CAAC,CAAC,cAAM,CAAC,SAAS,CAAC,CACvC,cAAc,CAAC,YAAY,CAC3B,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,kBAAkB,CAAC,yCAAyC,CAC5D,iBAAiB,CAAC,8DAA8D,EAEpF;MAAA,EAAE,mBAAI,CAEN;;MAAA,CAAC,aAAa,CACd;MAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;QAAA,CAAC,wBAAS,CACR,OAAO,CAAC,CAAC,QAAQ,CAAC,CAClB,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS;YAChB,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;SAC7B,CAAC,CACF,kBAAkB,CAAC,uBAAuB,CAC1C,iBAAiB,CAAC,QAAQ,CAE1B;UAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,mBAAI,CACjD;QAAA,EAAE,wBAAS,CAEX;;QAAA,CAAC,wBAAS,CACR,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAC5C,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CACtB,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,UAAU;YACjB,OAAO,IAAI,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB;SACzC,CAAC,CACF,kBAAkB,CAAC,+BAA+B,CAClD,iBAAiB,CAAC,QAAQ,CAC1B,iBAAiB,CAAC,0DAA0D,CAC5E,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC,CAE9C;UAAA,CAAC,OAAO,CAAC,CAAC,CAAC,CACT,CAAC,gCAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAG,CAChD,CAAC,CAAC,CAAC,CACF,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,mBAAI,CAAC,CAC7D,CACH;QAAA,EAAE,wBAAS,CACb;MAAA,EAAE,mBAAI,CACR;IAAA,EAAE,mBAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,oBAAoB;IACpB,WAAW,EAAE;QACX,SAAS,EAAE,eAAO,CAAC,EAAE;KACtB;IACD,OAAO,EAAE;QACP,aAAa,EAAG,KAAK;QACrB,UAAU,EAAM,QAAQ;QACxB,cAAc,EAAE,QAAQ;QACxB,GAAG,EAAa,eAAO,CAAC,EAAE;QAC1B,eAAe,EAAE,eAAO,CAAC,EAAE;QAC3B,SAAS,EAAO,EAAE;KACnB;IACD,WAAW,EAAE;QACX,QAAQ,EAAI,aAAK,CAAC,EAAE;QACpB,KAAK,EAAO,cAAM,CAAC,KAAK;QACxB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAK,IAAI;KACjB;IAED,iBAAiB;IACjB,KAAK,EAAE;QACL,eAAe,EAAE,cAAM,CAAC,OAAO;QAC/B,YAAY,EAAK,cAAM,CAAC,EAAE;QAC1B,WAAW,EAAM,CAAC;QAClB,WAAW,EAAM,cAAM,CAAC,KAAK,GAAG,IAAI;QACpC,OAAO,EAAU,eAAO,CAAC,EAAE;QAC3B,GAAG,EAAc,eAAO,CAAC,EAAE;KAC5B;IACD,UAAU,EAAE;QACV,QAAQ,EAAO,aAAK,CAAC,EAAE;QACvB,UAAU,EAAK,KAAK;QACpB,KAAK,EAAU,cAAM,CAAC,KAAK;QAC3B,SAAS,EAAM,QAAQ;QACvB,aAAa,EAAE,GAAG;KACnB;IAED,aAAa;IACb,SAAS,EAAE;QACT,eAAe,EAAE,cAAM,CAAC,KAAK,GAAG,IAAI;QACpC,YAAY,EAAK,cAAM,CAAC,EAAE;QAC1B,WAAW,EAAM,CAAC;QAClB,WAAW,EAAM,cAAM,CAAC,KAAK,GAAG,IAAI;QACpC,OAAO,EAAU,eAAO,CAAC,EAAE;QAC3B,GAAG,EAAc,eAAO,CAAC,EAAE;KAC5B;IACD,SAAS,EAAE;QACT,QAAQ,EAAM,aAAK,CAAC,EAAE;QACtB,UAAU,EAAI,KAAK;QACnB,KAAK,EAAS,cAAM,CAAC,WAAW;QAChC,YAAY,EAAE,eAAO,CAAC,EAAE;KACzB;IACD,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,UAAU,EAAK,YAAY;QAC3B,GAAG,EAAY,eAAO,CAAC,EAAE;KAC1B;IACD,QAAQ,EAAE;QACR,IAAI,EAAQ,CAAC;QACb,QAAQ,EAAI,aAAK,CAAC,EAAE;QACpB,UAAU,EAAE,EAAE;KACf;IAED,qBAAqB;IACrB,UAAU,EAAE;QACV,GAAG,EAAE,eAAO,CAAC,EAAE;KAChB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAI,aAAK,CAAC,EAAE;QACpB,KAAK,EAAO,cAAM,CAAC,aAAa;QAChC,UAAU,EAAE,KAAK;KAClB;IACD,cAAc,EAAE;QACd,KAAK,EAAO,cAAM,CAAC,KAAK;QACxB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;KAC1D;IACD,YAAY,EAAE;QACZ,eAAe,EAAI,cAAM,CAAC,WAAW;QACrC,YAAY,EAAO,cAAM,CAAC,EAAE;QAC5B,WAAW,EAAQ,CAAC;QACpB,WAAW,EAAQ,cAAM,CAAC,KAAK,GAAG,IAAI;QACtC,iBAAiB,EAAE,eAAO,CAAC,EAAE;QAC7B,eAAe,EAAI,eAAO,CAAC,EAAE;QAC7B,QAAQ,EAAW,aAAK,CAAC,EAAE;QAC3B,KAAK,EAAc,cAAM,CAAC,WAAW;QACrC,SAAS,EAAU,EAAE;QACrB,UAAU,EAAS,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;QAChE,aAAa,EAAM,CAAC;KACrB;IAED,cAAc;IACd,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,GAAG,EAAY,eAAO,CAAC,EAAE;KAC1B;IACD,SAAS,EAAE;QACT,IAAI,EAAY,CAAC;QACjB,UAAU,EAAM,QAAQ;QACxB,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAI,cAAM,CAAC,EAAE;QACzB,WAAW,EAAK,CAAC;QACjB,WAAW,EAAK,cAAM,CAAC,MAAM;QAC7B,eAAe,EAAE,cAAM,CAAC,WAAW;QACnC,eAAe,EAAE,eAAO,CAAC,EAAE;QAC3B,SAAS,EAAO,EAAE;KACnB;IACD,aAAa,EAAE;QACb,QAAQ,EAAI,aAAK,CAAC,EAAE;QACpB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAO,cAAM,CAAC,aAAa;KACjC;IACD,UAAU,EAAE;QACV,IAAI,EAAY,CAAC;QACjB,UAAU,EAAM,QAAQ;QACxB,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAI,cAAM,CAAC,EAAE;QACzB,eAAe,EAAE,cAAM,CAAC,KAAK;QAC7B,eAAe,EAAE,eAAO,CAAC,EAAE;QAC3B,SAAS,EAAO,EAAE;KACnB;IACD,kBAAkB,EAAE;QAClB,OAAO,EAAE,GAAG;KACb;IACD,cAAc,EAAE;QACd,QAAQ,EAAO,aAAK,CAAC,EAAE;QACvB,UAAU,EAAK,KAAK;QACpB,KAAK,EAAU,MAAM;QACrB,aAAa,EAAE,GAAG;KACnB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EchoDeletionIntercept
|
|
3
|
+
*
|
|
4
|
+
* Presentation-only deletion-intercept screen content.
|
|
5
|
+
* Extracted from the deletion_intercept mode of the Echo UI Reference account screen.
|
|
6
|
+
*
|
|
7
|
+
* Shown when the user opens the account screen and an active deletion request
|
|
8
|
+
* is already in progress, blocking normal profile access.
|
|
9
|
+
*
|
|
10
|
+
* STATUS BEHAVIOR
|
|
11
|
+
* ──────────────
|
|
12
|
+
* pending → scheduled date, days remaining, Restore + Continue Deletion actions
|
|
13
|
+
* failed → "being completed" wording, no restore action (Continue Deletion only)
|
|
14
|
+
* processing → "cannot be interrupted" wording, Sign Out / Continue Deletion only
|
|
15
|
+
*
|
|
16
|
+
* HOST RESPONSIBILITIES
|
|
17
|
+
* ─────────────────────
|
|
18
|
+
* • Actual restore/cancel and sign-out operations
|
|
19
|
+
* • Loading state for the restore action (restoreLoading)
|
|
20
|
+
*
|
|
21
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
22
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
23
|
+
*/
|
|
24
|
+
import React from 'react';
|
|
25
|
+
export type EchoDeletionInterceptProps = {
|
|
26
|
+
status: 'pending' | 'failed' | 'processing';
|
|
27
|
+
/** ISO date string for the scheduled permanent deletion. */
|
|
28
|
+
scheduledFor?: string | null;
|
|
29
|
+
/** Days remaining until permanent deletion. */
|
|
30
|
+
daysRemaining?: number;
|
|
31
|
+
/** True while the restore RPC is in flight. */
|
|
32
|
+
restoreLoading?: boolean;
|
|
33
|
+
/** Called when the user taps Restore Echo Profile (pending status only). */
|
|
34
|
+
onRestore: () => void;
|
|
35
|
+
/** Called when the user taps Continue Deletion or Sign Out. */
|
|
36
|
+
onContinueDeletion: () => void;
|
|
37
|
+
};
|
|
38
|
+
export declare function EchoDeletionIntercept({ status, scheduledFor, daysRemaining, restoreLoading, onRestore, onContinueDeletion, }: EchoDeletionInterceptProps): React.JSX.Element;
|
|
39
|
+
//# sourceMappingURL=EchoDeletionIntercept.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoDeletionIntercept.d.ts","sourceRoot":"","sources":["../../src/components/EchoDeletionIntercept.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAc,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;IACxD,4DAA4D;IAC5D,YAAY,CAAC,EAAO,MAAM,GAAG,IAAI,CAAC;IAClC,+CAA+C;IAC/C,aAAa,CAAC,EAAM,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,cAAc,CAAC,EAAK,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,SAAS,EAAW,MAAM,IAAI,CAAC;IAC/B,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAsBF,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,YAAY,EACZ,aAAkB,EAClB,cAAsB,EACtB,SAAS,EACT,kBAAkB,GACnB,EAAE,0BAA0B,qBA0J5B"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EchoDeletionIntercept
|
|
4
|
+
*
|
|
5
|
+
* Presentation-only deletion-intercept screen content.
|
|
6
|
+
* Extracted from the deletion_intercept mode of the Echo UI Reference account screen.
|
|
7
|
+
*
|
|
8
|
+
* Shown when the user opens the account screen and an active deletion request
|
|
9
|
+
* is already in progress, blocking normal profile access.
|
|
10
|
+
*
|
|
11
|
+
* STATUS BEHAVIOR
|
|
12
|
+
* ──────────────
|
|
13
|
+
* pending → scheduled date, days remaining, Restore + Continue Deletion actions
|
|
14
|
+
* failed → "being completed" wording, no restore action (Continue Deletion only)
|
|
15
|
+
* processing → "cannot be interrupted" wording, Sign Out / Continue Deletion only
|
|
16
|
+
*
|
|
17
|
+
* HOST RESPONSIBILITIES
|
|
18
|
+
* ─────────────────────
|
|
19
|
+
* • Actual restore/cancel and sign-out operations
|
|
20
|
+
* • Loading state for the restore action (restoreLoading)
|
|
21
|
+
*
|
|
22
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
23
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
24
|
+
*/
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.EchoDeletionIntercept = EchoDeletionIntercept;
|
|
30
|
+
const react_1 = __importDefault(require("react"));
|
|
31
|
+
const react_native_1 = require("react-native");
|
|
32
|
+
const vector_icons_1 = require("@expo/vector-icons");
|
|
33
|
+
const theme_1 = require("../theme");
|
|
34
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
35
|
+
// Package-local date formatter
|
|
36
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
37
|
+
function formatDate(iso) {
|
|
38
|
+
try {
|
|
39
|
+
return new Date(iso).toLocaleDateString(undefined, {
|
|
40
|
+
day: 'numeric',
|
|
41
|
+
month: 'long',
|
|
42
|
+
year: 'numeric',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (_a) {
|
|
46
|
+
return iso;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
50
|
+
// Component
|
|
51
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
52
|
+
function EchoDeletionIntercept({ status, scheduledFor, daysRemaining = 0, restoreLoading = false, onRestore, onContinueDeletion, }) {
|
|
53
|
+
// ── Accessibility label for the card ──────────────────────────────────────
|
|
54
|
+
const cardA11y = status === 'processing'
|
|
55
|
+
? 'Echo Profile deletion is in progress and cannot be cancelled.'
|
|
56
|
+
: status === 'failed'
|
|
57
|
+
? 'Echo Profile deletion is being completed.'
|
|
58
|
+
: `Echo Profile scheduled for deletion on ${scheduledFor ? formatDate(scheduledFor) : 'an upcoming date'}. ${daysRemaining} days remaining.`;
|
|
59
|
+
return (<react_native_1.View style={styles.container}>
|
|
60
|
+
{/* Card */}
|
|
61
|
+
<react_native_1.View style={styles.card} accessible accessibilityLabel={cardA11y}>
|
|
62
|
+
{/* Icon */}
|
|
63
|
+
<react_native_1.View style={[
|
|
64
|
+
styles.iconWrap,
|
|
65
|
+
{
|
|
66
|
+
backgroundColor: status === 'pending'
|
|
67
|
+
? theme_1.COLORS.warning + '18'
|
|
68
|
+
: theme_1.COLORS.error + '18',
|
|
69
|
+
},
|
|
70
|
+
]} importantForAccessibility="no" accessibilityElementsHidden>
|
|
71
|
+
<vector_icons_1.MaterialIcons name={status === 'pending' ? 'schedule' : 'delete-forever'} size={36} color={status === 'pending' ? theme_1.COLORS.warning : theme_1.COLORS.error}/>
|
|
72
|
+
</react_native_1.View>
|
|
73
|
+
|
|
74
|
+
{/* Content */}
|
|
75
|
+
{status === 'processing' ? (<>
|
|
76
|
+
<react_native_1.Text style={styles.title} accessibilityRole="header" importantForAccessibility="no">
|
|
77
|
+
Deletion In Progress
|
|
78
|
+
</react_native_1.Text>
|
|
79
|
+
<react_native_1.Text style={styles.body} importantForAccessibility="no">
|
|
80
|
+
Your Echo Profile is currently being permanently deleted. This
|
|
81
|
+
process cannot be interrupted or cancelled.
|
|
82
|
+
</react_native_1.Text>
|
|
83
|
+
</>) : status === 'failed' ? (<>
|
|
84
|
+
<react_native_1.Text style={styles.title} accessibilityRole="header" importantForAccessibility="no">
|
|
85
|
+
Deletion Being Completed
|
|
86
|
+
</react_native_1.Text>
|
|
87
|
+
<react_native_1.Text style={styles.body} importantForAccessibility="no">
|
|
88
|
+
Your Echo Profile deletion is being completed. This may take a
|
|
89
|
+
short while.
|
|
90
|
+
</react_native_1.Text>
|
|
91
|
+
<react_native_1.Text style={styles.body} importantForAccessibility="no">
|
|
92
|
+
If you believe this is an error, please contact support at
|
|
93
|
+
support@echoformproductions.com.
|
|
94
|
+
</react_native_1.Text>
|
|
95
|
+
</>) : (<>
|
|
96
|
+
<react_native_1.Text style={styles.title} accessibilityRole="header" importantForAccessibility="no">
|
|
97
|
+
Your Echo Profile Is Scheduled for Deletion
|
|
98
|
+
</react_native_1.Text>
|
|
99
|
+
<react_native_1.Text style={styles.body} importantForAccessibility="no">
|
|
100
|
+
{`Your profile will be permanently deleted on ${scheduledFor ? formatDate(scheduledFor) : 'an upcoming date'} — ${daysRemaining} day${daysRemaining !== 1 ? 's' : ''} from now.`}
|
|
101
|
+
</react_native_1.Text>
|
|
102
|
+
<react_native_1.Text style={styles.body} importantForAccessibility="no">
|
|
103
|
+
Restoring your profile will cancel the deletion and return
|
|
104
|
+
everything to normal.
|
|
105
|
+
</react_native_1.Text>
|
|
106
|
+
</>)}
|
|
107
|
+
</react_native_1.View>
|
|
108
|
+
|
|
109
|
+
{/* Actions */}
|
|
110
|
+
{status === 'pending' ? (<react_native_1.View style={styles.actions}>
|
|
111
|
+
{/* Restore */}
|
|
112
|
+
<react_native_1.Pressable onPress={onRestore} disabled={restoreLoading} style={({ pressed }) => [
|
|
113
|
+
styles.restoreBtn,
|
|
114
|
+
pressed && { opacity: 0.75 },
|
|
115
|
+
restoreLoading && { opacity: 0.5 },
|
|
116
|
+
]} accessibilityLabel="Restore Echo Profile and cancel deletion" accessibilityRole="button" accessibilityState={{ busy: restoreLoading }}>
|
|
117
|
+
{restoreLoading ? (<react_native_1.ActivityIndicator size="small" color={theme_1.COLORS.neonGreen} importantForAccessibility="no"/>) : (<vector_icons_1.MaterialIcons name="restore" size={20} color={theme_1.COLORS.neonGreen} importantForAccessibility="no" accessibilityElementsHidden/>)}
|
|
118
|
+
<react_native_1.Text style={styles.restoreBtnText}>Restore Echo Profile</react_native_1.Text>
|
|
119
|
+
</react_native_1.Pressable>
|
|
120
|
+
|
|
121
|
+
{/* Continue Deletion */}
|
|
122
|
+
<react_native_1.Pressable onPress={onContinueDeletion} style={({ pressed }) => [
|
|
123
|
+
styles.continueBtn,
|
|
124
|
+
pressed && { opacity: 0.75 },
|
|
125
|
+
]} accessibilityLabel="Continue with deletion and sign out" accessibilityRole="button" accessibilityHint="Leaves the deletion request active and signs you out">
|
|
126
|
+
<react_native_1.Text style={styles.continueBtnText}>Continue Deletion</react_native_1.Text>
|
|
127
|
+
</react_native_1.Pressable>
|
|
128
|
+
</react_native_1.View>) : (
|
|
129
|
+
/* processing / failed — Sign Out only */
|
|
130
|
+
<react_native_1.Pressable onPress={onContinueDeletion} style={({ pressed }) => [
|
|
131
|
+
styles.continueBtn,
|
|
132
|
+
{ marginTop: theme_1.SPACING.lg },
|
|
133
|
+
pressed && { opacity: 0.75 },
|
|
134
|
+
]} accessibilityLabel="Sign out" accessibilityRole="button">
|
|
135
|
+
<react_native_1.Text style={styles.continueBtnText}>Sign Out</react_native_1.Text>
|
|
136
|
+
</react_native_1.Pressable>)}
|
|
137
|
+
</react_native_1.View>);
|
|
138
|
+
}
|
|
139
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
140
|
+
// Styles
|
|
141
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
142
|
+
const styles = react_native_1.StyleSheet.create({
|
|
143
|
+
container: {
|
|
144
|
+
gap: theme_1.SPACING.xl,
|
|
145
|
+
paddingTop: theme_1.SPACING.md,
|
|
146
|
+
},
|
|
147
|
+
card: {
|
|
148
|
+
backgroundColor: theme_1.COLORS.surface,
|
|
149
|
+
borderRadius: theme_1.RADIUS.xl,
|
|
150
|
+
borderWidth: 1,
|
|
151
|
+
borderColor: theme_1.COLORS.error + '44',
|
|
152
|
+
padding: theme_1.SPACING.xl,
|
|
153
|
+
gap: theme_1.SPACING.md,
|
|
154
|
+
alignItems: 'center',
|
|
155
|
+
},
|
|
156
|
+
iconWrap: {
|
|
157
|
+
width: 72,
|
|
158
|
+
height: 72,
|
|
159
|
+
borderRadius: 36,
|
|
160
|
+
alignItems: 'center',
|
|
161
|
+
justifyContent: 'center',
|
|
162
|
+
marginBottom: theme_1.SPACING.sm,
|
|
163
|
+
},
|
|
164
|
+
title: {
|
|
165
|
+
fontSize: theme_1.FONTS.lg,
|
|
166
|
+
fontWeight: '800',
|
|
167
|
+
color: theme_1.COLORS.textPrimary,
|
|
168
|
+
textAlign: 'center',
|
|
169
|
+
letterSpacing: 0.3,
|
|
170
|
+
},
|
|
171
|
+
body: {
|
|
172
|
+
fontSize: theme_1.FONTS.sm,
|
|
173
|
+
color: theme_1.COLORS.textSecondary,
|
|
174
|
+
textAlign: 'center',
|
|
175
|
+
lineHeight: 22,
|
|
176
|
+
},
|
|
177
|
+
actions: {
|
|
178
|
+
gap: theme_1.SPACING.md,
|
|
179
|
+
width: '100%',
|
|
180
|
+
},
|
|
181
|
+
restoreBtn: {
|
|
182
|
+
flexDirection: 'row',
|
|
183
|
+
alignItems: 'center',
|
|
184
|
+
justifyContent: 'center',
|
|
185
|
+
gap: theme_1.SPACING.sm,
|
|
186
|
+
backgroundColor: theme_1.COLORS.neonGreen + '18',
|
|
187
|
+
borderRadius: theme_1.RADIUS.lg,
|
|
188
|
+
borderWidth: 1.5,
|
|
189
|
+
borderColor: theme_1.COLORS.neonGreen + 'CC',
|
|
190
|
+
paddingVertical: theme_1.SPACING.md,
|
|
191
|
+
minHeight: 54,
|
|
192
|
+
},
|
|
193
|
+
restoreBtnText: {
|
|
194
|
+
fontSize: theme_1.FONTS.md,
|
|
195
|
+
fontWeight: '700',
|
|
196
|
+
color: theme_1.COLORS.neonGreen,
|
|
197
|
+
letterSpacing: 0.3,
|
|
198
|
+
},
|
|
199
|
+
continueBtn: {
|
|
200
|
+
alignItems: 'center',
|
|
201
|
+
justifyContent: 'center',
|
|
202
|
+
paddingVertical: theme_1.SPACING.sm,
|
|
203
|
+
minHeight: 44,
|
|
204
|
+
},
|
|
205
|
+
continueBtnText: {
|
|
206
|
+
fontSize: theme_1.FONTS.sm,
|
|
207
|
+
color: theme_1.COLORS.textMuted,
|
|
208
|
+
fontWeight: '600',
|
|
209
|
+
textDecorationLine: 'underline',
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
//# sourceMappingURL=EchoDeletionIntercept.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoDeletionIntercept.js","sourceRoot":"","sources":["../../src/components/EchoDeletionIntercept.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EchoDeletionStatusCard
|
|
3
|
+
*
|
|
4
|
+
* Presentation-only deletion-status card shown on the signed-in profile screen
|
|
5
|
+
* when an Echo Profile deletion has already been scheduled or is processing.
|
|
6
|
+
*
|
|
7
|
+
* Extracted from the deletion-card section of the Echo UI Reference account screen.
|
|
8
|
+
*
|
|
9
|
+
* STATUS BEHAVIOR
|
|
10
|
+
* ──────────────
|
|
11
|
+
* pending / failed → warning-styled "Deletion Scheduled" card with restore button
|
|
12
|
+
* processing → error-styled "Deletion In Progress" card, no restore button
|
|
13
|
+
*
|
|
14
|
+
* HOST RESPONSIBILITIES
|
|
15
|
+
* ─────────────────────
|
|
16
|
+
* • Actual cancellation / restoration RPC (onRestore)
|
|
17
|
+
* • Loading state while the restore RPC is in flight (restoreLoading)
|
|
18
|
+
*
|
|
19
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
20
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
21
|
+
*/
|
|
22
|
+
import React from 'react';
|
|
23
|
+
export type EchoDeletionStatusCardProps = {
|
|
24
|
+
status: 'pending' | 'failed' | 'processing';
|
|
25
|
+
/** ISO date string for the scheduled permanent deletion. */
|
|
26
|
+
scheduledFor?: string | null;
|
|
27
|
+
/** Days remaining until permanent deletion. */
|
|
28
|
+
daysRemaining?: number;
|
|
29
|
+
/** True while the restore RPC is in flight. */
|
|
30
|
+
restoreLoading?: boolean;
|
|
31
|
+
/** Called when the user taps Restore Echo Profile. Not rendered for processing. */
|
|
32
|
+
onRestore?: () => void;
|
|
33
|
+
};
|
|
34
|
+
export declare function EchoDeletionStatusCard({ status, scheduledFor, daysRemaining, restoreLoading, onRestore, }: EchoDeletionStatusCardProps): React.JSX.Element;
|
|
35
|
+
//# sourceMappingURL=EchoDeletionStatusCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoDeletionStatusCard.d.ts","sourceRoot":"","sources":["../../src/components/EchoDeletionStatusCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAW,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;IACrD,4DAA4D;IAC5D,YAAY,CAAC,EAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,+CAA+C;IAC/C,aAAa,CAAC,EAAG,MAAM,CAAC;IACxB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAO,MAAM,IAAI,CAAC;CAC7B,CAAC;AAsBF,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,YAAY,EACZ,aAAkB,EAClB,cAAsB,EACtB,SAAS,GACV,EAAE,2BAA2B,qBAkG7B"}
|