@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.
Files changed (154) hide show
  1. package/README.md +57 -10
  2. package/dist/components/EchoChangeProfileNameModal.d.ts +59 -0
  3. package/dist/components/EchoChangeProfileNameModal.d.ts.map +1 -0
  4. package/dist/components/EchoChangeProfileNameModal.js +317 -0
  5. package/dist/components/EchoChangeProfileNameModal.js.map +1 -0
  6. package/dist/components/EchoColorPicker.d.ts +34 -0
  7. package/dist/components/EchoColorPicker.d.ts.map +1 -0
  8. package/dist/components/EchoColorPicker.js +206 -0
  9. package/dist/components/EchoColorPicker.js.map +1 -0
  10. package/dist/components/EchoConnectedAppsModal.d.ts +40 -0
  11. package/dist/components/EchoConnectedAppsModal.d.ts.map +1 -0
  12. package/dist/components/EchoConnectedAppsModal.js +220 -0
  13. package/dist/components/EchoConnectedAppsModal.js.map +1 -0
  14. package/dist/components/EchoDeleteProfilePanel.d.ts +63 -0
  15. package/dist/components/EchoDeleteProfilePanel.d.ts.map +1 -0
  16. package/dist/components/EchoDeleteProfilePanel.js +286 -0
  17. package/dist/components/EchoDeleteProfilePanel.js.map +1 -0
  18. package/dist/components/EchoDeletionIntercept.d.ts +39 -0
  19. package/dist/components/EchoDeletionIntercept.d.ts.map +1 -0
  20. package/dist/components/EchoDeletionIntercept.js +212 -0
  21. package/dist/components/EchoDeletionIntercept.js.map +1 -0
  22. package/dist/components/EchoDeletionStatusCard.d.ts +35 -0
  23. package/dist/components/EchoDeletionStatusCard.d.ts.map +1 -0
  24. package/dist/components/EchoDeletionStatusCard.js +156 -0
  25. package/dist/components/EchoDeletionStatusCard.js.map +1 -0
  26. package/dist/components/EchoEmblem.d.ts +93 -0
  27. package/dist/components/EchoEmblem.d.ts.map +1 -0
  28. package/dist/components/EchoEmblem.js +308 -0
  29. package/dist/components/EchoEmblem.js.map +1 -0
  30. package/dist/components/EchoEmblemPicker.d.ts +71 -0
  31. package/dist/components/EchoEmblemPicker.d.ts.map +1 -0
  32. package/dist/components/EchoEmblemPicker.js +490 -0
  33. package/dist/components/EchoEmblemPicker.js.map +1 -0
  34. package/dist/components/EchoErrorBanner.d.ts +17 -0
  35. package/dist/components/EchoErrorBanner.d.ts.map +1 -0
  36. package/dist/components/EchoErrorBanner.js +48 -0
  37. package/dist/components/EchoErrorBanner.js.map +1 -0
  38. package/dist/components/EchoFormField.d.ts +27 -0
  39. package/dist/components/EchoFormField.d.ts.map +1 -0
  40. package/dist/components/EchoFormField.js +49 -0
  41. package/dist/components/EchoFormField.js.map +1 -0
  42. package/dist/components/EchoLinkButton.d.ts +16 -0
  43. package/dist/components/EchoLinkButton.d.ts.map +1 -0
  44. package/dist/components/EchoLinkButton.js +37 -0
  45. package/dist/components/EchoLinkButton.js.map +1 -0
  46. package/dist/components/EchoMoreScreen.d.ts +41 -0
  47. package/dist/components/EchoMoreScreen.d.ts.map +1 -0
  48. package/dist/components/EchoMoreScreen.js +94 -0
  49. package/dist/components/EchoMoreScreen.js.map +1 -0
  50. package/dist/components/EchoPasswordField.d.ts +28 -0
  51. package/dist/components/EchoPasswordField.d.ts.map +1 -0
  52. package/dist/components/EchoPasswordField.js +67 -0
  53. package/dist/components/EchoPasswordField.js.map +1 -0
  54. package/dist/components/EchoPrimaryButton.d.ts +23 -0
  55. package/dist/components/EchoPrimaryButton.d.ts.map +1 -0
  56. package/dist/components/EchoPrimaryButton.js +54 -0
  57. package/dist/components/EchoPrimaryButton.js.map +1 -0
  58. package/dist/components/EchoProfileCard.d.ts +35 -0
  59. package/dist/components/EchoProfileCard.d.ts.map +1 -0
  60. package/dist/components/EchoProfileCard.js +206 -0
  61. package/dist/components/EchoProfileCard.js.map +1 -0
  62. package/dist/components/EchoProfileDivider.d.ts +14 -0
  63. package/dist/components/EchoProfileDivider.d.ts.map +1 -0
  64. package/dist/components/EchoProfileDivider.js +31 -0
  65. package/dist/components/EchoProfileDivider.js.map +1 -0
  66. package/dist/components/EchoProfileHero.d.ts +48 -0
  67. package/dist/components/EchoProfileHero.d.ts.map +1 -0
  68. package/dist/components/EchoProfileHero.js +215 -0
  69. package/dist/components/EchoProfileHero.js.map +1 -0
  70. package/dist/components/EchoProfileOverview.d.ts +18 -0
  71. package/dist/components/EchoProfileOverview.d.ts.map +1 -0
  72. package/dist/components/EchoProfileOverview.js +36 -0
  73. package/dist/components/EchoProfileOverview.js.map +1 -0
  74. package/dist/components/EchoProfileRow.d.ts +60 -0
  75. package/dist/components/EchoProfileRow.d.ts.map +1 -0
  76. package/dist/components/EchoProfileRow.js +113 -0
  77. package/dist/components/EchoProfileRow.js.map +1 -0
  78. package/dist/components/EchoProfileSection.d.ts +29 -0
  79. package/dist/components/EchoProfileSection.d.ts.map +1 -0
  80. package/dist/components/EchoProfileSection.js +58 -0
  81. package/dist/components/EchoProfileSection.js.map +1 -0
  82. package/dist/components/EchoRewardNotificationBanner.d.ts +61 -0
  83. package/dist/components/EchoRewardNotificationBanner.d.ts.map +1 -0
  84. package/dist/components/EchoRewardNotificationBanner.js +272 -0
  85. package/dist/components/EchoRewardNotificationBanner.js.map +1 -0
  86. package/dist/components/EchoSettingsRow.d.ts +24 -0
  87. package/dist/components/EchoSettingsRow.d.ts.map +1 -0
  88. package/dist/components/EchoSettingsRow.js +84 -0
  89. package/dist/components/EchoSettingsRow.js.map +1 -0
  90. package/dist/components/EchoSettingsSection.d.ts +16 -0
  91. package/dist/components/EchoSettingsSection.d.ts.map +1 -0
  92. package/dist/components/EchoSettingsSection.js +48 -0
  93. package/dist/components/EchoSettingsSection.js.map +1 -0
  94. package/dist/components/EchoSignOutButton.d.ts +28 -0
  95. package/dist/components/EchoSignOutButton.d.ts.map +1 -0
  96. package/dist/components/EchoSignOutButton.js +67 -0
  97. package/dist/components/EchoSignOutButton.js.map +1 -0
  98. package/dist/components/EchoSuccessBanner.d.ts +17 -0
  99. package/dist/components/EchoSuccessBanner.d.ts.map +1 -0
  100. package/dist/components/EchoSuccessBanner.js +48 -0
  101. package/dist/components/EchoSuccessBanner.js.map +1 -0
  102. package/dist/components/EchoSyncPanel.d.ts +165 -0
  103. package/dist/components/EchoSyncPanel.d.ts.map +1 -0
  104. package/dist/components/EchoSyncPanel.js +913 -0
  105. package/dist/components/EchoSyncPanel.js.map +1 -0
  106. package/dist/components/EchoSyncPromptModal.d.ts +87 -0
  107. package/dist/components/EchoSyncPromptModal.d.ts.map +1 -0
  108. package/dist/components/EchoSyncPromptModal.js +351 -0
  109. package/dist/components/EchoSyncPromptModal.js.map +1 -0
  110. package/dist/components/EchoTitlePicker.d.ts +72 -0
  111. package/dist/components/EchoTitlePicker.d.ts.map +1 -0
  112. package/dist/components/EchoTitlePicker.js +487 -0
  113. package/dist/components/EchoTitlePicker.js.map +1 -0
  114. package/dist/components/EchoVerificationCodeInput.d.ts +40 -0
  115. package/dist/components/EchoVerificationCodeInput.d.ts.map +1 -0
  116. package/dist/components/EchoVerificationCodeInput.js +140 -0
  117. package/dist/components/EchoVerificationCodeInput.js.map +1 -0
  118. package/dist/components/EchoWelcome.d.ts +44 -0
  119. package/dist/components/EchoWelcome.d.ts.map +1 -0
  120. package/dist/components/EchoWelcome.js +289 -0
  121. package/dist/components/EchoWelcome.js.map +1 -0
  122. package/dist/components/EchoWhyBecomeAnEchoModal.d.ts +34 -0
  123. package/dist/components/EchoWhyBecomeAnEchoModal.d.ts.map +1 -0
  124. package/dist/components/EchoWhyBecomeAnEchoModal.js +321 -0
  125. package/dist/components/EchoWhyBecomeAnEchoModal.js.map +1 -0
  126. package/dist/components/EchoformInfoButton.d.ts +27 -0
  127. package/dist/components/EchoformInfoButton.d.ts.map +1 -0
  128. package/dist/components/EchoformInfoButton.js +60 -0
  129. package/dist/components/EchoformInfoButton.js.map +1 -0
  130. package/dist/components/EchoformInfoModal.d.ts +63 -0
  131. package/dist/components/EchoformInfoModal.d.ts.map +1 -0
  132. package/dist/components/EchoformInfoModal.js +347 -0
  133. package/dist/components/EchoformInfoModal.js.map +1 -0
  134. package/dist/echoColors.d.ts +58 -0
  135. package/dist/echoColors.d.ts.map +1 -0
  136. package/dist/echoColors.js +94 -0
  137. package/dist/echoColors.js.map +1 -0
  138. package/dist/index.d.ts +71 -3
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +86 -4
  141. package/dist/index.js.map +1 -1
  142. package/dist/theme.d.ts +48 -0
  143. package/dist/theme.d.ts.map +1 -0
  144. package/dist/theme.js +51 -0
  145. package/dist/theme.js.map +1 -0
  146. package/dist/titleRarity.d.ts +19 -0
  147. package/dist/titleRarity.d.ts.map +1 -0
  148. package/dist/titleRarity.js +46 -0
  149. package/dist/titleRarity.js.map +1 -0
  150. package/package.json +6 -5
  151. package/dist/components/EchoUITest.d.ts +0 -14
  152. package/dist/components/EchoUITest.d.ts.map +0 -1
  153. package/dist/components/EchoUITest.js +0 -53
  154. package/dist/components/EchoUITest.js.map +0 -1
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ /**
3
+ * EchoformInfoModal
4
+ *
5
+ * Presentation-only Echoform information and support modal.
6
+ * Extracted from the Echo UI Reference account screen.
7
+ *
8
+ * Renders:
9
+ * • Page-sheet (iOS) / full-screen (other) modal
10
+ * • Echoform heading and close button
11
+ * • Host-supplied Echoform logo
12
+ * • "Echoform" brand name
13
+ * • Host appName displayed as the tagline
14
+ * • Privacy Policy card (action delegated to host)
15
+ * • CONTACT SUPPORT section
16
+ * • Support email with copy button (action delegated to host)
17
+ * • Suggested Format bulleted list
18
+ *
19
+ * HOST RESPONSIBILITIES
20
+ * ─────────────────────
21
+ * • Opening/closing state
22
+ * • Privacy policy URL navigation (onPrivacyPolicy)
23
+ * • Clipboard write (onCopySupportEmail)
24
+ * • Safe-area insets (topInset / bottomInset)
25
+ *
26
+ * The package does NOT import expo-clipboard, Linking, Expo Router,
27
+ * auth, contexts, or services.
28
+ *
29
+ * ACCESSIBILITY
30
+ * ─────────────
31
+ * • accessibilityViewIsModal on the outer Modal
32
+ * • Header role on "Echoform" title
33
+ * • Close button: "Close Echoform", role button
34
+ * • Privacy Policy: role link, hint opens in browser
35
+ * • Support email: selectable, descriptive accessibility label
36
+ * • Copy email: role button, copied/check state
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.EchoformInfoModal = EchoformInfoModal;
46
+ const react_1 = __importDefault(require("react"));
47
+ const react_native_1 = require("react-native");
48
+ const expo_image_1 = require("expo-image");
49
+ const vector_icons_1 = require("@expo/vector-icons");
50
+ const theme_1 = require("../theme");
51
+ // ─────────────────────────────────────────────────────────────────────────────
52
+ // Suggested format items (static Echoform copy)
53
+ // ─────────────────────────────────────────────────────────────────────────────
54
+ const FORMAT_ITEMS = [
55
+ 'Name',
56
+ 'Email',
57
+ 'Application Name',
58
+ 'Platform (iOS or Android)',
59
+ 'Questions / Concerns / Comments',
60
+ ];
61
+ // ─────────────────────────────────────────────────────────────────────────────
62
+ // Component
63
+ // ─────────────────────────────────────────────────────────────────────────────
64
+ function EchoformInfoModal({ visible, logoSource, appName, supportEmail = 'support@echoformproductions.com', emailCopied = false, onClose, onPrivacyPolicy, onCopySupportEmail, topInset = 0, bottomInset = 0, }) {
65
+ const windowH = react_native_1.Dimensions.get('window').height;
66
+ return (<react_native_1.Modal visible={visible} animationType="slide" presentationStyle={react_native_1.Platform.OS === 'ios' ? 'pageSheet' : 'fullScreen'} onRequestClose={onClose} accessibilityViewIsModal>
67
+ <react_native_1.View style={[styles.root, { height: windowH, paddingTop: topInset || theme_1.SPACING.xl }]}>
68
+
69
+ {/* Header */}
70
+ <react_native_1.View style={styles.header}>
71
+ <react_native_1.Text style={styles.title} accessibilityRole="header" accessibilityLabel="Echoform">
72
+ Echoform
73
+ </react_native_1.Text>
74
+ <react_native_1.Pressable onPress={onClose} style={styles.closeBtn} accessibilityLabel="Close Echoform" accessibilityRole="button" hitSlop={8}>
75
+ <vector_icons_1.MaterialIcons name="close" size={24} color={theme_1.COLORS.textSecondary}/>
76
+ </react_native_1.Pressable>
77
+ </react_native_1.View>
78
+
79
+ {/* Scrollable body */}
80
+ <react_native_1.ScrollView style={styles.scrollView} contentContainerStyle={[
81
+ styles.scrollContent,
82
+ { paddingBottom: bottomInset + 40 },
83
+ ]} showsVerticalScrollIndicator alwaysBounceVertical>
84
+ {/* Logo */}
85
+ <react_native_1.View accessible accessibilityLabel="Echoform logo" accessibilityRole="image" style={styles.logoBox}>
86
+ <expo_image_1.Image source={logoSource} style={styles.logoImage} contentFit="contain" accessible={false} importantForAccessibility="no"/>
87
+ </react_native_1.View>
88
+
89
+ {/* Brand name */}
90
+ <react_native_1.Text style={[styles.brandName, { marginBottom: theme_1.SPACING.xs }]} accessibilityLabel="Echoform">
91
+ Echoform
92
+ </react_native_1.Text>
93
+
94
+ {/* App name tagline */}
95
+ <react_native_1.Text style={[styles.tagline, { marginBottom: theme_1.SPACING.lg }]} accessibilityLabel={`${appName} by Echoform Productions`}>
96
+ {appName}
97
+ </react_native_1.Text>
98
+
99
+ {/* Privacy Policy */}
100
+ <react_native_1.Pressable onPress={onPrivacyPolicy} style={({ pressed }) => [
101
+ styles.linkCard,
102
+ { marginBottom: theme_1.SPACING.lg },
103
+ pressed ? { opacity: 0.7 } : null,
104
+ ]} accessibilityLabel="Privacy Policy" accessibilityRole="link" accessibilityHint="Opens the Echoform Productions privacy policy in your browser">
105
+ <vector_icons_1.MaterialIcons name="privacy-tip" size={20} color={theme_1.COLORS.neonCyan}/>
106
+ <react_native_1.Text style={styles.linkText}>Privacy Policy</react_native_1.Text>
107
+ <vector_icons_1.MaterialIcons name="open-in-new" size={16} color={theme_1.COLORS.textMuted}/>
108
+ </react_native_1.Pressable>
109
+
110
+ {/* CONTACT SUPPORT heading */}
111
+ <react_native_1.View style={[styles.sectionHeader, { marginBottom: theme_1.SPACING.md }]}>
112
+ <vector_icons_1.MaterialIcons name="headset-mic" size={18} color={theme_1.COLORS.neonPurple}/>
113
+ <react_native_1.Text style={styles.sectionTitle} accessibilityRole="header">
114
+ CONTACT SUPPORT
115
+ </react_native_1.Text>
116
+ </react_native_1.View>
117
+
118
+ {/* Contact card */}
119
+ <react_native_1.View style={styles.contactCard}>
120
+ <react_native_1.Text style={styles.contactIntro}>
121
+ For questions, concerns, or comments, contact us at:
122
+ </react_native_1.Text>
123
+
124
+ {/* Email row */}
125
+ <react_native_1.View style={styles.emailRow}>
126
+ <vector_icons_1.MaterialIcons name="email" size={18} color={theme_1.COLORS.neonCyan}/>
127
+ <react_native_1.Text style={styles.email} selectable accessibilityLabel={`Support email address: ${supportEmail.replace('@', ' at ').replace('.', ' dot ')}`}>
128
+ {supportEmail}
129
+ </react_native_1.Text>
130
+ </react_native_1.View>
131
+
132
+ {/* Copy button */}
133
+ <react_native_1.Pressable onPress={onCopySupportEmail} style={({ pressed }) => [
134
+ styles.copyBtn,
135
+ pressed ? { opacity: 0.75 } : null,
136
+ ]} accessibilityLabel={emailCopied ? 'Email address copied' : 'Copy email address'} accessibilityRole="button" accessibilityHint="Copies the support email address to your clipboard" accessibilityState={{ selected: emailCopied }}>
137
+ <vector_icons_1.MaterialIcons name={emailCopied ? 'check' : 'content-copy'} size={16} color={emailCopied ? theme_1.COLORS.neonGreen : theme_1.COLORS.neonCyan}/>
138
+ <react_native_1.Text style={[styles.copyText, emailCopied ? { color: theme_1.COLORS.neonGreen } : null]}>
139
+ {emailCopied ? 'Copied!' : 'Copy Email'}
140
+ </react_native_1.Text>
141
+ </react_native_1.Pressable>
142
+
143
+ {/* Divider */}
144
+ <react_native_1.View style={styles.divider}/>
145
+
146
+ {/* Suggested format */}
147
+ <react_native_1.Text style={styles.formatLabel}>Suggested Format</react_native_1.Text>
148
+ <react_native_1.View style={styles.formatList}>
149
+ {FORMAT_ITEMS.map((item, i) => (<react_native_1.View key={i} style={styles.formatItem}>
150
+ <react_native_1.View style={styles.formatDot}/>
151
+ <react_native_1.Text style={styles.formatText}>{item}</react_native_1.Text>
152
+ </react_native_1.View>))}
153
+ </react_native_1.View>
154
+ </react_native_1.View>
155
+ </react_native_1.ScrollView>
156
+ </react_native_1.View>
157
+ </react_native_1.Modal>);
158
+ }
159
+ // ─────────────────────────────────────────────────────────────────────────────
160
+ // Styles
161
+ // ─────────────────────────────────────────────────────────────────────────────
162
+ const styles = react_native_1.StyleSheet.create({
163
+ root: {
164
+ backgroundColor: theme_1.COLORS.bg,
165
+ overflow: 'hidden',
166
+ },
167
+ // Header
168
+ header: {
169
+ flexDirection: 'row',
170
+ alignItems: 'center',
171
+ justifyContent: 'space-between',
172
+ paddingHorizontal: theme_1.SPACING.lg,
173
+ paddingBottom: theme_1.SPACING.md,
174
+ borderBottomWidth: 1,
175
+ borderBottomColor: theme_1.COLORS.border,
176
+ },
177
+ title: {
178
+ fontSize: theme_1.FONTS.xl,
179
+ fontWeight: '800',
180
+ color: theme_1.COLORS.neonCyan,
181
+ },
182
+ closeBtn: {
183
+ width: 44,
184
+ height: 44,
185
+ borderRadius: 22,
186
+ backgroundColor: theme_1.COLORS.surfaceHigh,
187
+ alignItems: 'center',
188
+ justifyContent: 'center',
189
+ },
190
+ // Scroll
191
+ scrollView: {
192
+ flex: 1,
193
+ minHeight: 0,
194
+ },
195
+ scrollContent: {
196
+ padding: theme_1.SPACING.xl,
197
+ },
198
+ // Logo
199
+ logoBox: {
200
+ width: 200,
201
+ height: 180,
202
+ alignItems: 'center',
203
+ justifyContent: 'center',
204
+ marginBottom: theme_1.SPACING.xs,
205
+ alignSelf: 'center',
206
+ },
207
+ logoImage: {
208
+ width: 200,
209
+ height: 180,
210
+ },
211
+ // Brand
212
+ brandName: {
213
+ fontSize: 32,
214
+ fontWeight: '800',
215
+ color: theme_1.COLORS.textPrimary,
216
+ letterSpacing: 1,
217
+ textAlign: 'center',
218
+ alignSelf: 'center',
219
+ },
220
+ tagline: {
221
+ fontSize: theme_1.FONTS.sm,
222
+ color: theme_1.COLORS.textSecondary,
223
+ fontWeight: '500',
224
+ letterSpacing: 0.3,
225
+ textAlign: 'center',
226
+ alignSelf: 'center',
227
+ },
228
+ // Privacy Policy link card
229
+ linkCard: {
230
+ flexDirection: 'row',
231
+ alignItems: 'center',
232
+ gap: theme_1.SPACING.sm,
233
+ backgroundColor: theme_1.COLORS.neonCyan + '10',
234
+ borderRadius: theme_1.RADIUS.lg,
235
+ borderWidth: 1,
236
+ borderColor: theme_1.COLORS.neonCyan + '44',
237
+ paddingHorizontal: theme_1.SPACING.lg,
238
+ paddingVertical: theme_1.SPACING.md,
239
+ width: '100%',
240
+ minHeight: 52,
241
+ },
242
+ linkText: {
243
+ flex: 1,
244
+ fontSize: theme_1.FONTS.md,
245
+ fontWeight: '600',
246
+ color: theme_1.COLORS.neonCyan,
247
+ },
248
+ // Section header
249
+ sectionHeader: {
250
+ flexDirection: 'row',
251
+ alignItems: 'center',
252
+ gap: theme_1.SPACING.sm,
253
+ width: '100%',
254
+ marginTop: theme_1.SPACING.sm,
255
+ },
256
+ sectionTitle: {
257
+ fontSize: theme_1.FONTS.xs,
258
+ fontWeight: '700',
259
+ color: theme_1.COLORS.neonPurple,
260
+ letterSpacing: 1.5,
261
+ textTransform: 'uppercase',
262
+ },
263
+ // Contact card
264
+ contactCard: {
265
+ backgroundColor: theme_1.COLORS.surface,
266
+ borderRadius: theme_1.RADIUS.lg,
267
+ borderWidth: 1,
268
+ borderColor: theme_1.COLORS.neonPurple + '33',
269
+ padding: theme_1.SPACING.lg,
270
+ width: '100%',
271
+ gap: theme_1.SPACING.md,
272
+ },
273
+ contactIntro: {
274
+ fontSize: theme_1.FONTS.sm,
275
+ color: theme_1.COLORS.textSecondary,
276
+ lineHeight: 22,
277
+ },
278
+ // Email row
279
+ emailRow: {
280
+ flexDirection: 'row',
281
+ alignItems: 'center',
282
+ gap: theme_1.SPACING.sm,
283
+ backgroundColor: theme_1.COLORS.neonCyan + '0D',
284
+ borderRadius: theme_1.RADIUS.md,
285
+ padding: theme_1.SPACING.md,
286
+ },
287
+ email: {
288
+ flex: 1,
289
+ fontSize: theme_1.FONTS.sm,
290
+ fontWeight: '600',
291
+ color: theme_1.COLORS.neonCyan,
292
+ },
293
+ // Copy button
294
+ copyBtn: {
295
+ flexDirection: 'row',
296
+ alignItems: 'center',
297
+ justifyContent: 'center',
298
+ gap: theme_1.SPACING.sm,
299
+ backgroundColor: theme_1.COLORS.neonCyan + '18',
300
+ borderRadius: theme_1.RADIUS.md,
301
+ borderWidth: 1,
302
+ borderColor: theme_1.COLORS.neonCyan + '44',
303
+ paddingVertical: theme_1.SPACING.sm,
304
+ paddingHorizontal: theme_1.SPACING.md,
305
+ minHeight: 44,
306
+ },
307
+ copyText: {
308
+ fontSize: theme_1.FONTS.sm,
309
+ fontWeight: '700',
310
+ color: theme_1.COLORS.neonCyan,
311
+ letterSpacing: 0.3,
312
+ },
313
+ // Divider
314
+ divider: {
315
+ height: 1,
316
+ backgroundColor: theme_1.COLORS.border,
317
+ marginVertical: theme_1.SPACING.xs,
318
+ },
319
+ // Suggested format
320
+ formatLabel: {
321
+ fontSize: theme_1.FONTS.xs,
322
+ fontWeight: '700',
323
+ color: theme_1.COLORS.textMuted,
324
+ letterSpacing: 1.1,
325
+ textTransform: 'uppercase',
326
+ },
327
+ formatList: {
328
+ gap: theme_1.SPACING.sm,
329
+ },
330
+ formatItem: {
331
+ flexDirection: 'row',
332
+ alignItems: 'center',
333
+ gap: theme_1.SPACING.sm,
334
+ },
335
+ formatDot: {
336
+ width: 6,
337
+ height: 6,
338
+ borderRadius: 3,
339
+ backgroundColor: theme_1.COLORS.neonPurple,
340
+ },
341
+ formatText: {
342
+ fontSize: theme_1.FONTS.sm,
343
+ color: theme_1.COLORS.textSecondary,
344
+ lineHeight: 22,
345
+ },
346
+ });
347
+ //# sourceMappingURL=EchoformInfoModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EchoformInfoModal.js","sourceRoot":"","sources":["../../src/components/EchoformInfoModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @echoform/echo-ui — Echo Color palette
3
+ *
4
+ * Canonical Echo Profile accent-color palette for the EchoBrain system.
5
+ *
6
+ * ARCHITECTURE
7
+ * ─────────────
8
+ * This is the package-owned authoritative definition of the 15 approved Echo
9
+ * Colors. It is consumed by all reusable @echoform/echo-ui components and
10
+ * can be imported by any Echoform-connected host app via the package.
11
+ *
12
+ * DEFAULT
13
+ * ───────
14
+ * The default Echo Color is Echo Cyan (#00e5ff). A null value stored in the
15
+ * database always means the user has not set a preference and the client
16
+ * MUST fall back to ECHO_COLOR_DEFAULT.
17
+ */
18
+ /** Default Echo Color — used when echo_color is null/unset. */
19
+ export declare const ECHO_COLOR_DEFAULT: "#00e5ff";
20
+ export interface EchoColorEntry {
21
+ /** Canonical hex value stored in the database and used for logic. */
22
+ hex: string;
23
+ /** Human-readable name shown in color picker UI. */
24
+ label: string;
25
+ }
26
+ /**
27
+ * The complete ordered Echo Color palette.
28
+ *
29
+ * These are the only values accepted by rpc_set_echo_color() and the
30
+ * profiles.echo_color CHECK constraint. Do not add colors here without
31
+ * simultaneously updating the migration constraint.
32
+ */
33
+ export declare const ECHO_COLOR_PALETTE: readonly EchoColorEntry[];
34
+ /**
35
+ * Set of all approved hex strings for fast O(1) membership validation.
36
+ * Used by the client-side service layer before sending updates to Supabase.
37
+ */
38
+ export declare const ECHO_COLOR_HEX_SET: ReadonlySet<string>;
39
+ /**
40
+ * Look up the label for a hex value.
41
+ * Returns undefined when the hex is not in the approved palette.
42
+ */
43
+ export declare function echoColorLabel(hex: string): string | undefined;
44
+ /**
45
+ * Resolve a stored echo_color value to a display hex string.
46
+ * Returns the default Cyan when the value is null, undefined, or not in the
47
+ * approved palette (defensive — the DB constraint prevents invalid writes).
48
+ *
49
+ * Always use this instead of reading the raw stored value directly to
50
+ * ensure the default fallback is applied consistently everywhere.
51
+ */
52
+ export declare function resolveEchoColor(stored: string | null | undefined): string;
53
+ /**
54
+ * Returns true when a hex string is a valid Echo Color from the approved
55
+ * palette. Used by the service layer before sending an update to Supabase.
56
+ */
57
+ export declare function isValidEchoColor(hex: string): boolean;
58
+ //# sourceMappingURL=echoColors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echoColors.d.ts","sourceRoot":"","sources":["../src/echoColors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,EAAG,SAAkB,CAAC;AAMrD,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,GAAG,EAAI,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAgB9C,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAElD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAI1E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * @echoform/echo-ui — Echo Color palette
4
+ *
5
+ * Canonical Echo Profile accent-color palette for the EchoBrain system.
6
+ *
7
+ * ARCHITECTURE
8
+ * ─────────────
9
+ * This is the package-owned authoritative definition of the 15 approved Echo
10
+ * Colors. It is consumed by all reusable @echoform/echo-ui components and
11
+ * can be imported by any Echoform-connected host app via the package.
12
+ *
13
+ * DEFAULT
14
+ * ───────
15
+ * The default Echo Color is Echo Cyan (#00e5ff). A null value stored in the
16
+ * database always means the user has not set a preference and the client
17
+ * MUST fall back to ECHO_COLOR_DEFAULT.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.ECHO_COLOR_HEX_SET = exports.ECHO_COLOR_PALETTE = exports.ECHO_COLOR_DEFAULT = void 0;
21
+ exports.echoColorLabel = echoColorLabel;
22
+ exports.resolveEchoColor = resolveEchoColor;
23
+ exports.isValidEchoColor = isValidEchoColor;
24
+ // ─────────────────────────────────────────────────────────────────────────────
25
+ // Default
26
+ // ─────────────────────────────────────────────────────────────────────────────
27
+ /** Default Echo Color — used when echo_color is null/unset. */
28
+ exports.ECHO_COLOR_DEFAULT = '#00e5ff';
29
+ // ─────────────────────────────────────────────────────────────────────────────
30
+ // Approved palette — 15 colors
31
+ // ─────────────────────────────────────────────────────────────────────────────
32
+ /**
33
+ * The complete ordered Echo Color palette.
34
+ *
35
+ * These are the only values accepted by rpc_set_echo_color() and the
36
+ * profiles.echo_color CHECK constraint. Do not add colors here without
37
+ * simultaneously updating the migration constraint.
38
+ */
39
+ exports.ECHO_COLOR_PALETTE = [
40
+ { hex: '#00e5ff', label: 'Cyan' }, // Default
41
+ { hex: '#2979ff', label: 'Blue' },
42
+ { hex: '#00ff9f', label: 'Green' },
43
+ { hex: '#a855f7', label: 'Purple' },
44
+ { hex: '#ff0099', label: 'Pink' },
45
+ { hex: '#ff6600', label: 'Orange' },
46
+ { hex: '#ffee00', label: 'Yellow' },
47
+ { hex: '#ff3d71', label: 'Red' },
48
+ { hex: '#00bcd4', label: 'Teal' },
49
+ { hex: '#76ff03', label: 'Lime' },
50
+ { hex: '#e040fb', label: 'Magenta' },
51
+ { hex: '#ff9100', label: 'Amber' },
52
+ { hex: '#40c4ff', label: 'Sky' },
53
+ { hex: '#b9f6ca', label: 'Mint' },
54
+ { hex: '#ffffff', label: 'White' },
55
+ ];
56
+ // ─────────────────────────────────────────────────────────────────────────────
57
+ // Derived helpers
58
+ // ─────────────────────────────────────────────────────────────────────────────
59
+ /**
60
+ * Set of all approved hex strings for fast O(1) membership validation.
61
+ * Used by the client-side service layer before sending updates to Supabase.
62
+ */
63
+ exports.ECHO_COLOR_HEX_SET = new Set(exports.ECHO_COLOR_PALETTE.map(e => e.hex));
64
+ /**
65
+ * Look up the label for a hex value.
66
+ * Returns undefined when the hex is not in the approved palette.
67
+ */
68
+ function echoColorLabel(hex) {
69
+ var _a;
70
+ return (_a = exports.ECHO_COLOR_PALETTE.find(e => e.hex === hex)) === null || _a === void 0 ? void 0 : _a.label;
71
+ }
72
+ /**
73
+ * Resolve a stored echo_color value to a display hex string.
74
+ * Returns the default Cyan when the value is null, undefined, or not in the
75
+ * approved palette (defensive — the DB constraint prevents invalid writes).
76
+ *
77
+ * Always use this instead of reading the raw stored value directly to
78
+ * ensure the default fallback is applied consistently everywhere.
79
+ */
80
+ function resolveEchoColor(stored) {
81
+ if (!stored)
82
+ return exports.ECHO_COLOR_DEFAULT;
83
+ if (exports.ECHO_COLOR_HEX_SET.has(stored))
84
+ return stored;
85
+ return exports.ECHO_COLOR_DEFAULT;
86
+ }
87
+ /**
88
+ * Returns true when a hex string is a valid Echo Color from the approved
89
+ * palette. Used by the service layer before sending an update to Supabase.
90
+ */
91
+ function isValidEchoColor(hex) {
92
+ return exports.ECHO_COLOR_HEX_SET.has(hex);
93
+ }
94
+ //# sourceMappingURL=echoColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echoColors.js","sourceRoot":"","sources":["../src/echoColors.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAiEH,wCAEC;AAUD,4CAIC;AAMD,4CAEC;AAvFD,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,+DAA+D;AAClD,QAAA,kBAAkB,GAAG,SAAkB,CAAC;AAarD,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF;;;;;;GAMG;AACU,QAAA,kBAAkB,GAA8B;IAC3D,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAK,EAAG,UAAU;IACjD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAK;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAI;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAG;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAK;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAG;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAG;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAM;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAK;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAK;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAI;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAM;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAK;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAI;CAC5B,CAAC;AAEX,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;GAGG;AACU,QAAA,kBAAkB,GAAwB,IAAI,GAAG,CAC5D,0BAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACnC,CAAC;AAEF;;;GAGG;AACH,SAAgB,cAAc,CAAC,GAAW;;IACxC,OAAO,MAAA,0BAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,0CAAE,KAAK,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,MAAiC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,0BAAkB,CAAC;IACvC,IAAI,0BAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,OAAO,0BAAkB,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,OAAO,0BAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,8 +3,76 @@
3
3
  * Public package entry point.
4
4
  *
5
5
  * Export every public component and utility from here.
6
- * Consumers import directly: import { EchoUITest } from '@echoform/echo-ui'
6
+ * Consumers import directly: import { EchoEmblem } from '@echoform/echo-ui'
7
7
  */
8
- export { EchoUITest } from './components/EchoUITest';
9
- export type { EchoUITestProps } from './components/EchoUITest';
8
+ export { COLORS, FONTS, SPACING, RADIUS } from './theme';
9
+ export type { EchoTitleRarity } from './titleRarity';
10
+ export { rarityColor, rarityGlowColor, rarityLabel } from './titleRarity';
11
+ export type { EchoColorEntry } from './echoColors';
12
+ export { ECHO_COLOR_DEFAULT, ECHO_COLOR_PALETTE, ECHO_COLOR_HEX_SET, echoColorLabel, resolveEchoColor, isValidEchoColor, } from './echoColors';
13
+ export { EchoEmblem } from './components/EchoEmblem';
14
+ export type { EchoEmblemProps } from './components/EchoEmblem';
15
+ export { EchoProfileCard } from './components/EchoProfileCard';
16
+ export type { EchoProfileCardProps } from './components/EchoProfileCard';
17
+ export { EchoSettingsRow } from './components/EchoSettingsRow';
18
+ export type { EchoSettingsRowProps } from './components/EchoSettingsRow';
19
+ export { EchoSettingsSection } from './components/EchoSettingsSection';
20
+ export type { EchoSettingsSectionProps } from './components/EchoSettingsSection';
21
+ export { EchoMoreScreen } from './components/EchoMoreScreen';
22
+ export type { EchoMoreScreenProps } from './components/EchoMoreScreen';
23
+ export { EchoEmblemPicker } from './components/EchoEmblemPicker';
24
+ export type { EchoEmblemPickerProps, EchoOwnedEmblem } from './components/EchoEmblemPicker';
25
+ export { EchoTitlePicker } from './components/EchoTitlePicker';
26
+ export type { EchoTitlePickerProps, EchoOwnedTitle } from './components/EchoTitlePicker';
27
+ export { EchoColorPicker } from './components/EchoColorPicker';
28
+ export type { EchoColorPickerProps } from './components/EchoColorPicker';
29
+ export { EchoFormField } from './components/EchoFormField';
30
+ export type { EchoFormFieldProps } from './components/EchoFormField';
31
+ export { EchoPasswordField } from './components/EchoPasswordField';
32
+ export type { EchoPasswordFieldProps } from './components/EchoPasswordField';
33
+ export { EchoPrimaryButton } from './components/EchoPrimaryButton';
34
+ export type { EchoPrimaryButtonProps } from './components/EchoPrimaryButton';
35
+ export { EchoLinkButton } from './components/EchoLinkButton';
36
+ export type { EchoLinkButtonProps } from './components/EchoLinkButton';
37
+ export { EchoErrorBanner } from './components/EchoErrorBanner';
38
+ export type { EchoErrorBannerProps } from './components/EchoErrorBanner';
39
+ export { EchoSuccessBanner } from './components/EchoSuccessBanner';
40
+ export type { EchoSuccessBannerProps } from './components/EchoSuccessBanner';
41
+ export { EchoProfileHero } from './components/EchoProfileHero';
42
+ export type { EchoProfileHeroProps } from './components/EchoProfileHero';
43
+ export { EchoProfileSection } from './components/EchoProfileSection';
44
+ export type { EchoProfileSectionProps } from './components/EchoProfileSection';
45
+ export { EchoProfileRow } from './components/EchoProfileRow';
46
+ export type { EchoProfileRowProps } from './components/EchoProfileRow';
47
+ export { EchoProfileDivider } from './components/EchoProfileDivider';
48
+ export { EchoSignOutButton } from './components/EchoSignOutButton';
49
+ export type { EchoSignOutButtonProps } from './components/EchoSignOutButton';
50
+ export { EchoProfileOverview } from './components/EchoProfileOverview';
51
+ export type { EchoProfileOverviewProps } from './components/EchoProfileOverview';
52
+ export { EchoWelcome } from './components/EchoWelcome';
53
+ export type { EchoWelcomeProps } from './components/EchoWelcome';
54
+ export { EchoWhyBecomeAnEchoModal } from './components/EchoWhyBecomeAnEchoModal';
55
+ export type { EchoWhyBecomeAnEchoModalProps } from './components/EchoWhyBecomeAnEchoModal';
56
+ export { EchoformInfoButton } from './components/EchoformInfoButton';
57
+ export type { EchoformInfoButtonProps } from './components/EchoformInfoButton';
58
+ export { EchoformInfoModal } from './components/EchoformInfoModal';
59
+ export type { EchoformInfoModalProps } from './components/EchoformInfoModal';
60
+ export { EchoVerificationCodeInput } from './components/EchoVerificationCodeInput';
61
+ export type { EchoVerificationCodeInputProps, EchoVerificationCodeInputRef } from './components/EchoVerificationCodeInput';
62
+ export { EchoConnectedAppsModal } from './components/EchoConnectedAppsModal';
63
+ export type { EchoConnectedAppsModalProps, EchoConnectedApp } from './components/EchoConnectedAppsModal';
64
+ export { EchoChangeProfileNameModal } from './components/EchoChangeProfileNameModal';
65
+ export type { EchoChangeProfileNameModalProps, EchoNameAvailabilityState } from './components/EchoChangeProfileNameModal';
66
+ export { EchoDeletionStatusCard } from './components/EchoDeletionStatusCard';
67
+ export type { EchoDeletionStatusCardProps } from './components/EchoDeletionStatusCard';
68
+ export { EchoDeletionIntercept } from './components/EchoDeletionIntercept';
69
+ export type { EchoDeletionInterceptProps } from './components/EchoDeletionIntercept';
70
+ export { EchoDeleteProfilePanel } from './components/EchoDeleteProfilePanel';
71
+ export type { EchoDeleteProfilePanelProps } from './components/EchoDeleteProfilePanel';
72
+ export { EchoRewardNotificationBanner } from './components/EchoRewardNotificationBanner';
73
+ export type { EchoRewardNotificationBannerProps, EchoRewardNotificationPayload } from './components/EchoRewardNotificationBanner';
74
+ export { EchoSyncPromptModal } from './components/EchoSyncPromptModal';
75
+ export type { EchoSyncPromptModalProps, EchoSyncPromptPhase, EchoSyncPromptResult, } from './components/EchoSyncPromptModal';
76
+ export { EchoSyncPanel } from './components/EchoSyncPanel';
77
+ export type { EchoSyncPanelProps, EchoSyncStatus, EchoSyncConflictDetail, EchoSyncEntityResult, EchoSyncImageResult, EchoSyncResultOutcome, EchoSyncResult, EchoSyncGuestAdoption, } from './components/EchoSyncPanel';
10
78
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGzD,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG1E,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE5F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,YAAY,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAE3H,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,YAAY,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAE1H,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAEvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAEvF,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,YAAY,EAAE,iCAAiC,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAElI,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}