@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,321 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EchoWhyBecomeAnEchoModal
|
|
4
|
+
*
|
|
5
|
+
* Presentation-only "Why Become an Echo?" modal.
|
|
6
|
+
* Extracted verbatim from the Echo UI Reference welcome section.
|
|
7
|
+
*
|
|
8
|
+
* This component owns the complete shared Echoform explanatory copy and
|
|
9
|
+
* visual presentation. All content is fixed Echoform brand text that never
|
|
10
|
+
* changes per host app.
|
|
11
|
+
*
|
|
12
|
+
* DIMENSIONS
|
|
13
|
+
* ──────────
|
|
14
|
+
* ~88% of window height, max width 520, dark overlay, cyan border,
|
|
15
|
+
* scrollable body, fixed "Got It" footer button.
|
|
16
|
+
*
|
|
17
|
+
* ACCESSIBILITY
|
|
18
|
+
* ─────────────
|
|
19
|
+
* • accessibilityViewIsModal on the outer Modal
|
|
20
|
+
* • Header role on the title
|
|
21
|
+
* • All bullet rows accessible as text
|
|
22
|
+
* • Callout section labeled with accessible text
|
|
23
|
+
* • Close button: "Close", role button
|
|
24
|
+
* • Got It button: "Got it", role button, hint "Closes this popup"
|
|
25
|
+
*
|
|
26
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
27
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
28
|
+
*/
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.EchoWhyBecomeAnEchoModal = EchoWhyBecomeAnEchoModal;
|
|
34
|
+
const react_1 = __importDefault(require("react"));
|
|
35
|
+
const react_native_1 = require("react-native");
|
|
36
|
+
const vector_icons_1 = require("@expo/vector-icons");
|
|
37
|
+
const theme_1 = require("../theme");
|
|
38
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
39
|
+
// Bullet data (static Echoform copy)
|
|
40
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
41
|
+
const BULLETS = [
|
|
42
|
+
{
|
|
43
|
+
text: 'Keep your data synchronized across your devices.',
|
|
44
|
+
a11y: 'Keep your data synchronized across your devices.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
text: 'Restore your information if you replace or lose a device.',
|
|
48
|
+
a11y: 'Restore your information if you replace or lose a device.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
text: 'Carry your Echo Emblem, Echo Title, and future unlocks across every Echoform app.',
|
|
52
|
+
a11y: 'Carry your Echo Emblem, Echo Title, and future unlocks across every Echoform app.',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
text: 'Access online features, cloud backup, multiplayer experiences, and community events as they become available.',
|
|
56
|
+
a11y: 'Access online features, cloud backup, multiplayer experiences, and community events as they become available.',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
text: 'Grow one identity that evolves with every new Echoform experience.',
|
|
60
|
+
a11y: 'Grow one identity that evolves with every new Echoform experience.',
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
64
|
+
// Component
|
|
65
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
66
|
+
function EchoWhyBecomeAnEchoModal({ visible, onClose, }) {
|
|
67
|
+
const modalCardH = Math.round(react_native_1.Dimensions.get('window').height * 0.88);
|
|
68
|
+
return (<react_native_1.Modal visible={visible} transparent animationType="fade" onRequestClose={onClose} accessibilityViewIsModal>
|
|
69
|
+
<react_native_1.View style={styles.overlay}>
|
|
70
|
+
<react_native_1.View style={[styles.card, { height: modalCardH }]}>
|
|
71
|
+
|
|
72
|
+
{/* Header */}
|
|
73
|
+
<react_native_1.View style={styles.header}>
|
|
74
|
+
<react_native_1.Text style={styles.headerTitle} accessibilityRole="header">
|
|
75
|
+
Why Become an Echo?
|
|
76
|
+
</react_native_1.Text>
|
|
77
|
+
<react_native_1.Pressable onPress={onClose} hitSlop={8} style={({ pressed }) => (pressed ? { opacity: 0.6 } : undefined)} accessibilityLabel="Close" accessibilityRole="button">
|
|
78
|
+
<vector_icons_1.MaterialIcons name="close" size={24} color={theme_1.COLORS.textSecondary}/>
|
|
79
|
+
</react_native_1.Pressable>
|
|
80
|
+
</react_native_1.View>
|
|
81
|
+
|
|
82
|
+
{/* Scrollable body */}
|
|
83
|
+
<react_native_1.View style={styles.scrollRegion}>
|
|
84
|
+
<react_native_1.ScrollView style={styles.scrollView} contentContainerStyle={styles.scrollContent} showsVerticalScrollIndicator nestedScrollEnabled keyboardShouldPersistTaps="handled">
|
|
85
|
+
<react_native_1.Text style={styles.sectionHeading} accessibilityRole="header" accessibilityLabel="Welcome to Echoform.">
|
|
86
|
+
Welcome to Echoform.
|
|
87
|
+
</react_native_1.Text>
|
|
88
|
+
|
|
89
|
+
<react_native_1.Text style={styles.bodyText} accessibilityLabel="Echoform was created with a simple goal:">
|
|
90
|
+
Echoform was created with a simple goal:
|
|
91
|
+
</react_native_1.Text>
|
|
92
|
+
|
|
93
|
+
<react_native_1.Text style={styles.emphasis}>
|
|
94
|
+
To build an accessible world with Echoes like you.
|
|
95
|
+
</react_native_1.Text>
|
|
96
|
+
|
|
97
|
+
<react_native_1.Text style={styles.bodyText} accessibilityLabel="An Echo is a member of the Echoform community.">
|
|
98
|
+
An{' '}
|
|
99
|
+
<react_native_1.Text style={styles.inlineBold}>Echo</react_native_1.Text>
|
|
100
|
+
{' '}is a member of the Echoform community.
|
|
101
|
+
</react_native_1.Text>
|
|
102
|
+
|
|
103
|
+
<react_native_1.Text style={styles.bodyText} accessibilityLabel="Every Echoform app can be enjoyed on its own, and you're always welcome to continue offline. Creating an Echo Profile is completely optional—but it unlocks a connected experience that grows with you.">
|
|
104
|
+
Every Echoform app can be enjoyed on its own, and you're always
|
|
105
|
+
welcome to continue offline. Creating an{' '}
|
|
106
|
+
<react_native_1.Text style={styles.inlineBold}>Echo Profile</react_native_1.Text>
|
|
107
|
+
{' '}is completely optional—but it unlocks a connected experience
|
|
108
|
+
that grows with you.
|
|
109
|
+
</react_native_1.Text>
|
|
110
|
+
|
|
111
|
+
<react_native_1.Text style={styles.subheading}>With an Echo Profile, you can:</react_native_1.Text>
|
|
112
|
+
|
|
113
|
+
{BULLETS.map(({ text, a11y }, i) => (<react_native_1.View key={i} style={styles.bulletRow} accessible accessibilityRole="text" accessibilityLabel={a11y}>
|
|
114
|
+
<react_native_1.Text style={styles.bulletDot} importantForAccessibility="no" accessibilityElementsHidden>
|
|
115
|
+
•
|
|
116
|
+
</react_native_1.Text>
|
|
117
|
+
<react_native_1.Text style={styles.bulletText} importantForAccessibility="no" accessibilityElementsHidden>
|
|
118
|
+
{text}
|
|
119
|
+
</react_native_1.Text>
|
|
120
|
+
</react_native_1.View>))}
|
|
121
|
+
|
|
122
|
+
<react_native_1.Text style={styles.bodyText}>
|
|
123
|
+
Your Echo Profile is not just for this app.
|
|
124
|
+
</react_native_1.Text>
|
|
125
|
+
|
|
126
|
+
<react_native_1.Text style={styles.emphasis} accessibilityLabel="It is your place within the Echoform ecosystem.">
|
|
127
|
+
It is your place within the Echoform ecosystem.
|
|
128
|
+
</react_native_1.Text>
|
|
129
|
+
|
|
130
|
+
{/* Callout */}
|
|
131
|
+
<react_native_1.View style={styles.callout}>
|
|
132
|
+
<react_native_1.Text style={styles.calloutHeading}>One Echo Profile.</react_native_1.Text>
|
|
133
|
+
<react_native_1.Text style={styles.calloutHeading} accessibilityLabel="Every Echoform app.">
|
|
134
|
+
Every Echoform app.
|
|
135
|
+
</react_native_1.Text>
|
|
136
|
+
<react_native_1.Text style={styles.calloutBody}>Every Echo has a story.</react_native_1.Text>
|
|
137
|
+
<react_native_1.Text style={[styles.calloutBody, styles.calloutBodyStrong]}>
|
|
138
|
+
This is where yours begins.
|
|
139
|
+
</react_native_1.Text>
|
|
140
|
+
</react_native_1.View>
|
|
141
|
+
|
|
142
|
+
<react_native_1.Text style={styles.footer}>
|
|
143
|
+
Thank you for helping us build an accessible world with Echoes like you.
|
|
144
|
+
</react_native_1.Text>
|
|
145
|
+
</react_native_1.ScrollView>
|
|
146
|
+
</react_native_1.View>
|
|
147
|
+
|
|
148
|
+
{/* Got It footer */}
|
|
149
|
+
<react_native_1.Pressable onPress={onClose} style={({ pressed }) => [
|
|
150
|
+
styles.gotItBtn,
|
|
151
|
+
pressed && { opacity: 0.75 },
|
|
152
|
+
]} accessibilityLabel="Got it" accessibilityRole="button" accessibilityHint="Closes this popup">
|
|
153
|
+
<react_native_1.Text style={styles.gotItText}>Got It</react_native_1.Text>
|
|
154
|
+
</react_native_1.Pressable>
|
|
155
|
+
|
|
156
|
+
</react_native_1.View>
|
|
157
|
+
</react_native_1.View>
|
|
158
|
+
</react_native_1.Modal>);
|
|
159
|
+
}
|
|
160
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
161
|
+
// Styles
|
|
162
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
163
|
+
const styles = react_native_1.StyleSheet.create({
|
|
164
|
+
overlay: {
|
|
165
|
+
flex: 1,
|
|
166
|
+
justifyContent: 'center',
|
|
167
|
+
alignItems: 'center',
|
|
168
|
+
paddingHorizontal: 20,
|
|
169
|
+
paddingVertical: 24,
|
|
170
|
+
backgroundColor: 'rgba(0,0,0,0.75)',
|
|
171
|
+
},
|
|
172
|
+
card: {
|
|
173
|
+
width: '100%',
|
|
174
|
+
maxWidth: 520,
|
|
175
|
+
backgroundColor: theme_1.COLORS.bg,
|
|
176
|
+
borderRadius: 24,
|
|
177
|
+
overflow: 'hidden',
|
|
178
|
+
borderWidth: 1,
|
|
179
|
+
borderColor: theme_1.COLORS.neonCyan + '33',
|
|
180
|
+
},
|
|
181
|
+
// Header
|
|
182
|
+
header: {
|
|
183
|
+
flexDirection: 'row',
|
|
184
|
+
alignItems: 'center',
|
|
185
|
+
justifyContent: 'space-between',
|
|
186
|
+
paddingHorizontal: theme_1.SPACING.lg,
|
|
187
|
+
paddingVertical: theme_1.SPACING.md,
|
|
188
|
+
borderBottomWidth: 1,
|
|
189
|
+
borderBottomColor: theme_1.COLORS.border,
|
|
190
|
+
},
|
|
191
|
+
headerTitle: {
|
|
192
|
+
fontSize: theme_1.FONTS.lg,
|
|
193
|
+
fontWeight: '700',
|
|
194
|
+
color: theme_1.COLORS.textPrimary,
|
|
195
|
+
},
|
|
196
|
+
// Scroll region
|
|
197
|
+
scrollRegion: {
|
|
198
|
+
flex: 1,
|
|
199
|
+
minHeight: 0,
|
|
200
|
+
},
|
|
201
|
+
scrollView: {
|
|
202
|
+
flex: 1,
|
|
203
|
+
},
|
|
204
|
+
scrollContent: {
|
|
205
|
+
paddingHorizontal: theme_1.SPACING.lg,
|
|
206
|
+
paddingTop: theme_1.SPACING.md,
|
|
207
|
+
paddingBottom: theme_1.SPACING.xl,
|
|
208
|
+
},
|
|
209
|
+
// Typography
|
|
210
|
+
sectionHeading: {
|
|
211
|
+
fontSize: theme_1.FONTS.xl,
|
|
212
|
+
fontWeight: '800',
|
|
213
|
+
color: theme_1.COLORS.textPrimary,
|
|
214
|
+
letterSpacing: 0.3,
|
|
215
|
+
marginBottom: theme_1.SPACING.sm,
|
|
216
|
+
},
|
|
217
|
+
bodyText: {
|
|
218
|
+
fontSize: theme_1.FONTS.md,
|
|
219
|
+
color: theme_1.COLORS.textSecondary,
|
|
220
|
+
lineHeight: 26,
|
|
221
|
+
marginBottom: theme_1.SPACING.sm,
|
|
222
|
+
},
|
|
223
|
+
emphasis: {
|
|
224
|
+
fontSize: theme_1.FONTS.md,
|
|
225
|
+
fontWeight: '700',
|
|
226
|
+
color: theme_1.COLORS.neonCyan,
|
|
227
|
+
lineHeight: 26,
|
|
228
|
+
marginBottom: theme_1.SPACING.sm,
|
|
229
|
+
},
|
|
230
|
+
inlineBold: {
|
|
231
|
+
fontWeight: '700',
|
|
232
|
+
color: theme_1.COLORS.textPrimary,
|
|
233
|
+
},
|
|
234
|
+
subheading: {
|
|
235
|
+
fontSize: theme_1.FONTS.md,
|
|
236
|
+
fontWeight: '700',
|
|
237
|
+
color: theme_1.COLORS.textPrimary,
|
|
238
|
+
marginTop: theme_1.SPACING.sm,
|
|
239
|
+
marginBottom: theme_1.SPACING.xs,
|
|
240
|
+
},
|
|
241
|
+
// Bullets
|
|
242
|
+
bulletRow: {
|
|
243
|
+
flexDirection: 'row',
|
|
244
|
+
alignItems: 'flex-start',
|
|
245
|
+
gap: theme_1.SPACING.sm,
|
|
246
|
+
paddingLeft: theme_1.SPACING.sm,
|
|
247
|
+
marginBottom: theme_1.SPACING.xs,
|
|
248
|
+
},
|
|
249
|
+
bulletDot: {
|
|
250
|
+
fontSize: theme_1.FONTS.lg,
|
|
251
|
+
color: theme_1.COLORS.neonCyan,
|
|
252
|
+
lineHeight: 26,
|
|
253
|
+
marginTop: 1,
|
|
254
|
+
},
|
|
255
|
+
bulletText: {
|
|
256
|
+
flex: 1,
|
|
257
|
+
fontSize: theme_1.FONTS.md,
|
|
258
|
+
color: theme_1.COLORS.textSecondary,
|
|
259
|
+
lineHeight: 26,
|
|
260
|
+
},
|
|
261
|
+
// Callout
|
|
262
|
+
callout: {
|
|
263
|
+
backgroundColor: theme_1.COLORS.neonCyan + '0C',
|
|
264
|
+
borderRadius: theme_1.RADIUS.xl,
|
|
265
|
+
borderWidth: 1,
|
|
266
|
+
borderColor: theme_1.COLORS.neonCyan + '33',
|
|
267
|
+
padding: theme_1.SPACING.xl,
|
|
268
|
+
gap: theme_1.SPACING.sm,
|
|
269
|
+
alignItems: 'center',
|
|
270
|
+
marginTop: theme_1.SPACING.sm,
|
|
271
|
+
marginBottom: theme_1.SPACING.md,
|
|
272
|
+
},
|
|
273
|
+
calloutHeading: {
|
|
274
|
+
fontSize: theme_1.FONTS.lg,
|
|
275
|
+
fontWeight: '800',
|
|
276
|
+
color: theme_1.COLORS.neonCyan,
|
|
277
|
+
textAlign: 'center',
|
|
278
|
+
letterSpacing: 0.3,
|
|
279
|
+
},
|
|
280
|
+
calloutBody: {
|
|
281
|
+
fontSize: theme_1.FONTS.md,
|
|
282
|
+
color: theme_1.COLORS.textSecondary,
|
|
283
|
+
textAlign: 'center',
|
|
284
|
+
lineHeight: 24,
|
|
285
|
+
marginTop: theme_1.SPACING.xs,
|
|
286
|
+
},
|
|
287
|
+
calloutBodyStrong: {
|
|
288
|
+
fontWeight: '700',
|
|
289
|
+
color: theme_1.COLORS.textPrimary,
|
|
290
|
+
},
|
|
291
|
+
// Footer text
|
|
292
|
+
footer: {
|
|
293
|
+
fontSize: theme_1.FONTS.sm,
|
|
294
|
+
color: theme_1.COLORS.textMuted,
|
|
295
|
+
textAlign: 'center',
|
|
296
|
+
lineHeight: 22,
|
|
297
|
+
fontStyle: 'italic',
|
|
298
|
+
marginTop: theme_1.SPACING.sm,
|
|
299
|
+
},
|
|
300
|
+
// Got It button
|
|
301
|
+
gotItBtn: {
|
|
302
|
+
marginHorizontal: theme_1.SPACING.lg,
|
|
303
|
+
marginBottom: theme_1.SPACING.md,
|
|
304
|
+
marginTop: theme_1.SPACING.sm,
|
|
305
|
+
backgroundColor: theme_1.COLORS.neonCyan + '18',
|
|
306
|
+
borderRadius: theme_1.RADIUS.lg,
|
|
307
|
+
borderWidth: 1.5,
|
|
308
|
+
borderColor: theme_1.COLORS.neonCyan + 'CC',
|
|
309
|
+
paddingVertical: theme_1.SPACING.md,
|
|
310
|
+
alignItems: 'center',
|
|
311
|
+
justifyContent: 'center',
|
|
312
|
+
minHeight: 52,
|
|
313
|
+
},
|
|
314
|
+
gotItText: {
|
|
315
|
+
fontSize: theme_1.FONTS.md,
|
|
316
|
+
fontWeight: '700',
|
|
317
|
+
color: theme_1.COLORS.neonCyan,
|
|
318
|
+
letterSpacing: 0.3,
|
|
319
|
+
},
|
|
320
|
+
});
|
|
321
|
+
//# sourceMappingURL=EchoWhyBecomeAnEchoModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoWhyBecomeAnEchoModal.js","sourceRoot":"","sources":["../../src/components/EchoWhyBecomeAnEchoModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EchoformInfoButton
|
|
3
|
+
*
|
|
4
|
+
* Presentation-only Echoform logo button used in the Echo Profile header.
|
|
5
|
+
* Extracted from the Echo UI Reference account screen menu button.
|
|
6
|
+
*
|
|
7
|
+
* Renders a 44×44 circular image button using the host-supplied logo.
|
|
8
|
+
*
|
|
9
|
+
* ACCESSIBILITY
|
|
10
|
+
* ─────────────
|
|
11
|
+
* • accessibilityLabel: "Echoform Productions Information and Support"
|
|
12
|
+
* • accessibilityRole: "button"
|
|
13
|
+
* • accessibilityHint: "Opens information, privacy, and support options"
|
|
14
|
+
*
|
|
15
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
16
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
17
|
+
*/
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import type { ImageSource } from 'expo-image';
|
|
20
|
+
export type EchoformInfoButtonProps = {
|
|
21
|
+
/** Echoform logo image to display inside the button. */
|
|
22
|
+
logoSource: ImageSource;
|
|
23
|
+
/** Called when the user taps the logo button. */
|
|
24
|
+
onPress: () => void;
|
|
25
|
+
};
|
|
26
|
+
export declare function EchoformInfoButton({ logoSource, onPress, }: EchoformInfoButtonProps): React.JSX.Element;
|
|
27
|
+
//# sourceMappingURL=EchoformInfoButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoformInfoButton.d.ts","sourceRoot":"","sources":["../../src/components/EchoformInfoButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,MAAM,uBAAuB,GAAG;IACpC,wDAAwD;IACxD,UAAU,EAAE,WAAW,CAAC;IACxB,iDAAiD;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,OAAO,GACR,EAAE,uBAAuB,qBAqBzB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EchoformInfoButton
|
|
4
|
+
*
|
|
5
|
+
* Presentation-only Echoform logo button used in the Echo Profile header.
|
|
6
|
+
* Extracted from the Echo UI Reference account screen menu button.
|
|
7
|
+
*
|
|
8
|
+
* Renders a 44×44 circular image button using the host-supplied logo.
|
|
9
|
+
*
|
|
10
|
+
* ACCESSIBILITY
|
|
11
|
+
* ─────────────
|
|
12
|
+
* • accessibilityLabel: "Echoform Productions Information and Support"
|
|
13
|
+
* • accessibilityRole: "button"
|
|
14
|
+
* • accessibilityHint: "Opens information, privacy, and support options"
|
|
15
|
+
*
|
|
16
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
17
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
18
|
+
*/
|
|
19
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
20
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.EchoformInfoButton = EchoformInfoButton;
|
|
24
|
+
const react_1 = __importDefault(require("react"));
|
|
25
|
+
const react_native_1 = require("react-native");
|
|
26
|
+
const expo_image_1 = require("expo-image");
|
|
27
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
28
|
+
// Component
|
|
29
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
30
|
+
function EchoformInfoButton({ logoSource, onPress, }) {
|
|
31
|
+
return (<react_native_1.View style={styles.wrapper}>
|
|
32
|
+
<react_native_1.Pressable onPress={onPress} style={({ pressed }) => [styles.btn, pressed ? { opacity: 0.7 } : null]} accessibilityLabel="Echoform Productions Information and Support" accessibilityRole="button" accessibilityHint="Opens information, privacy, and support options" hitSlop={8}>
|
|
33
|
+
<expo_image_1.Image source={logoSource} style={styles.logo} contentFit="contain" accessible={false} importantForAccessibility="no"/>
|
|
34
|
+
</react_native_1.Pressable>
|
|
35
|
+
</react_native_1.View>);
|
|
36
|
+
}
|
|
37
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
38
|
+
// Styles
|
|
39
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
40
|
+
const styles = react_native_1.StyleSheet.create({
|
|
41
|
+
wrapper: {
|
|
42
|
+
width: 44,
|
|
43
|
+
height: 44,
|
|
44
|
+
alignItems: 'flex-end',
|
|
45
|
+
justifyContent: 'center',
|
|
46
|
+
},
|
|
47
|
+
btn: {
|
|
48
|
+
width: 44,
|
|
49
|
+
height: 44,
|
|
50
|
+
borderRadius: 22,
|
|
51
|
+
overflow: 'hidden',
|
|
52
|
+
alignItems: 'center',
|
|
53
|
+
justifyContent: 'center',
|
|
54
|
+
},
|
|
55
|
+
logo: {
|
|
56
|
+
width: 44,
|
|
57
|
+
height: 44,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=EchoformInfoButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoformInfoButton.js","sourceRoot":"","sources":["../../src/components/EchoformInfoButton.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;AAsBH,gDAwBC;AA5CD,kDAA0B;AAC1B,+CAA2D;AAC3D,2CAAmC;AAcnC,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,SAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,OAAO,GACiB;IACxB,OAAO,CACL,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;MAAA,CAAC,wBAAS,CACR,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACxE,kBAAkB,CAAC,8CAA8C,CACjE,iBAAiB,CAAC,QAAQ,CAC1B,iBAAiB,CAAC,iDAAiD,CACnE,OAAO,CAAC,CAAC,CAAC,CAAC,CAEX;QAAA,CAAC,kBAAK,CACJ,MAAM,CAAC,CAAC,UAAU,CAAC,CACnB,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACnB,UAAU,CAAC,SAAS,CACpB,UAAU,CAAC,CAAC,KAAK,CAAC,CAClB,yBAAyB,CAAC,IAAI,EAElC;MAAA,EAAE,wBAAS,CACb;IAAA,EAAE,mBAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE;QACP,KAAK,EAAW,EAAE;QAClB,MAAM,EAAU,EAAE;QAClB,UAAU,EAAM,UAAU;QAC1B,cAAc,EAAE,QAAQ;KACzB;IACD,GAAG,EAAE;QACH,KAAK,EAAW,EAAE;QAClB,MAAM,EAAU,EAAE;QAClB,YAAY,EAAI,EAAE;QAClB,QAAQ,EAAQ,QAAQ;QACxB,UAAU,EAAM,QAAQ;QACxB,cAAc,EAAE,QAAQ;KACzB;IACD,IAAI,EAAE;QACJ,KAAK,EAAG,EAAE;QACV,MAAM,EAAE,EAAE;KACX;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EchoformInfoModal
|
|
3
|
+
*
|
|
4
|
+
* Presentation-only Echoform information and support modal.
|
|
5
|
+
* Extracted from the Echo UI Reference account screen.
|
|
6
|
+
*
|
|
7
|
+
* Renders:
|
|
8
|
+
* • Page-sheet (iOS) / full-screen (other) modal
|
|
9
|
+
* • Echoform heading and close button
|
|
10
|
+
* • Host-supplied Echoform logo
|
|
11
|
+
* • "Echoform" brand name
|
|
12
|
+
* • Host appName displayed as the tagline
|
|
13
|
+
* • Privacy Policy card (action delegated to host)
|
|
14
|
+
* • CONTACT SUPPORT section
|
|
15
|
+
* • Support email with copy button (action delegated to host)
|
|
16
|
+
* • Suggested Format bulleted list
|
|
17
|
+
*
|
|
18
|
+
* HOST RESPONSIBILITIES
|
|
19
|
+
* ─────────────────────
|
|
20
|
+
* • Opening/closing state
|
|
21
|
+
* • Privacy policy URL navigation (onPrivacyPolicy)
|
|
22
|
+
* • Clipboard write (onCopySupportEmail)
|
|
23
|
+
* • Safe-area insets (topInset / bottomInset)
|
|
24
|
+
*
|
|
25
|
+
* The package does NOT import expo-clipboard, Linking, Expo Router,
|
|
26
|
+
* auth, contexts, or services.
|
|
27
|
+
*
|
|
28
|
+
* ACCESSIBILITY
|
|
29
|
+
* ─────────────
|
|
30
|
+
* • accessibilityViewIsModal on the outer Modal
|
|
31
|
+
* • Header role on "Echoform" title
|
|
32
|
+
* • Close button: "Close Echoform", role button
|
|
33
|
+
* • Privacy Policy: role link, hint opens in browser
|
|
34
|
+
* • Support email: selectable, descriptive accessibility label
|
|
35
|
+
* • Copy email: role button, copied/check state
|
|
36
|
+
*
|
|
37
|
+
* No Expo Router, no auth, no contexts, no services, no app-specific code.
|
|
38
|
+
* Canonical shared component for @echoform/echo-ui.
|
|
39
|
+
*/
|
|
40
|
+
import React from 'react';
|
|
41
|
+
import type { ImageSource } from 'expo-image';
|
|
42
|
+
export type EchoformInfoModalProps = {
|
|
43
|
+
visible: boolean;
|
|
44
|
+
/** Echoform logo image displayed in the modal body. */
|
|
45
|
+
logoSource: ImageSource;
|
|
46
|
+
/** Host application name displayed as the tagline below "Echoform". */
|
|
47
|
+
appName: string;
|
|
48
|
+
/** Support email address. Defaults to support@echoformproductions.com. */
|
|
49
|
+
supportEmail?: string;
|
|
50
|
+
/** Whether the email address has just been copied. Defaults to false. */
|
|
51
|
+
emailCopied?: boolean;
|
|
52
|
+
onClose: () => void;
|
|
53
|
+
/** Host performs URL navigation for the privacy policy. */
|
|
54
|
+
onPrivacyPolicy: () => void;
|
|
55
|
+
/** Host performs clipboard write and manages emailCopied state. */
|
|
56
|
+
onCopySupportEmail: () => void;
|
|
57
|
+
/** Top inset supplied by the host. Defaults to 0. */
|
|
58
|
+
topInset?: number;
|
|
59
|
+
/** Bottom inset supplied by the host. Defaults to 0. */
|
|
60
|
+
bottomInset?: number;
|
|
61
|
+
};
|
|
62
|
+
export declare function EchoformInfoModal({ visible, logoSource, appName, supportEmail, emailCopied, onClose, onPrivacyPolicy, onCopySupportEmail, topInset, bottomInset, }: EchoformInfoModalProps): React.JSX.Element;
|
|
63
|
+
//# sourceMappingURL=EchoformInfoModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EchoformInfoModal.d.ts","sourceRoot":"","sources":["../../src/components/EchoformInfoModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAQ,OAAO,CAAC;IACvB,uDAAuD;IACvD,UAAU,EAAK,WAAW,CAAC;IAC3B,uEAAuE;IACvE,OAAO,EAAQ,MAAM,CAAC;IACtB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,WAAW,CAAC,EAAG,OAAO,CAAC;IACvB,OAAO,EAAe,MAAM,IAAI,CAAC;IACjC,2DAA2D;IAC3D,eAAe,EAAO,MAAM,IAAI,CAAC;IACjC,mEAAmE;IACnE,kBAAkB,EAAI,MAAM,IAAI,CAAC;IACjC,qDAAqD;IACrD,QAAQ,CAAC,EAAM,MAAM,CAAC;IACtB,wDAAwD;IACxD,WAAW,CAAC,EAAG,MAAM,CAAC;CACvB,CAAC;AAkBF,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,UAAU,EACV,OAAO,EACP,YAAiD,EACjD,WAAqB,EACrB,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,QAAiB,EACjB,WAAiB,GAClB,EAAE,sBAAsB,qBA8JxB"}
|