From 1297c13244bc81d68f1d5d148ca4dc60a9b19649 Mon Sep 17 00:00:00 2001 From: AppCakes Date: Thu, 2 Jul 2026 14:53:59 +0000 Subject: [PATCH] build: 444813b5-5daf-49b2-bf1a-7e4caeab4e17 --- .DS_Store | Bin 0 -> 6148 bytes .yarn/install-state.gz | Bin 0 -> 323923 bytes .yarnrc.yml | 1 + android/.DS_Store | Bin 0 -> 6148 bytes android/.gitignore | 101 + android/app/.gitignore | 2 + android/app/build.gradle | 55 + android/app/proguard-rules.pro | 21 + .../myapp/ExampleInstrumentedTest.java | 26 + android/app/src/main/AndroidManifest.xml | 51 + .../java/io/ionic/starter/MainActivity.java | 5 + .../main/res/drawable-land-hdpi/splash.png | Bin 0 -> 7705 bytes .../main/res/drawable-land-mdpi/splash.png | Bin 0 -> 4040 bytes .../main/res/drawable-land-xhdpi/splash.png | Bin 0 -> 9251 bytes .../main/res/drawable-land-xxhdpi/splash.png | Bin 0 -> 13984 bytes .../main/res/drawable-land-xxxhdpi/splash.png | Bin 0 -> 17683 bytes .../main/res/drawable-port-hdpi/splash.png | Bin 0 -> 7934 bytes .../main/res/drawable-port-mdpi/splash.png | Bin 0 -> 4096 bytes .../main/res/drawable-port-xhdpi/splash.png | Bin 0 -> 9875 bytes .../main/res/drawable-port-xxhdpi/splash.png | Bin 0 -> 13346 bytes .../main/res/drawable-port-xxxhdpi/splash.png | Bin 0 -> 17489 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 + .../res/drawable/ic_launcher_background.xml | 170 + android/app/src/main/res/drawable/splash.png | Bin 0 -> 4040 bytes .../app/src/main/res/layout/activity_main.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2786 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 3450 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4341 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1869 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2110 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2725 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3981 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 5036 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6593 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6644 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 9793 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10455 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9441 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 15529 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15916 bytes .../res/values/ic_launcher_background.xml | 4 + android/app/src/main/res/values/strings.xml | 7 + android/app/src/main/res/values/styles.xml | 22 + android/app/src/main/res/xml/file_paths.xml | 5 + .../getcapacitor/myapp/ExampleUnitTest.java | 18 + android/build.gradle | 29 + android/gradle.properties | 22 + android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43764 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + android/gradlew | 251 ++ android/gradlew.bat | 94 + android/settings.gradle | 5 + android/variables.gradle | 18 + capacitor.config.ts | 18 + codemagic.yaml | 380 ++ configure_xcode.rb | 118 + index.html | 28 + ionic.config.json | 5 + ios/.DS_Store | Bin 0 -> 6148 bytes ios/.gitignore | 13 + ios/App/.DS_Store | Bin 0 -> 6148 bytes ios/App/App.xcodeproj/project.pbxproj | 380 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../App.xcworkspace/contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + ios/App/App/App.entitlements | 6 + ios/App/App/AppDelegate.swift | 66 + .../AppIcon.appiconset/AppIcon-512@2x.png | Bin 0 -> 110522 bytes .../AppIcon.appiconset/Contents.json | 14 + ios/App/App/Assets.xcassets/Contents.json | 6 + .../Splash.imageset/Contents.json | 23 + .../Splash.imageset/splash-2732x2732-1.png | Bin 0 -> 41273 bytes .../Splash.imageset/splash-2732x2732-2.png | Bin 0 -> 41273 bytes .../Splash.imageset/splash-2732x2732.png | Bin 0 -> 41273 bytes .../App/Base.lproj/LaunchScreen.storyboard | 32 + ios/App/App/Base.lproj/Main.storyboard | 19 + ios/App/App/Info.plist | 66 + ios/App/CapApp-SPM/.gitignore | 9 + ios/App/CapApp-SPM/Package.swift | 25 + ios/App/CapApp-SPM/README.md | 5 + .../Sources/CapApp-SPM/CapApp-SPM.swift | 1 + ios/debug.xcconfig | 1 + package.json | 56 + public/manifest.json | 15 + src/.DS_Store | Bin 0 -> 6148 bytes src/App.tsx | 389 ++ src/assets/basket.png | Bin 0 -> 59243 bytes src/assets/dad.jpg | Bin 0 -> 120343 bytes src/assets/mom.jpg | Bin 0 -> 153909 bytes src/assets/pill.png | Bin 0 -> 44530 bytes src/assets/sarah.jpg | Bin 0 -> 103402 bytes src/components/ActivityListItem.tsx | 155 + src/components/AuthFormFields.tsx | 116 + src/components/AvatarPicker.tsx | 121 + src/components/CareAlertPill.tsx | 88 + src/components/DashboardSkeleton.tsx | 246 ++ src/components/ListSearchRow.tsx | 86 + src/components/OrderSummaryCard.tsx | 210 + src/components/OtpInputSlots.tsx | 82 + src/components/ProtectedRoute.tsx | 66 + src/components/QuickSupportActionCard.tsx | 94 + src/components/RecipientCareCard.tsx | 239 ++ src/components/RecipientListCard.tsx | 117 + src/components/SettingsRow.tsx | 115 + src/components/SocialAuthButton.tsx | 55 + src/contexts/AuthContext.tsx | 321 ++ src/database.types.ts | 676 +++ src/main.tsx | 113 + src/pages/ActivityPage.tsx | 703 +++ src/pages/AuthPage.tsx | 355 ++ src/pages/EditProfilePage.tsx | 344 ++ src/pages/ForgotPasswordPage.tsx | 207 + src/pages/Home.tsx | 30 + src/pages/HomePage.tsx | 1195 ++++++ src/pages/NotificationsPage.tsx | 480 +++ src/pages/OrderDetailPage.tsx | 1232 ++++++ src/pages/OrdersPage.tsx | 253 ++ src/pages/ProfilePage.tsx | 451 ++ src/pages/RecipientDetailPage.tsx | 1146 +++++ src/pages/RecipientFormPage.tsx | 728 ++++ src/pages/RecipientsPage.tsx | 306 ++ src/pages/SetupProfilePage.tsx | 366 ++ src/pages/SupportFlowPage.tsx | 1843 ++++++++ src/pages/VerifyEmailPage.tsx | 297 ++ src/pages/VerifyResetPage.tsx | 317 ++ src/pages/VoucherDetailPage.tsx | 295 ++ src/styles/activity.css | 507 +++ src/styles/auth.css | 599 +++ src/styles/home.css | 1181 ++++++ src/styles/profile.css | 349 ++ src/styles/recipients.css | 1067 +++++ src/styles/support.css | 2301 ++++++++++ src/supabase.ts | 7 + src/test-globals.d.ts | 51 + src/theme/variables.css | 277 ++ src/utils/formatMoney.ts | 11 + src/utils/localCache.ts | 48 + src/utils/statusBar.ts | 32 + .../functions/mark-notification-read/index.ts | 77 + supabase/functions/send-notification/index.ts | 164 + tsconfig.json | 22 + tsconfig.node.json | 9 + vite.config.ts | 41 + yarn.lock | 3772 +++++++++++++++++ 146 files changed, 26631 insertions(+) create mode 100644 .DS_Store create mode 100644 .yarn/install-state.gz create mode 100644 .yarnrc.yml create mode 100644 android/.DS_Store create mode 100644 android/.gitignore create mode 100644 android/app/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/proguard-rules.pro create mode 100644 android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/java/io/ionic/starter/MainActivity.java create mode 100644 android/app/src/main/res/drawable-land-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-land-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-port-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 android/app/src/main/res/drawable/splash.png create mode 100644 android/app/src/main/res/layout/activity_main.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 android/app/src/main/res/values/strings.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/main/res/xml/file_paths.xml create mode 100644 android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.jar create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100755 android/gradlew create mode 100644 android/gradlew.bat create mode 100644 android/settings.gradle create mode 100644 android/variables.gradle create mode 100644 capacitor.config.ts create mode 100644 codemagic.yaml create mode 100644 configure_xcode.rb create mode 100644 index.html create mode 100644 ionic.config.json create mode 100644 ios/.DS_Store create mode 100644 ios/.gitignore create mode 100644 ios/App/.DS_Store create mode 100644 ios/App/App.xcodeproj/project.pbxproj create mode 100644 ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/App/App.xcworkspace/contents.xcworkspacedata create mode 100644 ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/App/App/App.entitlements create mode 100644 ios/App/App/AppDelegate.swift create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png create mode 100644 ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/App/App/Assets.xcassets/Contents.json create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/Contents.json create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png create mode 100644 ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png create mode 100644 ios/App/App/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/App/App/Base.lproj/Main.storyboard create mode 100644 ios/App/App/Info.plist create mode 100644 ios/App/CapApp-SPM/.gitignore create mode 100644 ios/App/CapApp-SPM/Package.swift create mode 100644 ios/App/CapApp-SPM/README.md create mode 100644 ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift create mode 100644 ios/debug.xcconfig create mode 100644 package.json create mode 100644 public/manifest.json create mode 100644 src/.DS_Store create mode 100644 src/App.tsx create mode 100644 src/assets/basket.png create mode 100644 src/assets/dad.jpg create mode 100644 src/assets/mom.jpg create mode 100644 src/assets/pill.png create mode 100644 src/assets/sarah.jpg create mode 100644 src/components/ActivityListItem.tsx create mode 100644 src/components/AuthFormFields.tsx create mode 100644 src/components/AvatarPicker.tsx create mode 100644 src/components/CareAlertPill.tsx create mode 100644 src/components/DashboardSkeleton.tsx create mode 100644 src/components/ListSearchRow.tsx create mode 100644 src/components/OrderSummaryCard.tsx create mode 100644 src/components/OtpInputSlots.tsx create mode 100644 src/components/ProtectedRoute.tsx create mode 100644 src/components/QuickSupportActionCard.tsx create mode 100644 src/components/RecipientCareCard.tsx create mode 100644 src/components/RecipientListCard.tsx create mode 100644 src/components/SettingsRow.tsx create mode 100644 src/components/SocialAuthButton.tsx create mode 100644 src/contexts/AuthContext.tsx create mode 100644 src/database.types.ts create mode 100644 src/main.tsx create mode 100644 src/pages/ActivityPage.tsx create mode 100644 src/pages/AuthPage.tsx create mode 100644 src/pages/EditProfilePage.tsx create mode 100644 src/pages/ForgotPasswordPage.tsx create mode 100644 src/pages/Home.tsx create mode 100644 src/pages/HomePage.tsx create mode 100644 src/pages/NotificationsPage.tsx create mode 100644 src/pages/OrderDetailPage.tsx create mode 100644 src/pages/OrdersPage.tsx create mode 100644 src/pages/ProfilePage.tsx create mode 100644 src/pages/RecipientDetailPage.tsx create mode 100644 src/pages/RecipientFormPage.tsx create mode 100644 src/pages/RecipientsPage.tsx create mode 100644 src/pages/SetupProfilePage.tsx create mode 100644 src/pages/SupportFlowPage.tsx create mode 100644 src/pages/VerifyEmailPage.tsx create mode 100644 src/pages/VerifyResetPage.tsx create mode 100644 src/pages/VoucherDetailPage.tsx create mode 100644 src/styles/activity.css create mode 100644 src/styles/auth.css create mode 100644 src/styles/home.css create mode 100644 src/styles/profile.css create mode 100644 src/styles/recipients.css create mode 100644 src/styles/support.css create mode 100644 src/supabase.ts create mode 100644 src/test-globals.d.ts create mode 100644 src/theme/variables.css create mode 100644 src/utils/formatMoney.ts create mode 100644 src/utils/localCache.ts create mode 100644 src/utils/statusBar.ts create mode 100644 supabase/functions/mark-notification-read/index.ts create mode 100644 supabase/functions/send-notification/index.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts create mode 100644 yarn.lock diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9fe4e25bca92fd658db823ac31413601edcf21ec GIT binary patch literal 6148 zcmeHKF;5#Y6n-X`G^ME&wjwdy)DaOOb-qSnVL((FK}tx1;G`rMHBF^#H+1M!SXmJ> zWB)>bLI(tbsz_{1Of3DL?OyCVuC0VrRh3_4e?GrwzwbWZons;r^+~TrR3)M^3ZplV z>H%XvmyFHno+Y4=a}4`?wPrUOj54vV!ztht`1cgxcehB(G^HJSOZNL)`1IZO4x&b* z(~mmnEg!t|P_d8qvpt1`wj zoMN#41`M>v%>ChM|L1d?cxUUC_1gL5d&Bqs7{i{;R(__?)lLDYfKwn*fWHqu3S*!# zRwzFmsN@j<=%HI0+Es1W!F8+F{0-di&_$9t`h t(new9xLBbaf=X}4vcX&N3lwSa`P={o8e@g%fw?~dQU+H!1^%i6KL9Er_AdYc literal 0 HcmV?d00001 diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..e7c27173aae0c94486e54e4eb0b862ab5bd8b6fc GIT binary patch literal 323923 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¥Np`L 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 documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("com.getcapacitor.app", appContext.getPackageName()); + } +} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..ace79b0 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/java/io/ionic/starter/MainActivity.java b/android/app/src/main/java/io/ionic/starter/MainActivity.java new file mode 100644 index 0000000..73e3a98 --- /dev/null +++ b/android/app/src/main/java/io/ionic/starter/MainActivity.java @@ -0,0 +1,5 @@ +package io.ionic.starter; + +import com.getcapacitor.BridgeActivity; + +public class MainActivity extends BridgeActivity {} diff --git a/android/app/src/main/res/drawable-land-hdpi/splash.png b/android/app/src/main/res/drawable-land-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..e31573b4fc93e60d171f4046c0220e1463075d9e GIT binary patch literal 7705 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 wKmFJ0_JHhk1&0B>;%YXATM literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-land-mdpi/splash.png b/android/app/src/main/res/drawable-land-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a64923ea1a0565d25fa139c176d6bf42184e48 GIT binary patch literal 4040 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 XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-land-xhdpi/splash.png b/android/app/src/main/res/drawable-land-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..807725501bdd92e94e51e7b2b0006f69e0083a0b GIT binary patch literal 9251 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..14c6c8fe39fcd51a0414866ad28cbe8ff3acb060 GIT binary patch literal 13984 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®q@N z14_H8ofW)l{|J8q+a)eH)I0r)>WXdzV%7J>PA~6_J)KLT90iYa^K=Wz7D!OybzqSru=f4?|KFl;Y)gP_H6V4x`~kZ6fE(xM1&;?72-TZNk+0 zr+Crr5yl%Iy@vfmt3eYFl!jIvPGFz^8Ek+2`48O1_pCX3xNWh-zBa{rIcc%+=|XVj zANYTg&s}TKb#OztQrCW(Xk?V^i{`q~%HtcveTxq(_HKeC9GzrtguMT4Nvs@KakPTA z9>*8bBZmLz`lK5=l)=b|=dT3a5ag^a1^znZyx5QKfUb1b9yacArRp%3@QWo(hrsCU z-K!-=jDmv!zb7XT>)r|-Z0Ry}lk2;dk-ECqMwr_nKN#x*X6~B5hVIN>6$1HwBz3Of z=Pk){AL5*=d90f17_qZEJLm;Q%WMdX=*N&!ki@E&cy7?>{1ssAH(tACtp*r@d^til z)x(1#6(kPD+joSF&J3sxJU@{-sWCS+pZq{Gsx=?z4wP;>?)1yHv0?X?VP{}cX4~aH zxeBPKw_rgW8rvewS1W2#^y+c>-183iMbJCqc38RN_o~__9-n|jcd&oA`m7*&Fqqpc z;Tev*0LS-ZK47Sq1unfvP1S43uA12P?PJmI8BeTYPr~R*tYUm^0;U%Hmu?bSZHEK6 zPjsW=E67Kq-&trmf;)UkmRABH2U)V)-eRT$j(%G12lLMsThSsU10iP#{)ZnvjzN$d z*K%P3`}oqyvpWP~venr>3viH8^`)Ma*=B31hw*Q+tqE>i2y7w!(o^lI^Yss^=tHW( z;cnCT(%B1gLz+TRGW9roFjI1EQTu-u`(f#RmZ8;FSN(bsC1J;+(i_R6mrW=yYx$cy z#%QKVrEx~kVMg~yo?^N28Wnk6x%L;J8i|*|ANEiNjq(Vhzuzl3ikpA*G!Z}kLAzAI z9qnySo%D|AuJj12%h;Otqjs(>LPj?rNdeU8so>P(C>XMzlho94ZD#w=cCOOU;=3&^ zsqAG!i{~lY271D|m>ztPV`)X@FO_;`wPjppYNQpM+ncvtz1lZjN>!Q^*I}T%uP78Z7tbV2$q3W_)14=kLFyJ z1GqL6T>ClgeZorL!}xP4f%OB_EsmJ`uw7dGWNV9OLlhb|UMpVhc{4@Bhh`tO!ZqzD zhusd<=K^ah!L@gQ?6dOpI-ge^e>S5W9eII57Zu16eU?GRbgKTeVk9yS{iK|O(zLR> zheb?;jwGCHS80NCn=jKxgJ>}qu4l%5NPihjzazGv#J?Jcyl;<#IW&x4mm>nrW8>}C z3U@aeD~)*F(0o^2{GnKVm$Jr#aZE ztl~TOkM^SdzJapQ((!-i8b!RkVQBKkL`2ZCBuy!qI1L{3Er526plVols~68U-^9Px zR(3{j;Z9RHX^muc0dUywJ|`yyZFf=k&-Gb#m4u73Lm5Ks%BfHj%2|gjn#i> zLC5pO$2Em9H;qoKQmMtl<@wgtPF1%2HariD5O~u>8=^*J&au~JH%Ih@&2Uging3U_ z0bzfKucW$ZHSx}!#buB?+-J)%RQbbXM-!BJTS&#dU_@lxU6>te2O+9 z@F{F{Nb!;{Cd`Gx+$G?11aB~S#wIH%D=*=7f7H@D@%B1)&bF$@t3JDq4l*%(wJTlh zo`?uMq{YilKUewPNaC)GuOr<8j9&ofqRU__BRUX^x8Cj3a;a$rXzgXqW>LR#CUn%~m)t zYC&ol(gAkbc^fd`xWU&bk5vT6KbFmsR=O78Bn%t7 znbw&=c+|T&#r+bls5rU6D#HMvqA<|;)BV%jOMonkm^p$7Vcel-Wwn$=uAJv&(8W>% z9))Fxpl*(%E#wFm_m!U~2HqgZs^2vaGeY(UfYKrSHV}w^D0N6!se5Ewy)Yy-!(2

aKj2hWG7>znxs|SE zN4rHtiSPqLskWp(?(_YYwgq+1@8v+~8As|(bC>$D(atG3ZE8-ZM3SVcg|vHQz$I=!(A`k`5= zOqR>&%G)$)k*QLz7MTB9wleWpv&N9Sta64wy}3Ytd?x!Ja8z>(z~(3UNFu^eFmn#6 zw!!gUxOuZi$PQIs*ixfZR3iLyADJ z5&s%tPfk>V!x|A-;oq%1!yk9H$UBP0ToA*EDtz(^!_AnF1bBQ7joj|? z5b)gSI8c8O$PYFE!vXJ<4gebg*9G9P2wcB{#kv0FItc5T@PDNo)}Rh4Us}L{e}xzW zhwt`)j`M)mP=G6H0;^&q=I0{jU%bIRkF#uLF;{vVC&H|_uc literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..244ca2506dbe0fd8f6a05520ac7d1a629ea81438 GIT binary patch literal 17683 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..bfabe6871a17a5e95b78fb30d49b7d2b4d2fe4c0 GIT binary patch literal 13346 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

VwO4Hu8X}%XHUAz_J@50rzbkIsat>4oWtQt< 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..6929071268eb03ee0f088142b6523566b78550e2 GIT binary patch literal 17489 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 KR&><$`~L^lv%S~= literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_launcher_background.xml b/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..d5fccc5 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/splash.png b/android/app/src/main/res/drawable/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a64923ea1a0565d25fa139c176d6bf42184e48 GIT binary patch literal 4040 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 XyOn+%7f`N3b2T^T3uj5+eShz7v)7qy literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/layout/activity_main.xml b/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b5ad138 --- /dev/null +++ b/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c023e50595074292c7361183a64de08cf9686c9c GIT binary patch literal 2786 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2127973b2d318df7085734d236d0ec649a2b0292 GIT binary patch literal 3450 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d1e077104cd61e6a4c3707e87363b523077245a GIT binary patch literal 3981 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 nm0GElTB(&OnKI&V600000NkvXXu0mjff+~0a literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f15880bee46332dfc6622583215194f948b0f GIT binary patch literal 5036 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6cdf97c1196d48e9833487ff6de7c4cfc4e1232d GIT binary patch literal 6644 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2960cbb6104b915c84760f889deed9bff2b3e17a GIT binary patch literal 9793 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 y3vD~Wi9;mL_v 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..a40d73e9c68ea638c28c7b13e4bcd1e179a3a102 GIT binary patch literal 15916 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 + + #FFFFFF + \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..1b49c6c --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ + + + kumusha + kumusha + io.ionic.starter + io.ionic.starter + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..be874e5 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/xml/file_paths.xml b/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..bd0c4d8 --- /dev/null +++ b/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java new file mode 100644 index 0000000..0297327 --- /dev/null +++ b/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java @@ -0,0 +1,18 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..f8f0e43 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.13.0' + classpath 'com.google.gms:google-services:4.4.4' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +apply from: "variables.gradle" + +allprojects { + repositories { + google() + mavenCentral() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..2e87c52 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,22 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b33c55baabb587c669f562ae36f953de2481846 GIT binary patch literal 43764 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..5eed7ee --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..3b4431d --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,5 @@ +include ':app' +include ':capacitor-cordova-android-plugins' +project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') + +apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/android/variables.gradle b/android/variables.gradle new file mode 100644 index 0000000..ff89f79 --- /dev/null +++ b/android/variables.gradle @@ -0,0 +1,18 @@ +ext { + minSdkVersion = 24 + compileSdkVersion = 36 + targetSdkVersion = 36 + androidxActivityVersion = '1.11.0' + androidxAppCompatVersion = '1.7.1' + androidxCoordinatorLayoutVersion = '1.3.0' + androidxCoreVersion = '1.17.0' + androidxFragmentVersion = '1.8.9' + coreSplashScreenVersion = '1.2.0' + androidxWebkitVersion = '1.14.0' + junitVersion = '4.13.2' + androidxJunitVersion = '1.3.0' + androidxEspressoCoreVersion = '3.7.0' + cordovaAndroidVersion = '14.0.1' + rgcfaIncludeGoogle = true + androidxCredentialsVersion = '1.3.0' +} \ No newline at end of file diff --git a/capacitor.config.ts b/capacitor.config.ts new file mode 100644 index 0000000..a425889 --- /dev/null +++ b/capacitor.config.ts @@ -0,0 +1,18 @@ +import type { CapacitorConfig } from '@capacitor/cli'; + +const config: CapacitorConfig = { + appId: 'com.kumusha.app', + appName: 'kumusha', + webDir: 'dist', + plugins: { + FirebaseAuthentication: { + skipNativeAuth: false, + providers: [], + }, + PushNotifications: { + presentationOptions: ['badge', 'sound', 'banner'], + }, + }, +}; + +export default config; diff --git a/codemagic.yaml b/codemagic.yaml new file mode 100644 index 0000000..96bfc2b --- /dev/null +++ b/codemagic.yaml @@ -0,0 +1,380 @@ +workflows: + android-debug: + name: Android – Debug APK + max_build_duration: 45 + instance_type: mac_mini_m2 + environment: + node: 22 + java: 21 + cache: + cache_paths: + - $HOME/.gradle/caches + - $HOME/.gradle/wrapper + scripts: + # Template ships with optional native plugins (maps, push, firebase auth) that most apps + # won't use. Keeping unused plugins in package.json adds SPM/Gradle deps and bloats the + # build. Strip any that have no import in src/ so only actually-used plugins are compiled. + - name: Strip unused scaffold packages + script: | + for pkg in "@capacitor/google-maps" "@capacitor/push-notifications" "@capacitor-firebase/authentication"; do + if ! grep -rq "$pkg" src/; then + node -e "const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8'));delete p.dependencies['${pkg}'];fs.writeFileSync('package.json',JSON.stringify(p,null,2));" + echo "Stripped $pkg (not used in src/)" + else + echo "Keeping $pkg (used in src/)" + fi + done + # Delete package-lock.json (generated if user ever ran npm locally) so it doesn't + # conflict with yarn.lock. --legacy-peer-deps silences peer dep warnings from older + # Ionic/React packages that haven't updated their peerDependencies for React 18/19. + - name: Install dependencies + script: rm -f package-lock.json && npm install --legacy-peer-deps + - name: Build web assets + script: npm run build + # Firebase config files are injected as base64 env vars by the Appcakes backend at + # build time. Decode them here so cap sync and Gradle can pick them up. Optional — + # builds without Firebase still succeed; native Firebase SDK just won't initialise. + - name: Write Firebase config + script: | + if [ -n "$GOOGLE_SERVICES_JSON" ]; then + echo "$GOOGLE_SERVICES_JSON" | base64 --decode > android/app/google-services.json + echo "Wrote google-services.json ($(wc -c < android/app/google-services.json) bytes)" + else + echo "GOOGLE_SERVICES_JSON is empty — skipping" + fi + if [ -n "$GOOGLE_SERVICE_INFO_PLIST" ]; then + echo "$GOOGLE_SERVICE_INFO_PLIST" | base64 --decode > ios/App/App/GoogleService-Info.plist + echo "Wrote GoogleService-Info.plist ($(wc -c < ios/App/App/GoogleService-Info.plist) bytes)" + fi + # cap sync copies the built web assets (dist/) into android/app/src/main/assets/public/ + # and updates Capacitor plugin registrations in MainActivity. Must run after npm build. + - name: Capacitor sync + script: npx cap sync android + - name: Set up debug keystore + script: | + if [ -n "$CM_DEBUG_KEYSTORE" ]; then + echo "$CM_DEBUG_KEYSTORE" | base64 --decode > /tmp/debug-keystore.p12 + fi + - name: Build debug APK + script: | + cd android + if [ -n "$CM_DEBUG_KEYSTORE" ]; then + ./gradlew assembleDebug \ + -Pandroid.injected.signing.store.file=/tmp/debug-keystore.p12 \ + -Pandroid.injected.signing.store.password=$CM_DEBUG_KEYSTORE_PASSWORD \ + -Pandroid.injected.signing.key.alias=debug \ + -Pandroid.injected.signing.key.password=$CM_DEBUG_KEYSTORE_PASSWORD \ + --no-daemon + else + ./gradlew assembleDebug --no-daemon + fi + artifacts: + - android/app/build/outputs/apk/debug/app-debug.apk + + android-release-apk: + name: Android – Release APK + max_build_duration: 45 + instance_type: mac_mini_m2 + environment: + node: 22 + java: 21 + cache: + cache_paths: + - $HOME/.gradle/caches + - $HOME/.gradle/wrapper + scripts: + - name: Strip unused scaffold packages + script: | + for pkg in "@capacitor/google-maps" "@capacitor/push-notifications" "@capacitor-firebase/authentication"; do + if ! grep -rq "$pkg" src/; then + node -e "const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8'));delete p.dependencies['${pkg}'];fs.writeFileSync('package.json',JSON.stringify(p,null,2));" + echo "Stripped $pkg (not used in src/)" + else + echo "Keeping $pkg (used in src/)" + fi + done + - name: Install dependencies + script: rm -f package-lock.json && npm install --legacy-peer-deps + - name: Build web assets + script: npm run build + - name: Write Firebase config + script: | + if [ -n "$GOOGLE_SERVICES_JSON" ]; then + echo "$GOOGLE_SERVICES_JSON" | base64 --decode > android/app/google-services.json + fi + - name: Capacitor sync + script: npx cap sync android + - name: Set up keystore + script: echo "$CM_KEYSTORE" | base64 --decode > /tmp/keystore.jks + - name: Build Release APK + script: | + cd android + ./gradlew assembleRelease \ + -Pandroid.injected.signing.store.file=/tmp/keystore.jks \ + -Pandroid.injected.signing.store.password=$CM_KEYSTORE_PASSWORD \ + -Pandroid.injected.signing.key.alias=$CM_KEY_ALIAS \ + -Pandroid.injected.signing.key.password=$CM_KEY_PASSWORD \ + --no-daemon + artifacts: + - android/app/build/outputs/apk/release/app-release.apk + + android-release-aab: + name: Android – Release AAB + max_build_duration: 45 + instance_type: mac_mini_m2 + environment: + node: 22 + java: 21 + cache: + cache_paths: + - $HOME/.gradle/caches + - $HOME/.gradle/wrapper + scripts: + - name: Strip unused scaffold packages + script: | + for pkg in "@capacitor/google-maps" "@capacitor/push-notifications" "@capacitor-firebase/authentication"; do + if ! grep -rq "$pkg" src/; then + node -e "const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8'));delete p.dependencies['${pkg}'];fs.writeFileSync('package.json',JSON.stringify(p,null,2));" + echo "Stripped $pkg (not used in src/)" + else + echo "Keeping $pkg (used in src/)" + fi + done + - name: Install dependencies + script: rm -f package-lock.json && npm install --legacy-peer-deps + - name: Build web assets + script: npm run build + - name: Write Firebase config + script: | + if [ -n "$GOOGLE_SERVICES_JSON" ]; then + echo "$GOOGLE_SERVICES_JSON" | base64 --decode > android/app/google-services.json + fi + - name: Capacitor sync + script: npx cap sync android + - name: Set up keystore + script: echo "$CM_KEYSTORE" | base64 --decode > /tmp/keystore.jks + - name: Build Release AAB + script: | + cd android + ./gradlew bundleRelease \ + -Pandroid.injected.signing.store.file=/tmp/keystore.jks \ + -Pandroid.injected.signing.store.password=$CM_KEYSTORE_PASSWORD \ + -Pandroid.injected.signing.key.alias=$CM_KEY_ALIAS \ + -Pandroid.injected.signing.key.password=$CM_KEY_PASSWORD \ + --no-daemon + artifacts: + - android/app/build/outputs/bundle/release/app-release.aab + + android-release: + name: Android – Publish to Google Play + max_build_duration: 60 + instance_type: mac_mini_m2 + environment: + node: 22 + java: 21 + cache: + cache_paths: + - $HOME/.gradle/caches + - $HOME/.gradle/wrapper + scripts: + - name: Strip unused scaffold packages + script: | + for pkg in "@capacitor/google-maps" "@capacitor/push-notifications" "@capacitor-firebase/authentication"; do + if ! grep -rq "$pkg" src/; then + node -e "const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8'));delete p.dependencies['${pkg}'];fs.writeFileSync('package.json',JSON.stringify(p,null,2));" + echo "Stripped $pkg (not used in src/)" + else + echo "Keeping $pkg (used in src/)" + fi + done + - name: Install dependencies + script: rm -f package-lock.json && npm install --legacy-peer-deps + - name: Build web assets + script: npm run build + - name: Write Firebase config + script: | + if [ -n "$GOOGLE_SERVICES_JSON" ]; then + echo "$GOOGLE_SERVICES_JSON" | base64 --decode > android/app/google-services.json + fi + - name: Capacitor sync + script: npx cap sync android + - name: Set up keystore + script: echo "$CM_KEYSTORE" | base64 --decode > /tmp/keystore.jks + - name: Build Release AAB + script: | + cd android + ./gradlew bundleRelease \ + -Pandroid.injected.signing.store.file=/tmp/keystore.jks \ + -Pandroid.injected.signing.store.password=$CM_KEYSTORE_PASSWORD \ + -Pandroid.injected.signing.key.alias=$CM_KEY_ALIAS \ + -Pandroid.injected.signing.key.password=$CM_KEY_PASSWORD \ + --no-daemon + publishing: + google_play: + credentials: $GOOGLE_PLAY_SERVICE_ACCOUNT_CREDENTIALS + track: $GOOGLE_PLAY_TRACK + submit_as_draft: false + artifacts: + - android/app/build/outputs/bundle/release/app-release.aab + + ios-debug: + name: iOS – Debug IPA + max_build_duration: 60 + instance_type: mac_mini_m2 + environment: + node: 22 + xcode: latest + scripts: + - name: Strip unused scaffold packages + script: | + for pkg in "@capacitor/google-maps" "@capacitor/push-notifications" "@capacitor-firebase/authentication"; do + if ! grep -rq "$pkg" src/; then + node -e "const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8'));delete p.dependencies['${pkg}'];fs.writeFileSync('package.json',JSON.stringify(p,null,2));" + echo "Stripped $pkg (not used in src/)" + else + echo "Keeping $pkg (used in src/)" + fi + done + - name: Install dependencies + script: rm -f package-lock.json && npm install --legacy-peer-deps + - name: Build web assets + script: npm run build + # First sync: regenerates CapApp-SPM/Package.swift with the correct plugin list. + # Note: this project uses Capacitor SPM (no CocoaPods/Podfile), so cap sync replaces + # pod install — it regenerates CapApp-SPM/Package.swift and copies web assets. + - name: Capacitor sync + script: npx cap sync ios + # Decode Firebase plist to disk so it is present during the second sync. + - name: Write Firebase config + script: | + if [ -n "$GOOGLE_SERVICE_INFO_PLIST" ]; then + echo "$GOOGLE_SERVICE_INFO_PLIST" | base64 --decode > ios/App/App/GoogleService-Info.plist + fi + # Second sync ensures CapApp-SPM/Package.swift is consistent after the plist write. + - name: Capacitor sync + script: npx cap sync ios + # Run configure_xcode.rb after both syncs so its xcodeproj changes (plist file + # reference + SPM product linking) are not overwritten by a subsequent cap sync. + # configure_xcode.rb is stamped fresh from template on every build push. + - name: Configure Xcode project + script: ruby configure_xcode.rb + - name: Set up signing + script: | + keychain initialize + if [ -n "$APP_STORE_CONNECT_PRIVATE_KEY" ]; then + app-store-connect fetch-signing-files \ + $(xcode-project detect-bundle-id) \ + --type IOS_APP_DEVELOPMENT \ + --certificate-key=@env:APP_STORE_CONNECT_PRIVATE_KEY \ + --issuer-id=$APP_STORE_CONNECT_ISSUER_ID \ + --key-id=$APP_STORE_CONNECT_KEY_IDENTIFIER \ + --create + xcode-project use-profiles + elif [ -n "$CM_CERTIFICATE" ]; then + echo "$CM_CERTIFICATE" | base64 --decode > /tmp/cert.p12 + keychain add-certificates \ + --certificate /tmp/cert.p12 \ + --certificate-password "$CM_CERTIFICATE_PASSWORD" + mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles" + echo "$CM_PROVISIONING_PROFILE" | base64 --decode > "$HOME/Library/MobileDevice/Provisioning Profiles/profile.mobileprovision" + xcode-project use-profiles + else + echo "No signing credentials configured — build will fail at signing" + exit 1 + fi + # --workspace: Capacitor SPM projects require workspace context for Xcode to resolve + # the CapApp-SPM local package. Using --project causes xcodebuild to fail on + # Xcode 26+ because SPM resolution requires workspace scope. App.xcworkspace is a + # static file committed to the template (not generated by cap sync) that wraps + # App.xcodeproj for this purpose. + # --no-show-build-settings: xcode-project runs xcodebuild -showBuildSettings as a + # pre-build diagnostic. Xcode 26 fails this step for SPM projects even with + # --workspace, so we skip it. The actual archive step still surfaces real errors. + # --disable-xcpretty: xcpretty reformats and filters xcodebuild output, swallowing + # the actual error lines when a build fails. Raw output makes failures debuggable. + - name: Build IPA + script: | + xcode-project build-ipa \ + --workspace ios/App/App.xcworkspace \ + --scheme App \ + --no-show-build-settings \ + --disable-xcpretty + artifacts: + - build/ios/ipa/*.ipa + + ios-release: + name: iOS – Release IPA + max_build_duration: 90 + instance_type: mac_mini_m2 + environment: + node: 22 + xcode: latest + scripts: + - name: Strip unused scaffold packages + script: | + for pkg in "@capacitor/google-maps" "@capacitor/push-notifications" "@capacitor-firebase/authentication"; do + if ! grep -rq "$pkg" src/; then + node -e "const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8'));delete p.dependencies['${pkg}'];fs.writeFileSync('package.json',JSON.stringify(p,null,2));" + echo "Stripped $pkg (not used in src/)" + else + echo "Keeping $pkg (used in src/)" + fi + done + - name: Install dependencies + script: rm -f package-lock.json && npm install --legacy-peer-deps + - name: Build web assets + script: npm run build + - name: Capacitor sync + script: npx cap sync ios + - name: Configure Xcode project + script: | + if [ -n "$GOOGLE_SERVICE_INFO_PLIST" ]; then + echo "$GOOGLE_SERVICE_INFO_PLIST" | base64 --decode > ios/App/App/GoogleService-Info.plist + fi + - name: Capacitor sync + script: npx cap sync ios + - name: Configure Xcode project + script: ruby configure_xcode.rb + - name: Set up signing + script: | + keychain initialize + if [ -n "$APP_STORE_CONNECT_PRIVATE_KEY" ]; then + app-store-connect fetch-signing-files \ + $(xcode-project detect-bundle-id) \ + --type IOS_APP_STORE \ + --certificate-key=@env:APP_STORE_CONNECT_PRIVATE_KEY \ + --issuer-id=$APP_STORE_CONNECT_ISSUER_ID \ + --key-id=$APP_STORE_CONNECT_KEY_IDENTIFIER \ + --create + xcode-project use-profiles + else + echo "$CM_CERTIFICATE" | base64 --decode > /tmp/cert.p12 + keychain add-certificates \ + --certificate /tmp/cert.p12 \ + --certificate-password "$CM_CERTIFICATE_PASSWORD" + mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles" + echo "$CM_PROVISIONING_PROFILE" | base64 --decode > "$HOME/Library/MobileDevice/Provisioning Profiles/profile.mobileprovision" + xcode-project use-profiles + fi + # See ios-debug Build IPA comments for --workspace, --no-show-build-settings, + # and --disable-xcpretty rationale — same reasons apply here. + - name: Build IPA + script: | + xcode-project build-ipa \ + --workspace ios/App/App.xcworkspace \ + --scheme App \ + --config Release \ + --no-show-build-settings \ + --disable-xcpretty + - name: Publish + script: | + if [ "$SUBMIT_TO_TESTFLIGHT" = "true" ] || [ "$SUBMIT_TO_APP_STORE" = "true" ]; then + app-store-connect publish \ + --certificate-key=@env:APP_STORE_CONNECT_PRIVATE_KEY \ + --issuer-id=$APP_STORE_CONNECT_ISSUER_ID \ + --key-id=$APP_STORE_CONNECT_KEY_IDENTIFIER \ + --submit-to-testflight=$SUBMIT_TO_TESTFLIGHT \ + --submit-to-app-store=$SUBMIT_TO_APP_STORE + fi + artifacts: + - build/ios/ipa/*.ipa diff --git a/configure_xcode.rb b/configure_xcode.rb new file mode 100644 index 0000000..85e1e40 --- /dev/null +++ b/configure_xcode.rb @@ -0,0 +1,118 @@ +#!/usr/bin/env ruby +# configure_xcode.rb — stamped fresh from template on every build (see gitea.service.ts) +# +# 1. Adds GoogleService-Info.plist to the Xcode target if present (xcodeproj gem) +# 2. Scans Swift sources for Firebase imports and injects matching products into +# CapApp-SPM/Package.swift — the correct approach for Capacitor SPM projects +# where all native linking goes through CapApp-SPM, not App.xcodeproj directly. + +require 'xcodeproj' + +PROJECT_PATH = 'ios/App/App.xcodeproj' +TARGET_NAME = 'App' +PLIST_SRC = 'ios/App/App/GoogleService-Info.plist' +CAP_APP_SPM = 'ios/App/CapApp-SPM/Package.swift' + +# ── 1. GoogleService-Info.plist ─────────────────────────────────────────────── +if File.exist?(PLIST_SRC) + project = Xcodeproj::Project.open(PROJECT_PATH) + target = project.targets.find { |t| t.name == TARGET_NAME } + if target + app_group = project.main_group['App'] + unless app_group&.files&.find { |f| f.path == 'GoogleService-Info.plist' } + file_ref = app_group.new_reference('GoogleService-Info.plist') + target.resources_build_phase.add_file_reference(file_ref) + project.save + puts "Added GoogleService-Info.plist to target" + end + end +end + +# ── 2. Scan Swift sources for Firebase imports ──────────────────────────────── +swift_files = Dir['ios/App/App/**/*.swift'] +firebase_imports = swift_files + .flat_map { |f| File.readlines(f) rescue [] } + .grep(/^\s*import\s+Firebase\w+/) + .map { |l| l.strip.split(/\s+/).last } + .uniq + .sort + +if firebase_imports.empty? + puts "No Firebase imports found — skipping CapApp-SPM update" + exit 0 +end + +puts "Firebase imports detected: #{firebase_imports.join(', ')}" + +unless File.exist?(CAP_APP_SPM) + warn "WARNING: #{CAP_APP_SPM} not found — was cap sync run?" + exit 0 +end + +# ── 3. Detect firebase-ios-sdk URL and version from node_modules ────────────── +# Read from the ACTUAL node_modules on this build machine (populated by npm install) +# so the version we inject matches what @capacitor-firebase/* already resolved. +firebase_url = nil +firebase_version = nil + +Dir['node_modules/@capacitor-firebase/**/Package.swift', + 'node_modules/@capacitor/push-notifications/**/Package.swift'].each do |f| + content = File.read(f) rescue next + url_m = content.match(/\.package\(url:\s*"(https:\/\/github\.com\/firebase\/firebase-ios-sdk[^"]*)"/) + ver_m = content.match(/firebase-ios-sdk[^)]+from:\s*"(\d+)\.(\d+)\.(\d+)"/) + next unless url_m && ver_m + + firebase_url = url_m[1] + major = ver_m[1].to_i + firebase_version = "#{major}.0.0" + puts "Detected firebase-ios-sdk from #{f}: url=#{firebase_url} → using from: \"#{firebase_version}\"" + break +end + +# Fallback — should rarely be needed +unless firebase_url + firebase_url = 'https://github.com/firebase/firebase-ios-sdk.git' + firebase_version = '11.0.0' + puts "Could not detect firebase-ios-sdk version from node_modules — using fallback #{firebase_version}" +end + +firebase_pkg = 'firebase-ios-sdk' + +lines = File.read(CAP_APP_SPM).split("\n") + +# ── 4. Inject firebase-ios-sdk as a direct package dependency if missing ────── +# Normalise URL check to handle both with and without .git suffix +firebase_url_base = firebase_url.sub(/\.git$/, '') +unless lines.any? { |l| l.include?(firebase_url_base) } + last_pkg_idx = lines.rindex { |l| l.include?('.package(') } + if last_pkg_idx + lines[last_pkg_idx] = lines[last_pkg_idx].rstrip + lines[last_pkg_idx] += ',' unless lines[last_pkg_idx].end_with?(',') + lines.insert(last_pkg_idx + 1, + " .package(url: \"#{firebase_url}\", from: \"#{firebase_version}\")") + puts "Added #{firebase_pkg} to CapApp-SPM package dependencies" + else + warn "WARNING: no .package( line found in #{CAP_APP_SPM} — cannot inject dependency" + end +end + +# ── 5. Inject each detected product into the target dependencies if missing ─── +firebase_imports.each do |product| + next if product == 'Firebase' # umbrella import — not a linkable SPM product + + product_str = ".product(name: \"#{product}\", package: \"#{firebase_pkg}\")" + next if lines.any? { |l| l.include?(product_str) } + + last_prod_idx = lines.rindex { |l| l.include?('.product(') } + if last_prod_idx + lines[last_prod_idx] = lines[last_prod_idx].rstrip + lines[last_prod_idx] += ',' unless lines[last_prod_idx].end_with?(',') + lines.insert(last_prod_idx + 1, " #{product_str}") + puts "Added #{product} to CapApp-SPM target dependencies" + else + warn "WARNING: no .product( line found in #{CAP_APP_SPM} — cannot inject #{product}" + end +end + +File.write(CAP_APP_SPM, lines.join("\n")) +puts "CapApp-SPM/Package.swift updated" diff --git a/index.html b/index.html new file mode 100644 index 0000000..e19807b --- /dev/null +++ b/index.html @@ -0,0 +1,28 @@ + + + + + Ionic App + + + + + + + + + + + + + + + + +

+ + + diff --git a/ionic.config.json b/ionic.config.json new file mode 100644 index 0000000..a1d1b22 --- /dev/null +++ b/ionic.config.json @@ -0,0 +1,5 @@ +{ + "name": "app", + "integrations": {}, + "type": "react-vite" +} diff --git a/ios/.DS_Store b/ios/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b49404ce4062e6f064d0e4612238afbb9f7b8104 GIT binary patch literal 6148 zcmeHKJ5Iwu5S<}GvV@RQQtlOU11B;k$OTXcf+CUKKtbh>d*m{?3KyW~&4=K~0#Q-G z8)^3K&dghDU*Xvm5nVoR<{~o@so;k4V#C-hZ$7fKj7))Qd(2n2?XL5v#eQN|H<5*O z(rxdD{L8z~%&u*k^|oCjQa$PO{_XX!7-l!$WV?sKuIGMEP-#?v3Qz$mKn4D-0_fRh z)kPpjDnJFOz)=DFKNPrOo!AHZuLFZW0f5KrKIVSM1{RbWw@&N>5rJt?fkD-LVrbA2 zFIiV7_JKhc^)F+e{Icc?Me~NQ#mhzOK#o*^3Y;o1iRH}t|26!J_x~x0D=I(*{*(eb zZC1?^N6OwhI-K>|0>6QO7;3#7gSTR!w_+@;6<-bNip`O)6Z=4?Bkpt{F9N0ujSBpR F0`C{dCtd&m literal 0 HcmV?d00001 diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..f470299 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,13 @@ +App/build +App/Pods +App/output +App/App/public +DerivedData +xcuserdata + +# Cordova plugins for Capacitor +capacitor-cordova-ios-plugins + +# Generated Config files +App/App/capacitor.config.json +App/App/config.xml diff --git a/ios/App/.DS_Store b/ios/App/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0864069d52a218778beed6a3adf1a696a40a3a56 GIT binary patch literal 6148 zcmeHKy-EW?5S}$x1b;AKW4TWtq_w()6D)T+HWH*a@?7nj$J{nKok>tYc>{GAn!2^=>#<#pq@ckgSnm`QLf`7+qfEfe&?K1u4VD4upZ0xsQga`aA&jBS3Ig! z29yD1;FAIVK3FJYELeDSpAHz;0steponXwp1jksxSg`Pj8Hn+rKp$$P#V|e`ek=k&}&dD8`+R{jFP0CibXS8Bhj72Bb%C@cqB@eg7W@>60>`4E!kuOq6tz zHcFDawNf14wHCS$W#M&&M;8Jk*RdP$RlEsxf;r0rU@Ta8ga@KO0*(eX%D|5@Faegp BgDL<3 literal 0 HcmV?d00001 diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1bfcffd --- /dev/null +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -0,0 +1,380 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 60; + objects = { + +/* Begin PBXBuildFile section */ + 2FAD9763203C412B000D30F8 /* config.xml in Resources */ = {isa = PBXBuildFile; fileRef = 2FAD9762203C412B000D30F8 /* config.xml */; }; + 4D22ABE92AF431CB00220026 /* CapApp-SPM in Frameworks */ = {isa = PBXBuildFile; productRef = 4D22ABE82AF431CB00220026 /* CapApp-SPM */; }; + 50379B232058CBB4000EE86E /* capacitor.config.json in Resources */ = {isa = PBXBuildFile; fileRef = 50379B222058CBB4000EE86E /* capacitor.config.json */; }; + 504EC3081FED79650016851F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504EC3071FED79650016851F /* AppDelegate.swift */; }; + 504EC30D1FED79650016851F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30B1FED79650016851F /* Main.storyboard */; }; + 504EC30F1FED79650016851F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30E1FED79650016851F /* Assets.xcassets */; }; + 504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC3101FED79650016851F /* LaunchScreen.storyboard */; }; + 50B271D11FEDC1A000F3C39B /* public in Resources */ = {isa = PBXBuildFile; fileRef = 50B271D01FEDC1A000F3C39B /* public */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = ""; }; + 50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = ""; }; + 504EC3041FED79650016851F /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 504EC3071FED79650016851F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 504EC30C1FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 504EC30E1FED79650016851F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 504EC3111FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 504EC3131FED79650016851F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 1A4EB3C21FED79650016851F /* App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = App.entitlements; sourceTree = ""; }; + 50B271D01FEDC1A000F3C39B /* public */ = {isa = PBXFileReference; lastKnownFileType = folder; path = public; sourceTree = ""; }; + 958DCC722DB07C7200EA8C5F /* debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = debug.xcconfig; path = ../debug.xcconfig; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 504EC3011FED79650016851F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D22ABE92AF431CB00220026 /* CapApp-SPM in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 504EC2FB1FED79650016851F = { + isa = PBXGroup; + children = ( + 958DCC722DB07C7200EA8C5F /* debug.xcconfig */, + 504EC3061FED79650016851F /* App */, + 504EC3051FED79650016851F /* Products */, + ); + sourceTree = ""; + }; + 504EC3051FED79650016851F /* Products */ = { + isa = PBXGroup; + children = ( + 504EC3041FED79650016851F /* App.app */, + ); + name = Products; + sourceTree = ""; + }; + 504EC3061FED79650016851F /* App */ = { + isa = PBXGroup; + children = ( + 50379B222058CBB4000EE86E /* capacitor.config.json */, + 504EC3071FED79650016851F /* AppDelegate.swift */, + 504EC30B1FED79650016851F /* Main.storyboard */, + 504EC30E1FED79650016851F /* Assets.xcassets */, + 504EC3101FED79650016851F /* LaunchScreen.storyboard */, + 504EC3131FED79650016851F /* Info.plist */, + 1A4EB3C21FED79650016851F /* App.entitlements */, + 2FAD9762203C412B000D30F8 /* config.xml */, + 50B271D01FEDC1A000F3C39B /* public */, + ); + path = App; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 504EC3031FED79650016851F /* App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 504EC3161FED79650016851F /* Build configuration list for PBXNativeTarget "App" */; + buildPhases = ( + 504EC3001FED79650016851F /* Sources */, + 504EC3011FED79650016851F /* Frameworks */, + 504EC3021FED79650016851F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = App; + packageProductDependencies = ( + 4D22ABE82AF431CB00220026 /* CapApp-SPM */, + ); + productName = App; + productReference = 504EC3041FED79650016851F /* App.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 504EC2FC1FED79650016851F /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0920; + TargetAttributes = { + 504EC3031FED79650016851F = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 504EC2FF1FED79650016851F /* Build configuration list for PBXProject "App" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 504EC2FB1FED79650016851F; + packageReferences = ( + D4C12C0A2AAA248700AAC8A2 /* XCLocalSwiftPackageReference "CapApp-SPM" */, + ); + productRefGroup = 504EC3051FED79650016851F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 504EC3031FED79650016851F /* App */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 504EC3021FED79650016851F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */, + 50B271D11FEDC1A000F3C39B /* public in Resources */, + 504EC30F1FED79650016851F /* Assets.xcassets in Resources */, + 50379B232058CBB4000EE86E /* capacitor.config.json in Resources */, + 504EC30D1FED79650016851F /* Main.storyboard in Resources */, + 2FAD9763203C412B000D30F8 /* config.xml in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 504EC3001FED79650016851F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 504EC3081FED79650016851F /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 504EC30B1FED79650016851F /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 504EC30C1FED79650016851F /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 504EC3101FED79650016851F /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 504EC3111FED79650016851F /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 504EC3141FED79650016851F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 958DCC722DB07C7200EA8C5F /* debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 504EC3151FED79650016851F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 504EC3171FED79650016851F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 958DCC722DB07C7200EA8C5F /* debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = App/App.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = App/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; + PRODUCT_BUNDLE_IDENTIFIER = com.kumusha.app; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 504EC3181FED79650016851F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = App/App.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = App/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.kumusha.app; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 504EC2FF1FED79650016851F /* Build configuration list for PBXProject "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 504EC3141FED79650016851F /* Debug */, + 504EC3151FED79650016851F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 504EC3161FED79650016851F /* Build configuration list for PBXNativeTarget "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 504EC3171FED79650016851F /* Debug */, + 504EC3181FED79650016851F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + D4C12C0A2AAA248700AAC8A2 /* XCLocalSwiftPackageReference "CapApp-SPM" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = "CapApp-SPM"; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 4D22ABE82AF431CB00220026 /* CapApp-SPM */ = { + isa = XCSwiftPackageProductDependency; + package = D4C12C0A2AAA248700AAC8A2 /* XCLocalSwiftPackageReference "CapApp-SPM" */; + productName = "CapApp-SPM"; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 504EC2FC1FED79650016851F /* Project object */; +} diff --git a/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/App/App.xcworkspace/contents.xcworkspacedata b/ios/App/App.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b3795ee --- /dev/null +++ b/ios/App/App.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/App/App/App.entitlements b/ios/App/App/App.entitlements new file mode 100644 index 0000000..6631ffa --- /dev/null +++ b/ios/App/App/App.entitlements @@ -0,0 +1,6 @@ + + + + + + diff --git a/ios/App/App/AppDelegate.swift b/ios/App/App/AppDelegate.swift new file mode 100644 index 0000000..c41136c --- /dev/null +++ b/ios/App/App/AppDelegate.swift @@ -0,0 +1,66 @@ +import UIKit +import Capacitor +import FirebaseCore +import FirebaseMessaging + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + FirebaseApp.configure() + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { + // Called when the app was launched with a url. Feel free to add additional processing here, + // but if you want the App API to support tracking app url opens, make sure to keep this call + return ApplicationDelegateProxy.shared.application(app, open: url, options: options) + } + + func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { + // Called when the app was launched with an activity, including Universal Links. + // Feel free to add additional processing here, but if you want the App API to support + // tracking app url opens, make sure to keep this call + return ApplicationDelegateProxy.shared.application(application, continue: userActivity, restorationHandler: restorationHandler) + } + + func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { + Messaging.messaging().apnsToken = deviceToken + Messaging.messaging().token { token, error in + if let error = error { + NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error) + } else if let token = token { + NotificationCenter.default.post(name: .capacitorDidRegisterForRemoteNotifications, object: token) + } + } + } + + func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) { + NotificationCenter.default.post(name: .capacitorDidFailToRegisterForRemoteNotifications, object: error) + } + +} diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..adf6ba01dbe256605c5152ac1fd78ae99aaa2a8d GIT binary patch literal 110522 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 C`SD)> literal 0 HcmV?d00001 diff --git a/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9b7d382 --- /dev/null +++ b/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "AppIcon-512@2x.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/App/App/Assets.xcassets/Contents.json b/ios/App/App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/ios/App/App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json b/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json new file mode 100644 index 0000000..d7d96a6 --- /dev/null +++ b/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "splash-2732x2732-2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "splash-2732x2732-1.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "splash-2732x2732.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png b/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png new file mode 100644 index 0000000000000000000000000000000000000000..33ea6c970f2df1db62a624a55e5bbcc4ee07bbdf GIT binary patch literal 41273 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 literal 0 HcmV?d00001 diff --git a/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png b/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png new file mode 100644 index 0000000000000000000000000000000000000000..33ea6c970f2df1db62a624a55e5bbcc4ee07bbdf GIT binary patch literal 41273 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 literal 0 HcmV?d00001 diff --git a/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png b/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png new file mode 100644 index 0000000000000000000000000000000000000000..33ea6c970f2df1db62a624a55e5bbcc4ee07bbdf GIT binary patch literal 41273 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 literal 0 HcmV?d00001 diff --git a/ios/App/App/Base.lproj/LaunchScreen.storyboard b/ios/App/App/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..e7ae5d7 --- /dev/null +++ b/ios/App/App/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/App/App/Base.lproj/Main.storyboard b/ios/App/App/Base.lproj/Main.storyboard new file mode 100644 index 0000000..b44df7b --- /dev/null +++ b/ios/App/App/Base.lproj/Main.storyboard @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist new file mode 100644 index 0000000..c6d0684 --- /dev/null +++ b/ios/App/App/Info.plist @@ -0,0 +1,66 @@ + + + + + CAPACITOR_DEBUG + $(CAPACITOR_DEBUG) + CFBundleDevelopmentRegion + en + CFBundleDisplayName + kumusha + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + NSPhotoLibraryUsageDescription + Kumusha needs access to your photo library so you can add profile and recipient photos. + NSCameraUsageDescription + Kumusha needs camera access so you can add profile and recipient photos. + CFBundleURLTypes + + + CFBundleURLName + com.kumusha.app + CFBundleURLSchemes + + com.kumusha.app + + + + + diff --git a/ios/App/CapApp-SPM/.gitignore b/ios/App/CapApp-SPM/.gitignore new file mode 100644 index 0000000..3b29812 --- /dev/null +++ b/ios/App/CapApp-SPM/.gitignore @@ -0,0 +1,9 @@ +.DS_Store +/.build +/Packages +/*.xcodeproj +xcuserdata/ +DerivedData/ +.swiftpm/config/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/ios/App/CapApp-SPM/Package.swift b/ios/App/CapApp-SPM/Package.swift new file mode 100644 index 0000000..5cde8b6 --- /dev/null +++ b/ios/App/CapApp-SPM/Package.swift @@ -0,0 +1,25 @@ +// swift-tools-version: 5.9 +import PackageDescription + +// DO NOT MODIFY THIS FILE - managed by Capacitor CLI commands +let package = Package( + name: "CapApp-SPM", + platforms: [.iOS(.v15)], + products: [ + .library( + name: "CapApp-SPM", + targets: ["CapApp-SPM"]) + ], + dependencies: [ + .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "8.0.0") + ], + targets: [ + .target( + name: "CapApp-SPM", + dependencies: [ + .product(name: "Capacitor", package: "capacitor-swift-pm"), + .product(name: "Cordova", package: "capacitor-swift-pm") + ] + ) + ] +) diff --git a/ios/App/CapApp-SPM/README.md b/ios/App/CapApp-SPM/README.md new file mode 100644 index 0000000..03964db --- /dev/null +++ b/ios/App/CapApp-SPM/README.md @@ -0,0 +1,5 @@ +# CapApp-SPM + +This package is used to host SPM dependencies for your Capacitor project + +Do not modify the contents of it or there may be unintended consequences. diff --git a/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift b/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift new file mode 100644 index 0000000..945afec --- /dev/null +++ b/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift @@ -0,0 +1 @@ +public let isCapacitorApp = true diff --git a/ios/debug.xcconfig b/ios/debug.xcconfig new file mode 100644 index 0000000..53ce18d --- /dev/null +++ b/ios/debug.xcconfig @@ -0,0 +1 @@ +CAPACITOR_DEBUG = true diff --git a/package.json b/package.json new file mode 100644 index 0000000..5060f80 --- /dev/null +++ b/package.json @@ -0,0 +1,56 @@ +{ + "name": "app", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "lint": "eslint" + }, + "dependencies": { + "@capacitor-firebase/authentication": "^8.0.0", + "@capacitor/android": "8.3.4", + "@capacitor/app": "8.1.0", + "@capacitor/core": "8.3.4", + "@capacitor/google-maps": "^8.0.0", + "@capacitor/haptics": "8.0.2", + "@capacitor/ios": "8.3.4", + "@capacitor/keyboard": "8.0.3", + "@capacitor/preferences": "^8.0.1", + "@capacitor/push-notifications": "^8.1.1", + "@capacitor/share": "^8.0.1", + "@capacitor/status-bar": "8.0.2", + "@hookform/resolvers": "^3.9.0", + "@ionic/pwa-elements": "^3.0.0", + "@ionic/react": "8.8.7", + "@ionic/react-router": "8.8.7", + "@supabase/supabase-js": "^2.108.1", + "firebase": "^11.0.0", + "ionicons": "^7.4.0", + "katex": "^0.16.0", + "qrcode.react": "^4.2.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.54.0", + "react-katex": "^3.0.1", + "react-router": "^5.3.4", + "react-router-dom": "^5.3.4", + "zod": "^3.24.0", + "zustand": "^5.0.0" + }, + "devDependencies": { + "@capacitor/cli": "8.3.4", + "@types/katex": "^0.16.0", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "@types/react-router": "^5.1.20", + "@types/react-router-dom": "^5.3.3", + "@vitejs/plugin-react": "^4.0.1", + "terser": "^5.4.0", + "typescript": "~5.9.0", + "vite": "^5.0.0" + }, + "description": "An Ionic project" +} diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..2ce8c03 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Ionic App", + "name": "My Ionic App", + "icons": [ + { + "src": "assets/icon/favicon.png", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#ffffff", + "background_color": "#ffffff" +} diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..71ce1e6f639b3ea0712bab03f2425eb82c94494e GIT binary patch literal 6148 zcmeHKF;2rk5ZrTuFan8`l>S0~U?NjdMnH!kBuYTGYzfl4}+IKTuIJyL&ix z?1(NxXji%$dvDj{8=t&)MC3-x>5ynZL?IeuaDcAEc${0y0`EBjI(f!pIv`xEKib2nor;jFJHd)Ki}U@HzTIML==nq3gLAJ{wG?1 zJ)>E3{Tx3uN9+987pv#oUoTkGc`MB6)si^7Xgc;BA%+8-soUp?mNjSM!(Rx$B6lf~Y z)7t^p|FiAq|7McinF6N3zf!>UlW{V_lzeS%O^$1Agm#0*#&M-$m4XW?#farne1awh Yf5aES*kh>(56m_KB7=3Nz)ltT29g41%m4rY literal 0 HcmV?d00001 diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..93fb14e --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,389 @@ +import React, { useEffect } from 'react'; +import { Redirect, Route, useHistory, useLocation } from 'react-router-dom'; +import { + IonApp, + IonIcon, + IonLabel, + IonRouterOutlet, + IonTabBar, + IonTabButton, + IonTabs, +} from '@ionic/react'; +import { IonReactRouter } from '@ionic/react-router'; +import { Capacitor } from '@capacitor/core'; +import { PushNotifications } from '@capacitor/push-notifications'; +import type { + ActionPerformed, + PushNotificationSchema, +} from '@capacitor/push-notifications'; +import { supabase } from './supabase'; +import { + heart, + heartOutline, + listOutline, + peopleOutline, + personOutline, +} from 'ionicons/icons'; + +import '@ionic/react/css/core.css'; +import '@ionic/react/css/normalize.css'; +import '@ionic/react/css/structure.css'; +import '@ionic/react/css/typography.css'; +import '@ionic/react/css/padding.css'; +import '@ionic/react/css/float-elements.css'; +import '@ionic/react/css/text-alignment.css'; +import '@ionic/react/css/text-transformation.css'; +import '@ionic/react/css/flex-utils.css'; +import '@ionic/react/css/display.css'; +import '@ionic/react/css/palettes/dark.system.css'; +import './theme/variables.css'; + +import { setStatusBarStyle, Style } from './utils/statusBar'; +import { AuthProvider, useAuth } from './contexts/AuthContext'; +import ProtectedRoute from './components/ProtectedRoute'; + +// Auth Pages +import AuthPage from './pages/AuthPage'; +import VerifyEmailPage from './pages/VerifyEmailPage'; +import ForgotPasswordPage from './pages/ForgotPasswordPage'; +import VerifyResetPage from './pages/VerifyResetPage'; +import SetupProfilePage from './pages/SetupProfilePage'; + +// Main App Pages +import HomePage from './pages/HomePage'; +import RecipientsPage from './pages/RecipientsPage'; +import RecipientFormPage from './pages/RecipientFormPage'; +import RecipientDetailPage from './pages/RecipientDetailPage'; +import SupportFlowPage from './pages/SupportFlowPage'; +import OrderDetailPage from './pages/OrderDetailPage'; +import VoucherDetailPage from './pages/VoucherDetailPage'; +import ActivityPage from './pages/ActivityPage'; +import NotificationsPage from './pages/NotificationsPage'; +import ProfilePage from './pages/ProfilePage'; +import EditProfilePage from './pages/EditProfilePage'; + +const BYPASS_AUTH = true; + +const SetupProfileRoute: React.FC = () => { + const { user } = useAuth(); + return ( + + BYPASS_AUTH ? ( + + ) : !user ? ( + + ) : ( + + ) + } + exact + /> + ); +}; + +const SendSupportFab: React.FC = () => { + const history = useHistory(); + const location = useLocation(); + const hiddenPaths = [ + '/auth', + '/verify-email', + '/forgot-password', + '/verify-reset', + '/setup-profile', + '/support/new', + ]; + const showOnPaths = ['/home', '/recipients', '/activity', '/profile']; + const isVisibleRoute = + showOnPaths.includes(location.pathname) || + /^\/recipients\/[0-9a-fA-F-]{36}$/.test(location.pathname); + + if (!isVisibleRoute || hiddenPaths.includes(location.pathname)) return null; + + return ( + + ); +}; + +const PushNotificationHandler: React.FC = () => { + const { user, profile } = useAuth(); + const history = useHistory(); + + useEffect(() => { + if (!Capacitor.isNativePlatform() || !user || !profile) return; + + const setupPush = async () => { + const handleNotificationTap = (notification: PushNotificationSchema) => { + const { orderId, voucherId, screen } = notification.data || {}; + if (voucherId) { + history.push(`/voucher/${voucherId}`, { parentRoot: '/home' }); + } else if (orderId) { + history.push(`/orders/${orderId}`, { parentRoot: '/home' }); + } else if (screen) { + history.push(screen, { parentRoot: '/home' }); + } + }; + + // Capacitor automatically triggers pushNotificationActionPerformed + // for the notification that launched the app once the listener is attached. + + // Check if user has explicitly enabled push notifications + if (!profile.notification_push_enabled) return; + + const status = await PushNotifications.checkPermissions(); + if (status.receive === 'granted') { + await PushNotifications.register(); + } else if (status.receive === 'prompt') { + const result = await PushNotifications.requestPermissions(); + if (result.receive === 'granted') { + await PushNotifications.register(); + } + } + + PushNotifications.addListener('registration', async (token) => { + await supabase + .from('profiles') + .update({ fcm_token: token.value }) + .eq('id', user.id); + }); + + PushNotifications.addListener('registrationError', (err) => { + console.error('Push registration error:', err); + }); + + PushNotifications.addListener('pushNotificationReceived', () => { + // Handled natively via presentationOptions banner + }); + + PushNotifications.addListener( + 'pushNotificationActionPerformed', + (action: ActionPerformed) => { + handleNotificationTap(action.notification); + } + ); + + await PushNotifications.removeAllDeliveredNotifications(); + }; + + setupPush(); + + return () => { + if (Capacitor.isNativePlatform()) { + PushNotifications.removeAllListeners(); + } + }; + }, [user, profile, history]); + + return null; +}; + +const App: React.FC = () => { + useEffect(() => { + setStatusBarStyle(Style.Light); + }, []); + + return ( + + + + + {/* Auth Routes */} + + BYPASS_AUTH ? : + } + exact + /> + + + + + {/* Setup Profile Route - Requires authenticated user but not necessarily complete profile */} + + + {/* Top-level Protected Routes (no tab bar) */} + + + + + BYPASS_AUTH ? ( + + ) : ( + + ) + } + exact + /> + + BYPASS_AUTH ? ( + + ) : ( + + ) + } + exact + /> + + + + + {/* Tab Routes */} + + BYPASS_AUTH ? ( + + + + + + + + + + + + Care + + + + Recipients + + + + + Activity + + + + Profile + + + + ) : ( + ( + + + + + + + + + + + + Care + + + + Recipients + + + + + Activity + + + + Profile + + + + )} + /> + ) + } + /> + + {/* Orders Redirect */} + } + /> + + {/* Root Redirect */} + } + /> + + + + + + + ); +}; + +export default App; diff --git a/src/assets/basket.png b/src/assets/basket.png new file mode 100644 index 0000000000000000000000000000000000000000..019680daff5b710bc22438e8c1b28026a11c1eac GIT binary patch literal 59243 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 F{|{SZ8G--+ literal 0 HcmV?d00001 diff --git a/src/assets/dad.jpg b/src/assets/dad.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5638be0f4db32e55d1acf57abe2bec35ca0fac4b GIT binary patch literal 120343 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ⅅ`egduw}O9_kkTEN%?_ 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 S6^FJOq9YY8M%^o%*#FtW(Vc|= literal 0 HcmV?d00001 diff --git a/src/assets/mom.jpg b/src/assets/mom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc87965239cd92bcad275142f95a1a464257a484 GIT binary patch literal 153909 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

ffZgsjBfIRi)p(6x0sy4#C-9p9UIrb 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 UT7e9U$V#$k*i_Odjepbs1A0tnQvd(} literal 0 HcmV?d00001 diff --git a/src/assets/pill.png b/src/assets/pill.png new file mode 100644 index 0000000000000000000000000000000000000000..609daa1918f9d60859f88f689732b20577f93e34 GIT binary patch literal 44530 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 -{ZF0i`Sj7d&$7@$&12TCntA@ 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 HlYsvR8}=lk literal 0 HcmV?d00001 diff --git a/src/assets/sarah.jpg b/src/assets/sarah.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3cc4b108e222f0cf56165d85645ab4b995c40ff9 GIT binary patch literal 103402 zcmeFYWmFsA*ESs7p}0el7Wd*_iWj%yUOc!v6e$IQLxJM%9$bn;f#MLLNT5KmK#^eK z2NUZe4k&saU1^?5|$IDxQ^ndnPfc!suM1mBc{Ev^USAzcEKL7rae-{5R z@DBt3Fz^op|1j_m1OG7a4+H-&@DBt3Fz^op|1j_m1OML)Jgosf0g(P}$Vks=I5ILa z3M$I8p`xSy%g`~<|7{rmHOzk-*1rtre+}th-$Fq_dw%0!qGSGV`~S7`wDFwR(>?VA z2r-fMkRT{Xi~wXpBosoVry-=GXAuJJKS%gKFrJSS6%8E&6AK&X1ppZd1qB%u1q}`L zS$IGS{+E=1N{B|pz$c4NtYwM8=uW~Po?M8@^tN$;RC^Z2EMVmkfrU**PC-fa>NN{1 z8~YnUAz=|wF}Zj03W`d~DmuD)`UW2ijjU~KKib(lIC^?{`}q3#2Sk2~ijIl>9G8-s zmY$KB^)Q10On(tQLl) zJ24}FI3~&4yME`eyBL06N`d>i*i{}Xfz(qlN zK4BU5N3}5>YSZjqiO@Z+OlRKp)5-8-?tJU zGzGF;hy&E#zeUU=FyI)anDtM9`Kzw94X5&V{o?pJyArqV_sOZVvM2C?b4BRQ&{=}P zlsi;Xws$;t)Y3KUgo!r#$HP#l|3%0*jzJ089hblnx|f~j(sA6sZnSzs`Tch#nnPa} zxK)Xu0CY}h;@N6)zo?9CF#xniFDf+NaF9_P>7bgmmn7l7o0+Q}#^lhD0ig64>(cV+ zSpoT&AnbDmB9c|Q>iv43Kp2eQ!onHZB@d%;aP{K`Pc-g%B^^F++Zqq~o{u=yHK-L> zHCcs4VAUS6!l!JRoltx5 zo``6Pj2M^73%YL=gfB$PPN2UlR}~$F@Y9emp{3%qRhk4qK6TmkpZv%jG;^#jt=4w1 zom>)xZVfG_=ACXgf`mEfRFHddlmsuCc$CJfXy8QulWoi!%tWzs8GBt64D>wmFnJYA z3`kTwHkw5|SpAA2L}*?}`;%xP0Or9eRosdVprFx-cNCw;L)AZJ#Wjay892u4BnQqR z&F)i7F*tKc3godRwo@F*OuWCnu9zf$=44iL9a?H&zu+PM6EmQG@-2JI;wA} z6Gl=wEgnTbW!cr?loB~kwq+rw(+Jy1|DZP8tv|`~0b6W*ib1VGh~Jx=lOwGc1S$Z> zeW?XhR6B}Nl(_dkETw?aGpvh5HiTWNe0&|-mv+1!Rzj(*!MHAK!Kw6xfT&OPuI_{r zs?;RjOtaCLRqR-_?0REIQ-I)RSn74}Iez#XBc7oR$Ttu+_fI5u^80=ZC27E>(If58 zs}1TQ$a|_^;hwY`rQc5zKTPX_5a4ph2drsz-E*@u7!MR!3j+;dHw(-ZZHSO(4Cea$ zec|JMit&pkz}io*Eq=o5p1!FzMWkdxPf}d7Y4Hu*n*)o?IPjApqnD_@0wro7p@GM* z^f`;rr=N)XSE#{*bA34=$RN~vbmR#TFMQWi6Lp!u^=nW~CdB;p>p>-qnmXaot`?vA zwI=`sJenzu*Nfy=K1}A)w7Z&PY=w`ReGsb&x>2=*)&Ks)l2P<#>m?u<%~tD@8*>i) zwd<-bZuRbChm*+_(9^gfHB4N0sLTtd98dLAT>)#LM%+4#z-Tq00fR;_#Vj7>Cc&PC z0bix4pUT7{E}BNWlQ91!^-p`TB1~BtI+xYA2E=KVGnQ!I(m<@9vP>OfvU5o z1RbnKy&UhC-iH(iR@)a6zaK!_3cM#ULY20lR}qRd>`W|t1L&M*@X|wk zEdl9Bd3Vsez17Ab3+C%6*i5(>vzpTsxC;rYi}z7*%=2pSzE#m^nJ%7!Mvts=Y$G$se1}=f&AlD{#{`OGX-6>sQ&V7egvNWC?N6?ye+|Av`!tuu_B21+M-+|F1v{kDUSecx{qzxEsmbuVI0kp94ONBrFN_VR)yA2jl8RW18 zskqVDTvk$guuVvrWtF`|=$VeF8KUH|lbe=>UA}~fY3ju5=4t-%D_tF17b$qB((S3R zNRyowM!rWf*Nr}6kJJtkDHy?y)aV~UQ|+fLz)Z%FRm6Cy`{`7g>ka<*Fs2b|ri)5q zu%kb<(oMO`*`W-5VQ6Fd&@FfEX$ZL!KQK^FScp>kVp6(0KD1NGLK5qk<4lXCHH7Bj z&H4LY40w1kyo{;QguyQEh8V` z>^$4{Wy%rq8U>!tl<_{qo&%QNAwqf|`UF4|AA_?M(BFYZp8zGxr0^J!+=nSgC%n%L zN5eqHpTHU?H+~G2jhKQ;nJGUdXZpF;qL=RTf*_zMZUFW|49M|kDsVGAuD6_H)N%6j z`HV^zHSX3`nR5B_YB7!FbSZ$BCcBAw^v#gT47I#?9`@h3n%Y#I2ucOEa0%S+vS+4x zSrQ*Rl$HtFI!^?#v>;8{+!(5W{;K8;w5(xN7XfZzw0@i`=5V-vX@g9@FbuS3Qf2-a zGaX^oRqVrjcXk{806H`|-XKp{cib{jfZ26{G7)zs;dgr5D9OJGy5jd6=*_a~-z*@Q z4l=kaxFfr)owXF1o2A^)$7T(4L;>y~6NBkZ(ohEttRQxnEIj61^w_JGZJ+E~i1<7A zsVgvXBT12}ZMoCRefOn1{dvQ%vX4|(#uGsOSJ2n3+s0g_Z=GI(sTJ#T7Oy&+Oy{aH zQa0VR*A(Ok-in_`NMk=R!$02#AQm?Xy-m%((_=^wZYOX z>v9jnMgGcT!gX@6HC>ZUoFyZ=08n3>S0FOARdLTu6}lOphYNQpSKFaHTW;Jn-+opes zp`=`yh$$DmZhrzqBs|dP3@-cb4>uobI})!+UX`vB1y?D-ifr&}7{|9FqGV7~vwbZm zLZ%P%TL>ar`_N~g^jI1dj;wS39#c*CoB`*9ny4Y^eZwkbW$B0=S$-hS(rj;nabo z8MR4mO^3_)U}3bkmV1(m3lOQ`=o%ysfZUS!sER zcIzY!Qm-La>ZBg0P-OgNS(NqF{ZJ@OR|8_aZ5OXEsW?bS36I%+6*K+GkG2l$lO>kG zn+X%NX^&#mpA-d$Gp;+4*wPVvOoA2NPe8W{WU>cH4E8`Wo|G4FX z821<%S}h#ce*`;KtBymd<2@QIIpy3DxIpU@)0mh(7kXSj?djb^p|+pn)njzma}%PB z(OdFh8xZ4I{l0?0U+dH(^`%*4r^;)(gmaV;df59Xz-M05HOD*97X&H1BD~b`E~IEF zpfpRZeUhmghnIo}_q^M)C?07laAu?r&K1=+$V0ID#*BWh+qmMFarLTWgV|*HaHYZk zGOeO2nC1AQ{2X&bFUtmi7oriQz2qDs>Zfq?0Uk^jQ@*-#tKn(s6euAqpvtO8H0UId zZpF8VFEh<&5;I`_>8@{3nhtV^U|aAKSL!w@`o;C}?p0TFcv|@c1)1MQ4(1P%t(!vQ z3a2Ki)TPj^N^_W&s?tg6BDY{D_GmQ{C&#t-yfYmJEAa&Q0)P7_FhybGDEmXVRe zLruGy;C$PUF1-wX`iP|uE$y{-s*eF&c5l-*m>uwoU2rQtW>dIlD6QQn&h^T{k6<^l zO?{y4kYZn#8dFCI|7hV6BlQnaid;d?oXl3;|@i(H=oFC2k;2Uz~dH=JSp z>*c#QDoes+&1+_#GmH%jGaZyQM>8(gX(~rGRIWz5RRfVKO~z3(PRWU7hLeCJ!Zuzf z?QW9Qx8=__1RccE9qr~ZxG+fg>no5sjCrPPs^r_0yGOLlc*7|d#$*=4x5JP8u!0@I zD2YELDZJ^o4M@<;()UBq&u>0;+j5=gNvC+ z3h__HG|{wUT7~IaEyFO5G#in8exhJkyEzC|<;MBA&n1+E$@4O###a?;Qj%R=JE3MKWYR z!Z%kFeGQ$fQvAz`60cW+x+Uz0s$LQvm&LoL1>j2^*2(xI5@u+^CRI*ZhWwt;595RyzV^Q#pl>*rt>MTS$<+&FXdCcDVXdJL$ zz6QIRV_k)i@pCK$3-vTP<`oI?ithUgU_c_crVdor7!ItX9TA|LjU3gtYAm4Zsow9S z3sUZc{Z4nOIM62-ORV=JlWv@1XU!7{vt|?%`E_2&poPhgOQ3Q~ejWW-TQ9*-B3lLM;o&0j;c~4tVkp0QBPf+J@t)^e%9`U;9d`&y4@RD>Su1$*$#W`xvsya zPQ|M^Uo{zY#r)V3Eo6Vj^<%yvzG+vOS!mXLivFY=N>3H^0p5fE#bqaQXB+qDVbUb| z9c`K~5r3pp`OqG!)>;(dI3HzdhU0~c!8HtC3r#To9$@$7in8^H2d&?^MZPyx!07w* zYdz)g&7pP+Wfpq~KF7ZKi$BCB8^JNUzMUPuJbP>#zbD1fU-eo~5{E|+)M7d6Eha_` zekV)*W6(xqW*;DtZ95wwa>WrTX41)Deo94R0d>30DLi&J`*uzbbsegmf%%S7Jp?Q! zOMy0J6P4|3wum`TXjvNK{Bvt zZIN+qO15D|D}J4Yb^<% zasA#IO6pfW$p53wK1Bq~G^Vxzllth|E%j+Pm;=;xj%!ro?&x9qF4N{Vl%G9o6hM>6 z_s9L1J%v$?$;X^1fo>l`xFG}~=TxwfM_M@_#YpM>3c%j(YuyzFG9^;JSNjovZy4Z> z(|=7$R%rV=(>LL*b2ax)|Kpy>foFJL7=m=d_#lLJzLbu2z94VuX9J<~%kQ4?tSm@< z)9h(lIbRQ|-IkUxOfsGF1+BfOS3MMDxAtk=hds`!9hdH6uHywTf0^$vpD-mt=Wmy6 z7Z)E98J+cKuiF!4nk{UKUhw)!c=kg}fgj8qGq7-qob|#s#!(A>_+Rs5rykz8>!yEN zMeXGTx6+v$U4JF9Ak2cILeK2ZLL`sAHuX4tFmh4WNKe|HK?B_&O^4*ASKU2E{TS8# zc>?`FjxpXo6v3T~tge!8UaHq2me4aaj*3V9gG@W6!WmywUV5Ko{LLE|1I;8k$=ou% zY2@M^`NJD^|GOsu`_jDkt?pwh@U<}I#kG(>wxV1ThI%ObZ;j|H>W|UerN*gmlzIKc zUMp_QASsQC)Qnx}&q2vK#3n#XLX@});$FpRqM)`*dWhW4bmTVHWu;*36QJpgiEPuh zS1)g)_?Fz+@&1RU`-8YsW;?uGIKD-1Hpr>Ud}FY14b#hE{^mx=7SjeiDSej_;y3;t zubswVQed-ZBmep;?X9?c+FON_VSJ>u)F+g;u6E<922?4m-4qwZ2${;I+Xq=-%uh5bku&fA;PP z@afc;!u!BjqwCp?LA(xd0%Bvf$9en#(4cE2xzF{I#~97Om8@;_xA4_$YCtyq9PdG} z!+u>Jx;^#Yur5nJx2lWzFTPcBG_T@~=REC9E1NtiS*W2jOoa!+GrURMOMSG7TVGea zcm;~d^f@er0`amYMo?VWEjj7%MhjB7Cr8hM%ZCz>IryrTdV|w9n$}lSTTFnrvXN(Y zKXgVUWl0gPoA|9~6n?_yVxXu8HTMFu^baRMuCGhz-Zqavrl`^NrU55;EA_K#7}r(L zfAvv^0bJANJKwz4A$}hxxHKm6CptUs1;m)vjeC(&t*xh=A38*9OaiIOLVdG^zu+z< zDf>}c<~T;Dx!72tqxdkj1=8`EhOW)dW=v7pp@?hR{gvdn-Ff`<1lTIdegY(%7Q!@! zR7)eScW?|E78!3Zo!U>ai~N)GTvV0HxbZgyUP9v@f5XbUd|gnNz_W_De>p#jK#_dF z*b};ZNXebhHg;`lNiv91orUtYs6HTZ6H(>=exdF9h=h$M7=WBNTVE?|rNbU{d9|S} zZXQgMKzonIz25iOoAh+w&bE(k;S3ZwkC`)#-f+)?;BtlLnP# ztNBqK^tjz3qECP%(|kmn(SxJcL<+}s;I?Dva1(6*G2-|MaH+kNcKi>SN-YTPx z88F2G-6sAwlaHJ5GzUw=v}f}p#a=uCDvm?%)FeY*cL#-WVCQ5HT701x*lBgSj<;$i z-rH$m0*X}1eO#AUqBt^2-lrJhU|&X!%wG8v!Rz$y;|EHX#EmNZ8}AB`y1Jw8c9_ z5rx{xb1n&Oy2Nd$s@yL!nONg=w66ys%{6+T(To%=t2ec#cn19l69~?g8eZ2@zMWS5 z1>q&n4L5(jK<-Sf40j2DkUs9!Tt7>d0Yh_GoZY{5p8&Ga42;EDQu67ydLMBTH#tHU zrCTr(5L|wJN}->{1dNRoamnWo!3I*kdCTlEUR@tB$F-tjky-#8+dOe8#(wpq0WtB; zws91{!G=UDe_M+&i70LdIA%KmB0CKpy|I6y#F^Gx&FLS6moHwGQ}-Z$+|2S2Ge~Z1 zJeTkx%cJ;PQ~m+fps5Y52t4^Ut&&=YR@1QIWfaiOFOCRu6Bnj)x7JJhUXtw+Ga zvip~stHrGV+WM-n*nSNbIx0?&8DyWcQy$~hUILzHdSN)|X^Yzsi~UJ_PDV@l{c#YG za@wzEN@qkYqz_6AHDywcR1;NvVRXv-T}cxMC_xR7trm zODjo0ai}NZPzH|X+!EGYe*)M|qh^5dULVv6fH@TuX~PioW@tvHxa&1O2(E?t@=ovq z&?-y3K8GfynjuSwUqNFk&utJi(c~43fgq+;9SVqvu9q5iaiguOF5M8QqKo3%ms{aqYCE4jOrhnV?fLyIy{9-`f>$K=WTW0PKewilJ9~aGti_ zJDlwFbToE?6Ug2+B{3oE2hkB4h7inVvUwN z_LVq5daHf$%A#DkF2QO|A}$N#0(2sneZu$M`n1uJXj2V&D8FkyY&P%NVxatHIo)sd zGNU+G?}P0RcN&1+l={7zXHos)5)o51+M2^l_sZ8=a~I$4Mpq^ zLO=|!H}6|KtFuh8eZAwKts(q;dz$#t(k$K~?uJ1>9L51$8zK)-jIx29HluZ^F)1+l zhX;P~n@>q5S~GALWm%)qM7REB{GmPZrwKz)$a#*n&$h00@{z$M52iUhZuLsFtGy;Y z#L54aVv_n~!T`1%lA=ixMB>b>(A-Gc)60=>k9_m=4Z2RKq!hWOE@X=LK9m6!bSoDB znJGOCdD+neI==h8*A}j%eLnP7z)~GGFkEx=jPS(7ta#g$wC3ZzL;`R&O%8QvhDn+d zGFzdE;pS8T|0;7$YK7csyY8OHfcXoNi zL|RhLGhmXpvM>6_eL*wHWR^;;!@SYqw8@`!niTY73n>@(aeLi8Tq~a-ID2AE{{o`K zGA;aq^gC4KB}`J9{j{|WcAf8vc9Q;g-Hg*s!_|Ecv(RNiVvN@BRoZ!1;hh0#fnVMJ zy-XKHhR?0bkA4d4eQ`GrzQYl=uuKE0FUDWsVSI`$BxcEx@yG&3lTg$=EW7r3E>l1LIW85hoNJJzne(U@<`z~|~bV9$Q zfumaPz!l6%mO*b1j#ukOBHu zXDR%pdgmZ5Pwz56MS0l5UDkYUDW^+0IA!gTomX8h+Uit{AJ?mfMlG#Hy1iDwbpDEU z@x()p)%B}S5+=o%wAluS+5&M#eWtWs{%5h}cnR{rQh4IUNU)P?uMn<_@m`Wbm31cN zmKq&1#np9vdCE4BIArb<%?n3`*i9O3q^?pW1w|6pTQ^oE8)oY`k9{D!9*tG1!#b}B z32s8bR$RKGq?lG1{u;)d@zg3Yu~FDV)!oGNM41D&0PLRymoAN! zUv?^lXG^F0o4n|5!*sU6zLmbteyozhN6bi3=4ive?idH7i|B=V5#&^;@3IjZ8?kM6 zgKq8NvSy_Bh9RrMzc3eD>SIFjm&8r2b(Fa?&UCz^F}bYF^R|k?cde9|hHmCGR1a9^ zGm!`q#7}eb77bJ*qbc=EB^RsC#S&Zlg-JduCU8P{aFqy!8K36<%F>%0 zNu2A5=NP^45Hb@61WGq}2j=v6+kR2W(dtU1c5>1jBdIN6ep3?W+g;8AMj?gY<qCgWixXfr|h26Mgjk0l{gh?!1}&lpi5n1?CGPXMca1I@*= zddT+g3sSjBu*WEsKtyBJ{>yCmugUGDl1|C`1VJ1>$jD`bxk#+x#0!G-mi@g`nVP!9 z*pW3_^4Jh=`Tdq_w9q0CnxEbGUea^H)|>c~CqSF? zan=|tEFaShUrYDuFiI^-WuW+tzF zCzKM~QOB^RB?U}I(s$I%X5RJAb2WVSsiq9xchgkRQwTYK>3L{0B1WO&WZlzrj`ytw zMJG;+L}_x5(w!x15U966Lwe10^g)`)8+6j+?(J8jjR~A4nnV6BLJdlJp=_%m3$h&c zA8ySaX1RXg6^Z0?brX+7q|h+bahW0>ER2~vbHWZcc8SE)`8?0K{L)X@p5v zy`XA0Ogyo-w*OH7qv^cuLd(0DA^ms#b9+`a^t=}6Tlt;h?ndNJWq3lrjte^+a?V;- z0Lc7hd^a8;XO5SBq;P2kbA0)oCjj0-%IkFGSGn`O)ud~WHDN*H?_~Tf{lu%(rH&=+8_pbJa;QFyMSug0Tq-*QBe)hXwSt(Zy_mb~lP)gTHH$XL_i%iIUThlA?T7Kc=R45c%b*RhqT&6G*8 z3~rqftjTRXQ)P_0NQyRf+;%hLOEwpFORZ9|L55|AfdMA{>+&6Iov5F{$fYI+JYmb1 zPN6A~n#VWVYVV@@y(Y1=jg_6;jwwEX%7-wMyEIs`#YdPZBaTs}@<3n-?4?wgv1K%- z&Gmque*JQ^zE#<7J7?{HxgGp@>@#jox`$BxFHzczYV!~4!zkt&jJ-QO7s{@GZ*@>A zdSYZ3B(yuN9Y1pMzrxIXEtHh5H-lL&YTbW$7B{@?-Iddo<$Q(I#=)BLiv;9&EWZy% zO&x#TU=^X(208y!ApWIf-)9*>Hw*{D*4MGwS7NFA4kuQq@>+skVt&3ze}_$Zvg2B9MN#dKfm zyc~q>^r@U}IAmE;M;Y9FQb+t|N}boZ>$e^?v8*pntp^4HK9K{o&(Y9j0sf4ZLOZy1 zNn*eiMV7WbX)nHMIP8zEP=JMX;pn!>;4ft-8qMO{&w~sY=@|5^qE|<^x|s$L`KYy# zSs^&{#P;Eo26;D`eoi-%iaUKBg`ajellP1dO3iKE^AboU zqa=5~GlMKTJ=WeqoXL_Y>PW$~f2@;r=@hn{uHqyu-&=ds_>XQT8zhPon-9+%yWbnb z=LdSJV4I)2#cO5D`fW2+z>WFNO|L4W`P|>U``e-v=_vgETT$P~2Z3i9oboaEfpF_p zd*3-t=hOnV{P$mn@7_(iq zJ}v;HlN~&2yWKC+#|D^AcOsmFXQ(h9w@-%I%szS53&1jmT=D%t8Zp{GUrF1w?-ggB zeSfeuW&v01bR9_=t9K=>LDuC3602&ntvF9EOE75L%O+?hP=g5LlUD+CnkM5f3*Kc- zV;(AJ%M8_#rMdCR5XPfi%n6|MQfPqyG9e9ypuT6JR*^r}7h^U?=qO%@w@hk689dV78oP;pb7( zkWG6^Qf=lbhqnb>D)LnNd%hOeq@gEfT1pn07t$LhTNd6dE5RI$Yhf2&lz)P&bIw^} zTc!w<^Uap(w5J!DnEhjbyRsdh&l0}^>}Z>0s#m5*)$0A?mStwkmahWWKDgBUoDvvM zOJI6$lQCmCzX0Qasb0@K2PQdw(~~3MJS;ehB|*L&fW8$v;{f+G zzSKo6ecRasiF=KNmOIRDd#ZFy%r50-xoNGLQ<&d{5Umx#!}Ds^_Iop{$iz+`Ly*CF zq#Uevfhs1f{t8P+<1Z>#&B`FIhuL}+2LIZaInj#`%@-d|wp?mTrDA`5qpP`P+2I-5 zOfX}CmwWC6+YLVfTo<_^O8DjWCwo&=)_$h<%JJ6N$Wf9q^$f7HgjOzrq2*spndXf4 zwJX#eDB?ei?b)LDSsGs&SO?ZY%pTO{y~(;)8jJjiG;T(utr!T%*;lWPeL~4 z6h_kQhQFvy;&M%KXc`(R!7mY7zj1&-U*zQcJ$reSpm*Xeiq>iJDg}!<8u^xh&m@_W zDFl-)-Rx5>zV^LA!#Pc+fMeq*TDDRbz3*N7G;aw?#ti*?1LP1&c(DO&1JN-q}u1s764sP$5(r zXN~3a0}meJ>n>tPbp+8|xZM zIttn>PIu!^_mf}@H!GPFH5kMpX;qmgp-8~kP^k!qM6+o|z~a^!y8mv}B!sl`3!h83 zG4l&~$AnJE6y$@2GsTkO+v*O=QxeZ(cD#^Z;FvL0wE36f-Qos8$^Wg!C`g{W`k!c5)U2b20=} z`M)6|t+uWY3f%bQP_mkZm#v^`^UAGF*|Kb(Kipc3NU5#=4bOEqn}?kZ_fo*XQRiiV%-Pc(=2Bm1VrVP?)bH0S=e7@jeV*+r*;m)148_XKig(8_wS68hLSmWhZ)Oxbl)IC`7%0S|fpeVJ5IgFseHusI5=~@ZC6$l+e zgv=Bl#jPgD?AQ;v`amB{$FRr^YC)w~e6ut~qFNzHHE zg>B&0){LFs$^>`qmMBRA4b&|#=)LryO=3UcQO88=0@84|0sgb@KRK;?6$Sh%f2(AjEFHr)fQ` zHzGWZp@S<3c+I-L)>iSIz}bhi#}V?rv!`vG?ia+3NLeV8J@7oweN+WHTSsIv`u8q? zMt^F^O6j|yorSy=)=XJQL>T?G_?o}jlAzx@ZXPymu4jbo=v6J3wQ;Ie#E_h0gTH2t zZ6>q&Bq$%Fmlt0=uGYR-N2BGBFOe!EL)@!rB@rZk4J0(NSs-V@hxaM3_lX7@!f!BG z^72*+-pU2jkd0e=q9~PikD^-MoIv`7%UkW`P#oq4JdqPp3eaLE7c4XD57%x#3YFYs zzy`>)KQ#Z1-ir)1nrm5bb@?2(+AIM(UIU8|j41fg^Ssv-XzxAeH@DaC6x_iAo~&Cr z0}it2xjp|9k6zS8{8C0wwImtPlx)!9-Wp_pquTBDAO7k-@zz@amc;oZ11gD>!Fvq6 zQqDH<*Ee+$Yc92EZv9ol9>;y7@s^4rJ7x0ndF=?s?v@sCv+^%d6*LPa9jZFMpIe^e zJ00gxj=tBX=*ybz*%LmLamx7L2iHWTqujxeYE=t{sE1*{HfX0XN?m|Ee90^m_w_H1 z$>v1sBVTg3VTo}@dDE&>Corc(D!k(GXGi+tZifZkR@4Zov54&Dk*RA~uLvBv zT~>9M|EWHqFBQaSCM-XXN^@_JAk*n&!r7MWuexF7d`japWp8xY*7+^(GDS5?@wSLU z!7OX+4DMAlcqwg-06YN(jGh3Fruf0)vc2av+CNz2b^F4}$j#HNlmpplovy35!4IU% z_j;BKL3S<$qjr{J#^xj7ev{l2I`3vsdK#U3V)}!PS;_3qFV-QK(Fy$DmZOw2d&UU5 z^R#UAf^1WW0!%r|%Z(Rlgl~rKkwZ#*UR5EqG;@#uLOm!Y)!b@|wcSbX?teX3@@LYM zfL=oF#%5Fj5JBL06D#!IUR9$}aR0g3M0-$uo}&2qa?G29G)Vmm!+WcD>qxhm47OMM*FZef%!Nc5iA44}r1{dfkrXJc>ctp&4l7u?NEdPbI|XJ0G&-xXTiQrIdzC7Q zE%O}i>g#-|G9wTDHV9o*`heV0_hCsPP)0Z*VXB(^j8R$zy-(U}1Ar#~mm;Wp{mN!E z!4rUNd2l`S$A48c$+52#*Yzu)XqnLOZLpiiNG|E;vS1RU;?okM^;tyoe*#1a7lc1o zuZEs=G>4;ewRVa#^EP^zcGS#3EoLHQ_uq9v*73uC1&Q(pii8~f<))@RO{ifgOekPq z*%q7q2R5Dj%u>%@*2S8ZK=kx+|3!~v7EZaK9t_zTqa?9UJ<-#10+Rh{ggsvy05qQA zVSp2J0>rF&E5SfM%4qFDD3Rc#8jp7OJY-X?^%ve*#(2^g79@p|iofeRQL?(?u}JEr zUzZHreMjR3T+*sp4MVYa0c~T8PB+zPu=9=5B;Eu*7T17C|L?wx%}?gdh|GHp$ACKU z&MmN8wQiioAiHHbAb*7c9GH^xzRtI~VRs8J+zp*iMZ3|h+|zgvAq{t^gh2d^wa!T# zyly-k!I{Dr^zf`dH2|XNLxwfd&PL3yEK_JPcxKf8TV0_EeJ#?lT)o7OcV1$WrA2C< zm5x7VAudtmK_vnLU0s9;Uot3Px|Ddv_Ul#gPQexAEBR=*P_afDxX{ z3I&--atLVlw9`@fQ~mj1ORXeJ_dCDLV?$5Z!l%w>NzK4?={eW^q;nf$(b6Gl)xRBp zEVFw$!l#?ewUXplGU78#WC4)Sy`GpRFYc1x#?-<7dt#t3- zQs~`S0MW!>1Uu!QFYv(?Kco%@1T7imvJfeHlDUiVQi!lrjQ-H*<@gHQ7@h`I8Xer# z5YXpK5F5Xr*0J7`@fJmKO2j&53t@2}DDlfP#fR+GpK?al?j}W8s76`;##A~Y!es?w zZ0jd~yA*w7F_`0OeX|gx`6`d1VcZ4y);~w7pKF#pv4GeROch;N?I_@6{7HV7zwSd= zNs^4&bFHAp->SWLYFxAWg^U|7Km;Z3#6?2-34rBfbQnU}yein!^=4?iqm=EhM2rYF zU|Z&x{l~zz@vbTdhiJmkibEZ@he zR%)^EvAW^_Vq;)A{NtwW*W0maImJE{Pk{T_c5rpz_V7>u=>pZ+X9}~`k-D}F{+C~W zrvfZ>_pRzpH$-+4&=ck4QilTWCY{O{2kl(%m+ah7Ew=1_Fw<;V1Q?X~k$+!)E_7e* z&v(;1&zm;3H8eJS+0RxsKdlM6gnH76R6d9n_!$rV9Isdp`NQ#fj-O65u2~h7EOQhl z=Ju@G>kL4a3SnRLdlxysUXFX+KuVc6*gjG~J`j%6^34n8el0QZ0LO)(_?^karki)x z9(j%fT%&YcC#V z>Cb|S^V}pk4*O#IXqIdU9TVd5JhCe>wIz97GSL$1{VQ z4}q!33K^9Jt5K7Nd|w|U%SdfVW4n<&ByJ9y6LP+W``W@L2a`HLC-s$P8%j!nU!qN8 zk?r<$O`ZVV%7TL{qvhje@0PnPE>^*WKbq;JG{so8jtn(7#_f8Dw!Z6>4e#dPbjBUD zOuUi~$eL6NLneWyD~wKH z7_G^h$AYQw^U>0@HzM(qubsRx|01s@zK^^abLn`lfS3BqUlnoIR<5s?t~k6m?_%b& zz<7T_e&21-7=&>iodeq+$w0j6)cR)(|3Du{w5NqkuV%p8Auq&K{mRDBO!0 zsRcJEHljW{IK6fh)<3lgA8xiJ;wr(5^X$&ULJ1EySx$7l6t^r;w8O5Fv!$LPvaTLe zMhhReYJYxSDSZJkdsln152`)Mo5K^LXjzkH4ZDg!oPCr{f>(tX4V;mf73AvC@&A#hf8Cw6U!{^ zg~Sv_-VuO(7RM!?0Nhs#4sty|-8#CpHroX>#r!8LIf0He8IODWS zD9=-P0%WL#BPyU0H0Ww6 zw$@0k5JDdJ$DH-;=4L)0-knRvY5Q*<~h>0wgx3>+~%9i``;U(#vZqxv-=$Gv!+(vf%3d1vM zm-VHMwY1Ro-w4U0fl}Ds={JmY_Z~tJPQt_}sB7~HP;ZvN`JM&VJX!mxQgug>!_Loz zNLAnM!jg!w&$G?La}8YT9l*fl;j-(JEDF);B%>HbDZHkiXnr|c5;%-Qw~fLEnHu!k z`a2S;W2ykM<(h5)@38Pn{Gq1zHhPO)_ptRsahF4XHsZ57;{IM-$yj82eNOFncTd|0 zZw0S=lDftdz^Kko<&Wy>XX9|3D@Z@ZSHBsIpWd}RgiaZo_Ta`3vcVGmPCV=5sCK(F zLe$cHf7m%BrGK=&elf$@?k=27Z2#WQ(FWztT|3Txc^)VzepuExUrb07U&0q=;(i2HMG8wG55@If_eTDF>jx>)h~GLc{xr$$ zGP|&HhtXa<&v`gVt5-O?+E~76oh@C5kUcU?N_H7`sCW73v#*=7;p$_x5^^fcGU+}r zu>ZHx>20cFpoWEL&xNCruQkve_pJU z<+`Bkjf4`Kydlq6W_#?hrtw)@AF+skNS3C-&D|;Kp0BBYjOE!$iL^&R>wowV zWoK=cAzezp8iT<8a<2-n-nNTsNuZYd$>R+okaI1m9X>5u%FIry!pQhS?KV^~Fh0Q8 z=h0`~w>BpYaT)-*?|cKmt%t-Up$>PgY4af$BNq}uO$>lfsa46tp_KV3LDJi*XW`{K zP3J=2q+=~|CbLJip8$#(8^SCZKUMR(y-&>Qw+PlWc6g4v?&W1`k9a4m9h+m1uUh?Y zs8=wxC{bx#QBE7jhdfHggR_%5L|zx( zy2mfbE*b#Nm29V`k~Q=xppm-zTV9p8)uV6FzN~#Nk0`+|U@^fZRKI^GV=Jyh=<(iJ zNedOf3e`hcNZ#j4K}_oUle$q})6eFVTV2dOih-?2H%hbIWqv>R@5 zy!QO#B+3Q5pTzO0{dWdoL0;!Ap?JOIela7<6JVZ_)yWF=0vdiu!aXL zc^$2^Fx=b5V@q2o+{kcPDsBUEf=S}P4g3kD{7>vH2{JGzBX47j*U;Vs_&4x=-{7>~I`DfzKaV^;rAc*s_e?HUEs>*1D+y#Nd1YzBYN|Dxpr(@`IJf(zB7%6>Se> z{ht7E1JEiJh5Ikd}_~Ti*jXaxIXKAeC3mFZ!gbFc(o_(v~?N7wo#pbvm*KbVs zQlK&U-#Zlm1W}eDIl#xDuAfxbZTxNGd9@2^-fy)LxXG1~f`#N3Jm^zhdj;F!z7PvB#}TERlbEonGL`J{xEET^7?fmv2U@;j3z01@!Tz$&4*1c_$oW1Jb(h4#(uh_MJxOC{80t z*LiZJWqmz{axvPXva__h((ThphG%C7&fek6Y}>*r<7(%Op1mu(eFhyTSJUnFyT3Bd z+871lhXBSMvgnv2<{rMZ0Yg~Sd{g6XCG?#&Jk^G1nJwZ9WFeFyD96ns0r?uSqDv=( zCwX<5S#@nX(Ay*%Nb+QpBj;?46$cpXMlns-?=)dp%1H_u7z9jJk zx|Hsy*Rpwzdns&t^cCoz5xgOOgu5C(5^sl*>(6cCPc<~)0BPfl zO*q+(B0@rkeu~ZVj^eLso*>_(HjUw%iFEsU?n8fP2WHBIU9vQs4EEYM2c=kTV#`Oj zvap6|E>lcTk&-RGY>q>|BxjCm(R?4TCV{PK zTD{GbTAY^G3wPvP978Em2om7^-N14E-Yd{NGw|zF@pi3o;!hSon>F0+GlRzYWMIc5 zwq!=7h;7XwnfxhbQ`d^4hWkH;;f#KFtyDq)IARJigBZ%FZzos7+a=yBS< zt?(bfYs=e(wY+fmGknTkHdSNBdFg@rSJFQSei>=YEbvBwMXZY(6ONz)bM*Zy?au&w zKe}s#ZRRkaEEw#(bJqZ$$fLd@WTi%QYMB#a|Di<0F9D-t`zW2aKqDz{W#FP z4;G!aIGSAd8QjM>2R*-)Xpe@G+}j8e)+dEdRb|O;-*pM&^REh@5!RHw=^slz7NHng zFh4WAAMk-JTppUa9U*+7>V$YvimZkfe*T33fI;Qi1! zOaOqBjxom#(02ZnmNPYNZf$|dp&p-s@pL``8ZMGF?+WQbQBKrGK155LWRuAw`5Nb! z;f=t$w`+@Zjzk5ab(E4M0CDqiv=N=B)84-ClfxU_Tu$Yt#uSVw1C9V4E0w+Ql&v?} zSD!G9=Z51P4sns&&{rgLDR(=kl}6exk?=o@eiK7?_I+WkpAGfa{)i+rc!cE8{Y z-9J-nskYm^pL8(Va6rHcGt=CCD~|rbmrS*NQrcfOd`4A|$&I`cHk=YWU~oFu=r4%; zA>o$3lUITjjwcwBcsL=323R*EpQnGNcn6KVAr6+!VPSXnxg{L5OMscj938(xEABA4 zl9EXL_ZgHrcWECO>#^R=Kg`?XJvM~f+tY>5rE(KTdnib62Hk+Fw47{S4;=phFXdjn zt!Q!S*FjkYv#{GDg#$bc2Ep5(LtbNj3`ryx#y$IAi4*~nxcNso%J<^{SGi6}tq+^2 z28xnvaB3QivrQ69_J!CGFOsU*3JQhb5sqt9!>^%2^Vn*H!E+K7jzIf&AD1fXI-Gsn zVz}kiBXaVzZ6(`E&Shu7!Rj`T@##u5*pkQ3xVJIxQ0U7q@Sozxrv|q%It_N)N)bmV zhvqV<#`Kasj~`Cm2=zUx#+hp6VsE$zCN*Q7`*0f^)m7Evj?&s|I9@5D2h3vIk@^l7 zJu%y*Y51A${F@8gSXwCUZQ)fRw<;;<+0V99DWZt%F2a_QFv@tw#>N;QPRIFIOXH1uLAW;e8gu=p?K*r&%%q33 zx`^O%PayH1YVb`?{@h&0XA3u*YMWh&`E#87qdWjRS8Z*rSjeziTu0>ZOvqGlIswP> ztlUjhx*xlLuoj`>e~8}>Ak{u6Yj^sNoYya>i&*tGhVUaQF8HAh`@}=n&nr9=F7B{YsZgiP=L8YJ ztR$^=jnhuZ{{TfzBgb|cwx1o{ox(aYj#TyFRmSmUs$qB6^L6_c{@z~}ykYSRUic;P zj?%?-jTY7`>r0yj@|Nn@;4-pxA9gN#&=o3YJS*W$otd& z6Icf<;8*VF!W;2%@SDQ(kK@uToAZS$`7E2qcY!&Rx2=CupR?85UVH)YJ?4Mb_=Thgs_Dbun4(EhxC;G%yw!JQx;+SFhAB5M3F)+|=(ouNq~ZV8nn3HN)R*dF7h ze&~O}M3+AXbe8P8%wPH@YWyGZ7Q0||3%x6Hl+)5Cxfum_&60}T@B)nEyAUcQIG+`M z)ZY~oz`9P2;d={RPsQ4&i!}t&;nQtrj@-`*F8S0lh4Q1?0?63;l#ySF-?!eE@k_;i zA=kbmG}hK^niZ|4v0$}lYU3PN=@;$eeW*pFw}|{V6V2ic z5*F2TxfWb`R}sgu>Jp*<0C;4#JJA;y+D&{r;$I(VejoTjZ}C{`vgtY$dQjgQg_hd# z3%FJ>3$F5BZRk~;XJ$uA<(B7dC86+*=Y{-xci_zj_KMV-PSkuouBFD6bD>*Z{f6Ru zYdwo3av~p@2~h0gIW_S2i#%C%;~jZ!Zf=>QjS>_<#QmPuAT}ao{nP_)YwRx+d{g)z ztp3UV9q@;h{{R(5oy5`I&E=ieb|L)8ql!;3i9E(RZV3Q(uY;dYyYl}4wsb3q#nzX% z%z{&}NfekE0I=g9czz<0O_B|NMrdvqu^{65b1IsAVS*mSA?V!Pr5-ITu9qQl6WkO-XfF3L|;JN-pLD=yAd1} z-C?)J*yCI(L~wFjAd~8TmEHI=#M)h+i?8@5dls%;l10Rsm*tP542rB#n!7Sar)jLL8e9s+&fI^&AUH~OxWl4%#A z;g@oWRmKWuHtEbexhZMYK6-T{qRRq$4dG8;kUxQOX41+ z+J>f%$c>nz2MdM9dGt^@$9nxc_($;jPWXGMSPd%9J87quD6Tt?E#j=_%rbC%TCdw)8ki}i+PgCH{Oy)&TgD++#xsBirZLwYDgOWrdmZ2g}LLKNw!#b|k6ouM_hJfr3Bz&k+6AIi5I!~XzifZ9gt=-fI< zkfd?OMoIkZ+3Y+Vu}XaS%v|yq_T%55(z?5U4r#&EM6a=iH?x7y90U~+TANDNJUYX| zw$WInt+ljqg#a$a18)PN&1TEtS6#?em~aot<>#ju;2*-io`b`N-4@z3+m561>FH41 zXjaOn_nAY(VM!gkb^NO37G|19%5vxsCARB$LZXcEz&$l%0GLG3$H2!p`gO0R zwNDJgCC0%h3Bl-oZk>(}FJZ)9^WavKbcs`!>;$AKAjqHA6*`b__ zEI)NXL5u~#AMh_){RY19#(}9%J=99di6Mccg!CW+hZ*B~^1i&+fc#4Ec#3_uG6@OV z+xGm54lux}>Bl(d754Z%!)TwLWAeKvB(y(2uVKEn)I5?7>2SPZcLE2#IQ=T5R};+_ z_GH^F-rY70-!4Eo!*lspuY5(&ZM6MY&AFZ_;y)|2M7NmBkGt+qQN?&cf=`-RK2^s2 zo|}04yz}W_OG;`{O!+#r+$Cmq-V{r#tH|`rNk4mZ!Z_4nj^o&8jGC=>_c}GT&Yuj@ zc{dn};3v!ese#(cdf|s2m4^e#ZEqdZBdX*b>f^Q#$_GmCwKThi2%hfsByt3?Ho*I% ze0tAP!Nz*LHE-Ts+Ts zs*nj^DPWpjlRx&=t41e`4>|^q1?+i>IDjbJ zkC*+NW80+`8O?d6Z};CpxJKJuLBsGs#d=nlz8s%W@)@L(ReWy*GOT+?4!!Vro@i^EAfl!HvRFTecSTWslW=UoP562r5y(c zsqWUVrNyHqugNCij-M}K&-C=^U0=cdFGbS4Ueiq;%S)>(l`hNx;W9SzImqexSBu50 zS;H$^!lpSu%S2lOKAhwEipN_GTf`~1LT8d#IWd!u`{$bHly0nbMpkz}PrqTGk2+qP z@&11rc*9W<5A5~RqmlA*yeR3<0>7h=g#Q2)^p781nY0_2ZtSIvQR9h&GO~a-<2+`+ zkFVK_;*O2*=frc55!p(z$m$wF7+}3PV0ab#X>svS;m?A88n=wJ-9G!m9xi}Kd8S`1 zW;ia_E50+2k(X}(R~+fJEe^O%IBI_LSXkVIjv2mmfAw$e>02$L&PLFOHR|6AbQv|D z1Zdjb^NYJZTFx7Un`j0%krlgkuXeQfdv7cV`v*#X#j_VtBjQt_T)zf0p49d5)!|&E zX1?S90EKmHw}c;+GyWC)11u7k)yM6RhTFpz!7;R)(nsMfLH_J#>0fb=0YlKB{Hn}8 z0)UyDG$_I#w+n1{0#wI6|ddT zgRuRR;U9%zrWz2IsX8KGo^(9pY4c9&kMveb@s33 zEB3UI_&>ud;{7%_{{Xg@>ef4Av;B@7yod>zgABzO9Pa5~(@*>qTKs8W1vH!40c9H0 zDTV5HLpA`f&MRfImNisFG9AQkLP6R_uN(Mw z3yps2bE0Xv`#Rlj7MUb7#{l3ohvxZ5;fz<<{{XWFoAArWI>(8ACj3Q3yMx1)a6P)o zAX{EoE40jH$&+9y8SgOk6^-#@;*xkb#X6K9vi6|!Xrd*~pMI-xactA1YTFgdD@_<& zG^iBg*0|z#+Q-QrKAy%;62+=m7_PLxfEZGv1E9`v zS(-)mv!%e(c!B=UY`6n>2a&gkhksM=)1_#aVV?Z!Y{ z^v5SX{VO9w@qdW^8F-#uPr$mKBe)EvSi+QaoB-(Yzsg8cjAH|}S|>z!+5veXn5_eW60V!mQ#(VuF?mkVR(Y-DegYfC60Hw`NPMA z3OWE#02J}l(x^$P>af_!qr-H~XE|4Bf%!6=1CGRWr|Gtq=IK`LcSRTa&8Gn8peMJb zQ3qMz%{x%IQ-5kzW3(P)?p0uLK~=&2@ffa?UA(>V4y&qa`mC0=v)v#s5&4S~w+kO9 z=Kk@>#ccR~`&YNqC%l5xvd1JIY|t;s5L{tc1GN4$&lKx+UOd+mUX2|!3&;NeN!X~6 z5*2^d1;AbhN}HB@kAS`wcwfa>_~Q@W_#RWgxU2Kn-P?F-(!)=?NnnCM?HQF@ zY*D<&Xe6@$UvC&u>0I8U;fQqGyGxBjQd^(2MkbZ5iDD4#;5p-P=yTGfu3p3%Oq$P! zVNVlSg(~7mZP|GqW3I!-atO{>xyKdno*X_HxA-$PlNogH6zS{s!*wi$QSBMm5h&aW z%n#3>aoZK%{37_drF=Nn?X2}nS+u_k>tZhgFu!nX@Plc&n+w@Mfb*>VG26@Q#G!Bns$jP@0u#O!RXO-y+KrrMfR(#q-daLE!P8%JDSGvz3#hx{he#6%? z)_#EUdCOs{%el4RB%40ps#-Mu7RXz9td4e$Cj53;vGiMPMb<_`(Rr~PrU2N zVYC3fJNj1JXmjtW;PC0OMW|b7k&Il$DHBZ-ZUk_CQO7CI<6VD`{ClAI%T`73_LemJ zcpGZVJcetDV+x})F~BX5Sl|x0?OuBZLbQRlu;Ys8;n5RNuxm&nBJS9E^U4@)Sbk6j z-2VUxIW#snuExiO;=jI%TT3F%ZEWi<$b=olSS23^a{T#~w11 zPt;Mxt)z@yGsIDX0NOLb$A9jRYVonnO81qc9a;1lY<-=r3(8t9$I%}Pelh8qNA_lg zrdSxSAf7xrA#`QP{_i~J=Hs<~wEQgibFcXJ%w1}>?Qd&yG*eG08zq%v*ups1_!Dpk zals&C74hG~KZjlr{{V!x)8k2Jq1GV{^4nY=S{NbjMGneF>v! zCL3WoM#WTt)8)?`b;fGbL==V{@aKAv^dRgMQv(4WimpiT||aI3VR$B(6T5qN6k+lgb1@Ywm85S$El z{#dVB(R?icl*{Em`y0P^>C?ae09v=3Mze{3c>-?8o7) zN47teb6TB+yIQL(Oe6$sV8pWY=XOUOkK`zo0F86zZ9_*F5F|?Jz+(eE^d6$VjGsh}_uSj3mm8nqeaZ(PFFi5ajt*;xy3xG5gBg&CFbX?xPfwKK z@JC}@H7Qu_r%?IlP|}E>dnVB1+m4@~^shM7^s*p$qg;c=f1nlgP4%SFCiNhP>Q5e? zpQU+*yA+nm@~Bcs9eR#9$FJjD$=K*?L*>n8)IykvK`ZKTKA(kr`{UmZ+TWp`NY~6g zcMJkJ>PJt*>0eZMo+ne07}|Ivu6lO&uMyQPp)T-+3Wpd2raz^6xM|x|d047y);~Hm z{{RFwhvEqDY{Nn%{nJJcQNrPZFwZ1%6!z`Xyn9m9Ui(A8(zOeHms)(Pv69Ld^!% z2(Q6}E78<;w@hn@)otHjumB*JR(sR@JyWZI7q^)J~M&T1L!J!M$5^Smf|wk3`S&;@CE?mZ>auVE0>l>St5{1;nR_p z`?$wKJJ-=8<*j4TEi8b&h-#|#(cMPTubszHfKN_`{{XE~_*+)A@OHoD-k`g+bTD1T zBx5@p0Qp3pmB&?Kj8`Fdu4)?LGhUtVAI$Q95$HMR@~-bgNHx7K^G;c9*7iFYT0cDF z%<}fO*v@#DXghszfzBudWB8+3xWCp}ttEN%@_*4cjDGKcGP%G$zO~lh*l4~C@m`;K z;dzbBw(%pGBe+QvPqcD8ylnuVxOw8dx+X@px3+?8I}&8`IE^|5{OWx^eMd~xQqVM3 zBQt zbFFxO*7-(-ADucmCPDJR%((fH4)){a-?P@V(cauyUqvpRc5q~h41&rI zbH#ppcw+lm*7T|T8S`9NULC0xIgUY%ti13)opH9BZh>p!3q1zP^5ES0!W+2m0F47~ z0|4jq&q~LX-u6GxtM&@`)8IcG`~mQmk>IU**IpWSnQd(;iN~0&8Ym%`s3N~c^oO*b z(PfF0r}D4jOZI2h{15Oq;h&3V)1LFgpAj^Vvc88coTg}RU5bW)ggaYsuj<$KW%%o7 z@h89I=U*;RSwLnge}wQwIK2s)vG$6^1Fq%4sNUW$?&7Td-U!7t z%78FB)tQz4&mR~SW;ml>FfmEF7v(%tOoKVi01_g%Ok%%b{uihp4LmwA(@eDg0MScd zj_oRe(!XPV7&-p{g=yj6`vzKn=%uSjhJXLk{=+|S`zWtI3+dukNY*`O-OIadRSOi{ zlg0q`?O(!|?Q#1@e$syvzBc%q;ZN*&ZK7LfT7B-DrRo~yus&IDbp!=sf;J^W1P!@> zIbMA$`tbh%g6n?LJ{$d)e_|x~k>Z09x0hVEut?^~S!ABx=W1+BGnU(pi~NOuoTL8$ z!9l(#__Fs{@ehYIh_BO9*5lT$qM!Tm!mz^z#C@eBPrHtotSh@CqYqB*=g3|w@b|=T zfS(uF!@m>O8@ns(@ATVS2lDK%7TQo97imy7kjEIntX%`bem3~M@lyWR;Wm%uPdw7R zQ6$@K?5)_Z-C%|X z+a3mSl~>3t6}q079C2P*{{RSnvpv_AsU`06sUO*gnh)LkxH(U$;-4(mZ>Y&>dVHZn4K*0e~C&%wmd5MD8k6agUIw~_V{hG(Fjxb( zAmB2O%DAZSCV_u(fLp8gIqh1-Xk#tP>l-|SJZHUk`c=KX-kEiz>GG$TvqtJ4QLgQwx%+E{j@?KE zFd6QC{zu9ON^D6L)@@r#@FU5mA|=?=VObgF{rdz=sQW)cibp5#u5VAc)Ni$?*KRKa zS2O2&#;SpgfD9lQL62V5>FxGCE-hPLwP-J{Ewdk+23P{v22NXWPwpIa;=3Q&zu_N> zekJNxuxS4PXSK7ovy%4q?(w3HBZ2^|&Yoi~PeFy|vu?=ND(=UL{{X@_s|y=FR{9{; zX!t=t5x(3EAkI!Z*U;A{fwbwnk$-4VBOF(-_?zM-$HcD!Xz_eSwSs#+5&>fz;w6se zJ*7yD6ku8L_nEVSf;}r4^tsVS%Jwj|{Y%49>62@gJ}QG!gIRSlS~PDR#7vmwm+mMW z?ZaT;X1;6JmrK`m!6$~xO&^iwN?2{djdH{SeFr|LHP(2J=06cff2Md-NRG-lAQO=k zg^YIb0lXZx8HpovW1I{M@>n90*%jjfpT2r1@5gXOX-+oO!mO{M)!10uNvgyqxs76V z59V^gMl-hqobig-@jt{L75Mf|GRMUivfjm|T1BT>2@ZUlSbpSd?72AhuVV1$hdc#+ z@G?&l+dQy%k51GQ-t-fgF3TJF5$8J1bb^codH{SLSlWcJ6yubz|V$Ykd}IEbgRDMoCgTmB;S< zt}vmua!Y;X_NX+qM@=>SDHNaDf^|lLIbi1-3JmuHn&^yo(dk!HSkKFba(kEKe}Bu; zxN6mQvOPL9RrT2;+_YT_Mbd2|&~$Ni+l>6juReeQ&3x`Ez7~vRr6(qRP7e!=uP90|QHt30{{VvekBYu5 zYF-+)@b;H;YAp37zqr3>%rGn>ExuBQAiKFB91XYvzok!u=(1^cv+7s@La!qro;bk& z06nYotKgS}ZC36EWh$5eY#fdU9>dbVO}-uJGR1QQVZ?C&3TJ>=WAPRFo@b4XdWk|d zOQHI%SAlqXZO&J3<BOGc8-8r8&@z(9E5sIFHbH8Z*TwW1+Uw z;Uufb7>=ADZaVg)lG&W9hHiQc4{pBRm3GE&IyH@P&l^*MI&eAb`c;>sXOswV zndlEYv5!jT^)zX)AC%g_eqDP0RW&Vbi>D@d&ZA*(YQ=W#X8F$1w1dWb^&gwG4s~?2%PZGl;ua;YnM(>PuuM^cFl1X?y z_JPp$UajxPABA}|&?$5~esXwY?TpuE9(FjZ)4Aur*}h~(2T(BG zx^a(wDxRUH$2=v_l$AQ|?Bl1g&3Yu(;j=Rh#9$CRfBL_bWMA0@U633cewFA(w_}0P zvOhgOF?c=;=$})P1zDgB$uvAV?ZM#WA7ZDEPAl`D;%0-Y>H2(njC)O+H<__7B1Fm(5}RvNrx8xcA28?O&dM6)Y_@(J8hqZ*M1EqcP>N$zI<< z_*dBE_`6vj37%lCn@8ubi$(6Ac^I~cUCXByibfqkk$&p{dB#o;Vf3#cwuC^@+RX!* zTkZ!tG7dX`D)&!_dPTK^N2r1Jl$)7Xci&Q1Ibe9sFguQw;aam=HnA<=mGa5+MH08l zpyLaYbA%Wb`X(BD&`lqgVrlZtp`uf#>W>YQ#vTr+r+AYX$oKkIRJYb}-cR-@NlBC{ zng0BF#&M24hqYx+k;O8%n7JS~$=LdRew924ERW}_<)b6-S3%BLiB>55&AZP}WyN+g zTPCeNotzCEaJL%<${eif%_;>n`$=uuqz2ZTr0IL@Ve_{)mn63!a7NyWIqQL5!K--3U-*@K7NdC}jpl~h z(W60)(OROScj{DUJXe6}<51M@Uh*BN;j($a`Oj{8SFu@*U*YU_HyZS570m4ZM2jlO z(V+QQGAZMpS3aC^SntWy|a&q3+wUjG2`V(;NM$4`hc zYnpAXzlYxT!6dzv2vm~!Q|4eY0`4Fm#=a%L)O6ia^)GEM{EOAVVB7~h4Dr)GmFZp( zva;9R^c`aa-3_sw*kqH8VCSd*0IIQZH&fEb)xYpgpMd`W5I!(`QHM#F#ItyM#%sT` zY4@LgId7uDMO>Z^0L6b&AF+4*EsZz!z`5{`#2*z~c(QFC!JyRdKoQSxD(zH>#~H~S z8vaQ<39S5L_)p+{UqI5|$Me z-D=c#V>ldDa*LShT62NV75ho>v;*+R!-qff3$yGtNgFHE-_@Cg1!7Dv()vn;R_@8Nb(Sf;k+vysk7G>PIR39+| zo;Vf!Bg6X#cqhc)wbzTj59xj;pH0zKE%jSQw2Vyh!+yZ|Byag}*$ba){?32k>o>KB z_6hiZb#~Llko-ilK6R-gXixTLqy&kELzFlqbCt-&e=VP|2B)mrXg)CgtUfa8PpA!I zZ7ag|Q%4`!=G0|TzE33s3_iwC8*i<0)%dJ+(b6|Qaq*Arqwur#e$*~Cx74K6X435> z+o{bmK$i19!5gF`?`GO@7Z?sVecV^(*T+qB;fAZO{{U!wH8*LeM-*X__yxK1h+W&T z#1cp+AOJd7=!g6iJK`3T<4=rNy4}I`E6)og;o#x$+2671<@&-Bz$u)C!v`3iOUM%{9-|C2rs#V%%=)EuoJ$idr zp=o|D@I;0`4EWy4I5hc=-?Uk-`@3`U{K1JE*RwA;8LkrY=S(q0VLHb1Aq zvo@T3L8ry7!=;-`3k6uNE}`7W^0z8jx!4%=+P#NL%G2z%TZ>t37ktsgpCU8y9{gi( zI0w{@)uPcDJz2`#S!yB|lIt9@ibap?xW(%Ya4r=IyoYiTd07! z5?!jIvMzpSL>y#b4sl*p;LRIZz1B>cHQF1CbX$QqeW<4@2IeGSZuwW#)@Q^&5o_t< zY5YB}g}Iu>W=TtY%+l}=&6AuTyU$9Oey*`Ja+iGWI{{X#_WGCh;5~%r4&A=xZ{HrhF-R85R>eqK#C7km{ zh!S}%iFblFz$YW+8@hAHYV>atU3h!NR<Lt60?*<62MTs@=6;qDAaY|fcoiVkyujsUN!yl3LHe}kH5!|xGUK$lk9 zm-d8L(EPH+_KS6nNStok$l+0w`?zmf@LvmjIlt9)mC&L|66Eev8NhTAD0X9p0|=m# z?OwI<_ffv_Z;Gw_GixMkJaE}TWGB7vc~J zd`PgG>qgbB=d_;A29o9%MBK22Qb=NX&wN&ggY`ca{4Le=vMOAv zmHAloWI0@nW7yWW(&s(4Rye6O%L#6*bcm;GJv+%$aK*PXlu*sk^T@(_QR8nC>Ygd_ ze4Ze<0wZ|Iata_-3c*6{RrzqBV1dUK?SC75HKlmJShx7g;VVrx%E!bkWS2_Q$=P8% zdr{GmkI1qg-Yzn{;B>`#-M*0}lt?udA}CO#YR5YlJBp5ddXIX>bz>8HbR{i18CF_e zs`t#3&I~sf2UajFBPWQ)tRfYYt88WP%Q{(RA1+sc}KAkJiuU=Y7tr6>Cu+dk9 zWvkfr{{Vruy55uGTaOO-mi}**P^4^BM)5vAVUB&hEA=1YXM!v~*9=zZ6+m8}cehS! z;I9Ll?;3nVvemR^7FT*DysdDOfxF632@DCwJ1?bv%6tp(e7Cl?@=1X#%B_rGat9dB zIIqq4hZTAAY}(ZysBqR5MxV3YEuWYC4UeFH7I0cKHhI=4@LsT2Jo};pxUR$*)#c ziqP_7d2VUEsc{OZUU(aWU=Edwb7>^-Kbmv6Y$?-*;FH)4bgFP_7n3)b4(3pK7{}v| zKQ6+w>?AT_1B`9XT!05oP7go+s^?NqLw-jTaXQA88>W8hqJ=@}w-^VX!2VU^y4IBl z47UFOF7_vB;K#ch9(e=!Na!oybp}!kLi{M$gB&-)7EFEa2n8FT`{eZPU!`6xc@joU4D|IM z{68vw zo2W@-!*BOl8{J!se}z5ZD$qUoF~>6Q1afv~8OPyN))tJ&$%jbs&#~#ndnbfigfWmJ zKOMhLD|=AU<QlEqojfWYHDhDB1bxM(0r)tAgrLgWvZ>F-)C;usE%4XiNY>^pCq zo_6toJw50HrhO>dM`Uec`LCCJYxkA2fB@&$ufIy~z8ZKB!=5pZUDP~vtBn#pBEn0E zL#F1rxE6Z2Jwsv+fSlKk6y8yW)WJ!_tJpjd0@dml7>hg=%keFPJ$M{U6 zu6gQe8Z?VY?`>t$qJj08ZPx1M3~h|^6mf!mX}WH$aBdd*-8MX@aSPM8PJ2~v4rpOS z8nhdr-N0oap~wUO0IYrMb4;>ZTV}JIe*91Jk^S6rj(U1lZ$m_nqcnKDZ6CuuQ^Fb( zokG{eR_la9ODvF(Nh3UCn)_4!2-hdWSUhp!T@T`SjAQV7+KA`2l3+QKBZG{b0=VZL zYvr$j{{R>CFNT^1vEluDNS9ELSG0R%mN)X++EM^n5c+zK^|9d3fPW9C@ML<$o~L_d ztv%?9`r(yjw1VDErC6xvuN9s2HRaV<{pbGxf_Qk};vd8R0FT~1m%^92e~dJ*5MRl0 zarR4vOPMw>#K{rHMhr-{57 z;xD!8S|kwN*y?t>t)z{(J5&<69^XM<)(`A)@vB()h5I`AW5%90g_l&4-Z-yWcqVKQ zoT%x$tyMX6F{>ReebO%!uN_4qU15ODa}m$vg2d#%%ui~KZ?hmu*ylYS8-nZYiv8O7 zOaA~QtHVF`39|nH(J5bn_E!Pp0N3wd!ZlX-QQ?9+={8^bB`WL)|J42T{{Vx7z6|*1 z;}7ib@PgaH(eJm=J}BuLzN~iz38!1yUaZFjlXngV(bqjI`Mv$A{3YPOgt`MB zvG5kA@#*%fFt>*0{&XAU4d!r`ibvfUU7%O>ZT|oTrtwCr;V;>j!&>%|6K zH1`iLl(Bhbe7s=pXXoxOKb2t=bjYjX9VlsDEjqu5We|u4(*#SL4WUBd90dpOXT5Op zXgY_5HQh7*63sSQwCUD6w2g^}?KaLw%#EC=Jb-gj6NutCb!htCYt6x zink|ecloZvdo4!w@1?i6NW|9r?nx_3fd1t38m2NJau=X zYx=IDzY8pN2s|gHvfQK>*9#=jBW+FX_fvU13@%9P(zvJbHiu#15vN&+&B1movSVW$ zU>uHtLEsMJqwyo?*1A=Rvw!sIBQ0?Y42ZBs!VX9~hdAx+Tn@jie`?DJjup3xG*n2_ zr);0bwMym^m9{Z=JZzI8=e1wIx45v>#f{Uin1OfTpO-k``-;xHcwaYA0D!gxdCmqa z)h%LA68(fjHMH_b6%U;lRzfz6Je(h)&U;puGK_m0nl-GR7Vy-Um(ECe_IYvq$t;ne zC_eD{5E9Z5{(`;F#SnNyMzAq>H_p4$ zEG`n@Lpqgc+DMg3fLrEG!yx1C^{*uG4uz=r_r#M}$#)fucWxSaWEg}JM%=3Q&tNM% z>2qF7G>=e!9qGOp@Fm8L;26!68okO(BD-#Kw)hH5qh5iv&J~n(F@vnjPn_u2oYF76avCnSWMCow~ zMs|Q4DgE0Hgf}(7cw+wm#rjX#XVOtFEN%C&SyfsfWB@sCct-NDxHPn&)mKJ$m%)>+! zE`Cr?u)yutwNdfW({C)Hy0g>T3$<~+=gnp<9uz7%=K-_OfHbCgxP-Oip z$$VAu3g^bYHNNqWh_~ELtW6}+ZgcXpecU(u0|TZ9PAlqd3*pN6gZ6O0i~BtrSh3y4pb9klVXI_|~*Q-j}{ zihQj*7gb3$bI`O#)kc^sB3#G8XXrrVsL$o;U1jRt>2SlQ+)EwInN#Jk4zYCG-yfY& z@S%t`gyRAD*pR$3-d7N0AK(QKspNNw7(zdUkWc%P_ngA zGq0EXm-7-pFf+7~j+y$`olD}aLibXW!`dP;2^;r}zj?ZF26#WxsB1b!q!7br1ZG`D zCmA5_MvSQHxjchW3>uaFv(fZ4sgLF5R28{;pKE^4-xPFP&lBoCG4ZCL)^_@oF##tgGcJLuYA1*gLoG;lwnUy?8(bx_?xADnc=x%I&@b;MJ*W&0q92q zpKim_zl|>iUU>7vc6R!dTFmpn?5QjfUX^Df7zxNblw*PqwSAB9kM`2>cZ7%8bbkZ@OFcwhF0@OO_A%`K&9Zf1vL*(qQXS zth8s^@OYvr#BwSoPs#{xy*TUJ(y7a>M{pa^~~ujyn1s&jyj|LRGX03ns%JFs;InHv9DT z&sy1!TC~%`6(UB)aUzVyc>BEa2V7T;#jV3?hmE_B1rF?-4jZ}0punzfUl2(c7ctGb z$?MACah(4EA&!-A7^A3`68avwed3sAMjmu?7vtqP2N>(l03MyIfVuGvy!Q;VNLpS2 zjYj8SF@gQn1Js)HThA9f4fc4OVvq*VHjMTBKMtn8dGXin2jPtaLZ15GaL)-<+t3Cl z_=bOk44UJPB6X)^bhTCpMywoW}7j94l%onf=G_uZVs)cnd?iVW{d>qz)Mj z=&Ui0Mq3=ri}-(patHITc8>^QV{U0*6?Al z{{VNdrG6sm{{RO3PkFNQLx$=|hx)k`6UGK{oN??&PL!8l4m@q7#xFFjF63NVks~}m zCroqXo`iNPMkuYrnR`~JE?4SSABpo6)2j=|(EX42o1`wEaAk~RZy$%IE9HH8r{+W) zasGe8yg%WW?RkB3aR-2YGP4Mz+Y}m%oEXW#0&i9S0B@-8UrFowTU*{FFUaErbUifvR{ReE-3y9{+KTs@^1^6Y#)@yAJu^TTt)v~z=>On0xw4;xyxo#H#4I^jNO zTNxjRO8xQpzo(V3x{$bX?&SKE90Kn9V_klTBZ4-etX6g(&UlK z#_13Gz(eEZJ%v|}<>Q#jer?<^J@Zkd&Je~96pzqT9DKR2u|62vi4to@xsdJJLa6M2 z{Zz6=0$WAoOS)#=y>Y^hG0kSf_LjG3qUABWAK_k)@b^U0%unLIfA`ilQUsdaP9!NJ zmEOGn00G8m1BUxMqRndw5|kUaFQWQaZQ(bt@h#*!HSN5{BI_)o1BJ>A0)M&)<29QN zo`GQ^PLmswRr4R+=lFZ{HLIX_&r{L7H+kWGInpa@_EwmM9%BXm9o=^Obg5&B>9&47 z(fl26bK$E97Ut6HjjVThKX;WpayyK5sPy|N*HYbmDc=JDmg8{1+uwqCtVnciAueq7 zTZ~4K>@z3j&3j+OJu_6lhfCG$ZM^GCT|NnQQ*Vv&2^`_1sstsq_o~0N>9Phmp80`~rG+9+>s3 z9}ItN4~Y?Yhr%Bde08I})`{WLZ4zKIc1TAByW_TfDeb8ZUqkyo(0o*8o?8vxVxl9V z{{Uo)>0#F5^As}xPaSLHPXYWzm&95wlj1AOR!DB3NfT>ff;br6>t8@x-a*9iV2(Jg z;&91pW9hvnb!e6IU(hGP*9YMrg-`uK?0@u1SMzt_&2bC@I{uG-3(FgP9q^la=++bDf}Kzs(oo zXNPWdI=uB=e7#>svlA*Q`8E9)iP7 zg1`nAZr&?1oBF=k^B%YlKoFb8ND&feIluY5vn zbO+Ne;J1#?SC$z60JP;s2HB$Pu&FJKAD94m83MA7=R}r=oNKz4iKH~zANuFFA~l;P zD4+vw^;q-seBH^cUmruGpwpL6h{JVr68)`w)$*gAkIJf`{HJIH@@kg5Wi6JpvL)q} z#5U4lCA4!ab8Xv=ioiEN?I_RTUVVG!U(5EVM!T4^OE%W~ppnZFo;wbJR`Ew9rO?OM ztgbX`;BS6rak!^()2QiYVG~5sgt)g=g%%4Et~>i^Upmi0@|}9){aPQmp>~W`w@jmN2>UoRZAM43K{c zx8d&>Cb?j~9Mmn~wzi4@jA4yYq>XUQ(y+m90Ouo~I#)m8%Rdaii?m%r#ope}OuLG0 zMp=2xD=ON!T$gg4aHs{xEo^|g5Z<$XVbNMcg7!wE28*`^(`L$(_4eY z6Ui=&_Ht#+6G$2`(C*z61t0`G@I`#ptLfL;KbfWKer>Jgth)>jyIEaN&AYmgc*O}O zik0H@KTW2aKeWnZ8&)OCSQTCW5!93)EGtX>dvW>3Isy5Vn z8$K`i_pJDf!1`x^?ouQ6YlOO-rY0;v0PELa>ShQPI1M0&CmQHmd^J2 z1-zGnIHQgYR(5M*?6}K|VURfaKrPdnQhbroSg0pbe)GA`czaw+D|_7{;^7iYqPwM$ zPUca`3nw_w^Q<2bc!m7`0PL$zkt5hosctX;&u>cfEjvzAZf%_ekvR{whFfyrl^pO} z+P3^B@QUjGZ}>{JxFj=9-fBVjc18%n$vr^p=qu0m^q~3VdS6zpG^s=W85o`g_-*2E z8F+;)F9S(E{{Zicme{8l=Od4oxE-tYGxlfwk+k`IOw;(6Pl@1y-W6Xl{J|urmSjEeF~T5CFn7I_pI zK_Ja{EGGCoZ{*HO*DA3 z$S{=`xVc&U=V^L&x#8_f*7cqK&d!m(?2XwNOsP3t%ar>4F<+pcv$u*h`z;3Y&hlbm zRsG9nELu-51F!J_azDHceI4S@gx(y~kJ&s!r>ibh?jJ8Jf~O#khNIDb6Zm^WUq8dI z<%XU)%xriYbHKsr&jYqAmm8bHta)a&I{!b1JIlg^Ze=5mW4qhoAIZN<3~!XW~_TK6qeo3#nBk^yoWR#uIo)OS#mi zywo`pIv*x8zzO$MpYX3&DV%BEQb&`TQ=Lmj2j^C!;Qs&>>zcHBOp7G*ON)z%56oB0 zAmsD+k8f(Nr2fx-Jn=Q;u<2S?*yB;MCYiRX=N~(stWRz@uh?G+{5$(>#!EXyN1p|l z0nRbh=eKWq`ftF00Bxj%Y8Ol-8-VmVIP0FC)%5YtYulETQS&n4+CLRpACrFw{{Uc% zS>c8+6y14}{JZ|nyaUE?Tc^Jq*WR8M{gJ*4_&dle;rK6Rj|543`|=oLvwXaLI2HOo zp?o^h^j$hQZ9KFqgOWa+5KrY?KaLkoX$b{m^1v9+9AmFF=i@QBxvSKv@>(8-4=%yN z(WgxxI{lkVu>;70BoUClSXJW~$4q0`SDtvkK=4P3#FqNamAuifA2N-^amhK(Ju9s7 zJ>{Cni*0~Hvf7e*?fPJUOjq;O@oESc;uf=b=jV>=gd-};?t5d>zPp59y+1?YxXoG={eMHp zS8fPyJvgVG;WqyO2|Ruj2wb)Z$JdH$70(?7ebM>(VkzWgTU=+-yznUEY=D)^{S(bh$yeq0TGOdE^`O9^@!;2Ts12tcxh6WfCHmKft5-vDfmg8>`lySfP^KTkMZ(D&%h* zWRQE~rB=RzLyG>8U+NPH!v=Onk+BcBA?O%Ut?|cV!d#&0{ z;i5}Q%eWA5S}+FXJo2~$1Eq4BM!l(Om(X3AIYG38!ue_k-oYN2HR$>_jjqlHwcr_+ zf3<(1%N%5VqCYqfkgj59av2B=0MBe!VIGlX zu4=7eJj!4wt#2|6B9I5m*0FXrk7M_D#ad>M;$PUV@q7pS+gK)6jubnYU~&i@eJh^v zo`vx7z87eo2k>;TUPa=VZK8$<{{YrOI+fqKbHNqzXY6m{zZm#y#a8|S)HN|_WqtsS zZWnZHP6z;c9@X^Dr|^HqJ^=XD{{RVRhG2?&=*cf?{{XvOxF0eO!l#<(ZCRhVzYldw zPYvk$e~0g9Qw^20amF*tY*ie4SF&07gY4F$Ez5KH*W!fV9eyqN15UKme0!x^C4$_? z8#+t6W%CN-kMqTTglL}-B-JgzKQ_=XeTc4zNgOp|Jwc{ka#$+>+|3=C;k*~gFoyAr+?`>R`FUHCV&6d{Y(DVU zD}&H*IL&{dFZ>q_~&0a-U5HD$4j zO|g#NNLm>G0M@1#&B!cz^2@^Krp_yg*EQ?gdk46&4-;w-{gPeJxcO*CKsnFNj(F+C zWNq%HpzjPMx`g*SR-bgME!u(R%-aBs7cJia_Ngz^!&+Rn7FuQG*COJ@TKKYs5#42u z$hrBIR3|67JXZy#Lw$X7Yh|ZK(@%2ZIO9%PornscXQ}Kv*Vy-d8u2%W{4XEDooh?e zPnU4>3(0)7ohMzQO_w>yRl!zMz{Ukc?G{`YGO}A91*iCm`%`!|3tMHk8c>fCLGrL* zM$%4sVn+t7c&=yhUyiSD{7*FZH`kK+w=%=?F_uC%9=x2N!n@6DQn>I3gtWf{O{Oa9 zHoA=ZGr#86o*lbB+aZUIWw~^6OXBZ?!|GZnc(nC^t0jq%etj$jR%|fkN(z zYgHC{o~@wiULCv9{0-ug_7K1j%hsuFgtNwr-!1~ym6(bn|J>J6APU+VoPYGAlw+{WdUPtz_3>3 zf#^8mxzCEeF`rS@?zBxt(%K7%CE0TJ>E*oALIQl?Hqo$-0`MvqV^?IZc`mWyC-DZp zw{oKS?o|OlCrkmjbjPPoE88?pI2-GGD~zABft6wWSRHxo)AFwZ)2;2V^|&qMhs{EV zf6ap1dCy)kUsd=)0vPV@oA)s);h(nyuRs2}*NM)1Q+sSS<2 ze4(7Vaf|_jl6`UQUERNrEi{c5MOYpDrxHmUvW86KBWrf<0LBN>li;)IzAy24x>el5 zFZ5K9a>#@Rbs6e0#yeJz#&3t$*2nusDB-v_SdCKUaVqr2#vOhC04n)b;_9jueNVHD zXBr<^qv&$_5b>vr^}9b8X;4~ev2HOW%1h4b;3)+0oR7Lqeb?aMiM|y06`{iht1z~S zaH^!`ow(=$B)6@6d*K~Me*<_nJrZUU-oQylClRLXV3XVr{{U5d{{Z4|i<(A(dvkl@ zIi$VTvl~Hio!(EBRko`1P=8P>D%cOMPubhtTP4)n51GdS1yTHOd+d+hKM8)<{wUR^ zx3ciQhLJ}wkge9MFtvmC05k9dK2>?!fPE|KzX$wg`0e6bd9H1|N#WZltdbUgvuX2Q zfF|-hqFLpS0sQpZar~?KT)X(i`$qWt!`kn}Uklqkrh%s2!>M1~#TXDra@%4;8MxfU z<6{0b)_%emaZYVk@$w|75evskR+5|JdIcK}AA2d)6EDDYC| zRC*@4PSKKeSJAZjmxirAxlZ?UxM3SpHJ2 z$-v^Yd?))|!K&)kz8mq~jmL-eTeSuVZtzlY0-V7rlN`A8Q@bC+EBVp*{{ZlR{t6HK z3!jI+EcnH%V0e!}`*x8VT#Lnu#oT$e^C|nT3HjHayc+sv;n&CQPCYYB@c#hqP2t)l&+>GC}cn~UkM2p?A0Rj+ejUHg zEA%tr@rq~yx-6WoLv+U-{{WSF9H~_0JEuS0-4ot;a$%$i&>ty3=c9~gk9zr2$G>N? z^CXN7C-wZRKjGe&Cb@8zGX^W{ImaA(dsmTo zuTZ|$wKTUw`?hc~>(lh~ucv%JVBQ<>+D&&SmVrUQ!1Ump{{Z@{wv8TGBN~-2CvB1R zPK~eVUIn)O>Mf}NXMQurJ^ujxRpTBc{j0oD;%j!d_$_3Y(Z@2wF0DKLn@o+%A|Kyi z`GrdW!X-H4kzXEo=1ouHZKcPIJb8TDKf`?;@iUk5q}8QEg9Jw-5d;3Q{{V~bt$uob z(I4R!HWwu|jdB}hSfmm#e>|Rk%J4c|er^_;Gm6~7h67~N8 zBjz(~?v@%ZU-0kH{ifACPw|G^R!uL*zY`kD;Kb9twvDI79BT}6tS^R2X=Tlo-88Z(4NZOtl2$MG=qug_0{AMj7#jz6`> zf%HEW_`Bmqf#Bn>U%{kk)_TsZ`^OW*=f3rg!G%>-36E)Py76C)-Yd|2UGV$Hy03=k z)c)3*KBF~*-CIo3TTIr{?B5yB&V-<4_Qid7`kJ{Es!4sw_nJr;h34-o#v*BIiR?0dl4Uz~06=TEy0JKJhYYWCv znn~#UKhdAB(`x44@o+&>cpZH!t-7~5#gKjm&Hy5(YPMyQctk{VV3Nv|R?SeNGP%97?=)K3(zi zG`0^T4yt+ltNHo($87O<{{UIME1O|-&`O}=cR~mC2NnGd_~S{DB)GC}#Nd5;e}#Sx z{?J-nR(}(GMP+WA-_42HbMr3c9H{O)A3IS(wK@Bw}}9 z3?4uO7{ynb-Jwjs%5#mUt}&ebE3njHUk~}(Wz-1L2?k35NMy!WuTE0005N01N@?U!W#_Z)+KLR<~DjtTu>bW6&>NE2Li(Yv$VHOP1zevR%rO zTtcS^?41reWK|t9dswu)h^B!{mQp4DH3P8c7(MGxLcWEsVulFU%S3-LNsJMWPvP2_ zinh1&&#OnMUY3=SmzF%?F@gATSA0<} zz5@gGuW|5{Gx$5i$ig_ro}p(wnxXoOaUcSF%2*ITr-^tWQ6EhEKK+TJ=2#TJZjrK;Mw#|L&O%> zI-J7N0Cvs&*2u>LJ^R)(S{uUGRzC5w_?M>1@s7^^`cK{I&kPpgG09lAgvJm50I#Kf z)p&bM@pp~&tFMU~w5fi#8eTR7vtl3|E)P-qSM#T$X!o8p_^oMa@cMD5-~6Hkocxk9 zf%i%2?V9~_{ht0j>s}nwH9v-)H%VgFZ^GF}B%iwxHwwUv;BnI(s|t2TwUc`tBsvuT z02sa^T3$h9_P!PH^P?rajk;T#fseiI#})TCg!=>^Bo~{PXc^G z8it8DyRf{pNN(+hLnM&_hfJPx-oDlNXW((-n+rb_tYsl-2ieDboDcFVrU>(Dv)?`m z_-gdTjUp0wuj}97f(U*KctR36O%qRF$^@^%PlJC1{>!FB(nrn(e*1hmv|A5{x($f` z0G2v+tbg~+N-MEO$i@f%*Zo8P0E4#ftn5EvPlfl_@Td~(TUo76E#jArtuH($_eT}}fIskeO5Mr-00i&&b8l*5j8E}D zOM#`F4=N!xovBB;{S|j-+P{pS21)SS_HOulAH&}s+g@vz66();eGQ&tv(#)Oh<%s$ zta26P!PrLt^aR%>ea`GJ!h8v?+g-sl7q^m`<#%Dc9FGD(L*q#WS)=L4=itJJ(%d#ZScP)n_P1k$V`cSx;=%M@Xl9f^~cDh@JF z%6^sLH}JKxT>zE3DrumUEWQ z2poS9>5AtyB(T#Wjtx9Z70N^e-f0}mo^}C@DvSdvkg&Ds|OG636#PYYcUINi=x$4R}O5q$WLFX1kBmg&>_ z9+l{id^N3J+AS(UGi_BId0=C1R~hY&wNJ%5Y~C611Xo&LmTl*O8Uwsd8%D|$kbO62 zx5{{}F9djA;{O0pf#a0J34&XhJJq+L3O3O6i1a-tRM0Lp3x6w0 zh+U5&+CpXXFb43g)B%rdpK9{Y5H+l}pJR$3*9#!?CJ&N818N27k<|Lvq-s}w6G=I6eX~_yp}(;?3zo2 zky)aP2h3^6O~Fuul7EPwrFq5ghjg1Z(vhr>E_qCebCwrLNR&?x!5tO8p(3I$*tLFP8kc-VGU%V&}a z=y~oq1JbrUJo?VP;)uqdFWDrI=g$5ijWN!1k^t*hZ7gJ@xvqLE-f7+uiYsetg`ZIm z6w0D9B8^7F^GHZ6tT+Rpt~XcIo5dR3)9LahwWBnT97KcVAj1$(C)jd*I#;Ocuxb82 z)oo{<_S)9y+PdFP?Xo9mhCxr50>oo#fCYIqhLdMwWi^lzrTP%e@0HsI2MHhE+;j6} z;}sFHtwi?dZYGxorKsup&ALYvcZu^x2vu2Q1Aoh$g(C!gYuF~9-%iuzwQ^3_3AF?h z=CM$tzp2RjSBQ8v;t}HOXyu%5aw_q3b^dJTsKHKRcRt)#)l>W= z(q+_R)O>tAJfPeQu! z4eH!HUu8r<1XFHi8;ZN9u;#Z1QZ*Q0&I3N`)Tc;cv{qnr{MQwbZb;w-w`MC7-uD`+G z@Q>&$x;5;OhF_QF<0FnRai3}_@kM%6xhY%jBBu!9t5x=ukDM&NFMKWWf9!MOuh{S7 zABLB~_qW=2lc(!iWFBswZy?z4H0XoOi!OjOVSohmuf*GL1^jB(yeQrgv(R;6EvC`B z%GzlnY!QYMLwCjq0q_R1r^wM-#|zw{K`ct5NcUh989CbDg=?RI{{Rd0 zJ4o%k4W`)X(!mso4AV5SeDb2E<_P})y({;DIKjsi=;8Ry$wgIKqt3+eG*fPivh05* z{t@_f@mE@HH{pJz73^2Kl&Nh4YW{2xTP&MK=4rT&D96m?U;r!n_V~GR{{RHZ)PH2( z3VzJqGx3&_;yaHC==Pdjz2%xp@`>P$P|F;Ohh|%m?T#zWHE#m=OG2^Jt?uQ~VS5po z9V57!dzUJzOq<;G#&-10dCTiw6tuh-%WV{{m_(7`j@S%fakLpbdX6imd{rlP6tytJ z@MI%tPEA{DXnt`EKOBC}z9EA}_@Y)ZH-w*E_QqXlfNmdna^{`w;g^~$?INpSF?SeS0KZVwV z#On>j-W#&iqJ69WlVJm(>CnohkLO=iNp)%Pzev@;+Pmf1osC=)VY(5C_wbU-E10Z-z3g zFr+Fo)2ZNe;=X&*bZN9JBMJGMPQO!*ztX+C!D}_N2^3ibwhZzn)vf$Bc;N1kOTcX{{Tw;8E3hlN-(2j1>|ESbm^1) ztKwgcI%-c5x{a_^cArKS+l$0Hjt{ZNgTtz7Q9nHI^czh+`o?*ClqVjXf018I{@2>K z!SC7g;H|I4FNzXR9+z}ug3n8_e>U>^W>7?GcnB~vBXm{w;=GdX&K*|3!UyjnZV#}p zb@1)=zlimX7UNq>Ym18ucel2C$ks%*ow0`-@)WombBgsc%tbzR8oL}hg$jx-({?`< zC2ceIvDP(T6@Jv7Hq-nq;Qs&({hB=&!k!#w)b2GACd07}vbw~vAp%E}Yi{`z4r}di z+Xi3Q%j3uFIS0Xyf>+Y$8o!1ox74&NOWh{&$~%c6K^wwc$Fnjc5F}zU*vYTZ-EUa& zr-ZH83k}wB@giD6kh+nMv7qGf)K`>U{9y36i6J&tx}>(#6Z83O1dEJ+%Q-WT!oJ@R z#9vnTAq1n^$HiiJVPgI1)NS{={H%W^9wPmn{yBKEaT)NQt>$U4F5zot)2NJX`Pj#} zbimv?;a5z%aN!-8cgYX1Nu^QZRU_~GO4+J{Jw!#@i=7ykeV#)oXaOcPxd zmh;NMQMNSsBN*Uv#8>4Whx-TXwwLfvaArmf8TPOYM;XECn*Nowxc(jZ5(yH@6$vAm z0NuN3IN>sWMdN@tuOGL%v+30S;?}5+GApl7az;ozEd5Jsa|~2k@a{SzMdWmFpZCa zzAgEhe~2DQ1{PKQMSctZ)Vf8q{{S1_;h9v=Z5!b5Ujdg3gVf*;rGG%*9yH<*-Jr?u z>Hh%gufZ?c-3FQQIt@*SF=>k;{Maf)gaQV6BaS^Q?l?kUzD;&$_&zm<`#VpgN5>u{ zyVQ04ZfPcM?;K&|-c@##MGQLNk&Jqp;+VXxxsFY0>K75kcX5y3`J?YYQJfs{-m#ZB z;=f9c$K^8IvaC`j3UQoQVc_jw!x|>Kx}S;k^QhV^Z;NG<$_*i0CP?RKJdir{u4UD( z=JMhBl@Jeg2Z^`X`VZN#bOkM=S%`gW=%9;d1NOI>G2pGmm1w@1FYj_P^# z1(8f^v13dhl`wh%&MO* zKf5WA7Yo>9ky^JGz6H=UNGxIdOKLWk4(oFkHnI@B5POc^)di!)t|B(Fx+ltW`B$j; ze^1rtux%}u?K|z7>L@pK+6T-AdVn)oI<(jRDUbU|!mQCLW}N^{=rPoE$o8jrVW6G9 z&g@W_*heCqVX@P%L(>$P;)>Htr`&5ux<~pYx!9w7aHouteF?8n)ASubQ`VPD@kPSv zF+{tS!spE3Z3qYVxaPcNzS*e8wh;)!XBprV&~@~$L$=W`^y}ZXUcZ{wyI_8EwU-zJ zpUR?kv2@R^{0(Q}+kc05x~96#Z?0J1LG~6yi3;Fnobm1N^slS`0B7GDYQGiye+HBB z67gmb&bM((!pQ8P3=@&Y2Q~3mgnTpO4-x5W;!P=pi8Fapt6%_l01TcDdk2R6Ll=d< zF?epKi9-aCARr+fHe{{XTUnSHN4-NmhpVWT0U zX&4_XIK~ct4%qEqw*LULj+bu)Hq%d-H68e3c;_RIy*;bH53Z+;UN&|=Rz4hfQW&)8 zqYKUjeuMaS1&71-Fyro9#6Kk!@(;tnTE;0cjs|P&ogq*5Rjxnhl7Asxk|HZZ|Iq#I z{{VxDd(GIgRod#vE{YnjCHT{2>$?rmFW$u{0FeN zcf<**2_-?nkrvv2lybfBe+vHqJP-IQ4zp+BAB|FJUK!LH?%z>{Iq#y1L*&gW;~Z`$ zfzA*3S1uwe;yZAY`zPW*iL}e9uI+T&SYG2{5x|k=PnofZ!O!348Ll_QS_EDb*5T6c zj`=Ow4Z|lVAgN_sH{MQ_=o-en6vua_tj+=v49rYHC46TQjCq?^y?Iu#d#UP^rlEUr zvep5zIeQ+N$2ldt`c_ajsBHxz{%}a zEj(P-mfDAfC6r4Q++y49Hj$!+RL0SkP}>OuA9VWFyebTdh!76SRNpAF`sVLWPY;O9lEXIW znNCm7fKUwclY*nxzK8IihCD&w&lSNG4R3FErDi+7waOOTY{6C1L%95yVhG0_>&pB& z7A9?O;?sGKNX%wAb|M^%Zs#N}GusvI_Ikdb;!lUVuA4Nm%cwS}WR_`2+*V9tT$bQu zWAUPFbfS)93Z3L`KK&T=^ojiWfIb!+*&RjM6F zT)u0SwsRiK_GFME5UQMHbm|8|USX%`n%1QYHjQmG>%ea%OZs48e@gTiFSWaSEw?tZ z$+ZzL5>;hh2nmu~DshfRImSf}DLbHqn^x##_=X#3yhA(}a)BmB{{SduQ-QTqgN{09 z(z-njZL~Yb*JTr-k{>SKSjcGBLIBIC$uZ-g_32r*UK#$=zqU3p+}}LMbheAd!p6IK zEzp8F45RB>`o5?%`R}zocLGg90u}^dB#bWKB&w;x6dYl>0A~V|eG#N1_L@2UQu=F0 z`xWUIgn&VnT@f>a4mi)_^sdiE8cf(|~bfuj2`kd0c|I*HTJeR{M{w$S|%ik$E%i&xV=`URk6lG8YFQ zKs$XuO8ZCQ{{V&KjTTutag236IR60a*Ms~w(Za(ClZ5~euTHi1H-j|zV-Up%+zO1b zJm-!89+mlKV~WHbA|bZg4`9*t@+wx{K5 z{>)zz^!uYHfjnDik$=xAtt5z!ouiPC$Wp`mK7P^KitN4dMw<|B8)S1fM;)>U;a{hB zo(foilNiTL^zFx5$b&$?b#&p?i0h7=U=y0{hAujD!F|Uk)tX-9&(GZ>_A1tO8>E}X z-Z8nBKJnPXmZ0MtZaHt#y_>WG9aA)7t=7*cKihZ!@%5 z9FPY=k6t=gRcmXeS-`R~i3js!Swn2|H z@Yv(-j*IwLoZRV)85ej1YZITYGvAY5=i>ch-gq$@`A9|vkN$+lq%zjbAsr$XU*RptO2(6eSV3dlADK6g9#bZWd0OS?I_Ts)a_}I!<%~A5dZq@b5 zYViG#M>gV^<&)R7e4Fud#iz4r;B1Wj-rt3FRGRlpDJ@y?rS+p(T&$MI0Q2wKyDtpN zmU^lj1`;nh>D#xb@)edg$uHPvTod2&tt$nV+TjC_l?DMF>bd!LG~`VB>ewKKeKPe2n$DT;y0cg;Y&rF^y&fptM#H^4$CxnIDB?&FzxzN zMuPBpd!bUG0m1rr&m3|3R`SMav79izXXcNG{{UqzR!2+k6l+&9I{yF+F~)=*ILinA zRrF4U@Ha)!H08NTZti4IFlM@y{Xc{0H$-%1eC>>Cuc{$I92bJeCMy8QG7z=XmYh@;^HH@5bd}JCNY_^%%$U_OGnG zX*$}+ggD5+`d7vu5hh@{&&ZkiPvO)0*Cii%S{+qaEKiX>F-mUq`HpuTr>7j_{Nvic zp8o*a;!&;qLyiIiJbHD$5BD>ZfnUFW64LdfVxuU_!OvAA75wvl(7Low@pDoH{{Y9l za6$OSgEjhJ3Pq`D(I1#`i(H94nem0B^AiP?Ztkf z9g+DAw`J`;VM+H~%3@q~13#r`$!X@rad%+BAkOvkN{Ji;jy+C#;enI&jMxbr1{EdlHP0=|pz=A-blTZ=)m)U4*eyO2q5 zd2heTT=a@ad}P{;z8Vw$y?A?VK}#^5@WfE5CzIyI%`h_>aTTJ6dUvAKLC0 z?b4f5^*n~-*{K3sZ^_0M=tw0B{)z6dRYk3zRG3PnP58+xGPN15eq*`fy#~kvfnEaJNz%7AY zliooN{eMSRwzHJ^Axj2+gCqPsDV{3PhLfi0{wUF5Enz%M9IOUVObEC6YtsHdc-B_&hL@rE z7S0VK)!|6k*|*6)am#a$Ox6w-b~+VLcIWJ8{1eCalhrP~ZQ+lEx}}fU^((j-wBhj5 zs)3BDBexa(VtfOGRMqsWX{QQ_70L4*d1)0u10Ril6hE;wzLDW%*M2T|-g}F!cSuOB z^!u2P?xEZOB>H++_HFwWYWH${GVs=`b9yeVbt`i#?)%Fj#~(`S!@h?GCK}xRm-un5 zII>GgB;DnKhV@?6_s)ePzK3M^>jY>2038+iE#b{p<4=VyVSI3YUvAa_G7vDf#Mk5;L@j(a8T_kQr2=#axiv-k9=`o z<)8and{Xfj$B)_)?r#vt48$!rD0UWtvyBxhj#UAeK9N4#L09SH~U$(mZYOvVV!+6FgOq9o)#asidMRc`#al zhtKq5jxqe}j}+~0$94`nJ0CJlXDCFTaI;&y##o|b!VUl`LC6GfeRvh*ek1U1u{HR# zwo~RbiyB3q@?!yc10%mm_RSN;eiOR7)6M!DOIvM;EJ)k81ly81<0td>sy`B@z0@_! zjek#uHM6;IxLb3DAxA^dk<;3-gR!+#nmj|r){^*geM3vWyOG*kRkyeD92<8C${1u5 zlu|gyddHIcOR>1OHbyw-M2pOZP)dnV4coaRVdIL>xY8E$!>wf-=j<~FRnHq!>^8D__E)jRB3)aP z0G9>bh2JacOyUAUy^rZmLrnK*Veh~TbH!DTa`aNe6Bk%=~G?X-`l)!>Il&` z(CfToD%^wa4{F&#C!vd*akDES%!;gbu74`px)&2+WL?a9749nojNn(id>GIn@qdVg zrRfSIL$r3!YQq;*Ql{#?k<)>s>eN(MQ`UYPqWF{G&Znj0{WnJAJD5;=wIxJ@&5qAD{ATU7?Wq$ zVcG}jU!G?bV^Wn#Lu=pf{{V(RO~`3Fb*aXC+TV8Hnff!~J9d}Kwv9pL4a2wqV~_L2 zeVgEIFg2_}$2l0sewFgSfZ}`0h-M=$*vReMiv0ojZJ{bevrfN0GoN8!nqzc!KUl); zbKJZmX)G}ZZg2oxbv5rAE}y90tZSYJ@aJltolp72a=sJMqYV?cx8!lszJ|~==-D^I za2W0Re-1ywmJbWg?9B0)g%zRCj|!wfIgN5LkVa2$eE$ITs%xDG%Ly|e1-SXtCPy9n zAH(Thq`G~ug;BE@1a8~L(e2JT?@>0FV+`g4g55X=cWwtcKEu+z-|YCUj}PmP=Z^mX zV@lt+0a3gE02^RqpgaoauC&>n54PKbAsjC6Yz*V2dY-Z39S=u=Qt8n)5O(J|QI0SV z8UA(iCy%~4S?S_SeFa07I8oGt$Lm}es#Kw;Hm7D9btU$6DtL!T`!*ixMZ}pWamP-1 z=clE4!(VCX2b!GckLCVFc~^*a?-1)(fJ*!B9|WlTs17kx+v)d~iJPe#<{vTi;C8PL zv?7`8QoD)W+shTr!ibJ@-}+aeX_hkW=bzK_uOaXiy~P}zWmuDs-^EcRLDUjDln?=FCP>%lfk^jg29lGF7z4(9_J7{(y7qFr?{A%R zK8vfSz!nC?czeZIZFDZ1^_S|{0ppgMtL<-W(bucZKV7Ypp5$NfLkbg2lO=EVXuYBK zUH@pvLW;?KZnoA7)E^Yn+R)2wPb770^8TZO$1O|>9u#7vi%ccv06AdR3g8dPh*6#= zWTh&j7leC_2t~I?vy{AbP#xKKyutZ3#ORpHYTqOuAv0Qm-!*2sOQ|l_rl6Ppp z)A8m92TCrtyk3u^BFTxHYpN`s{!f%$;8dz#h;jqc` zE*gC=5Xp{7a9(RVE zFbIi*{;t>wB+l+IVtHq>17h?kD|i#wHgWe9G^*I#%Hot_C4(<)SC;PJlO=1!Q{#|R zS5!FMA0g7S58wbp^>0mt+INiS#fG;E3oo!6|7f^o(GQzc^Wfc;P+bE3Z%dt>Pk;Za zDT5YZQmOVf%rc&}Gr#g~`mB2A#Ki~AWJdU9Zm$UjIri|2G;pw14=aQ#BlwJQGgzGnr{A2&PwW)rHAFbe#u^2 z2Hm?Bp&7mhv|k&i-!|dDIVJb8rnxI+hy3XSiu;vw(^W1QTRz~oQe<%dJ%d>_LNTQ=a8i+NM2;9g29X zL$k@bGNUaSqmEkrBF3lADbzBN`Mc)yD;F#N4ciEQh9kti-1&!A*5`X~`uP>9VO5@a zMtVbLQ@Kq=B)A^BST(_p3EtL9IK>kf5G`Ytv`+fXkc$=savgkA~wL6^jwz9~l zd+{H>f~TYpuKcG}D%e>H;j_!L8~5@0IL*7ouCxxm0OU8QGakGKh=g8Ulj1PnLX3Y#zREIyCRR@vNM;xJGOh zunT2R;iXQTU2UWAJwDfeG~d!%%)65QjbAKL_rISg!laZ{?T+P-?UMMS9qP z_n-9+*SWaN;ua?R!AQK1BTq1WFZ@eGOs&*yDTEY^FCcNMulb-wR*xieJIXGbyz~t< zHcw&JCD|21?JwfU0Q@pY*FuG=X6k!0|KB~WCSSS0g3-qyyIt>1%uHA5q`zrD7C7aU8o!Ku5iT{6SYls`lt66 zJxKixFXBB|7*3}E>|1HO{y%XHzoJ}vLN_uErQ>gp*qwsL)fr|~ecd4?0quW9epI(2 z`X}8o>kI59L2j#uL3Uq}S;snpF%FU~!v1$DBPa#?X=VO3ZXt-*4KVHjQ8=@PDdUXC zR~I|Oul{@}Cdy;jp|$3jP#nA6>bN?%D08iUqwd@nmp$lN0`AklEBEz1;PdCM2Ge10 zG-nlqMvh#0jQi)uW`+`*MyVeO;jPEC*?ve3!a~%GQMp}%TaR&-$BbE^oWJqkPQB>Y z3Yfl_@s@4^BQz`uH1WB2st5c%H@Z-=xp$2J-pzVc{>VYV?#4FgXuE1pYJ6v^zF+A| zFdnX_KdavBVGA->IC9uO&MWNYCQmJhYsGYgw|g~S)9odgOq!RhASPu z3nWNXQfA~QTc5ge-z-`e`npa>BM}24JTk!XW+K+$U z3*>!8R#6is0u1VN)Z*efH**4Tht${D4l=L(8dUZ?4Ou)NZt7PDc9%>pT*JCLCX{$IGP`0u?FjZ_`4(|pOpsriU z-o@?BQo!q=t&?t|>Cc3p*@$jFvBTRP=|8$lDqK241(N1fJxQQt$`u0ByjlJT124>k zU`7g_0cv)t^r7dn6n?NP71RsR^?@d@d)kZ?2IM|4)4lzHhGzCJy)w%yFu!y2(L2`9 zmsya{)OK4w_H^J5NW)4aMV{lmzrKuO>Tk(vPfJ6e)I~1(^Zg3a$&v2!YHLSbxDb|k zpdkI=$8_alT3QRd->`{!z2x%V{Z?bqTYZf}rB_z?vyYK!Fd?#@{)4>VUtE|AfFpUo znjJExvNp8t9PGS={+=PF5HfK$=buqwjVsKl9VDQ2V*tQx>YLYQs`^K2Z+01&qRMCH=6{-Lgf z9%$1rJ&WE^Ih^zW)Cs(?SRYZk+h0>f8xiaL(r0I^fN7&NB1fSRknIud3C?2&)}C~OWBen*mt2Y5+3VhPtp&e1 z(d3^>@bR{5U3siSW9JeRI014iCC8<-_~~LtrqqYZp%Xx{=o)~2TT95L`@}WjtLLb9 zZe9ZPl<@wrdt7G7&4k~6QNSjYh*jkUAq>{GKfS|PrEL#EaRj3^Bceey&w#Lp*iWvk zR!yL7X`$E3LCIJt?(uJ<7{%%4Y=ig172O-0TiR@!{ET?D9}Gd^SNA9CpfhWTxHRs^ z$|Etp59H1@-H&HpNB`&ZSBFef^?H-SbO~>%)nF+h1yYV#)vawv(-c9hVaiXr*NfBF z?(sakaVAvrUFH*@O&AeGTKwunT;gl5&$x7OOU>l7z1;$+WvOsj4iz$kK9%cq8mm>_lV7Pu0on z6|mT`IGUUFnV9GvjtBGS<9}kkEo8PaDJ2i+r_bkjVe&+&D9SzOv&zEvYg$S4j0_@t zz)xOqera%GyJFpxDod$k(|wzcABztFJBRUsp*{>heU6dE6dn>$Wl=^Up&L(s&1ahe zOJxK4J3rlWzEb9V?>#JXIiSaYeiw9CMyVfzE^gOS0j0SrpPKV&*!wVW@&+?^H`E1Q zAfo-BwHRu9p8Ec2Lb3+rn9~@iGN=X3@L3#W&gipneo*YO=+TgP%#bL13i=IGY>&KV zJN7m_#4~oM)nx6zFNJQPuLI~!uoP*ckC*Mg6)d6%5?OG6LWuR1mPk|p)=a1F>YIjF z%M*wLF+7UcLbWNlw!Jzvw|QOMAW{TtA}#mOn^lQKrE4mk9d#lTp_X{sPB;fe)S5bE z=f$u@9V1v}v{zl@(BQpo-`nw+;YGXK3ha*=m}akdgMCv?64^aVji1*A`B>uSU<`kn z$ToLVb-E|&k?se;tC}trg|{sAKM!c0&uw{0hn<0n$WA0N0$_!qr_yd^zjx?9#nvMPPp9+bjlCd7#mBUr6@F@`F<^*eTBDYU#G(neX0oQ0(U{4$-@)rRz!pliJk~ zh}~%IthqKZJsC;A5*yL(r^JgLZ=RZzESwY5lb zaTfTKzpY&~%pOm%%VE?@1)^(!FtP&P3-nzb3iyiGPQ)m-PjW#|>J2Y-4D|h-A~meF zh*he9Qp~%4|K#lhM)CS^;pQ?R@gCzUbA?cPhq$4dKVfLf8g;zFok?u7ZcJG}OTNIW~}E#JM4ej5JpX4Krz9{5dF zWA|^cfzgh*Lf4?ypwxxp3&#}Bbw^d^2cN@lZrM>rmL5{O%Aae#n~|z=N&3E(|7eQz zYV1B_oW__EFT~FJsd@xo4T3)QPt)p1JebRZCqNZ=r5@w(S%^vaEo%|nIFSwpqD%oV zso!+XW8&!pGVj|?K%cJ4T!&eP;ut$H|7a8mEG@AY4Hwa>PaRk~^XQi);T?YWYns=nGR7{yjb;ovH)4vJIXW&XBHAk%02(esa7`F;}Gf3Bq zh!I3pH#eky%fJ6ZF(Npj^1(GDR_AB*6L%wI z(uX7$TRMc?MrEF&8}$CsJa;Eaph78fR09mr2H%$6abaG&sBcJsR31-?iX_iWdtj_j z)5=IHFEVLB1O|dw#~CeIcM9siX25;YIn%6=cwjTXJn%;+;~d%Iu|iwT!&i=Ag*oIe zM!KfW0Oeq^TX^{UU68av^Au!d>Ymq}&SpwNzW>{G!Vw#RA#lcjVvW-0$;}I`>QZLdqS5Od^o=kN+S{bcEK}t1kJSA zW_#t>kC%H47aq`h^0xxIF*OMZ#liec7>VJe5^cyGG4TnhUn=)KM;Q2&r*k9JbMJlB zXsp+b_ktvAKL$$M(2Q{I<7`s!Cq{L;RqvbYgSTbw>Iea4vqQD{LPASg#a1$E5z%W# zw=EYjPR_o3mAD=k^F8%R1+dGg zR9ZgF!FpjcU#+n>fKvXBtup@Qwya*b&dHL+qV`7Nbw&(Z%;{7lvldIGKfhuveuUUw zl69}}Kdr>O5&R)5a-8P8>$LUHu9Xo&J?G_DEtZNs105Kfa&?~r#NW*eNb#~1yDgs*|alrwUF?HbSnRhHEQ7 zDDPMG`{ehnm?z6EoHq0!)z%NNYV;KJvl`U6j}$Ji)+{yFGIK2^6SDq=-?l9IT1KC2 zynQ^gSYtE6@C#&BW%>G|D@VG8Lw0g|lC6;OofI8~z;OoKyQefNAQ7cL>8$liA9(`s z6WwxDr5y)`-Qx63T3SF(jqrRnB<^p$@^wJ5EOMzEIuMl9>%M7!%4&bthnDt-JkRXJ z>J)F*X_s%T0+$laCM|Ubr@Yr-;8(r$>_2_(hmW3y&QhdaByCTZ%@^KK&V=m;P0t8D ztWS&I7D-~X?w^n3Ohd0`n`9n65)Auu9ZPaO79nPkbgN)!c+E@~Dq=>TtvE(q)OnQp zuQyBLl>6588l>OgNfw|Bj6D%=Pd$ZSyAspdeDRI?qBsnwXW@V?DFo#vz2ndPUK|F! z$ClH2qggmiZq^Sc6z_PqHQvia+AK&WD0sX9_9po}JLOovdh6|uUMhE;K=Xs;x_>l7 zVnI%U4BhVYGn!+ns&Xg}XRo52@8iTqD$vJ~few~>4A=`Hyla0bS-F<6`sm@#eSvr{ zzl=_+nH48L8PG18e4G2N&oV1Umd38FHpThK*I{Hk7Vn*nxEj&@2C1bG1aq9R=c34R z#1%y%??Hn6v~e6!NQb%{$vfEp7|B0eca1KS`hdb3V&qxcQ<%-vp?uD#;Hk+CMp{1U ziBtb7gl1N-%7`RzMM-EI2hKJv=8nE_WHFzpL$n{c-?@7i=izN#OuqN1vYnWcg!o4T zB7ypX;4#GsYz+|F12yGo?Ra%Dk*K4SWb;STXrR%7*gzVCrO@mdMsM%rA5Aozt-@#i zwqOfWnMxi7MP0EQtRe2eM%BfX6(jAF`M5wjRb;$~IaboK+uoUT^7T}h2ImqkkFnr{6 z+eS2>rRG^IqTc3<5vQt$r}YQ!FKL6>tetx*p0W6yNw2huBj=JnQDM(^6})6lRUf|f zZTMr(BeeSlIM+tz;&ZE7nX6Q3rz_Fl2Ei)2y%oTA7VWmy?7o~!v;PM5Q(RIfsk%0? zxIu6EYFv)u-=9oJf@))=-747dYQA~CBS(D?=lk=Te9lhh#<$wj)ct!Dpq8Zv_33P* zA&MfY;-akoBi`jjQ)B)1N6F>m5@1YqYw*l=ApU+-`TZ$OWzt9k-_KJ}CRv{ZSPikc zbmfus$aQVOpx~J%eOB%t8|6I6UAtd7B8GZzax#aODdYUSUOa}=d-oBv%nj11LI@)2 z;VA%%##ta;i8bQg_tvCht(SZD!ygH&`l0#Ck6NL!c(SqB{0Eg_f1EXYUcQBSx%yak z$*WV-I&bHa0}YL=G-HFoT*oM~Jn5

T%>XGZPy0hag`hQjQLxSI2tk*NLiKaho?G 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 void; + onStatusClick?: () => void; +} + +const ActivityListItem: React.FC = ({ + id, + eventType, + title, + subtitle, + amount, + statusText, + statusTone = 'warning', + avatarLabel, + avatarTone = 'brand', + avatarImage, + onClick, + onStatusClick, +}) => { + const getIconAndColor = () => { + if ( + eventType.includes('grocery') || + title.toLowerCase().includes('grocer') + ) { + return { + iconSrc: basketIcon, + badgeClass: 'grocery', + }; + } + if ( + eventType.includes('medication') || + title.toLowerCase().includes('medic') + ) { + return { + icon: medkitOutline, + badgeClass: 'medication', + }; + } + if ( + eventType.includes('airtime') || + title.toLowerCase().includes('airtime') + ) { + return { + icon: phonePortraitOutline, + badgeClass: 'airtime', + }; + } + return { + icon: flashOutline, + badgeClass: 'electricity', + }; + }; + + const { icon, iconSrc, badgeClass } = getIconAndColor(); + + const avatarSearchText = + `${title} ${subtitle} ${avatarLabel ?? ''}`.toLowerCase(); + const resolvedAvatar = + avatarImage ?? + (avatarSearchText.includes('mum') || avatarSearchText.includes('mom') + ? momImage + : avatarSearchText.includes('dad') || avatarSearchText.includes('father') + ? dadImage + : undefined); + + return ( + + )} + + + + + ); +}; + +export default ActivityListItem; diff --git a/src/components/AuthFormFields.tsx b/src/components/AuthFormFields.tsx new file mode 100644 index 0000000..295e361 --- /dev/null +++ b/src/components/AuthFormFields.tsx @@ -0,0 +1,116 @@ +import React, { useState } from 'react'; +import { eyeOffOutline, eyeOutline } from 'ionicons/icons'; +import { IonIcon } from '@ionic/react'; + +interface AuthFormFieldsProps { + mode: 'login' | 'register'; + email: string; + password: string; + confirmPassword?: string; + onEmailChange: (val: string) => void; + onPasswordChange: (val: string) => void; + onConfirmPasswordChange?: (val: string) => void; + errors?: { [key: string]: string }; + disabled?: boolean; +} + +const AuthFormFields: React.FC = ({ + mode, + email, + password, + confirmPassword, + onEmailChange, + onPasswordChange, + onConfirmPasswordChange, + errors = {}, + disabled = false, +}) => { + const [showPassword, setShowPassword] = useState(false); + const [showConfirmPassword, setShowConfirmPassword] = useState(false); + + return ( +

+
+ + onEmailChange(e.target.value)} + disabled={disabled} + placeholder="you@example.com" + autoComplete="email" + /> + {errors.email ? ( +

{errors.email}

+ ) : null} +
+ +
+ +
+ onPasswordChange(e.target.value)} + disabled={disabled} + placeholder="Enter your password" + autoComplete={ + mode === 'login' ? 'current-password' : 'new-password' + } + /> + +
+ {errors.password ? ( +

{errors.password}

+ ) : null} +
+ + {mode === 'register' && onConfirmPasswordChange && ( +
+ +
+ onConfirmPasswordChange(e.target.value)} + disabled={disabled} + placeholder="Re-enter your password" + autoComplete="new-password" + /> + +
+ {errors.confirmPassword ? ( +

{errors.confirmPassword}

+ ) : null} +
+ )} +
+ ); +}; + +export default AuthFormFields; diff --git a/src/components/AvatarPicker.tsx b/src/components/AvatarPicker.tsx new file mode 100644 index 0000000..a128907 --- /dev/null +++ b/src/components/AvatarPicker.tsx @@ -0,0 +1,121 @@ +import React, { useRef } from 'react'; +import { IonIcon } from '@ionic/react'; +import { camera, personOutline } from 'ionicons/icons'; + +interface AvatarPickerProps { + previewUrl: string | null; + onFileChange: (e: React.ChangeEvent) => void; + initials?: string; + disabled?: boolean; +} + +const AvatarPicker: React.FC = ({ + previewUrl, + onFileChange, + initials, + disabled = false, +}) => { + const fileInputRef = useRef(null); + + const handleClick = () => { + if (!disabled) { + fileInputRef.current?.click(); + } + }; + + return ( +
+ + +
+ ); +}; + +export default AvatarPicker; diff --git a/src/components/CareAlertPill.tsx b/src/components/CareAlertPill.tsx new file mode 100644 index 0000000..d30d538 --- /dev/null +++ b/src/components/CareAlertPill.tsx @@ -0,0 +1,88 @@ +import React from 'react'; +import { IonIcon } from '@ionic/react'; +import { + chevronForwardOutline, + timeOutline, + flashOutline, + wifiOutline, + medkitOutline, +} from 'ionicons/icons'; + +interface CareAlertPillProps { + id: string; + type: string; + title: string; + severity: 'warning' | 'neutral'; + onClick: (id: string) => void; +} + +const CareAlertPill: React.FC = ({ + id, + type, + title, + severity, + onClick, +}) => { + const getIconForType = () => { + switch (type) { + case 'electricity_low': + return flashOutline; + case 'airtime_expiring': + return wifiOutline; + case 'medication_due': + return medkitOutline; + default: + return timeOutline; + } + }; + + const getColors = () => { + if (severity === 'warning') { + return { bg: 'rgba(245,158,11,0.08)', icon: '#f59e0b', text: '#111827' }; + } + return { bg: '#ffffff', icon: '#6d28d9', text: '#111827' }; + }; + + const colors = getColors(); + + return ( + + ); +}; + +export default CareAlertPill; diff --git a/src/components/DashboardSkeleton.tsx b/src/components/DashboardSkeleton.tsx new file mode 100644 index 0000000..59428a0 --- /dev/null +++ b/src/components/DashboardSkeleton.tsx @@ -0,0 +1,246 @@ +import React from 'react'; +import { IonSkeletonText } from '@ionic/react'; + +const DashboardSkeleton: React.FC = () => { + return ( +
+ {/* Top Greeting Row */} +
+
+ +
+ + +
+
+
+ + {/* Loved Ones Carousel */} +
+
+
+ +
+ + +
+
+ + +
+
+
+ +
+ + +
+
+ + +
+
+ + {/* Quick Actions */} +
+ +
+ {[1, 2, 3, 4].map((i) => ( +
+ + +
+ ))} +
+
+ + {/* Activity List */} +
+ +
+ {[1, 2, 3].map((i) => ( +
+ +
+ + +
+
+ ))} +
+
+
+ ); +}; + +export default DashboardSkeleton; diff --git a/src/components/ListSearchRow.tsx b/src/components/ListSearchRow.tsx new file mode 100644 index 0000000..828ebaa --- /dev/null +++ b/src/components/ListSearchRow.tsx @@ -0,0 +1,86 @@ +import React from 'react'; +import { IonIcon } from '@ionic/react'; +import { searchOutline, optionsOutline } from 'ionicons/icons'; + +interface ListSearchRowProps { + value: string; + onChange: (val: string) => void; + placeholder?: string; + onFilterClick?: () => void; + showFilter?: boolean; +} + +const ListSearchRow: React.FC = ({ + value, + onChange, + placeholder = 'Search...', + onFilterClick, + showFilter = false, +}) => { + return ( +
+
+ + onChange(e.target.value)} + placeholder={placeholder} + style={{ + flex: 1, + border: 'none', + outline: 'none', + backgroundColor: 'transparent', + padding: '0 12px', + fontSize: '15px', + color: '#111827', + }} + /> +
+ {showFilter && ( + + )} +
+ ); +}; + +export default ListSearchRow; diff --git a/src/components/OrderSummaryCard.tsx b/src/components/OrderSummaryCard.tsx new file mode 100644 index 0000000..b6ebb2e --- /dev/null +++ b/src/components/OrderSummaryCard.tsx @@ -0,0 +1,210 @@ +import React from 'react'; +import { IonIcon } from '@ionic/react'; +import { + chevronForwardOutline, + checkmarkCircleOutline, + timeOutline, + closeCircleOutline, +} from 'ionicons/icons'; + +export interface OrderSummary { + id: string; + recipientName: string; + serviceType: string; + merchantName?: string; + amount: number; + amountLabel?: string; + status: string; + createdAt: string; + avatarUrl?: string | null; +} + +interface OrderSummaryCardProps { + order: OrderSummary; + onClick: (id: string) => void; +} + +const OrderSummaryCard: React.FC = ({ + order, + onClick, +}) => { + const getStatusDisplay = (status: string) => { + switch (status) { + case 'paid': + return { + text: 'Paid', + color: '#3b82f6', + bg: 'rgba(59,130,246,0.1)', + icon: checkmarkCircleOutline, + }; + case 'ready_for_redemption': + return { + text: 'Ready', + color: '#16a34a', + bg: 'rgba(22,163,74,0.1)', + icon: checkmarkCircleOutline, + }; + case 'redeemed': + return { + text: 'Redeemed', + color: '#16a34a', + bg: 'rgba(22,163,74,0.1)', + icon: checkmarkCircleOutline, + }; + case 'delivered': + return { + text: 'Delivered', + color: '#16a34a', + bg: 'rgba(22,163,74,0.1)', + icon: checkmarkCircleOutline, + }; + case 'pending_payment': + return { + text: 'Pending', + color: '#f59e0b', + bg: 'rgba(245,158,11,0.1)', + icon: timeOutline, + }; + case 'failed': + case 'cancelled': + return { + text: 'Failed', + color: '#ef4444', + bg: 'rgba(239,68,68,0.1)', + icon: closeCircleOutline, + }; + default: + return { + text: status, + color: '#6b7280', + bg: '#f3f4f6', + icon: timeOutline, + }; + } + }; + + const statusDisplay = getStatusDisplay(order.status); + + return ( +
onClick(order.id)} + style={{ + display: 'flex', + alignItems: 'center', + backgroundColor: '#ffffff', + borderRadius: '24px', + padding: '16px', + margin: '0 20px 12px', + gap: '14px', + cursor: 'pointer', + }} + > +
+ {order.avatarUrl ? ( + {order.recipientName} + ) : ( + + {order.recipientName.charAt(0)} + + )} +
+
+
+ {order.serviceType} for {order.recipientName} +
+
+ {order.merchantName || 'Service provider'} +
+
+ {new Date(order.createdAt).toLocaleDateString()} +
+
+
+ + {order.amountLabel ?? `${order.amount.toFixed(2)}`} + +
+ + {statusDisplay.text} + + +
+
+ +
+ ); +}; + +export default OrderSummaryCard; diff --git a/src/components/OtpInputSlots.tsx b/src/components/OtpInputSlots.tsx new file mode 100644 index 0000000..924a99d --- /dev/null +++ b/src/components/OtpInputSlots.tsx @@ -0,0 +1,82 @@ +import React, { useRef } from 'react'; + +interface OtpInputSlotsProps { + value: string[]; + onChange: (index: number, val: string) => void; + onPaste: (e: React.ClipboardEvent) => void; + disabled?: boolean; +} + +const OtpInputSlots: React.FC = ({ + value, + onChange, + onPaste, + disabled = false, +}) => { + const inputRefs = useRef<(HTMLInputElement | null)[]>([]); + + const handleKeyDown = ( + index: number, + e: React.KeyboardEvent + ) => { + if (e.key === 'Backspace' && value[index] === '') { + if (index > 0) { + inputRefs.current[index - 1]?.focus(); + } + } + }; + + const handleInput = ( + index: number, + e: React.ChangeEvent + ) => { + const val = e.target.value.replace(/[^0-9]/g, ''); + const lastChar = val.slice(-1); + + onChange(index, lastChar); + + if (lastChar && index < 5) { + inputRefs.current[index + 1]?.focus(); + } + }; + + return ( +
+ {[0, 1, 2, 3, 4, 5].map((index) => ( + { + inputRefs.current[index] = el; + }} + type="text" + inputMode="numeric" + pattern="[0-9]*" + maxLength={1} + value={value[index] || ''} + onChange={(e) => handleInput(index, e)} + onKeyDown={(e) => handleKeyDown(index, e)} + onPaste={onPaste} + disabled={disabled} + style={{ + width: '44px', + height: '56px', + textAlign: 'center', + fontSize: '24px', + fontWeight: '700', + color: value[index] ? '#6d28d9' : '#111827', + backgroundColor: value[index] ? 'rgba(109,40,217,0.08)' : '#fafafa', + border: 'none', + borderRadius: '12px', + outline: 'none', + }} + className="otp-slot" + /> + ))} +
+ ); +}; + +export default OtpInputSlots; diff --git a/src/components/ProtectedRoute.tsx b/src/components/ProtectedRoute.tsx new file mode 100644 index 0000000..8f8308f --- /dev/null +++ b/src/components/ProtectedRoute.tsx @@ -0,0 +1,66 @@ +import React from 'react'; +import { Route, Redirect } from 'react-router-dom'; +import { IonContent, IonPage, IonSpinner } from '@ionic/react'; +import { useAuth } from '../contexts/AuthContext'; + +interface Props { + component: React.ComponentType; + path: string | string[]; + exact?: boolean; +} + +const BYPASS_AUTH = true; + +const ProtectedRouteLoader: React.FC = () => ( + + +
+ + Loading your profile... +
+
+
+); + +const ProtectedRoute: React.FC = ({ component: Component, ...rest }) => { + const { user, profileStatus } = useAuth(); + + return ( + { + if (BYPASS_AUTH) { + return ; + } + if (!user) { + return ; + } + if (profileStatus === 'loading') { + return ; + } + if (profileStatus === 'missing') { + return ; + } + return ; + }} + /> + ); +}; + +export default ProtectedRoute; diff --git a/src/components/QuickSupportActionCard.tsx b/src/components/QuickSupportActionCard.tsx new file mode 100644 index 0000000..16d430e --- /dev/null +++ b/src/components/QuickSupportActionCard.tsx @@ -0,0 +1,94 @@ +import React from 'react'; +import { IonIcon } from '@ionic/react'; +import { + cartOutline, + medkitOutline, + phonePortraitOutline, + flashOutline, +} from 'ionicons/icons'; + +interface QuickSupportActionCardProps { + serviceType: 'grocery' | 'medication' | 'airtime' | 'electricity'; + label: string; + onClick: () => void; +} + +const QuickSupportActionCard: React.FC = ({ + serviceType, + label, + onClick, +}) => { + const getIconAndColor = () => { + switch (serviceType) { + case 'grocery': + return { + icon: cartOutline, + color: '#6d28d9', + bg: 'rgba(109,40,217,0.1)', + }; + case 'medication': + return { + icon: medkitOutline, + color: '#ef4444', + bg: 'rgba(239,68,68,0.1)', + }; + case 'airtime': + return { + icon: phonePortraitOutline, + color: '#3b82f6', + bg: 'rgba(59,130,246,0.1)', + }; + case 'electricity': + return { + icon: flashOutline, + color: '#f59e0b', + bg: 'rgba(245,158,11,0.1)', + }; + default: + return { + icon: cartOutline, + color: '#6d28d9', + bg: 'rgba(109,40,217,0.1)', + }; + } + }; + + const { icon, color, bg } = getIconAndColor(); + + return ( + + ); +}; + +export default QuickSupportActionCard; diff --git a/src/components/RecipientCareCard.tsx b/src/components/RecipientCareCard.tsx new file mode 100644 index 0000000..2c7d9de --- /dev/null +++ b/src/components/RecipientCareCard.tsx @@ -0,0 +1,239 @@ +import React from 'react'; +import { IonIcon } from '@ionic/react'; +import { + cartOutline, + medkitOutline, + flashOutline, + timeOutline, + checkmarkCircleOutline, + ellipsisVertical, +} from 'ionicons/icons'; + +export interface CareStatus { + serviceType: 'grocery' | 'medication' | 'electricity' | 'airtime'; + label: string; + statusText: string; + isOk: boolean; +} + +export interface RecipientSummary { + id: string; + firstName: string; + lastName: string; + location: string; + avatarUrl: string | null; + statuses: CareStatus[]; +} + +interface RecipientCareCardProps { + recipient: RecipientSummary; + onSendSupport: (id: string) => void; + onMenuClick?: (id: string) => void; +} + +const getIconForService = (type: string) => { + switch (type) { + case 'grocery': + return cartOutline; + case 'medication': + return medkitOutline; + case 'electricity': + return flashOutline; + default: + return cartOutline; + } +}; + +const getColorForService = (type: string) => { + switch (type) { + case 'grocery': + return '#6d28d9'; + case 'medication': + return '#ef4444'; + case 'electricity': + return '#f59e0b'; + default: + return '#3b82f6'; + } +}; + +const RecipientCareCard: React.FC = ({ + recipient, + onSendSupport, + onMenuClick, +}) => { + return ( +
+
+
+
+ {recipient.avatarUrl ? ( + {recipient.firstName} + ) : ( + + {recipient.firstName.charAt(0)} + + )} +
+
+
+

+ {recipient.firstName} +

+
+
+

+ {recipient.location} +

+
+
+ +
+ +
+ {recipient.statuses.map((status, idx) => ( +
+
+ +
+
+ {status.label} +
+
+ {status.statusText} +
+
+
+ +
+ ))} +
+ + +
+ ); +}; + +export default RecipientCareCard; diff --git a/src/components/RecipientListCard.tsx b/src/components/RecipientListCard.tsx new file mode 100644 index 0000000..802f156 --- /dev/null +++ b/src/components/RecipientListCard.tsx @@ -0,0 +1,117 @@ +import React from 'react'; +import { IonIcon } from '@ionic/react'; +import { chevronForwardOutline } from 'ionicons/icons'; + +export interface RecipientListItem { + id: string; + firstName: string; + lastName: string; + relationship: string; + location: string; + lastActivityText?: string; + avatarUrl: string | null; +} + +interface RecipientListCardProps { + recipient: RecipientListItem; + onClick: (id: string) => void; +} + +const RecipientListCard: React.FC = ({ + recipient, + onClick, +}) => { + return ( +
onClick(recipient.id)} + style={{ + display: 'flex', + alignItems: 'center', + backgroundColor: '#ffffff', + borderRadius: '24px', + padding: '16px', + margin: '0 20px 12px', + gap: '14px', + cursor: 'pointer', + }} + > +
+ {recipient.avatarUrl ? ( + {recipient.firstName} + ) : ( + + {recipient.firstName.charAt(0)} + + )} +
+
+
+

+ {recipient.firstName} {recipient.lastName} +

+ + {recipient.relationship} + +
+
+ {recipient.location} +
+ {recipient.lastActivityText && ( +
+ Last activity: {recipient.lastActivityText} +
+ )} +
+ +
+ ); +}; + +export default RecipientListCard; diff --git a/src/components/SettingsRow.tsx b/src/components/SettingsRow.tsx new file mode 100644 index 0000000..7a96e51 --- /dev/null +++ b/src/components/SettingsRow.tsx @@ -0,0 +1,115 @@ +import React from 'react'; +import { IonIcon, IonToggle } from '@ionic/react'; +import { chevronForwardOutline } from 'ionicons/icons'; + +interface SettingsRowProps { + icon: string; + iconColor?: string; + iconBg?: string; + title: string; + subtitle?: string; + onClick?: () => void; + type?: 'link' | 'toggle' | 'button'; + checked?: boolean; + onToggle?: (checked: boolean) => void; + destructive?: boolean; +} + +const SettingsRow: React.FC = ({ + icon, + iconColor = '#6d28d9', + iconBg = 'rgba(109,40,217,0.1)', + title, + subtitle, + onClick, + type = 'link', + checked = false, + onToggle, + destructive = false, +}) => { + const content = ( + <> +
+ +
+
+
+ {title} +
+ {subtitle && ( +
+ {subtitle} +
+ )} +
+ {type === 'link' && ( + + )} + {type === 'toggle' && ( + onToggle && onToggle(e.detail.checked)} + style={{ padding: 0 }} + /> + )} + + ); + + const containerStyle: React.CSSProperties = { + display: 'flex', + alignItems: 'center', + padding: '12px 16px', + gap: '14px', + minHeight: '56px', + cursor: onClick || type === 'toggle' ? 'pointer' : 'default', + backgroundColor: 'transparent', + border: 'none', + width: '100%', + textAlign: 'left', + }; + + if (type === 'link' || type === 'button') { + return ( + + ); + } + + return
{content}
; +}; + +export default SettingsRow; diff --git a/src/components/SocialAuthButton.tsx b/src/components/SocialAuthButton.tsx new file mode 100644 index 0000000..88d81c2 --- /dev/null +++ b/src/components/SocialAuthButton.tsx @@ -0,0 +1,55 @@ +import React from 'react'; + +interface SocialAuthButtonProps { + provider: 'google' | 'apple'; + label: string; + onClick: () => void; + disabled?: boolean; +} + +const SocialAuthButton: React.FC = ({ + provider, + label, + onClick, + disabled = false, +}) => { + return ( + + ); +}; + +export default SocialAuthButton; diff --git a/src/contexts/AuthContext.tsx b/src/contexts/AuthContext.tsx new file mode 100644 index 0000000..1f6cd5e --- /dev/null +++ b/src/contexts/AuthContext.tsx @@ -0,0 +1,321 @@ +import React, { + createContext, + useCallback, + useContext, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; +import type { User } from '@supabase/supabase-js'; +import { supabase } from '../supabase'; +import { + buildCacheKey, + readCache, + writeCache, + clearUserCache, +} from '../utils/localCache'; + +export interface Profile { + id: string; + first_name: string; + last_name: string; + full_name: string; + phone: string; + country_of_residence: string; + avatar_path: string | null; + fcm_token: string | null; + notification_push_enabled: boolean; + notification_email_enabled: boolean; + notification_sms_enabled: boolean; + created_at: string; + updated_at: string; +} + +export type ProfileStatus = 'idle' | 'loading' | 'loaded' | 'missing' | 'error'; + +interface AuthContextType { + user: User | null; + profile: Profile | null; + profileStatus: ProfileStatus; + refreshProfile: () => Promise; + setProfile: (profile: Profile | null) => void; + signOut: () => Promise; +} + +const BYPASS_AUTH = true; + +const AuthContext = createContext({ + user: null, + profile: null, + profileStatus: BYPASS_AUTH ? 'idle' : 'loading', + refreshProfile: async () => null, + setProfile: () => {}, + signOut: async () => {}, +}); + +const withTimeout = async ( + request: PromiseLike, + timeoutMs: number, + label: string +): Promise => { + let timeoutId: ReturnType | undefined; + + const timeout = new Promise((_, reject) => { + timeoutId = setTimeout(() => { + reject( + new Error( + `${label} timed out. Please check your connection and try again.` + ) + ); + }, timeoutMs); + }); + + try { + return await Promise.race([Promise.resolve(request), timeout]); + } finally { + if (timeoutId) clearTimeout(timeoutId); + } +}; + +export const useAuth = () => useContext(AuthContext); + +export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ + children, +}) => { + const [user, setUser] = useState(null); + const [profile, setProfileState] = useState(null); + const [profileStatus, setProfileStatus] = useState( + BYPASS_AUTH ? 'idle' : 'loading' + ); + const [initializing, setInitializing] = useState(!BYPASS_AUTH); + const activeProfileFetchRef = useRef(0); + const mountedRef = useRef(false); + const currentUserIdRef = useRef(null); + + const applyProfile = useCallback((nextProfile: Profile | null) => { + if (!mountedRef.current) return; + setProfileState(nextProfile); + setProfileStatus(nextProfile ? 'loaded' : 'missing'); + }, []); + + const setProfile = useCallback( + (nextProfile: Profile | null) => { + activeProfileFetchRef.current += 1; + applyProfile(nextProfile); + }, + [applyProfile] + ); + + const fetchProfile = useCallback( + async ( + userId: string, + options?: { showLoading?: boolean } + ): Promise => { + const fetchId = activeProfileFetchRef.current + 1; + activeProfileFetchRef.current = fetchId; + + if ((options?.showLoading ?? true) && mountedRef.current) { + setProfileStatus('loading'); + } + + const cacheKey = buildCacheKey(userId, 'profile'); + try { + const cachedProfile = await readCache(cacheKey); + if ( + cachedProfile && + mountedRef.current && + fetchId === activeProfileFetchRef.current && + currentUserIdRef.current === userId + ) { + applyProfile(cachedProfile); + } + } catch (err) { + console.error('[AuthProvider] Failed to read cached profile', err); + } + + try { + const { data, error } = await withTimeout( + supabase.from('profiles').select('*').eq('id', userId).maybeSingle(), + 8000, + 'Profile loading' + ); + + if ( + !mountedRef.current || + fetchId !== activeProfileFetchRef.current || + currentUserIdRef.current !== userId + ) { + return data ? (data as Profile) : null; + } + + if (error) { + console.error('[AuthProvider] Failed to fetch profile', error); + setProfileState(null); + setProfileStatus('error'); + return null; + } + + const nextProfile = data ? (data as Profile) : null; + applyProfile(nextProfile); + if (nextProfile) { + void writeCache(cacheKey, nextProfile); + } + return nextProfile; + } catch (error) { + if ( + mountedRef.current && + fetchId === activeProfileFetchRef.current && + currentUserIdRef.current === userId + ) { + console.error('[AuthProvider] Profile fetch crashed', error); + setProfileState(null); + setProfileStatus('error'); + } + return null; + } + }, + [applyProfile] + ); + + useEffect(() => { + mountedRef.current = true; + + if (BYPASS_AUTH) { + setInitializing(false); + setProfileStatus('idle'); + return () => { + mountedRef.current = false; + activeProfileFetchRef.current += 1; + }; + } + + let cancelled = false; + + supabase.auth + .getSession() + .then(({ data }) => { + if (cancelled || !mountedRef.current) return; + const currentUser = data.session?.user ?? null; + currentUserIdRef.current = currentUser?.id ?? null; + setUser(currentUser); + }) + .catch((error) => { + console.error('[AuthProvider] Failed to initialise session', error); + if (!cancelled && mountedRef.current) { + currentUserIdRef.current = null; + setUser(null); + setProfileState(null); + setProfileStatus('missing'); + } + }) + .finally(() => { + if (!cancelled && mountedRef.current) { + setInitializing(false); + } + }); + + const { + data: { subscription }, + } = supabase.auth.onAuthStateChange((_event, session) => { + const nextUser = session?.user ?? null; + + // Supabase warns against running additional async Supabase calls directly + // inside onAuthStateChange. Keep this callback synchronous and let the + // profile-loading effect below react to the user change. Deferring the + // state write also prevents auth event deadlocks during sign-in. + setTimeout(() => { + if (!mountedRef.current) return; + currentUserIdRef.current = nextUser?.id ?? null; + setUser(nextUser); + }, 0); + }); + + return () => { + cancelled = true; + mountedRef.current = false; + activeProfileFetchRef.current += 1; + subscription.unsubscribe(); + }; + }, []); + + useEffect(() => { + if (BYPASS_AUTH || initializing) return; + + if (!user) { + activeProfileFetchRef.current += 1; + currentUserIdRef.current = null; + setProfileState(null); + setProfileStatus('missing'); + return; + } + + currentUserIdRef.current = user.id; + void fetchProfile(user.id, { showLoading: true }); + }, [fetchProfile, initializing, user?.id]); + + const signOut = useCallback(async () => { + activeProfileFetchRef.current += 1; + setProfileState(null); + setProfileStatus('missing'); + const currentUserId = currentUserIdRef.current; + if (currentUserId) { + await clearUserCache(currentUserId); + } + await supabase.auth.signOut(); + }, []); + + const refreshProfile = useCallback(() => { + return user + ? fetchProfile(user.id, { showLoading: false }) + : Promise.resolve(null); + }, [fetchProfile, user]); + + const contextValue = useMemo( + () => ({ + user, + profile, + profileStatus, + refreshProfile, + setProfile, + signOut, + }), + [profile, profileStatus, refreshProfile, setProfile, signOut, user] + ); + + if (initializing) { + return ( +
+
+ +
+ ); + } + + return ( + {children} + ); +}; diff --git a/src/database.types.ts b/src/database.types.ts new file mode 100644 index 0000000..f82126b --- /dev/null +++ b/src/database.types.ts @@ -0,0 +1,676 @@ +export type Json = + | string + | number + | boolean + | null + | { [key: string]: Json | undefined } + | Json[] + +export type Database = { + // Allows to automatically instantiate createClient with right options + // instead of createClient(URL, KEY) + __InternalSupabase: { + PostgrestVersion: "14.5" + } + public: { + Tables: { + activity_events: { + Row: { + amount: number | null + created_at: string + event_at: string + event_type: string + id: string + metadata: Json + order_id: string | null + recipient_id: string | null + subtitle: string + title: string + user_id: string + } + Insert: { + amount?: number | null + created_at?: string + event_at?: string + event_type: string + id?: string + metadata?: Json + order_id?: string | null + recipient_id?: string | null + subtitle: string + title: string + user_id: string + } + Update: { + amount?: number | null + created_at?: string + event_at?: string + event_type?: string + id?: string + metadata?: Json + order_id?: string | null + recipient_id?: string | null + subtitle?: string + title?: string + user_id?: string + } + Relationships: [] + } + care_alerts: { + Row: { + alert_type: string + body: string + created_at: string + dismissed_at: string | null + due_at: string | null + id: string + recipient_id: string + schedule_id: string | null + service_type: string | null + severity: string + title: string + user_id: string + } + Insert: { + alert_type: string + body: string + created_at?: string + dismissed_at?: string | null + due_at?: string | null + id?: string + recipient_id: string + schedule_id?: string | null + service_type?: string | null + severity: string + title: string + user_id: string + } + Update: { + alert_type?: string + body?: string + created_at?: string + dismissed_at?: string | null + due_at?: string | null + id?: string + recipient_id?: string + schedule_id?: string | null + service_type?: string | null + severity?: string + title?: string + user_id?: string + } + Relationships: [ + { + foreignKeyName: "care_alerts_schedule_id_fkey" + columns: ["schedule_id"] + isOneToOne: false + referencedRelation: "support_schedules" + referencedColumns: ["id"] + }, + ] + } + merchants: { + Row: { + branch_name: string | null + city: string + country: string + created_at: string + id: string + is_active: boolean + merchant_type: string + name: string + } + Insert: { + branch_name?: string | null + city: string + country: string + created_at?: string + id?: string + is_active?: boolean + merchant_type: string + name: string + } + Update: { + branch_name?: string | null + city?: string + country?: string + created_at?: string + id?: string + is_active?: boolean + merchant_type?: string + name?: string + } + Relationships: [] + } + notifications: { + Row: { + body: string + created_at: string + id: string + order_id: string | null + priority: string + read_at: string | null + recipient_id: string | null + title: string + type: string + user_id: string + voucher_id: string | null + } + Insert: { + body: string + created_at?: string + id?: string + order_id?: string | null + priority: string + read_at?: string | null + recipient_id?: string | null + title: string + type: string + user_id: string + voucher_id?: string | null + } + Update: { + body?: string + created_at?: string + id?: string + order_id?: string | null + priority?: string + read_at?: string | null + recipient_id?: string | null + title?: string + type?: string + user_id?: string + voucher_id?: string | null + } + Relationships: [ + { + foreignKeyName: "notifications_voucher_id_fkey" + columns: ["voucher_id"] + isOneToOne: false + referencedRelation: "vouchers" + referencedColumns: ["id"] + }, + ] + } + payment_methods: { + Row: { + brand: string | null + created_at: string + expiry_month: number | null + expiry_year: number | null + id: string + is_default: boolean + last4: string | null + provider: string + user_id: string + } + Insert: { + brand?: string | null + created_at?: string + expiry_month?: number | null + expiry_year?: number | null + id?: string + is_default?: boolean + last4?: string | null + provider: string + user_id: string + } + Update: { + brand?: string | null + created_at?: string + expiry_month?: number | null + expiry_year?: number | null + id?: string + is_default?: boolean + last4?: string | null + provider?: string + user_id?: string + } + Relationships: [] + } + profiles: { + Row: { + avatar_path: string | null + country_of_residence: string + created_at: string + fcm_token: string | null + first_name: string + full_name: string + id: string + last_name: string + notification_email_enabled: boolean + notification_push_enabled: boolean + notification_sms_enabled: boolean + phone: string + updated_at: string + } + Insert: { + avatar_path?: string | null + country_of_residence: string + created_at?: string + fcm_token?: string | null + first_name: string + full_name: string + id: string + last_name: string + notification_email_enabled?: boolean + notification_push_enabled?: boolean + notification_sms_enabled?: boolean + phone: string + updated_at?: string + } + Update: { + avatar_path?: string | null + country_of_residence?: string + created_at?: string + fcm_token?: string | null + first_name?: string + full_name?: string + id?: string + last_name?: string + notification_email_enabled?: boolean + notification_push_enabled?: boolean + notification_sms_enabled?: boolean + phone?: string + updated_at?: string + } + Relationships: [] + } + recipients: { + Row: { + city: string + country: string + created_at: string + first_name: string + id: string + is_active: boolean + last_name: string + mobile_number: string + photo_path: string | null + relationship: string + updated_at: string + user_id: string + } + Insert: { + city: string + country: string + created_at?: string + first_name: string + id?: string + is_active?: boolean + last_name: string + mobile_number: string + photo_path?: string | null + relationship: string + updated_at?: string + user_id: string + } + Update: { + city?: string + country?: string + created_at?: string + first_name?: string + id?: string + is_active?: boolean + last_name?: string + mobile_number?: string + photo_path?: string | null + relationship?: string + updated_at?: string + user_id?: string + } + Relationships: [] + } + support_orders: { + Row: { + amount: number + created_at: string + currency: string + delivery_channel: string + id: string + merchant_id: string | null + meter_number: string | null + network: string | null + note: string | null + payment_method: string | null + platform_fee: number + recipient_id: string + recurring_schedule_id: string | null + service_type: string + status: string + total_amount: number + updated_at: string + user_id: string + } + Insert: { + amount: number + created_at?: string + currency?: string + delivery_channel?: string + id?: string + merchant_id?: string | null + meter_number?: string | null + network?: string | null + note?: string | null + payment_method?: string | null + platform_fee: number + recipient_id: string + recurring_schedule_id?: string | null + service_type: string + status: string + total_amount: number + updated_at?: string + user_id: string + } + Update: { + amount?: number + created_at?: string + currency?: string + delivery_channel?: string + id?: string + merchant_id?: string | null + meter_number?: string | null + network?: string | null + note?: string | null + payment_method?: string | null + platform_fee?: number + recipient_id?: string + recurring_schedule_id?: string | null + service_type?: string + status?: string + total_amount?: number + updated_at?: string + user_id?: string + } + Relationships: [ + { + foreignKeyName: "support_orders_merchant_id_fkey" + columns: ["merchant_id"] + isOneToOne: false + referencedRelation: "merchants" + referencedColumns: ["id"] + }, + { + foreignKeyName: "support_orders_recipient_id_fkey" + columns: ["recipient_id"] + isOneToOne: false + referencedRelation: "recipients" + referencedColumns: ["id"] + }, + { + foreignKeyName: "support_orders_recurring_schedule_id_fkey" + columns: ["recurring_schedule_id"] + isOneToOne: false + referencedRelation: "support_schedules" + referencedColumns: ["id"] + }, + ] + } + support_schedules: { + Row: { + created_at: string | null + frequency_interval: number + frequency_unit: string + id: string + is_active: boolean + last_supported_at: string | null + next_due_at: string + recipient_id: string + service_type: string + updated_at: string | null + user_id: string + } + Insert: { + created_at?: string | null + frequency_interval: number + frequency_unit: string + id?: string + is_active?: boolean + last_supported_at?: string | null + next_due_at: string + recipient_id: string + service_type: string + updated_at?: string | null + user_id: string + } + Update: { + created_at?: string | null + frequency_interval?: number + frequency_unit?: string + id?: string + is_active?: boolean + last_supported_at?: string | null + next_due_at?: string + recipient_id?: string + service_type?: string + updated_at?: string | null + user_id?: string + } + Relationships: [ + { + foreignKeyName: "support_schedules_recipient_id_fkey" + columns: ["recipient_id"] + isOneToOne: false + referencedRelation: "recipients" + referencedColumns: ["id"] + }, + ] + } + voucher_redemptions: { + Row: { + created_at: string + id: string + merchant_id: string + order_id: string + receipt_reference: string | null + redeemed_amount: number + redeemed_at: string + voucher_id: string + } + Insert: { + created_at?: string + id?: string + merchant_id: string + order_id: string + receipt_reference?: string | null + redeemed_amount: number + redeemed_at?: string + voucher_id: string + } + Update: { + created_at?: string + id?: string + merchant_id?: string + order_id?: string + receipt_reference?: string | null + redeemed_amount?: number + redeemed_at?: string + voucher_id?: string + } + Relationships: [ + { + foreignKeyName: "voucher_redemptions_voucher_id_fkey" + columns: ["voucher_id"] + isOneToOne: false + referencedRelation: "vouchers" + referencedColumns: ["id"] + }, + ] + } + vouchers: { + Row: { + created_at: string + expires_at: string + id: string + order_id: string + qr_payload: string + redeemed_at: string | null + redeemed_merchant_id: string | null + status: string + voucher_code: string + voucher_type: string + } + Insert: { + created_at?: string + expires_at: string + id?: string + order_id: string + qr_payload: string + redeemed_at?: string | null + redeemed_merchant_id?: string | null + status: string + voucher_code: string + voucher_type: string + } + Update: { + created_at?: string + expires_at?: string + id?: string + order_id?: string + qr_payload?: string + redeemed_at?: string | null + redeemed_merchant_id?: string | null + status?: string + voucher_code?: string + voucher_type?: string + } + Relationships: [] + } + } + Views: { + [_ in never]: never + } + Functions: { + [_ in never]: never + } + Enums: { + [_ in never]: never + } + CompositeTypes: { + [_ in never]: never + } + } +} + +type DatabaseWithoutInternals = Omit + +type DefaultSchema = DatabaseWithoutInternals[Extract] + +export type Tables< + DefaultSchemaTableNameOrOptions extends + | keyof (DefaultSchema["Tables"] & DefaultSchema["Views"]) + | { schema: keyof DatabaseWithoutInternals }, + TableName extends DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & + DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"]) + : never = never, +> = DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & + DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends { + Row: infer R + } + ? R + : never + : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] & + DefaultSchema["Views"]) + ? (DefaultSchema["Tables"] & + DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends { + Row: infer R + } + ? R + : never + : never + +export type TablesInsert< + DefaultSchemaTableNameOrOptions extends + | keyof DefaultSchema["Tables"] + | { schema: keyof DatabaseWithoutInternals }, + TableName extends DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] + : never = never, +> = DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends { + Insert: infer I + } + ? I + : never + : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] + ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends { + Insert: infer I + } + ? I + : never + : never + +export type TablesUpdate< + DefaultSchemaTableNameOrOptions extends + | keyof DefaultSchema["Tables"] + | { schema: keyof DatabaseWithoutInternals }, + TableName extends DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] + : never = never, +> = DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends { + Update: infer U + } + ? U + : never + : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] + ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends { + Update: infer U + } + ? U + : never + : never + +export type Enums< + DefaultSchemaEnumNameOrOptions extends + | keyof DefaultSchema["Enums"] + | { schema: keyof DatabaseWithoutInternals }, + EnumName extends DefaultSchemaEnumNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"] + : never = never, +> = DefaultSchemaEnumNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName] + : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"] + ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions] + : never + +export type CompositeTypes< + PublicCompositeTypeNameOrOptions extends + | keyof DefaultSchema["CompositeTypes"] + | { schema: keyof DatabaseWithoutInternals }, + CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] + : never = never, +> = PublicCompositeTypeNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] + : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"] + ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions] + : never + +export const Constants = { + public: { + Enums: {}, + }, +} as const diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..7f9c5d2 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,113 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import { setupIonicReact } from '@ionic/react'; +import { Capacitor } from '@capacitor/core'; +import App from './App'; + +// ── Ionic initialisation ────────────────────────────────────────────────────── +// ?mode=md|ios overrides (used by Appcakes preview); otherwise follow the platform. +const _urlMode = new URLSearchParams(window.location.search).get('mode'); +const _platform = Capacitor.getPlatform(); // 'ios' | 'android' | 'web' +setupIonicReact({ + mode: (_urlMode === 'md' ? 'md' : _urlMode === 'ios' ? 'ios' : _platform === 'android' ? 'md' : 'ios'), +}); + +// Derive the studio parent origin dynamically so this works in both dev +// (parent at localhost:3000) and production (parent at studio.appcakes.dev). +const studioOrigin = (() => { + try { + if (document.referrer) return new URL(document.referrer).origin; + } catch {} + return 'http://localhost:3000'; +})(); + +// ── Safe area bridge ────────────────────────────────────────────────────────── +// Priority: URL params (first load) → sessionStorage (HMR full-reloads) → postMessage. +// Capacitor sets env() natively in compiled apps; these paths cover the browser preview. +function _applyInsets(sat: string | null, sab: string | null) { + if (sat) { document.documentElement.style.setProperty('--ion-safe-area-top', `${sat}px`); sessionStorage.setItem('__apsuite_sat', sat); } + if (sab) { document.documentElement.style.setProperty('--ion-safe-area-bottom', `${sab}px`); sessionStorage.setItem('__apsuite_sab', sab); } +} + +const _sp = new URLSearchParams(window.location.search); +_applyInsets( + _sp.get('sat') ?? sessionStorage.getItem('__apsuite_sat'), + _sp.get('sab') ?? sessionStorage.getItem('__apsuite_sab'), +); + +window.addEventListener('message', (e) => { + if (e.data?.type !== '__apsuite_insets') return; + const { sat, sab } = e.data as { sat?: number; sab?: number }; + _applyInsets(sat != null ? String(sat) : null, sab != null ? String(sab) : null); +}); + +// Re-apply after React Fast Refresh so insets survive soft HMR cycles. +if (import.meta.hot) { + import.meta.hot.on('vite:afterUpdate', () => { + _applyInsets(sessionStorage.getItem('__apsuite_sat'), sessionStorage.getItem('__apsuite_sab')); + }); +} + +// ── Session bridge ──────────────────────────────────────────────────────────── +// Post auth session to the Appcakes parent frame so the AI can test auth-protected +// Edge Functions. Uses import.meta.glob so Vite never errors if supabase.ts is absent. +(async () => { + const mods = import.meta.glob('./supabase.ts', { eager: false }); + if ('./supabase.ts' in mods) { + try { + const { supabase } = await mods['./supabase.ts']() as { supabase: any }; + // supabase.auth.onAuthStateChange((_event: unknown, session: any) => { + // setTimeout(() => { + // window.parent.postMessage( + // { + // type: '__apsuite_session', + // access_token: session?.access_token ?? null, + // email: session?.user?.email ?? null, + // }, + // studioOrigin, + // ); + // }, 0); + // }); + } catch { + // supabase client failed to initialise — session bridge unavailable + } + } +})(); + +// ── Runtime error reporting ─────────────────────────────────────────────────── +// Forward uncaught errors to the Appcakes dev server so the AI can read them. +// Extract projectId from the preview URL (/preview/{projectId}/) so errors are +// scoped per-project on the server rather than mixed into a global queue. +const _previewMatch = window.location.pathname.match(/\/preview\/([^/]+)/); +const _projectId = _previewMatch?.[1] ?? null; + +function reportError(message: string, stack?: string) { + fetch(`${studioOrigin}/api/agent/runtime-error`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ message, stack, projectId: _projectId }), + }).catch(() => {}); +} + +window.onerror = (_msg, _src, _line, _col, err) => { + reportError(String(_msg), err?.stack); + return false; +}; + +window.addEventListener('unhandledrejection', (e) => { + const err = e.reason as Error | undefined; + reportError(err?.message ?? String(e.reason), err?.stack); +}); + +// ── PWA Elements (Action Sheet, Camera, Toast etc. in browser preview) ──────── +import { defineCustomElements } from '@ionic/pwa-elements/loader'; +defineCustomElements(window); + +// ── App bootstrap ───────────────────────────────────────────────────────────── +const container = document.getElementById('root'); +const root = createRoot(container!); +root.render( + + + , +); diff --git a/src/pages/ActivityPage.tsx b/src/pages/ActivityPage.tsx new file mode 100644 index 0000000..c33d3cf --- /dev/null +++ b/src/pages/ActivityPage.tsx @@ -0,0 +1,703 @@ +import React, { useEffect, useMemo, useState } from 'react'; +import { + IonContent, + IonIcon, + IonPage, + IonRefresher, + IonRefresherContent, + IonSegment, + IonSegmentButton, + IonSkeletonText, + IonLabel, + useIonViewWillEnter, +} from '@ionic/react'; +import { fileTrayOutline } from 'ionicons/icons'; +import momImage from '../assets/mom.jpg'; +import dadImage from '../assets/dad.jpg'; +import { useHistory } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import ActivityListItem from '../components/ActivityListItem'; +import { setStatusBarStyle, Style } from '../utils/statusBar'; +import { buildCacheKey, readCache, writeCache } from '../utils/localCache'; +import '../styles/activity.css'; +import '../styles/recipients.css'; + +type RecipientRow = { + id: string; + first_name: string; + last_name: string; + photo_path: string | null; +}; + +type MerchantRow = { + id: string; + name: string; + branch_name: string | null; +}; + +type OrderRow = { + id: string; + service_type: string; + amount: number; + status: string; + created_at: string; + recipient_id: string; + merchant_id: string | null; + recipients: RecipientRow | null; + merchants: MerchantRow | null; +}; + +type VoucherRow = { + id: string; + order_id: string; + status: string; + redeemed_at: string | null; + redeemed_merchant_id: string | null; +}; + +type RedemptionRow = { + id: string; + voucher_id: string; + order_id: string; + merchant_id: string; + redeemed_at: string; +}; + +type ActivityMetadata = { + statusText?: string; + avatarLabel?: string; + avatarTone?: string; + avatarImage?: string; + voucherId?: string; +}; + +type UnifiedActivityItem = { + kind: 'voucher' | 'order'; + id: string; + event_type: string; + service_type: string; + title: string; + subtitle: string; + amount: number | null; + event_at: string; + order_id: string; + metadata: ActivityMetadata; +}; + +type ActivityTypeFilter = + | 'all' + | 'orders' + | 'vouchers' + | 'completed' + | 'alerts'; + +type ActivityFilterRange = '7' | '30' | '90' | 'all'; + +type VoucherActivityStatus = 'created' | 'redeemed' | 'partially'; + +const previewUserId = '00000000-0000-0000-0000-000000000000'; + +const dayLabel = (dateText: string) => { + const date = new Date(dateText); + const today = new Date(); + const yesterday = new Date(); + yesterday.setDate(today.getDate() - 1); + + if (date.toDateString() === today.toDateString()) return 'Today'; + if (date.toDateString() === yesterday.toDateString()) return 'Yesterday'; + return date.toLocaleDateString(undefined, { + month: 'short', + day: 'numeric', + year: 'numeric', + }); +}; + +const getMerchantDisplayName = (merchant?: MerchantRow | null) => { + if (!merchant) return null; + return `${merchant.name}${merchant.branch_name ? ` ${merchant.branch_name}` : ''}`; +}; + +const getActivityContextLabel = ( + serviceType: string, + statusText: string, + merchantName?: string | null +) => { + const normalizedService = getNormalizedServiceType(serviceType); + const normalizedStatus = statusText.toLowerCase(); + + if (normalizedService === 'grocery' || normalizedService === 'medication') { + if (normalizedStatus.includes('redeemed')) { + return merchantName ? `Redeemed at ${merchantName}` : 'Voucher redeemed'; + } + if (normalizedStatus.includes('partial')) { + return merchantName + ? `Partially redeemed at ${merchantName}` + : 'Partially redeemed'; + } + return merchantName + ? `Ready at ${merchantName}` + : 'Voucher ready for collection'; + } + + if (normalizedService === 'electricity') { + return normalizedStatus.includes('completed') + ? 'Meter support delivered' + : 'Meter support sent'; + } + + if (normalizedService === 'airtime') { + return normalizedStatus.includes('completed') + ? 'Top-up delivered' + : 'Top-up sent'; + } + + return 'Support sent'; +}; + +const getRecipientDisplayName = (recipient?: RecipientRow | null) => { + if (!recipient) return 'Loved one'; + return `${recipient.first_name} ${recipient.last_name}`.trim(); +}; + +const getInitials = (name: string) => + name + .split(' ') + .map((part) => part.charAt(0)) + .join('') + .slice(0, 2) + .toUpperCase(); + +const getNormalizedServiceType = (value: string) => { + const normalized = value.toLowerCase(); + if (normalized.includes('grocery')) return 'grocery'; + if (normalized.includes('medication') || normalized.includes('pharmacy')) { + return 'medication'; + } + if (normalized.includes('airtime') || normalized.includes('data')) { + return 'airtime'; + } + if (normalized.includes('electricity') || normalized.includes('zesa')) { + return 'electricity'; + } + return normalized; +}; + +const getNormalizedServiceLabel = (serviceType: string) => { + const normalizedService = getNormalizedServiceType(serviceType); + if (normalizedService === 'grocery') return 'Grocery voucher'; + if (normalizedService === 'medication') return 'Medication voucher'; + if (normalizedService === 'airtime') return 'Airtime & Data'; + if (normalizedService === 'electricity') return 'Electricity'; + return serviceType.charAt(0).toUpperCase() + serviceType.slice(1); +}; + +const isVoucherService = (serviceType: string) => { + const normalizedService = getNormalizedServiceType(serviceType); + return normalizedService === 'grocery' || normalizedService === 'medication'; +}; + +const getVoucherStatus = ( + orderStatus: string, + voucher?: VoucherRow, + redemptions: RedemptionRow[] = [] +): VoucherActivityStatus => { + const combinedStatus = `${orderStatus} ${voucher?.status ?? ''}` + .toLowerCase() + .replace(/_/g, ' '); + + if (combinedStatus.includes('partial')) return 'partially'; + if ( + combinedStatus.includes('redeemed') || + Boolean(voucher?.redeemed_at) || + Boolean(voucher?.redeemed_merchant_id) || + redemptions.length > 0 + ) { + return 'redeemed'; + } + + return 'created'; +}; + +const getOrderStatus = (status: string) => { + const normalizedStatus = status.toLowerCase().replace(/_/g, ' '); + if ( + normalizedStatus.includes('completed') || + normalizedStatus.includes('delivered') || + normalizedStatus.includes('active') + ) { + return 'completed'; + } + return 'created'; +}; + +const getActivityStatusTone = (_serviceType: string, statusText?: string) => { + const normalizedStatus = statusText?.toLowerCase() ?? ''; + + if (normalizedStatus.includes('redeemed')) return 'success'; + if (normalizedStatus.includes('partial')) return 'partial'; + return 'warning'; +}; + +const getSeededRecipientImage = ( + firstName?: string | null, + photoPath?: string | null +) => { + const normalizedPath = photoPath?.trim().toLowerCase(); + if (normalizedPath === 'mom.jpg' || normalizedPath === 'mum.jpg') { + return momImage; + } + if (normalizedPath === 'dad.jpg' || normalizedPath === 'father.jpg') { + return dadImage; + } + + const normalizedName = firstName?.trim().toLowerCase(); + if (normalizedName === 'mum' || normalizedName === 'mom') return momImage; + if (normalizedName === 'dad' || normalizedName === 'father') return dadImage; + return undefined; +}; + +const getRecipientAvatarUrl = async (recipient?: RecipientRow | null) => { + if (!recipient) return undefined; + + const seededImage = getSeededRecipientImage( + recipient.first_name, + recipient.photo_path + ); + if (seededImage) return seededImage; + + if (!recipient.photo_path) return undefined; + + const { data } = await supabase.storage + .from('recipient-photos') + .createSignedUrl(recipient.photo_path, 3600); + + return data?.signedUrl; +}; + +const getAvatarTone = (serviceType: string) => { + const normalizedService = getNormalizedServiceType(serviceType); + if (normalizedService === 'medication') return 'mint'; + if (normalizedService === 'airtime') return 'sky'; + if (normalizedService === 'electricity') return 'gold'; + return 'lavender'; +}; + +const ActivityPage: React.FC = () => { + const history = useHistory(); + const { user } = useAuth(); + const [events, setEvents] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [range, setRange] = useState('all'); + const [typeFilter, setTypeFilter] = useState('all'); + + useIonViewWillEnter(() => { + setStatusBarStyle(Style.Light); + }); + + useEffect(() => { + void loadActivity(); + }, [user?.id]); + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const fetchOrdersForUser = async (userId: string) => { + return supabase + .from('support_orders') + .select( + 'id,service_type,amount,status,created_at,recipient_id,merchant_id,recipients(id,first_name,last_name,photo_path),merchants(id,name,branch_name)' + ) + .eq('user_id', userId) + .order('created_at', { ascending: false }); + }; + + const loadActivity = async (options?: { forceRefresh?: boolean }) => { + const activeUserId = user?.id ?? previewUserId; + const cacheKey = buildCacheKey(activeUserId, 'activityList'); + + let hasCache = false; + if (!options?.forceRefresh) { + try { + const cached = await readCache(cacheKey); + if (cached && Array.isArray(cached)) { + setEvents(cached); + setLoading(false); + hasCache = true; + } + } catch (err) { + console.error('[activity cache] error', err); + } + } + + if (!hasCache) { + setLoading(true); + } + setError(null); + + let { data: ordersData, error: ordersError } = + await fetchOrdersForUser(activeUserId); + + if (!ordersError && user?.id && (ordersData ?? []).length === 0) { + const previewResult = await fetchOrdersForUser(previewUserId); + ordersData = previewResult.data; + ordersError = previewResult.error; + } + + if (ordersError) { + showError(ordersError.message || 'Failed to load activity'); + if (!hasCache) setEvents([]); + if (!hasCache) setLoading(false); + return; + } + + const orders = (ordersData ?? []) as unknown as OrderRow[]; + const orderIds = orders.map((order) => order.id); + const recipientIds = Array.from( + new Set(orders.map((order) => order.recipient_id).filter(Boolean)) + ); + + const [recipientsRes, vouchersRes, redemptionsRes, merchantsRes] = + await Promise.all([ + recipientIds.length > 0 + ? supabase + .from('recipients') + .select('id,first_name,last_name,photo_path') + .in('id', recipientIds) + : Promise.resolve({ data: [], error: null }), + orderIds.length > 0 + ? supabase + .from('vouchers') + .select('id,order_id,status,redeemed_at,redeemed_merchant_id') + .in('order_id', orderIds) + : Promise.resolve({ data: [], error: null }), + orderIds.length > 0 + ? supabase + .from('voucher_redemptions') + .select('id,voucher_id,order_id,merchant_id,redeemed_at') + .in('order_id', orderIds) + : Promise.resolve({ data: [], error: null }), + supabase.from('merchants').select('id,name,branch_name'), + ]); + + if ( + recipientsRes.error || + vouchersRes.error || + redemptionsRes.error || + merchantsRes.error + ) { + showError( + recipientsRes.error?.message || + vouchersRes.error?.message || + redemptionsRes.error?.message || + merchantsRes.error?.message || + 'Failed to load activity details' + ); + if (!hasCache) setEvents([]); + if (!hasCache) setLoading(false); + return; + } + + const recipientsById = new Map( + ((recipientsRes.data ?? []) as RecipientRow[]).map((recipient) => [ + recipient.id, + recipient, + ]) + ); + const vouchersByOrderId = new Map( + ((vouchersRes.data ?? []) as VoucherRow[]).map((voucher) => [ + voucher.order_id, + voucher, + ]) + ); + const redemptionsByOrderId = ( + (redemptionsRes.data ?? []) as RedemptionRow[] + ).reduce>((acc, redemption) => { + const existing = acc.get(redemption.order_id) ?? []; + existing.push(redemption); + acc.set(redemption.order_id, existing); + return acc; + }, new Map()); + const merchantsById = new Map( + ((merchantsRes.data ?? []) as MerchantRow[]).map((merchant) => [ + merchant.id, + merchant, + ]) + ); + + const mappedRows = await Promise.all( + orders.map(async (order) => { + const recipient = + order.recipients ?? recipientsById.get(order.recipient_id) ?? null; + const recipientName = getRecipientDisplayName(recipient); + const serviceType = getNormalizedServiceType(order.service_type); + const voucher = vouchersByOrderId.get(order.id); + const redemptions = redemptionsByOrderId.get(order.id) ?? []; + const latestRedemption = [...redemptions].sort( + (a, b) => + new Date(b.redeemed_at).getTime() - + new Date(a.redeemed_at).getTime() + )[0]; + const statusText = isVoucherService(serviceType) + ? getVoucherStatus(order.status, voucher, redemptions) + : getOrderStatus(order.status); + const redemptionMerchant = latestRedemption?.merchant_id + ? merchantsById.get(latestRedemption.merchant_id) + : null; + const voucherMerchant = voucher?.redeemed_merchant_id + ? merchantsById.get(voucher.redeemed_merchant_id) + : null; + const orderMerchant = + order.merchants ?? + (order.merchant_id ? merchantsById.get(order.merchant_id) : null); + const merchantName = + getMerchantDisplayName(redemptionMerchant) ?? + getMerchantDisplayName(voucherMerchant) ?? + getMerchantDisplayName(orderMerchant); + const subtitle = getActivityContextLabel( + serviceType, + statusText, + merchantName + ); + const avatarImage = await getRecipientAvatarUrl(recipient); + + return { + kind: isVoucherService(serviceType) ? 'voucher' : 'order', + id: order.id, + order_id: order.id, + event_type: serviceType, + service_type: serviceType, + title: getNormalizedServiceLabel(serviceType), + subtitle, + amount: Number(order.amount ?? 0), + event_at: order.created_at, + metadata: { + statusText, + avatarLabel: getInitials(recipientName), + avatarTone: getAvatarTone(serviceType), + avatarImage, + voucherId: voucher?.id, + }, + } satisfies UnifiedActivityItem; + }) + ); + + const finalEvents = mappedRows.sort( + (a, b) => new Date(b.event_at).getTime() - new Date(a.event_at).getTime() + ); + + setEvents(finalEvents); + setLoading(false); + void writeCache(cacheKey, finalEvents); + }; + + const filteredEvents = useMemo(() => { + const threshold = new Date(); + if (range !== 'all') { + const days = Number(range); + threshold.setHours(0, 0, 0, 0); + threshold.setDate(threshold.getDate() - (days - 1)); + } + + return events.filter((item) => { + if ( + range !== 'all' && + new Date(item.event_at).getTime() < threshold.getTime() + ) { + return false; + } + + switch (typeFilter) { + case 'all': + return true; + case 'orders': + return item.kind === 'order'; + case 'vouchers': + return item.kind === 'voucher'; + case 'completed': { + const status = (item.metadata.statusText || '').toLowerCase(); + return ( + status.includes('completed') || + status.includes('redeemed') || + status.includes('partial') + ); + } + case 'alerts': + return false; + default: + return true; + } + }); + }, [events, range, typeFilter]); + + const groups = useMemo(() => { + return filteredEvents.reduce>( + (acc, event) => { + const label = dayLabel(event.event_at); + acc[label] = acc[label] ?? []; + acc[label].push(event); + return acc; + }, + {} + ); + }, [filteredEvents]); + + const handleRefresh = async (event: CustomEvent) => { + await loadActivity({ forceRefresh: true }); + event.detail.complete(); + }; + + const handleOpenEvent = (event: UnifiedActivityItem) => { + history.push(`/orders/${event.order_id}`, { parentRoot: '/activity' }); + }; + + return ( + + + + + + +
+
+

Activity

+

Orders & care timeline

+
+
+ +
+ {( + [ + 'all', + 'orders', + 'vouchers', + 'completed', + 'alerts', + ] as ActivityTypeFilter[] + ).map((type) => ( + + ))} +
+ +
+
+ + setRange((event.detail.value as ActivityFilterRange) ?? '30') + } + > + + All + + + 30 days + + + 90 days + + +
+
+ + {error && ( +

+ {error} +

+ )} + + {loading ? ( +
+ {[1, 2, 3].map((item) => ( +
+ +
+ + +
+
+ ))} +
+ ) : filteredEvents.length === 0 ? ( +
+ +

+ {typeFilter === 'all' + ? 'No activity in this range' + : 'No matching activity'} +

+

+ Try a longer date range or switch the activity filter. +

+
+ ) : ( + Object.entries(groups).map(([label, items]) => ( +
+

{label}

+
+ {items.map((item) => ( + handleOpenEvent(item)} + onStatusClick={() => handleOpenEvent(item)} + /> + ))} +
+
+ )) + )} +
+
+ ); +}; + +export default ActivityPage; diff --git a/src/pages/AuthPage.tsx b/src/pages/AuthPage.tsx new file mode 100644 index 0000000..54289e7 --- /dev/null +++ b/src/pages/AuthPage.tsx @@ -0,0 +1,355 @@ +import React, { useState, useEffect, useRef } from 'react'; +import { IonPage, IonContent, useIonViewWillEnter } from '@ionic/react'; +import { useHistory } from 'react-router-dom'; +import { supabase } from '../supabase'; +// import { useAuth } from '../contexts/AuthContext'; +import { Capacitor } from '@capacitor/core'; +import { FirebaseAuthentication } from '@capacitor-firebase/authentication'; +import AuthFormFields from '../components/AuthFormFields'; +import SocialAuthButton from '../components/SocialAuthButton'; +import '../styles/auth.css'; + +const AuthPage: React.FC = () => { + const history = useHistory(); + // const location = useLocation(); + // const { user, profile, profileStatus } = useAuth(); + const signInTimeoutRef = useRef | null>(null); + // const navigatedForUserRef = useRef(null); + + const [tab, setTab] = useState<'login' | 'register'>('login'); + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + const [confirmPassword, setConfirmPassword] = useState(''); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + // useEffect(() => { + // if (!user) { + // navigatedForUserRef.current = null; + // return; + // } + + // if (signInTimeoutRef.current) { + // clearTimeout(signInTimeoutRef.current); + // signInTimeoutRef.current = null; + // } + + // if (location.pathname !== '/auth' || profileStatus === 'loading') return; + // if (navigatedForUserRef.current === user.id) return; + + // navigatedForUserRef.current = user.id; + // setLoading(false); + + // if ( + // !profile || + // !profile.first_name || + // !profile.last_name || + // !profile.phone || + // !profile.country_of_residence + // ) { + // history.replace('/setup-profile'); + // } else { + // history.replace('/home'); + // } + // }, [user, profile, profileStatus, location.pathname, history]); + + useEffect(() => { + return () => { + if (signInTimeoutRef.current) { + clearTimeout(signInTimeoutRef.current); + } + }; + }, []); + + useIonViewWillEnter(() => { + setTab('login'); + setError(null); + }); + + const showError = (msg: string) => { + setError(msg); + setTimeout(() => setError(null), 4000); + }; + + const handleTabChange = (nextTab: 'login' | 'register') => { + setTab(nextTab); + setError(null); + if (nextTab === 'login') { + setConfirmPassword(''); + } + }; + + const handleSignUp = async (e: React.FormEvent) => { + e.preventDefault(); + const normalizedEmail = email.trim().toLowerCase(); + + if (!normalizedEmail) { + showError('Please enter your email address.'); + return; + } + + if (password !== confirmPassword) { + showError('Passwords do not match'); + return; + } + setLoading(true); + setError(null); + + const { error: signUpError } = await supabase.auth.signUp({ + email: normalizedEmail, + password, + }); + + if (signUpError) { + showError(signUpError.message); + setLoading(false); + return; + } + + localStorage.setItem('kumusha_pending_verification_email', normalizedEmail); + setLoading(false); + history.replace('/verify-email', { state: { email: normalizedEmail } }); + }; + + const handleSignIn = async (e: React.FormEvent) => { + e.preventDefault(); + const normalizedEmail = email.trim().toLowerCase(); + + if (signInTimeoutRef.current) { + clearTimeout(signInTimeoutRef.current); + } + + setLoading(true); + setError(null); + + signInTimeoutRef.current = setTimeout(() => { + setLoading(false); + showError( + 'Sign in is taking too long. Please check your connection and try again.' + ); + }, 12000); + + const { error: signInError } = await supabase.auth.signInWithPassword({ + email: normalizedEmail, + password, + }); + + if (signInError) { + if (signInTimeoutRef.current) { + clearTimeout(signInTimeoutRef.current); + signInTimeoutRef.current = null; + } + + if (signInError.message.toLowerCase().includes('email not confirmed')) { + await supabase.auth.resend({ type: 'signup', email: normalizedEmail }); + localStorage.setItem( + 'kumusha_pending_verification_email', + normalizedEmail + ); + history.push('/verify-email', { + state: { email: normalizedEmail, resent: true }, + }); + } else { + showError(signInError.message); + } + setLoading(false); + return; + } + // Success: keep loading=true, wait for user/profile effect or timeout fallback + }; + + const handleGoogleSignIn = async () => { + if (!Capacitor.isNativePlatform()) { + showError( + 'Google Sign-In is only available in the native app. Use email to sign in here.' + ); + return; + } + try { + setLoading(true); + const result = await FirebaseAuthentication.signInWithGoogle(); + if (!result.credential?.idToken) throw new Error('Missing ID token'); + + const { error } = await supabase.auth.signInWithIdToken({ + provider: 'google', + token: result.credential.idToken, + }); + if (error) throw error; + // keep loading true + } catch (err: any) { + showError(err.message || 'Google sign in failed'); + setLoading(false); + } + }; + + const handleAppleSignIn = async () => { + if (!Capacitor.isNativePlatform()) { + showError( + 'Apple Sign-In is only available in the native app. Use email to sign in here.' + ); + return; + } + try { + setLoading(true); + const result = await FirebaseAuthentication.signInWithApple({ + skipNativeAuth: true, + }); + if (!result.credential?.idToken || !result.credential?.nonce) + throw new Error('Missing token or nonce'); + + const displayName = result.user?.displayName ?? null; + + const { data, error } = await supabase.auth.signInWithIdToken({ + provider: 'apple', + token: result.credential.idToken, + nonce: result.credential.nonce, + }); + if (error) throw error; + + if (displayName && data.user) { + const firstName = displayName.split(' ')[0] || 'Apple'; + const lastName = displayName.split(' ').slice(1).join(' ') || 'User'; + + await supabase.from('profiles').upsert( + { + id: data.user.id, + full_name: displayName, + first_name: firstName, + last_name: lastName, + phone: 'Pending', + country_of_residence: 'Pending', + }, + { onConflict: 'id' } + ); + } + } catch (err: any) { + showError(err.message || 'Apple sign in failed'); + setLoading(false); + } + }; + + return ( + + +
+
+

Kumusha

+

Take care of home from anywhere

+

+ Support your family with trusted vouchers, airtime, medication, + and electricity in just a few taps. +

+
+ +
+
+ + +
+ +
+ + + {error ? ( +
{error}
+ ) : null} + + {tab === 'login' && ( +
+ Secure email sign in + +
+ )} + + + + +
+ Or continue with +
+ +
+ + +
+
+
+
+
+ ); +}; + +export default AuthPage; diff --git a/src/pages/EditProfilePage.tsx b/src/pages/EditProfilePage.tsx new file mode 100644 index 0000000..fa7c383 --- /dev/null +++ b/src/pages/EditProfilePage.tsx @@ -0,0 +1,344 @@ +import React, { useEffect, useState } from 'react'; +import { + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonInput, + IonPage, + IonTitle, + IonToolbar, +} from '@ionic/react'; +import { chevronBackOutline } from 'ionicons/icons'; +import { useHistory } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import AvatarPicker from '../components/AvatarPicker'; +import '../styles/profile.css'; + +type Profile = { + id: string; + first_name: string; + last_name: string; + phone: string; + country_of_residence: string; + avatar_path: string | null; +}; + +type PreviewProfilePayload = { + first_name: string; + last_name: string; + phone: string; + country_of_residence: string; + avatar_url: string | null; + notification_push_enabled: boolean; + notification_email_enabled: boolean; + notification_sms_enabled: boolean; +}; + +const PREVIEW_PROFILE_STORAGE_KEY = 'kumusha-preview-profile'; + +const getPreviewProfilePayload = (): PreviewProfilePayload => { + const fallback: PreviewProfilePayload = { + first_name: 'Sarah', + last_name: 'Moyo', + phone: '+44 7123 456789', + country_of_residence: 'United Kingdom', + avatar_url: null, + notification_push_enabled: true, + notification_email_enabled: true, + notification_sms_enabled: false, + }; + + try { + const saved = localStorage.getItem(PREVIEW_PROFILE_STORAGE_KEY); + return saved ? { ...fallback, ...JSON.parse(saved) } : fallback; + } catch { + return fallback; + } +}; + +const savePreviewProfilePayload = (payload: PreviewProfilePayload) => { + localStorage.setItem(PREVIEW_PROFILE_STORAGE_KEY, JSON.stringify(payload)); +}; + +const EditProfilePage: React.FC = () => { + const history = useHistory(); + const { user, refreshProfile } = useAuth(); + const [firstName, setFirstName] = useState(''); + const [lastName, setLastName] = useState(''); + const [phone, setPhone] = useState(''); + const [country, setCountry] = useState(''); + const [avatarPath, setAvatarPath] = useState(null); + const [avatarPreview, setAvatarPreview] = useState(null); + const [avatarFile, setAvatarFile] = useState(null); + const [loading, setLoading] = useState(true); + const [saving, setSaving] = useState(false); + const [error, setError] = useState(null); + + useEffect(() => { + void loadProfile(); + }, [user?.id]); + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const loadProfile = async () => { + setLoading(true); + + if (!user) { + const preview = getPreviewProfilePayload(); + setFirstName(preview.first_name); + setLastName(preview.last_name); + setPhone(preview.phone); + setCountry(preview.country_of_residence); + setAvatarPath(null); + setAvatarPreview(preview.avatar_url); + setLoading(false); + return; + } + + const { data, error: loadError } = await supabase + .from('profiles') + .select('id,first_name,last_name,phone,country_of_residence,avatar_path') + .eq('id', user.id) + .single(); + + if (loadError || !data) { + showError(loadError?.message ?? 'Profile not found'); + const preview = getPreviewProfilePayload(); + setFirstName(preview.first_name); + setLastName(preview.last_name); + setPhone(preview.phone); + setCountry(preview.country_of_residence); + setAvatarPath(null); + setAvatarPreview(preview.avatar_url); + setLoading(false); + return; + } + + const profile = data as Profile; + setFirstName(profile.first_name ?? ''); + setLastName(profile.last_name ?? ''); + setPhone(profile.phone ?? ''); + setCountry(profile.country_of_residence ?? ''); + setAvatarPath(profile.avatar_path); + if (profile.avatar_path) { + const { data: signed } = await supabase.storage + .from('avatars') + .createSignedUrl(profile.avatar_path, 3600); + setAvatarPreview(signed?.signedUrl ?? null); + } + setLoading(false); + }; + + const handleGoBack = () => { + if (history.length > 1) { + history.goBack(); + } else { + history.replace('/profile'); + } + }; + + const handleAvatarChange = (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onload = () => { + setAvatarFile(file); + setAvatarPreview( + typeof reader.result === 'string' ? reader.result : null + ); + }; + reader.onerror = () => { + showError( + 'We could not preview that image. Please choose another photo.' + ); + }; + reader.readAsDataURL(file); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + const cleanFirstName = firstName.trim(); + const cleanLastName = lastName.trim(); + const cleanPhone = phone.trim(); + const cleanCountry = country.trim(); + + if (!cleanFirstName || !cleanLastName || !cleanPhone || !cleanCountry) { + showError('Please complete all fields'); + return; + } + + if (!user) { + setSaving(true); + savePreviewProfilePayload({ + ...getPreviewProfilePayload(), + first_name: cleanFirstName, + last_name: cleanLastName, + phone: cleanPhone, + country_of_residence: cleanCountry, + avatar_url: avatarPreview, + }); + setSaving(false); + history.replace('/profile'); + return; + } + + setSaving(true); + let nextAvatarPath = avatarPath; + if (avatarFile) { + const extension = avatarFile.name.split('.').pop() || 'jpg'; + nextAvatarPath = `${user.id}/${Date.now()}.${extension}`; + const { error: uploadError } = await supabase.storage + .from('avatars') + .upload(nextAvatarPath, avatarFile); + if (uploadError) { + showError(uploadError.message); + setSaving(false); + return; + } + } + + const { error: updateError } = await supabase + .from('profiles') + .update({ + first_name: cleanFirstName, + last_name: cleanLastName, + full_name: `${cleanFirstName} ${cleanLastName}`, + phone: cleanPhone, + country_of_residence: cleanCountry, + avatar_path: nextAvatarPath, + updated_at: new Date().toISOString(), + }) + .eq('id', user.id); + + if (updateError) { + showError(updateError.message); + setSaving(false); + return; + } + + await refreshProfile(); + setSaving(false); + history.replace('/profile'); + }; + + const initials = `${firstName.charAt(0)}${lastName.charAt(0)}`.toUpperCase(); + + return ( + + + + + + + + + + Edit profile + + + + + +
+
+ + setFirstName(event.detail.value ?? '')} + /> + setLastName(event.detail.value ?? '')} + /> + setPhone(event.detail.value ?? '')} + /> + setCountry(event.detail.value ?? '')} + /> + {error && ( +

+ {error} +

+ )} +
+ + + {saving ? 'Saving...' : 'Save profile'} + +
+
+
+ ); +}; + +export default EditProfilePage; diff --git a/src/pages/ForgotPasswordPage.tsx b/src/pages/ForgotPasswordPage.tsx new file mode 100644 index 0000000..f39bc9a --- /dev/null +++ b/src/pages/ForgotPasswordPage.tsx @@ -0,0 +1,207 @@ +import React, { useState } from 'react'; +import { + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonInput, + IonPage, + IonTitle, + IonToolbar, +} from '@ionic/react'; +import { chevronBackOutline, keyOutline } from 'ionicons/icons'; +import { useHistory } from 'react-router-dom'; +import { supabase } from '../supabase'; +import '../styles/auth.css'; + +const ForgotPasswordPage: React.FC = () => { + const history = useHistory(); + const [email, setEmail] = useState(''); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [status, setStatus] = useState(null); + + const showMessage = (message: string, kind: 'error' | 'status') => { + if (kind === 'error') { + setError(message); + setStatus(null); + setTimeout(() => setError(null), 4000); + } else { + setStatus(message); + setError(null); + setTimeout(() => setStatus(null), 4000); + } + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + + const normalizedEmail = email.trim().toLowerCase(); + if (!normalizedEmail) { + showMessage('Enter your email address to continue', 'error'); + return; + } + + setLoading(true); + setError(null); + setStatus(null); + + const { error: resetError } = + await supabase.auth.resetPasswordForEmail(normalizedEmail); + + if (resetError) { + showMessage(resetError.message, 'error'); + setLoading(false); + return; + } + + showMessage('Reset code sent', 'status'); + setLoading(false); + history.push('/verify-reset', { state: { email: normalizedEmail } }); + }; + + return ( + + + + + history.goBack()} + style={ + { + '--color': '#111827', + '--border-radius': '12px', + } as React.CSSProperties + } + aria-label="Go back" + > + + + + + Reset password + + + + + +
+
+
+ +
+
+

Forgot your password?

+

+ Enter your account email and we'll send you a 6-digit reset + code. +

+
+
+ +
+ setEmail(event.detail.value ?? '')} + disabled={loading} + placeholder="you@example.com" + style={ + { + '--background': '#fafafa', + '--border-radius': '12px', + '--padding-start': '14px', + '--padding-end': '14px', + '--highlight-color-focused': '#6d28d9', + } as React.CSSProperties + } + /> + + {error && ( +

+ {error} +

+ )} + {status && ( +

+ {status} +

+ )} + + + {loading ? 'Sending code...' : 'Send reset code'} + + + +
+

+ Remembered it?{' '} + +

+
+
+
+
+ ); +}; + +export default ForgotPasswordPage; diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx new file mode 100644 index 0000000..3a4203e --- /dev/null +++ b/src/pages/Home.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import { + IonContent, + IonHeader, + IonPage, + IonTitle, + IonToolbar, +} from "@ionic/react"; + +const Home: React.FC = () => ( + + + + Home + + + +
+
+

Welcome to your new app

+

+ Chat with the assistant to start adding features and pages +

+
+
+
+
+); + +export default Home; diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx new file mode 100644 index 0000000..24bb9b1 --- /dev/null +++ b/src/pages/HomePage.tsx @@ -0,0 +1,1195 @@ +import React, { useMemo, useState } from 'react'; +import { + IonContent, + IonIcon, + IonPage, + useIonViewWillEnter, +} from '@ionic/react'; +import { useHistory } from 'react-router-dom'; +import { + chevronForwardOutline, + ellipsisVertical, + flashOutline, + heart, + notificationsOutline, + phonePortraitOutline, + checkmarkCircleOutline, + timeOutline, + wifiOutline, + medkitOutline, +} from 'ionicons/icons'; +import sarahImage from '../assets/sarah.jpg'; +import momImage from '../assets/mom.jpg'; +import dadImage from '../assets/dad.jpg'; +import basketIcon from '../assets/basket.png'; +import { setStatusBarStyle, Style } from '../utils/statusBar'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import DashboardSkeleton from '../components/DashboardSkeleton'; +import { formatMoney } from '../utils/formatMoney'; +import { buildCacheKey, readCache, writeCache } from '../utils/localCache'; +import '../styles/home.css'; + +type ActivityStatusTone = 'success' | 'warning' | 'info' | 'partial'; + +type HomeAlert = { + id: string; + scheduleId: string; + recipientId: string; + serviceType: string; + title: string; + subtitle: string; + icon: string; + iconType?: 'ion' | 'image'; + tone: 'grocery' | 'medication' | 'airtime' | 'electricity' | 'default'; + cta: string; +}; + +type HomeRenderableIcon = { + iconType: 'ion' | 'image'; + icon?: any; + iconSrc?: string; + iconAlt?: string; +}; + +type SupportCategoryTone = 'grocery' | 'medication' | 'airtime' | 'electricity'; + +const quickActions: Array< + HomeRenderableIcon & { + label: string; + helper: string; + tone: SupportCategoryTone; + } +> = [ + { + label: 'Grocery', + helper: 'Voucher for partner stores', + iconType: 'image', + iconSrc: basketIcon, + iconAlt: 'Groceries', + tone: 'grocery', + }, + { + label: 'Medication', + helper: 'Voucher for trusted pharmacies', + iconType: 'ion', + icon: medkitOutline, + tone: 'medication', + }, + { + label: 'Airtime & Data', + helper: 'Top up mobile credit quickly', + iconType: 'ion', + icon: wifiOutline, + tone: 'airtime', + }, + { + label: 'Electricity', + helper: 'Send ZESA meter support', + iconType: 'ion', + icon: flashOutline, + tone: 'electricity', + }, +]; + +const renderHomeIcon = (item: HomeRenderableIcon) => { + if (item.iconType === 'image' && item.iconSrc) { + const isPill = item.iconSrc.includes('pill'); + const isBasket = item.iconSrc.includes('basket'); + return ( + {item.iconAlt + ); + } + + return item.icon ? : null; +}; + +const HomePage: React.FC = () => { + const history = useHistory(); + const { user, profileStatus } = useAuth(); + const [alerts, setAlerts] = useState([]); + const [alertsLoading, setAlertsLoading] = useState(true); + const [alertsError, setAlertsError] = useState(null); + const [lovedOnes, setLovedOnes] = useState([]); + const [lovedOnesLoading, setLovedOnesLoading] = useState(true); + const [lovedOnesError, setLovedOnesError] = useState(null); + const [activities, setActivities] = useState([]); + const [activitiesLoading, setActivitiesLoading] = useState(true); + const [activitiesError, setActivitiesError] = useState(null); + const [monthlySentTotal, setMonthlySentTotal] = useState(0); + + const formatRelativeSupportDate = (value?: string | null) => { + if (!value) return 'No support yet'; + + const date = new Date(value); + if (Number.isNaN(date.getTime())) return 'Recent support'; + + const today = new Date(); + const startOfToday = new Date( + today.getFullYear(), + today.getMonth(), + today.getDate() + ); + const startOfDate = new Date( + date.getFullYear(), + date.getMonth(), + date.getDate() + ); + const diffDays = Math.floor( + (startOfToday.getTime() - startOfDate.getTime()) / 86_400_000 + ); + + if (diffDays <= 0) return 'Last support: today'; + if (diffDays === 1) return 'Last support: yesterday'; + if (diffDays < 30) return `Last support: ${diffDays} days ago`; + + return `Last support: ${date.toLocaleDateString(undefined, { + month: 'short', + day: 'numeric', + })}`; + }; + + const getSeededRecipientImage = ( + firstName?: string | null, + photoPath?: string | null + ) => { + const normalizedPath = photoPath?.trim().toLowerCase(); + if (normalizedPath === 'mom.jpg' || normalizedPath === 'mum.jpg') { + return momImage; + } + if (normalizedPath === 'dad.jpg' || normalizedPath === 'father.jpg') { + return dadImage; + } + + const normalizedName = firstName?.trim().toLowerCase(); + if (normalizedName === 'mum' || normalizedName === 'mom') return momImage; + if (normalizedName === 'dad' || normalizedName === 'father') { + return dadImage; + } + return null; + }; + + const getRecipientAvatarUrl = async ( + photoPath?: string | null, + firstName?: string | null + ) => { + const seededImage = getSeededRecipientImage(firstName, photoPath); + if (seededImage) return seededImage; + + if (photoPath) { + const { data: urlData } = await supabase.storage + .from('recipient-photos') + .createSignedUrl(photoPath, 3600); + if (urlData?.signedUrl) return urlData.signedUrl; + } + + return null; + }; + + const formatAlertSubtitle = (firstName: string, dueAt?: string | null) => { + if (!dueAt) return `For ${firstName}`; + + const date = new Date(dueAt); + if (Number.isNaN(date.getTime())) return `For ${firstName}`; + + const today = new Date(); + const startOfToday = new Date( + today.getFullYear(), + today.getMonth(), + today.getDate() + ); + const startOfDate = new Date( + date.getFullYear(), + date.getMonth(), + date.getDate() + ); + const diffDays = Math.round( + (startOfDate.getTime() - startOfToday.getTime()) / 86_400_000 + ); + + if (diffDays < 0) return `For ${firstName} · overdue`; + if (diffDays === 0) return `For ${firstName} · today`; + if (diffDays === 1) return `For ${firstName} · tomorrow`; + return `For ${firstName} · in ${diffDays} days`; + }; + + const getNormalizedServiceType = (value: string) => { + const normalized = value.toLowerCase(); + if (normalized.includes('grocery')) return 'grocery'; + if (normalized.includes('medication') || normalized.includes('pharmacy')) { + return 'medication'; + } + if (normalized.includes('airtime') || normalized.includes('data')) { + return 'airtime'; + } + if (normalized.includes('electricity') || normalized.includes('zesa')) { + return 'electricity'; + } + return normalized; + }; + + const getAlertPresentation = (serviceType: string) => { + switch (serviceType) { + case 'grocery': + return { + title: 'Grocery', + icon: basketIcon, + tone: 'grocery' as const, + cta: 'Send support', + }; + case 'medication': + return { + title: 'Medication', + icon: medkitOutline, + tone: 'medication' as const, + cta: 'Send support', + }; + case 'airtime': + return { + title: 'Airtime', + icon: phonePortraitOutline, + tone: 'airtime' as const, + cta: 'Top up', + }; + case 'electricity': + return { + title: 'Electricity', + icon: flashOutline, + tone: 'electricity' as const, + cta: 'Top up', + }; + default: + return { + title: 'Support', + icon: timeOutline, + tone: 'default' as const, + cta: 'Send support', + }; + } + }; + + const getActivityStatusTone = ( + serviceType: string, + status: string + ): ActivityStatusTone => { + const normalizedStatus = status.toLowerCase(); + const normalizedService = serviceType.toLowerCase(); + const isVoucherService = + normalizedService === 'grocery' || normalizedService === 'medication'; + + if (isVoucherService) { + if (normalizedStatus.includes('redeemed')) return 'success'; + if (normalizedStatus.includes('partial')) return 'partial'; + return 'warning'; + } + + if ( + normalizedStatus.includes('completed') || + normalizedStatus.includes('active') + ) { + return 'success'; + } + + if ( + normalizedStatus.includes('delivered') || + normalizedStatus.includes('created') || + normalizedStatus === 'ready_for_redemption' + ) { + return 'warning'; + } + + return 'info'; + }; + + const getActivityStatusLabel = (serviceType: string, status: string) => { + const normalizedService = serviceType.toLowerCase(); + const normalizedStatus = status.toLowerCase(); + const isVoucherService = + normalizedService === 'grocery' || normalizedService === 'medication'; + + if (isVoucherService) { + if (normalizedStatus.includes('redeemed')) return 'redeemed'; + if (normalizedStatus.includes('partial')) return 'partial'; + return 'created'; + } + + if (normalizedStatus === 'ready_for_redemption') return 'created'; + + return normalizedStatus.replace(/_/g, ' '); + }; + + useIonViewWillEnter(() => { + setStatusBarStyle(Style.Light); + loadHomePageData(); + }); + + const loadHomePageData = async () => { + const activeUserId = user?.id ?? '00000000-0000-0000-0000-000000000000'; + const now = new Date(); + const monthStart = new Date(now.getFullYear(), now.getMonth(), 1) + .toISOString() + .slice(0, 10); + const nextMonthStart = new Date(now.getFullYear(), now.getMonth() + 1, 1) + .toISOString() + .slice(0, 10); + + let freshMonthlySentTotal = 0; + let freshAlerts: HomeAlert[] = []; + let freshLovedOnes: any[] = []; + let freshActivities: any[] = []; + + const cacheKey = buildCacheKey(activeUserId, 'homeSnapshot'); + let hasCache = false; + try { + const cached = await readCache(cacheKey); + if ( + cached && + typeof cached === 'object' && + Array.isArray(cached.alerts) && + Array.isArray(cached.lovedOnes) && + Array.isArray(cached.activities) && + typeof cached.monthlySentTotal === 'number' + ) { + freshAlerts = cached.alerts; + freshLovedOnes = cached.lovedOnes.map((person: any) => ({ + ...person, + statuses: Array.isArray(person.statuses) + ? person.statuses.slice(0, 3) + : [], + })); + freshActivities = cached.activities; + freshMonthlySentTotal = cached.monthlySentTotal; + + setAlerts(cached.alerts); + setLovedOnes(freshLovedOnes); + setActivities(cached.activities); + setMonthlySentTotal(cached.monthlySentTotal); + setAlertsLoading(false); + setLovedOnesLoading(false); + setActivitiesLoading(false); + hasCache = true; + } + } catch (err) { + console.error('[home cache] error reading', err); + } + + if (!hasCache) { + setAlertsLoading(true); + setLovedOnesLoading(true); + setActivitiesLoading(true); + } + setAlertsError(null); + setLovedOnesError(null); + setActivitiesError(null); + + const { data: monthlyOrdersData, error: monthlyOrdersError } = + await supabase + .from('support_orders') + .select('amount, created_at') + .eq('user_id', activeUserId) + .gte('created_at', monthStart) + .lt('created_at', nextMonthStart); + + if (monthlyOrdersError) { + console.error('[home monthly sent]', monthlyOrdersError); + } else { + const total = (monthlyOrdersData || []).reduce( + (sum, order) => sum + Number(order.amount || 0), + 0 + ); + freshMonthlySentTotal = total; + setMonthlySentTotal(total); + } + + const { data: alertsData, error: alertsErr } = await supabase + .from('care_alerts') + .select('id, title, body, severity, service_type, due_at, recipient_id') + .eq('user_id', activeUserId) + .is('dismissed_at', null) + .order('due_at', { ascending: true, nullsFirst: false }) + .limit(5); + + if (alertsErr) { + console.error('[home care alerts]', alertsErr); + setAlertsError('Could not load care alerts'); + setAlerts([]); + } else if (alertsData) { + const recipientIds = Array.from( + new Set(alertsData.map((alert) => alert.recipient_id).filter(Boolean)) + ); + const recipientNameById = new Map(); + + if (recipientIds.length > 0) { + const { data: alertRecipients, error: alertRecipientsError } = + await supabase + .from('recipients') + .select('id, first_name') + .in('id', recipientIds); + + if (alertRecipientsError) { + console.error('[home care alert recipients]', alertRecipientsError); + } + + (alertRecipients || []).forEach((recipient) => { + recipientNameById.set(recipient.id, recipient.first_name); + }); + } + + freshAlerts = alertsData.map((alert) => { + const presentation = getAlertPresentation( + alert.service_type || 'default' + ); + const firstName = + recipientNameById.get(alert.recipient_id) || 'Loved one'; + return { + id: alert.id, + scheduleId: alert.id, + recipientId: alert.recipient_id, + serviceType: alert.service_type || 'support', + title: presentation.title, + subtitle: formatAlertSubtitle(firstName, alert.due_at), + icon: presentation.icon, + iconType: presentation.icon === basketIcon ? 'image' : 'ion', + tone: presentation.tone, + cta: presentation.cta, + }; + }); + setAlerts(freshAlerts); + } else { + freshAlerts = []; + setAlerts([]); + } + setAlertsLoading(false); + + const { data: recipientsData, error: recipientsErr } = await supabase + .from('recipients') + .select( + 'id, first_name, last_name, country, city, photo_path, relationship' + ) + .eq('user_id', activeUserId); + + if (recipientsErr) { + setLovedOnesError('Could not load loved ones'); + } else if (recipientsData) { + const mappedLovedOnes = await Promise.all( + recipientsData.map(async (rec: any) => { + const avatarUrl = await getRecipientAvatarUrl( + rec.photo_path, + rec.first_name + ); + const { data: recentOrders } = await supabase + .from('support_orders') + .select('service_type, status, created_at, merchants(name)') + .eq('recipient_id', rec.id) + .eq('user_id', activeUserId) + .order('created_at', { ascending: false }) + .limit(3); + + const orderedStatuses = [...(recentOrders || [])] + .sort( + (a: any, b: any) => + new Date(b.created_at).getTime() - + new Date(a.created_at).getTime() + ) + .slice(0, 3); + const primaryOrder = orderedStatuses[0]; + + const statuses = orderedStatuses.slice(0, 3).map((order: any) => { + const tone = getAlertPresentation(order.service_type).tone; + const isSuccess = + order.status === 'redeemed' || order.status === 'completed'; + + let detail = getActivityStatusLabel( + order.service_type, + order.status + ); + if (order.status === 'redeemed' && order.merchants?.name) { + detail = `redeemed • ${order.merchants.name}`; + } + + return { + iconType: tone === 'grocery' ? 'image' : 'ion', + iconSrc: tone === 'grocery' ? basketIcon : undefined, + icon: + tone !== 'grocery' + ? getAlertPresentation(order.service_type).icon + : undefined, + iconAlt: order.service_type, + label: + order.service_type === 'grocery' + ? 'Grocery voucher' + : order.service_type === 'medication' + ? 'Medication voucher' + : order.service_type === 'electricity' + ? 'Electricity' + : order.service_type === 'airtime' + ? 'Airtime' + : `${order.service_type.charAt(0).toUpperCase()}${order.service_type.slice(1)}`, + detail, + status: isSuccess ? 'success' : 'warning', + iconTone: tone, + serviceType: order.service_type, + }; + }); + + const primaryTone = primaryOrder + ? getAlertPresentation(primaryOrder.service_type).tone + : 'grocery'; + const repeatCta = + primaryOrder?.service_type === 'medication' + ? 'Send Medication' + : primaryOrder?.service_type === 'airtime' + ? 'Top Up Again' + : primaryOrder?.service_type === 'electricity' + ? 'Send Electricity' + : 'Send Groceries'; + + return { + id: rec.id, + name: rec.first_name, + emoji: + rec.relationship === 'Mother' || rec.first_name === 'Mum' + ? '💜' + : '💚', + location: `${rec.city || ''}, ${rec.country || ''}`.replace( + /^, | , $/g, + '' + ), + cardTone: rec.first_name === 'Mum' ? 'lavender' : 'mint', + avatar: avatarUrl, + fallbackInitial: rec.first_name?.charAt(0)?.toUpperCase() ?? '?', + lastSupportLabel: formatRelativeSupportDate( + primaryOrder?.created_at + ), + repeatCta, + repeatAction: { + iconType: primaryTone === 'grocery' ? 'image' : 'ion', + iconSrc: primaryTone === 'grocery' ? basketIcon : undefined, + icon: + primaryTone !== 'grocery' && primaryOrder + ? getAlertPresentation(primaryOrder.service_type).icon + : undefined, + tone: primaryTone as SupportCategoryTone, + }, + statuses, + primaryServiceType: primaryOrder?.service_type ?? 'grocery', + }; + }) + ); + freshLovedOnes = mappedLovedOnes; + setLovedOnes(mappedLovedOnes); + } + setLovedOnesLoading(false); + + const { data: recentActivityData, error: activityErr } = await supabase + .from('support_orders') + .select( + 'id, service_type, status, amount, created_at, recipient_id, merchant_id' + ) + .eq('user_id', activeUserId) + .order('created_at', { ascending: false }) + .limit(5); + + if (activityErr) { + setActivitiesError('Could not load activity'); + } else if (recentActivityData) { + const activityRecipientIds = Array.from( + new Set( + recentActivityData + .map((activity) => activity.recipient_id) + .filter(Boolean) + ) + ); + const activityMerchantIds = Array.from( + new Set( + recentActivityData + .map((activity) => activity.merchant_id) + .filter(Boolean) + ) + ); + const recipientsById = new Map< + string, + { first_name: string; photo_path: string | null } + >(); + const merchantsById = new Map(); + + if (activityRecipientIds.length > 0) { + const { data: activityRecipients } = await supabase + .from('recipients') + .select('id, first_name, photo_path') + .in('id', activityRecipientIds); + + (activityRecipients || []).forEach((recipient) => { + recipientsById.set(recipient.id, { + first_name: recipient.first_name, + photo_path: recipient.photo_path, + }); + }); + } + + if (activityMerchantIds.length > 0) { + const { data: activityMerchants } = await supabase + .from('merchants') + .select('id, name') + .in('id', activityMerchantIds); + + (activityMerchants || []).forEach((merchant) => { + merchantsById.set(merchant.id, merchant.name); + }); + } + + const mappedActivity = await Promise.all( + recentActivityData.map(async (act) => { + const recipient = recipientsById.get(act.recipient_id); + const avatarUrl = await getRecipientAvatarUrl( + recipient?.photo_path, + recipient?.first_name + ); + const tone = getAlertPresentation(act.service_type).tone; + + const activityTitle = + act.service_type === 'grocery' + ? 'Grocery voucher' + : act.service_type === 'medication' + ? 'Medication voucher' + : act.service_type === 'airtime' + ? 'Airtime' + : act.service_type === 'data' + ? 'Data' + : act.service_type === 'electricity' + ? 'Electricity' + : `${act.service_type.charAt(0).toUpperCase()}${act.service_type.slice(1)}`; + + const normalizedServiceType = getNormalizedServiceType( + act.service_type + ); + const statusLabel = getActivityStatusLabel( + act.service_type, + act.status + ); + const merchantName = + (act.merchant_id && merchantsById.get(act.merchant_id)) || null; + const isVoucherSupport = + normalizedServiceType === 'grocery' || + normalizedServiceType === 'medication'; + + let subtitle = merchantName; + if (!subtitle) { + if (isVoucherSupport) { + subtitle = + statusLabel === 'redeemed' + ? 'Voucher redeemed' + : 'Voucher ready for collection'; + } else if (normalizedServiceType === 'electricity') { + subtitle = 'Meter support sent'; + } else if (normalizedServiceType === 'airtime') { + subtitle = 'Top-up sent'; + } else { + subtitle = 'Support sent'; + } + } + + return { + id: act.id, + recipientId: act.recipient_id, + title: activityTitle, + subtitle, + amount: `${Number(act.amount).toFixed(2)}`, + status: statusLabel, + tone: getActivityStatusTone(act.service_type, act.status), + icon: { + iconType: tone === 'grocery' ? 'image' : 'ion', + iconSrc: tone === 'grocery' ? basketIcon : undefined, + icon: + tone !== 'grocery' + ? getAlertPresentation(act.service_type).icon + : undefined, + }, + iconTone: tone, + avatar: avatarUrl, + fallbackInitial: + recipient?.first_name?.charAt(0)?.toUpperCase() ?? '?', + }; + }) + ); + freshActivities = mappedActivity; + setActivities(mappedActivity); + } + setActivitiesLoading(false); + + // Save cache after all network updates + void writeCache(cacheKey, { + monthlySentTotal: freshMonthlySentTotal, + alerts: freshAlerts, + lovedOnes: freshLovedOnes, + activities: freshActivities, + cachedAt: new Date().toISOString(), + }); + }; + + const handleAlertTap = (alert: HomeAlert) => { + history.push('/support/new', { + recipientId: alert.recipientId, + serviceType: alert.serviceType, + parentRoot: '/home', + }); + }; + + const handleSupportClick = (serviceType?: SupportCategoryTone) => { + history.push( + '/support/new', + serviceType + ? { serviceType, parentRoot: '/home' } + : { parentRoot: '/home' } + ); + }; + + const handleRecipientsClick = () => { + history.push('/recipients'); + }; + + const isPreviewMode = !user; + const currentMonthLabel = useMemo( + () => + new Intl.DateTimeFormat(undefined, { + month: 'long', + }).format(new Date()), + [] + ); + const monthlySentLabel = useMemo( + () => formatMoney(monthlySentTotal, 'USD'), + [monthlySentTotal] + ); + const showInitialDashboardSkeleton = + !isPreviewMode && + profileStatus === 'loading' && + lovedOnesLoading && + activitiesLoading && + alertsLoading && + lovedOnes.length === 0 && + activities.length === 0 && + alerts.length === 0; + + return ( + + + {showInitialDashboardSkeleton ? ( + + ) : ( +
+
+
+
+ Sarah +
+
+

Hi Sarah 👋

+
+
+ + +
+ +
+
+

Supporting 2 loved ones ❤️

+
+
+
+ +
+
+

{currentMonthLabel}

+

{monthlySentLabel}

+
+
+
+ + {(alertsLoading || alertsError || alerts.length > 0) && ( + <> +
+

Care Alerts

+
+ +
+ {alertsLoading && alerts.length === 0 ? ( +
+
+
+
+ + + +
+
+
+ ) : alertsError ? ( +
+

{alertsError}

+
+ ) : alerts.length > 0 ? ( +
+ {[...alerts, ...alerts].map((alert, index) => ( + + ))} +
+ ) : null} +
+ + )} + +
+

Your Loved Ones

+ +
+ +
+ {lovedOnesLoading && lovedOnes.length === 0 ? ( +
+
+
+
+
+

Loading...

+
+
+
+
+ ) : lovedOnesError ? ( +

{lovedOnesError}

+ ) : lovedOnes.length === 0 ? ( +
+
+ +
+

No loved ones yet

+

+ Add family members to start supporting them. +

+ +
+ ) : ( + lovedOnes.map((person) => ( +
+
+
+
+ {person.avatar ? ( + {person.name} + ) : ( + + {person.fallbackInitial} + + )} + +
+ +
+

+ {person.name} {person.emoji} +

+

+ {person.lastSupportLabel} +

+
+
+ + +
+ +
+ {person.statuses.length > 0 ? ( + person.statuses.slice(0, 3).map((item: any) => { + const isSuccess = item.status === 'success'; + return ( +
+
+ {renderHomeIcon(item)} +
+
+

+ {item.label} +

+

+ {item.detail} +

+
+ +
+ ); + }) + ) : ( +
+ + No support sent yet +
+ )} +
+ + +
+ )) + )} +
+ +
+ + + +
+ +
+

Send Support

+
+ +
+ {quickActions.map((action) => ( + + ))} +
+ +
+

Family Updates

+ +
+ +
+ {activitiesLoading && activities.length === 0 ? ( +
+ Loading activity... +
+ ) : activitiesError ? ( +
+

{activitiesError}

+
+ ) : activities.length === 0 ? ( +
+
+ +
+

No recent activity

+

+ Support history will appear here once you send support. +

+ +
+ ) : ( + activities.map((activity, index) => ( + + )) + )} +
+
+ )} + + + ); +}; + +export default HomePage; diff --git a/src/pages/NotificationsPage.tsx b/src/pages/NotificationsPage.tsx new file mode 100644 index 0000000..c083841 --- /dev/null +++ b/src/pages/NotificationsPage.tsx @@ -0,0 +1,480 @@ +import React, { useCallback, useEffect, useState } from 'react'; +import { + IonActionSheet, + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonPage, + IonSkeletonText, + IonTitle, + IonToolbar, + useIonViewWillEnter, +} from '@ionic/react'; +import { + chevronBackOutline, + chevronForwardOutline, + ellipsisHorizontal, + flashOutline, + medkitOutline, + notificationsOutline, + phonePortraitOutline, + receiptOutline, + trashOutline, +} from 'ionicons/icons'; +import { useHistory } from 'react-router-dom'; +import basketIcon from '../assets/basket.png'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import '../styles/activity.css'; +import '../styles/recipients.css'; + +type ServiceType = + | 'grocery' + | 'medication' + | 'airtime' + | 'electricity' + | 'support'; + +type NotificationRow = { + id: string; + title: string; + body: string; + priority: string; + type: string; + read_at: string | null; + created_at: string; + order_id: string | null; + voucher_id: string | null; + support_orders: { service_type: string | null } | null; + vouchers: { voucher_type: string | null } | null; +}; + +const previewUserId = '00000000-0000-0000-0000-000000000000'; + +const notificationSelect = + 'id,title,body,priority,type,read_at,created_at,order_id,voucher_id'; + +const normalizeServiceType = (value?: string | null): ServiceType => { + const normalized = value?.toLowerCase() ?? ''; + if (normalized.includes('med')) return 'medication'; + if (normalized.includes('air') || normalized.includes('data')) + return 'airtime'; + if (normalized.includes('electric')) return 'electricity'; + if (normalized.includes('grocery') || normalized.includes('voucher')) { + return 'grocery'; + } + return 'support'; +}; + +const inferServiceType = (notification: NotificationRow): ServiceType => { + const joinedType = notification.support_orders?.service_type; + if (joinedType) return normalizeServiceType(joinedType); + + const voucherType = notification.vouchers?.voucher_type; + if (voucherType) return normalizeServiceType(voucherType); + + return normalizeServiceType( + `${notification.title} ${notification.body} ${notification.type}` + ); +}; + +const getServicePresentation = (serviceType: ServiceType) => { + if (serviceType === 'medication') { + return { + className: 'notification-service-medication', + icon: medkitOutline, + }; + } + + if (serviceType === 'airtime') { + return { + className: 'notification-service-airtime', + icon: phonePortraitOutline, + }; + } + + if (serviceType === 'electricity') { + return { + className: 'notification-service-electricity', + icon: flashOutline, + }; + } + + if (serviceType === 'grocery') { + return { + className: 'notification-service-grocery', + iconImageSrc: basketIcon, + }; + } + + return { + className: 'notification-service-support', + icon: receiptOutline, + }; +}; + +const NotificationsPage: React.FC = () => { + const history = useHistory(); + const { user } = useAuth(); + const isPreviewMode = !user; + const [notifications, setNotifications] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [showActions, setShowActions] = useState(false); + + const showError = useCallback((message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }, []); + + const loadNotifications = useCallback(async () => { + setLoading(true); + setError(null); + + try { + const activeUserId = user?.id ?? previewUserId; + let { data, error: loadError } = await supabase + .from('notifications') + .select(notificationSelect) + .eq('user_id', activeUserId) + .order('created_at', { ascending: false }); + + if (!loadError && user?.id && (data ?? []).length === 0) { + const previewResult = await supabase + .from('notifications') + .select(notificationSelect) + .eq('user_id', previewUserId) + .order('created_at', { ascending: false }); + + data = previewResult.data; + loadError = previewResult.error; + } + + if (loadError) { + showError(loadError.message); + setNotifications([]); + return; + } + + const baseNotifications = (data ?? []) as unknown as NotificationRow[]; + const orderIds = Array.from( + new Set( + baseNotifications + .map((notification) => notification.order_id) + .filter((id): id is string => Boolean(id)) + ) + ); + const voucherIds = Array.from( + new Set( + baseNotifications + .map((notification) => notification.voucher_id) + .filter((id): id is string => Boolean(id)) + ) + ); + + const [ordersResult, vouchersResult] = await Promise.all([ + orderIds.length > 0 + ? supabase + .from('support_orders') + .select('id,service_type') + .in('id', orderIds) + : Promise.resolve({ data: [], error: null }), + voucherIds.length > 0 + ? supabase + .from('vouchers') + .select('id,voucher_type') + .in('id', voucherIds) + : Promise.resolve({ data: [], error: null }), + ]); + + if (ordersResult.error || vouchersResult.error) { + console.warn( + '[NotificationsPage] Notification detail lookup failed', + ordersResult.error ?? vouchersResult.error + ); + } + + const serviceTypesByOrderId = new Map( + ( + (ordersResult.data ?? []) as { + id: string; + service_type: string | null; + }[] + ).map((order) => [order.id, order.service_type]) + ); + const voucherTypesById = new Map( + ( + (vouchersResult.data ?? []) as { + id: string; + voucher_type: string | null; + }[] + ).map((voucher) => [voucher.id, voucher.voucher_type]) + ); + + setNotifications( + baseNotifications.map((notification) => ({ + ...notification, + support_orders: notification.order_id + ? { + service_type: + serviceTypesByOrderId.get(notification.order_id) ?? null, + } + : null, + vouchers: notification.voucher_id + ? { + voucher_type: + voucherTypesById.get(notification.voucher_id) ?? null, + } + : null, + })) + ); + } catch (loadCrash) { + console.error( + '[NotificationsPage] Failed to load notifications', + loadCrash + ); + showError('Notifications could not be loaded. Pull back and try again.'); + setNotifications([]); + } finally { + setLoading(false); + } + }, [showError, user?.id]); + + useEffect(() => { + void loadNotifications(); + }, [loadNotifications]); + + useIonViewWillEnter(() => { + void loadNotifications(); + }); + + const markRead = async (notificationId: string) => { + const readAt = new Date().toISOString(); + setNotifications((current) => + current.map((item) => + item.id === notificationId ? { ...item, read_at: readAt } : item + ) + ); + + if (isPreviewMode) { + const { error: updateError } = await supabase + .from('notifications') + .update({ read_at: readAt }) + .eq('id', notificationId) + .eq('user_id', previewUserId); + + if (updateError) { + showError(updateError.message); + void loadNotifications(); + } + return; + } + + const { error: invokeError } = await supabase.functions.invoke( + 'mark-notification-read', + { + body: { notificationId }, + } + ); + if (invokeError) { + showError(invokeError.message); + void loadNotifications(); + } + }; + + const handleOpenNotification = async (notification: NotificationRow) => { + if (!notification.read_at) { + await markRead(notification.id); + } + if (notification.order_id) { + history.push(`/orders/${notification.order_id}`, { + parentRoot: '/profile', + }); + } else if (notification.voucher_id) { + history.push(`/voucher/${notification.voucher_id}`, { + parentRoot: '/profile', + }); + } + }; + + const handleClearNotifications = async () => { + const targetUserId = user?.id ?? previewUserId; + + const { error: deleteError } = await supabase + .from('notifications') + .delete() + .eq('user_id', targetUserId); + + if (deleteError) { + showError(deleteError.message); + return; + } + + setNotifications([]); + setShowActions(false); + }; + + return ( + + + + + + history.length > 1 + ? history.goBack() + : history.replace('/profile') + } + aria-label="Go back" + > + + + + + Notifications + + + setShowActions(true)} + aria-label="Notification actions" + disabled={loading || notifications.length === 0} + > + + + + + + + + setShowActions(false)} + header="Notifications" + cssClass="app-action-sheet" + buttons={[ + { + text: 'Clear notifications', + role: 'destructive', + icon: trashOutline, + handler: () => { + void handleClearNotifications(); + }, + }, + { + text: 'Cancel', + role: 'cancel', + }, + ]} + /> + {error && ( +

+ {error} +

+ )} + + {loading ? ( +
+ {[1, 2, 3].map((item) => ( +
+ +
+ + +
+
+ ))} +
+ ) : notifications.length === 0 ? ( +
+ +

No notifications yet

+

+ Important payment and voucher updates will appear here. +

+
+ ) : ( +
+ {notifications.map((notification) => { + const service = getServicePresentation( + inferServiceType(notification) + ); + + return ( + + ); + })} +
+ )} +
+
+ ); +}; + +export default NotificationsPage; diff --git a/src/pages/OrderDetailPage.tsx b/src/pages/OrderDetailPage.tsx new file mode 100644 index 0000000..e975d21 --- /dev/null +++ b/src/pages/OrderDetailPage.tsx @@ -0,0 +1,1232 @@ +import React, { useMemo, useState } from 'react'; +import { renderToStaticMarkup } from 'react-dom/server'; +import { QRCodeSVG } from 'qrcode.react'; +import { Share } from '@capacitor/share'; +import momImage from '../assets/mom.jpg'; +import dadImage from '../assets/dad.jpg'; +import { + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonPage, + IonSkeletonText, + IonTitle, + IonToast, + IonToolbar, + useIonViewWillEnter, + useIonViewWillLeave, +} from '@ionic/react'; +import { + chevronBackOutline, + copyOutline, + flashOutline, + heartOutline, + listOutline, + medkitOutline, + peopleOutline, + personOutline, + phonePortraitOutline, + repeatOutline, + shareSocialOutline, + storefrontOutline, +} from 'ionicons/icons'; +import basketIcon from '../assets/basket.png'; +import { useHistory, useLocation, useParams } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import { formatMoney } from '../utils/formatMoney'; +import { buildCacheKey, readCache, writeCache } from '../utils/localCache'; +import '../styles/support.css'; + +type Params = { id: string }; + +type Merchant = { + id: string; + name: string; + branch_name: string | null; + city: string; + country: string; +}; + +type RecipientSummary = { + first_name: string; + last_name: string; + city: string; + country: string; + mobile_number?: string | null; + photo_path?: string | null; +}; + +type OrderDetail = { + id: string; + service_type: string; + amount: number; + platform_fee: number; + total_amount: number; + currency: string; + status: string; + network: string | null; + meter_number: string | null; + payment_method: string | null; + created_at: string; + recipient_id: string; + merchant_id: string | null; + recipients?: RecipientSummary | null; + merchants?: Merchant | null; +}; + +type VoucherRedemption = { + id: string; + redeemed_amount: number | null; + redeemed_at: string | null; + merchant_id: string | null; + merchant_name?: string | null; +}; + +type Voucher = { + id: string; + voucher_code: string; + status: string; + expires_at: string; + redeemed_at: string | null; + redeemed_merchant_id: string | null; + voucher_redemptions?: VoucherRedemption[] | null; +}; + +const previewUserId = '00000000-0000-0000-0000-000000000000'; + +type ServiceTheme = { + icon?: string; + iconImageSrc?: string; + headerIcon?: string; + headerIconImageSrc?: string; + iconClassName: string; + cardClassName: string; + accent: string; + soft: string; + label: string; + explicitTitle: string; +}; + +const getServiceTheme = (type: string): ServiceTheme => { + if (type === 'medication') { + return { + icon: medkitOutline, + headerIcon: medkitOutline, + iconClassName: 'support-service-image support-service-image-medication', + cardClassName: 'order-service-card order-service-card-medication', + accent: '#16a34a', + soft: 'rgba(22, 163, 74, 0.1)', + label: 'Medication voucher', + explicitTitle: 'Medication support', + }; + } + + if (type === 'airtime') { + return { + icon: phonePortraitOutline, + headerIcon: phonePortraitOutline, + iconClassName: 'support-service-icon-vector', + cardClassName: 'order-service-card order-service-card-airtime', + accent: '#2563eb', + soft: 'rgba(37, 99, 235, 0.1)', + label: 'Airtime & Data', + explicitTitle: 'Airtime support', + }; + } + + if (type === 'electricity') { + return { + icon: flashOutline, + headerIcon: flashOutline, + iconClassName: 'support-service-icon-vector', + cardClassName: 'order-service-card order-service-card-electricity', + accent: '#d97706', + soft: 'rgba(245, 158, 11, 0.12)', + label: 'Electricity', + explicitTitle: 'Electricity support', + }; + } + + return { + iconImageSrc: basketIcon, + headerIcon: storefrontOutline, + headerIconImageSrc: basketIcon, + iconClassName: + 'support-service-image support-service-image-grocery order-detail-basket-image', + cardClassName: 'order-service-card order-service-card-grocery', + accent: '#6d28d9', + soft: 'rgba(109, 40, 217, 0.1)', + label: 'Grocery voucher', + explicitTitle: 'Grocery support', + }; +}; + +const isVoucherService = (serviceType: string) => + serviceType === 'grocery' || serviceType === 'medication'; + +const getDisplayStatus = ( + order: OrderDetail | null, + voucher: Voucher | null +) => { + if (!order) return 'Created'; + const combinedStatus = `${order.status} ${voucher?.status ?? ''}` + .toLowerCase() + .replace(/_/g, ' '); + + if (isVoucherService(order.service_type)) { + if (combinedStatus.includes('partial')) return 'Partially'; + if ( + combinedStatus.includes('redeemed') || + voucher?.redeemed_at || + voucher?.redeemed_merchant_id || + (voucher?.voucher_redemptions?.length ?? 0) > 0 + ) { + return 'Redeemed'; + } + return 'Created'; + } + + if ( + combinedStatus.includes('completed') || + combinedStatus.includes('delivered') || + combinedStatus.includes('active') + ) { + return 'Completed'; + } + + return 'Created'; +}; + +const formatDateTime = (dateString: string | null) => { + if (!dateString) return '—'; + const date = new Date(dateString); + const day = date.getDate(); + const month = date.toLocaleString('en-GB', { month: 'short' }); + const year = date.getFullYear(); + const hours = String(date.getHours()).padStart(2, '0'); + const minutes = String(date.getMinutes()).padStart(2, '0'); + return `${day} ${month} ${year}, ${hours}:${minutes}`; +}; + +const getMerchantDisplayName = (merchant?: Merchant | null) => { + if (!merchant) return null; + return `${merchant.name}${merchant.branch_name ? ` ${merchant.branch_name}` : ''}`; +}; + +const getSeededRecipientImage = ( + firstName?: string | null, + photoPath?: string | null +) => { + const normalizedPath = photoPath?.trim().toLowerCase(); + if (normalizedPath === 'mom.jpg' || normalizedPath === 'mum.jpg') { + return momImage; + } + if (normalizedPath === 'dad.jpg' || normalizedPath === 'father.jpg') { + return dadImage; + } + + const normalizedName = firstName?.trim().toLowerCase(); + if (normalizedName === 'mum' || normalizedName === 'mom') return momImage; + if (normalizedName === 'dad' || normalizedName === 'father') return dadImage; + return undefined; +}; + +const getRecipientAvatarUrl = async (recipient?: RecipientSummary | null) => { + if (!recipient) return undefined; + + const seededImage = getSeededRecipientImage( + recipient.first_name, + recipient.photo_path + ); + if (seededImage) return seededImage; + + if (!recipient.photo_path) return undefined; + + const { data } = await supabase.storage + .from('recipient-photos') + .createSignedUrl(recipient.photo_path, 3600); + + return data?.signedUrl; +}; + +const getInitials = (name: string) => + name + .split(' ') + .map((part) => part.charAt(0)) + .join('') + .slice(0, 2) + .toUpperCase(); + +const getMerchantLabel = ( + order: OrderDetail | null, + voucher: Voucher | null, + merchantsById: Map +) => { + const latestRedemption = [...(voucher?.voucher_redemptions ?? [])].sort( + (a, b) => + new Date(b.redeemed_at ?? 0).getTime() - + new Date(a.redeemed_at ?? 0).getTime() + )[0]; + + if (latestRedemption?.merchant_name) return latestRedemption.merchant_name; + + const redemptionMerchant = latestRedemption?.merchant_id + ? merchantsById.get(latestRedemption.merchant_id) + : null; + const voucherMerchant = voucher?.redeemed_merchant_id + ? merchantsById.get(voucher.redeemed_merchant_id) + : null; + const orderMerchant = + order?.merchants ?? + (order?.merchant_id ? merchantsById.get(order.merchant_id) : null); + + return ( + getMerchantDisplayName(redemptionMerchant) ?? + getMerchantDisplayName(voucherMerchant) ?? + getMerchantDisplayName(orderMerchant) + ); +}; + +const OrderDetailPage: React.FC = () => { + const { id } = useParams(); + const history = useHistory(); + const location = useLocation<{ parentRoot?: string }>(); + const { user } = useAuth(); + const [order, setOrder] = useState(null); + const [voucher, setVoucher] = useState(null); + const [voucherLoadState, setVoucherLoadState] = useState< + 'idle' | 'loaded' | 'missing' | 'error' + >('idle'); + const [voucherError, setVoucherError] = useState(null); + const [voucherRedemptions, setVoucherRedemptions] = useState< + VoucherRedemption[] + >([]); + const [merchantsById, setMerchantsById] = useState>( + () => new Map() + ); + const [loading, setLoading] = useState(true); + const [message, setMessage] = useState(null); + const [toastMessage, setToastMessage] = useState(null); + const [recipientAvatarUrl, setRecipientAvatarUrl] = useState( + null + ); + + const recipientName = order?.recipients + ? `${order.recipients.first_name} ${order.recipients.last_name}` + : 'Loved one'; + const recipientLocation = order?.recipients + ? `${order.recipients.city}, ${order.recipients.country}` + : '—'; + const serviceTheme = getServiceTheme(order?.service_type ?? 'grocery'); + const serviceName = order ? serviceTheme.label : 'Support'; + const explicitServiceTitle = order + ? serviceTheme.explicitTitle + : 'Support summary'; + const voucherWithRedemptions = voucher + ? { ...voucher, voucher_redemptions: voucherRedemptions } + : null; + const displayStatus = getDisplayStatus(order, voucherWithRedemptions); + const merchantLabel = getMerchantLabel( + order, + voucherWithRedemptions, + merchantsById + ); + const latestRedemption = [...voucherRedemptions].sort( + (a, b) => + new Date(b.redeemed_at ?? 0).getTime() - + new Date(a.redeemed_at ?? 0).getTime() + )[0]; + const createdOnLabel = order ? formatDateTime(order.created_at) : '—'; + const redeemedOnLabel = latestRedemption?.redeemed_at + ? formatDateTime(latestRedemption.redeemed_at) + : null; + const supportRouteRows = useMemo( + () => [ + { label: 'Recipient', value: recipientName }, + { label: 'Location', value: recipientLocation }, + ...(order?.recipients?.mobile_number + ? [{ label: 'Mobile number', value: order.recipients.mobile_number }] + : []), + { label: 'Created on', value: createdOnLabel }, + ...(merchantLabel + ? [ + { + label: + order?.service_type === 'grocery' || + order?.service_type === 'medication' + ? 'Merchant' + : 'Provider', + value: merchantLabel, + }, + ] + : []), + ...(redeemedOnLabel + ? [{ label: 'Redeemed on', value: redeemedOnLabel }] + : []), + ...(order?.network ? [{ label: 'Network', value: order.network }] : []), + ...(order?.meter_number + ? [{ label: 'Meter number', value: order.meter_number }] + : []), + ], + [ + createdOnLabel, + merchantLabel, + order?.meter_number, + order?.network, + order?.recipients?.mobile_number, + order?.service_type, + recipientLocation, + recipientName, + redeemedOnLabel, + ] + ); + + const showVoucherArtifact = order + ? isVoucherService(order.service_type) + : false; + + const voucherQrValue = useMemo(() => { + if (!order || !voucher || !isVoucherService(order.service_type)) { + return null; + } + + const partnerGroup = + order.service_type === 'grocery' ? 'grocery' : 'pharmacy'; + + return JSON.stringify({ + type: 'kumusha-voucher', + voucherId: voucher.id, + voucherCode: voucher.voucher_code, + supportType: order.service_type, + supportLabel: serviceName, + recipientName, + partnerGroup, + status: displayStatus, + expiresAt: voucher.expires_at, + }); + }, [displayStatus, order, recipientName, serviceName, voucher]); + + const voucherRedeemCopy = useMemo(() => { + if (!order || !showVoucherArtifact) return ''; + return `Voucher redeemable at Kumusha ${ + order.service_type === 'grocery' ? 'grocery' : 'pharmacy' + } partners.`; + }, [order, showVoucherArtifact]); + + useIonViewWillEnter(() => { + void loadOrderDetail(); + }); + + useIonViewWillLeave(() => { + setToastMessage(null); + setMessage(null); + }); + + const handleGoBack = () => { + if (history.length > 1) { + history.goBack(); + } else { + history.replace('/recipients'); + } + }; + + const parentRoot = location.state?.parentRoot ?? '/recipients'; + + const parentRootTitle = + parentRoot === '/activity' + ? 'Activity' + : parentRoot === '/home' + ? 'Care' + : parentRoot === '/profile' + ? 'Profile' + : 'Recipients'; + + const rootEscapeIcon = + parentRoot === '/activity' + ? listOutline + : parentRoot === '/home' + ? heartOutline + : parentRoot === '/profile' + ? personOutline + : peopleOutline; + + const handleGoToParentRoot = () => { + history.replace(parentRoot); + }; + + const showMessage = (text: string) => { + setMessage(text); + setTimeout(() => setMessage(null), 4000); + }; + + const showToast = (text: string) => { + setToastMessage(text); + setTimeout(() => setToastMessage(null), 4000); + }; + + const loadOrderDetail = async () => { + const activeUserId = user?.id ?? previewUserId; + const cacheKey = buildCacheKey(activeUserId, `order_${id}`); + + let hasCache = false; + try { + const cached = await readCache(cacheKey); + if (cached && cached.order) { + setOrder(cached.order); + setVoucher(cached.voucher); + setVoucherLoadState(cached.voucherLoadState); + setVoucherRedemptions(cached.voucherRedemptions); + setRecipientAvatarUrl(cached.recipientAvatarUrl); + if (Array.isArray(cached.merchantsArray)) { + setMerchantsById( + new Map(cached.merchantsArray.map((m: any) => [m.id, m])) + ); + } + setLoading(false); + hasCache = true; + } + } catch (err) { + console.error('[order detail cache] error', err); + } + + if (!hasCache) setLoading(true); + setMessage(null); + if (!hasCache) setVoucherLoadState('idle'); + setVoucherError(null); + + let orderResult = await supabase + .from('support_orders') + .select( + 'id,service_type,amount,platform_fee,total_amount,currency,status,network,meter_number,payment_method,created_at,recipient_id,merchant_id,recipients(first_name,last_name,city,country,mobile_number,photo_path),merchants(id,name,branch_name,city,country)' + ) + .eq('id', id) + .eq('user_id', activeUserId) + .maybeSingle(); + + if (!orderResult.error && !orderResult.data && user?.id) { + orderResult = await supabase + .from('support_orders') + .select( + 'id,service_type,amount,platform_fee,total_amount,currency,status,network,meter_number,payment_method,created_at,recipient_id,merchant_id,recipients(first_name,last_name,city,country,mobile_number,photo_path),merchants(id,name,branch_name,city,country)' + ) + .eq('id', id) + .eq('user_id', previewUserId) + .maybeSingle(); + } + + if (orderResult.error || !orderResult.data) { + showMessage(orderResult.error?.message ?? 'Order not found'); + if (!hasCache) { + setOrder(null); + setVoucher(null); + setVoucherRedemptions([]); + setLoading(false); + } + return; + } + + const nextOrder = orderResult.data as unknown as OrderDetail; + + const [voucherResult, merchantsResult, redemptionsResult] = + await Promise.all([ + supabase + .from('vouchers') + .select( + 'id,voucher_code,status,expires_at,redeemed_at,redeemed_merchant_id' + ) + .eq('order_id', id) + .maybeSingle(), + supabase.from('merchants').select('id,name,branch_name,city,country'), + supabase + .from('voucher_redemptions') + .select('id,redeemed_amount,redeemed_at,merchant_id') + .eq('order_id', id), + ]); + + let nextVoucherLoadState = voucherLoadState; + if (voucherResult.error) { + nextVoucherLoadState = 'error'; + setVoucherError(voucherResult.error.message); + } else if ( + !voucherResult.data && + isVoucherService(nextOrder.service_type) + ) { + nextVoucherLoadState = 'missing'; + } else if (voucherResult.data) { + nextVoucherLoadState = 'loaded'; + } + setVoucherLoadState(nextVoucherLoadState); + + let nextRedemptions = (redemptionsResult.data ?? []) as VoucherRedemption[]; + + // If order-based redemptions are empty but we have a voucher, check by voucher_id + if (nextRedemptions.length === 0 && voucherResult.data) { + const fallbackRedemptions = await supabase + .from('voucher_redemptions') + .select('id,redeemed_amount,redeemed_at,merchant_id') + .eq('voucher_id', voucherResult.data.id); + if (fallbackRedemptions.data) { + nextRedemptions = fallbackRedemptions.data as VoucherRedemption[]; + } + } + + if (merchantsResult.error || redemptionsResult.error) { + showMessage( + merchantsResult.error?.message || + redemptionsResult.error?.message || + 'Some order details could not be loaded' + ); + } + + const nextMerchantsMap = new Map( + ((merchantsResult.data ?? []) as Merchant[]).map((merchant) => [ + merchant.id, + merchant, + ]) + ); + + setOrder(nextOrder); + setVoucher((voucherResult.data ?? null) as Voucher | null); + setVoucherRedemptions(nextRedemptions); + setMerchantsById(nextMerchantsMap); + + const nextAvatarUrl = await getRecipientAvatarUrl( + nextOrder.recipients ?? null + ); + setRecipientAvatarUrl(nextAvatarUrl ?? null); + setLoading(false); + + const merchantsArray = Array.from(nextMerchantsMap.values()); + void writeCache(cacheKey, { + order: nextOrder, + voucher: voucherResult.data ?? null, + voucherLoadState: nextVoucherLoadState, + voucherRedemptions: nextRedemptions, + recipientAvatarUrl: nextAvatarUrl ?? null, + merchantsArray, + }); + }; + + const sharePayload = useMemo(() => { + if (!order) { + return { + subject: 'Kumusha support details', + text: `Kumusha order ${id}`, + }; + } + + const amountLabel = formatMoney(Number(order.amount), order.currency); + const totalLabel = formatMoney(Number(order.total_amount), order.currency); + const supportLabel = `${serviceTheme.label} for ${recipientName}`; + const merchantText = merchantLabel + ? `Redeem at ${merchantLabel}.` + : showVoucherArtifact + ? 'Redeem at participating partner merchants.' + : ''; + + if (showVoucherArtifact && voucher) { + const lines = [ + `Kumusha ${supportLabel}`, + `Voucher code: ${voucher.voucher_code}`, + `Voucher amount: ${amountLabel}`, + merchantText, + ].filter(Boolean); + + return { + subject: `${serviceTheme.label} voucher for ${recipientName}`, + text: lines.join('\n'), + }; + } + + return { + subject: `${serviceTheme.label} for ${recipientName}`, + text: [ + `Kumusha ${supportLabel}`, + `Support amount: ${amountLabel}`, + `Total paid: ${totalLabel}`, + ].join('\n'), + }; + }, [ + id, + merchantLabel, + order, + recipientName, + serviceTheme.label, + showVoucherArtifact, + voucher, + ]); + + const shareSubject = sharePayload.subject; + const shareText = sharePayload.text; + + const buildVoucherSharePayload = () => { + if (!voucher || !order) { + return sharePayload; + } + + const amountLabel = formatMoney(Number(order.amount), order.currency); + const voucherText = [ + `Hi ${order.recipients?.first_name ?? recipientName}, your ${serviceTheme.label.toLowerCase()} from Kumusha is ready to use.`, + `Voucher code: ${voucher.voucher_code}`, + `Voucher amount: ${amountLabel}`, + merchantLabel + ? `Redeem at ${merchantLabel}.` + : 'Redeem at participating Kumusha partner merchants.', + 'Show the QR code in this message to the merchant for redemption.', + ].join('\n'); + + return { + subject: `${serviceTheme.label} voucher for ${recipientName}`, + text: voucherText, + }; + }; + + const buildVoucherQrFile = async () => { + if (!voucherQrValue || !voucher || !order) return undefined; + + const markup = renderToStaticMarkup( + + ); + const svgBlob = new Blob([markup], { type: 'image/svg+xml;charset=utf-8' }); + const imageUrl = URL.createObjectURL(svgBlob); + + try { + const image = new Image(); + const loaded = new Promise((resolve, reject) => { + image.onload = () => resolve(); + image.onerror = () => reject(new Error('Could not prepare QR code')); + }); + image.src = imageUrl; + await loaded; + + const canvas = document.createElement('canvas'); + canvas.width = 1080; + canvas.height = 1320; + const ctx = canvas.getContext('2d'); + if (!ctx) return undefined; + + ctx.fillStyle = '#ffffff'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.fillStyle = '#171827'; + ctx.font = + '700 54px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'; + ctx.textAlign = 'center'; + ctx.fillText('Kumusha voucher', canvas.width / 2, 92); + ctx.font = + '500 34px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'; + ctx.fillStyle = '#5f6572'; + ctx.fillText(serviceTheme.label, canvas.width / 2, 146); + ctx.drawImage(image, 120, 218, 840, 840); + ctx.fillStyle = serviceTheme.accent; + ctx.font = '700 46px ui-monospace, SFMono-Regular, Menlo, monospace'; + ctx.fillText(voucher.voucher_code, canvas.width / 2, 1124); + ctx.fillStyle = '#5f6572'; + ctx.font = + '500 30px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'; + ctx.fillText( + `Amount: ${formatMoney(Number(order.amount), order.currency)}`, + canvas.width / 2, + 1188 + ); + ctx.fillText(`For ${recipientName}`, canvas.width / 2, 1240); + + const blob = await new Promise((resolve) => + canvas.toBlob(resolve, 'image/png') + ); + if (!blob) return undefined; + return new File([blob], `kumusha-${voucher.voucher_code}.png`, { + type: 'image/png', + }); + } finally { + URL.revokeObjectURL(imageUrl); + } + }; + + const copyTextToClipboard = async (text: string) => { + try { + if (navigator.clipboard?.writeText) { + await navigator.clipboard.writeText(text); + return true; + } + } catch { + // Fall through to the textarea copy path. Some WebViews expose + // navigator.clipboard but reject writes unless triggered in a strict + // user gesture context. + } + + const textArea = document.createElement('textarea'); + textArea.value = text; + textArea.setAttribute('readonly', ''); + textArea.style.position = 'fixed'; + textArea.style.top = '0'; + textArea.style.left = '0'; + textArea.style.width = '1px'; + textArea.style.height = '1px'; + textArea.style.opacity = '0'; + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + textArea.setSelectionRange(0, text.length); + + let copied = false; + try { + copied = document.execCommand('copy'); + } finally { + document.body.removeChild(textArea); + } + + return copied; + }; + + const copySharePayload = async (payload = sharePayload) => { + const text = payload.text || shareText; + const copied = await copyTextToClipboard(text); + showToast(copied ? 'Voucher copied' : 'Could not copy voucher'); + }; + + const openNativeShare = async (payload = sharePayload, _file?: File) => { + const result = await Share.canShare(); + if (!result.value) { + return false; + } + + await Share.share({ + title: payload.subject, + text: payload.text, + dialogTitle: 'Share voucher', + }); + return true; + }; + + const handleShare = async () => { + try { + if (await openNativeShare(sharePayload)) { + return; + } + showToast('Sharing is not available on this device'); + } catch (error) { + if ((error as Error)?.name !== 'AbortError') { + showToast('Could not open share options'); + } + } + }; + + const handleVoucherShare = async () => { + if (!voucher || !order) { + await handleShare(); + return; + } + + const voucherPayload = buildVoucherSharePayload(); + + try { + const qrFile = await buildVoucherQrFile(); + if (await openNativeShare(voucherPayload, qrFile)) { + return; + } + if (await openNativeShare(voucherPayload)) { + return; + } + showToast('Sharing is not available on this device'); + } catch (error) { + if ((error as Error)?.name !== 'AbortError') { + showToast('Could not open share options'); + } + } + }; + + return ( + + + + + + + + + + {explicitServiceTitle} + + + + + + + + + + + {loading ? ( +
+ + +
+ ) : order ? ( + <> + {message && ( +

+ {message} +

+ )} +
+
+
+ + {displayStatus} + + + Support for {recipientName} + +
+ +
+
+ {serviceTheme.iconImageSrc ? ( + + ) : ( + + )} +
+ +
+

Support type

+
+

{serviceName}

+
+

+ {displayStatus === 'Redeemed' && merchantLabel + ? `Redeemed at ${merchantLabel}` + : order?.service_type === 'grocery' + ? 'Ready to use at participating grocery merchants' + : order?.service_type === 'medication' + ? 'Ready to use at participating medication merchants' + : 'Successfully delivered to recipient'} +

+
+ +
+
+ {recipientAvatarUrl ? ( + {recipientName} + ) : ( +
+ {getInitials(recipientName)} +
+ )} +
+ {serviceTheme.iconImageSrc ? ( + + ) : ( + + )} +
+
+
+
+ +
+
+ + Total paid + + + {formatMoney(Number(order.total_amount), order.currency)} + +
+
+
+ + Support amount + + + {formatMoney(Number(order.amount), order.currency)} + +
+
+
+ +
+
+
+

Order summary

+

+ Payment and support details +

+
+
+ + {showVoucherArtifact && + voucherLoadState !== 'missing' && + voucherLoadState !== 'error' && ( +
+
+
+ {voucherQrValue ? ( + + ) : ( + + )} +
+ +
+

+ Voucher code +

+

+ {voucher ? voucher.voucher_code : '...'} +

+
+ + +
+
+
+
+ )} + +
+
+
+ Support amount + + {formatMoney(Number(order.amount), order.currency)} + +
+
+ Service fee + + {formatMoney(Number(order.platform_fee), order.currency)} + +
+
+ Total paid + + {formatMoney(Number(order.total_amount), order.currency)} + +
+
+
+
+ +
+
+
+

Support route

+

+ Who received it and where +

+
+
+ +
+ {supportRouteRows.map((row) => ( +
+ {row.label} + {row.value} +
+ ))} +
+
+ + + history.push('/support/new', { + recipientId: order.recipient_id, + serviceType: order.service_type, + amount: Number(order.amount), + merchantId: order.merchant_id, + network: order.network, + meterNumber: order.meter_number, + startAtAmount: true, + }) + } + className={`order-detail-send-again-button order-tone-${order.service_type}`} + style={ + { + margin: '4px 20px 20px', + '--border-radius': '999px', + '--box-shadow': 'none', + minHeight: '52px', + fontWeight: 700, + } as React.CSSProperties + } + > + + + Send again + + + + ) : null} + + setToastMessage(null)} + cssClass="order-detail-toast" + /> + + ); +}; + +export default OrderDetailPage; diff --git a/src/pages/OrdersPage.tsx b/src/pages/OrdersPage.tsx new file mode 100644 index 0000000..f81f2e2 --- /dev/null +++ b/src/pages/OrdersPage.tsx @@ -0,0 +1,253 @@ +import React, { useMemo, useState } from 'react'; +import { + IonContent, + IonIcon, + IonPage, + IonRefresher, + IonRefresherContent, + IonSkeletonText, + useIonViewWillEnter, +} from '@ionic/react'; +import { receiptOutline } from 'ionicons/icons'; +import { useHistory } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import ListSearchRow from '../components/ListSearchRow'; +import OrderSummaryCard, { OrderSummary } from '../components/OrderSummaryCard'; +import { formatMoney } from '../utils/formatMoney'; +import '../styles/support.css'; +import '../styles/recipients.css'; + +type OrderRow = { + id: string; + service_type: string; + amount: number; + status: string; + created_at: string; + recipient_id: string; + merchant_id: string | null; + recipients?: { + first_name: string; + last_name: string; + photo_path: string | null; + } | null; + merchants?: { name: string; branch_name: string | null } | null; +}; + +const statusFilters = [ + { value: 'all', label: 'All' }, + { value: 'paid', label: 'Paid' }, + { value: 'ready_for_redemption', label: 'Ready' }, + { value: 'redeemed', label: 'Redeemed' }, + { value: 'delivered', label: 'Delivered' }, + { value: 'expired', label: 'Expired' }, +]; + +const OrdersPage: React.FC = () => { + const history = useHistory(); + const { user } = useAuth(); + const [orders, setOrders] = useState([]); + const [searchTerm, setSearchTerm] = useState(''); + const [activeStatus, setActiveStatus] = useState('all'); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useIonViewWillEnter(() => { + void loadOrders(); + }); + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const loadOrders = async () => { + if (!user) return; + setLoading(true); + setError(null); + + const { data, error: ordersError } = await supabase + .from('support_orders') + .select( + 'id,service_type,amount,status,created_at,recipient_id,merchant_id,recipients(first_name,last_name,photo_path),merchants(name,branch_name)' + ) + .eq('user_id', user.id) + .order('created_at', { ascending: false }); + + if (ordersError) { + showError(ordersError.message); + setLoading(false); + return; + } + + const rows = (data ?? []) as unknown as OrderRow[]; + const normalized = await Promise.all( + rows.map(async (row) => { + const recipientName = row.recipients + ? `${row.recipients.first_name} ${row.recipients.last_name}` + : 'Loved one'; + const avatarUrl = row.recipients?.photo_path + ? (( + await supabase.storage + .from('recipient-photos') + .createSignedUrl(row.recipients.photo_path, 3600) + ).data?.signedUrl ?? null) + : null; + + return { + id: row.id, + recipientName, + serviceType: + row.service_type.charAt(0).toUpperCase() + + row.service_type.slice(1), + merchantName: row.merchants + ? `${row.merchants.name}${row.merchants.branch_name ? ` — ${row.merchants.branch_name}` : ''}` + : undefined, + amount: Number(row.amount ?? 0), + amountLabel: formatMoney(Number(row.amount ?? 0)), + status: row.status, + createdAt: row.created_at, + avatarUrl, + }; + }) + ); + + setOrders(normalized); + setLoading(false); + }; + + const visibleOrders = useMemo(() => { + const query = searchTerm.trim().toLowerCase(); + return orders.filter((order) => { + const statusMatch = + activeStatus === 'all' || order.status === activeStatus; + const searchMatch = + !query || + [ + order.recipientName, + order.serviceType, + order.merchantName, + order.status, + ] + .join(' ') + .toLowerCase() + .includes(query); + return statusMatch && searchMatch; + }); + }, [orders, activeStatus, searchTerm]); + + const handleRefresh = async (event: CustomEvent) => { + await loadOrders(); + event.detail.complete(); + }; + + return ( + + + + + + +
+
+

Activity

+

+ {orders.length} support updates +

+
+
+ + + +
+ {statusFilters.map((filter) => ( + + ))} +
+ + {error && ( +

+ {error} +

+ )} + + {loading ? ( +
+ {[1, 2, 3].map((item) => ( +
+ +
+ + +
+
+ ))} +
+ ) : visibleOrders.length === 0 ? ( +
+ +

+ {orders.length === 0 ? 'No orders yet' : 'No matching orders'} +

+

+ {orders.length === 0 + ? 'Your support transactions will appear here.' + : 'Try changing your search or status filter.'} +

+
+ ) : ( +
+ {visibleOrders.map((order) => ( + history.push(`/orders/${id}`)} + /> + ))} +
+ )} +
+
+ ); +}; + +export default OrdersPage; diff --git a/src/pages/ProfilePage.tsx b/src/pages/ProfilePage.tsx new file mode 100644 index 0000000..43181f7 --- /dev/null +++ b/src/pages/ProfilePage.tsx @@ -0,0 +1,451 @@ +import React, { useState } from 'react'; +import { + IonButton, + IonContent, + IonIcon, + IonPage, + IonSkeletonText, + useIonViewWillEnter, +} from '@ionic/react'; +import { + cardOutline, + createOutline, + documentTextOutline, + helpCircleOutline, + informationCircleOutline, + logoWhatsapp, + logOutOutline, + mailOutline, + notificationsOutline, + personOutline, + phonePortraitOutline, + shieldCheckmarkOutline, +} from 'ionicons/icons'; +import { useHistory } from 'react-router-dom'; +import { FirebaseAuthentication } from '@capacitor-firebase/authentication'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import SettingsRow from '../components/SettingsRow'; +import sarahAvatarImage from '../assets/sarah.jpg'; +import '../styles/profile.css'; + +type Profile = { + id: string; + first_name: string; + last_name: string; + full_name: string; + phone: string; + country_of_residence: string; + avatar_path: string | null; + notification_push_enabled: boolean; + notification_email_enabled: boolean; + notification_sms_enabled: boolean; +}; + +type PreviewProfilePayload = { + first_name: string; + last_name: string; + phone: string; + country_of_residence: string; + avatar_url: string | null; + notification_push_enabled: boolean; + notification_email_enabled: boolean; + notification_sms_enabled: boolean; +}; + +const PREVIEW_PROFILE_STORAGE_KEY = 'kumusha-preview-profile'; + +const getPreviewProfilePayload = (): PreviewProfilePayload => { + const fallback: PreviewProfilePayload = { + first_name: 'Sarah', + last_name: 'Moyo', + phone: '+44 7123 456789', + country_of_residence: 'United Kingdom', + avatar_url: sarahAvatarImage, + notification_push_enabled: true, + notification_email_enabled: true, + notification_sms_enabled: false, + }; + + try { + const saved = localStorage.getItem(PREVIEW_PROFILE_STORAGE_KEY); + return saved ? { ...fallback, ...JSON.parse(saved) } : fallback; + } catch { + return fallback; + } +}; + +const savePreviewProfilePayload = ( + profile: Profile, + avatarUrl: string | null +) => { + const payload: PreviewProfilePayload = { + first_name: profile.first_name, + last_name: profile.last_name, + phone: profile.phone, + country_of_residence: profile.country_of_residence, + avatar_url: avatarUrl, + notification_push_enabled: profile.notification_push_enabled, + notification_email_enabled: profile.notification_email_enabled, + notification_sms_enabled: profile.notification_sms_enabled, + }; + localStorage.setItem(PREVIEW_PROFILE_STORAGE_KEY, JSON.stringify(payload)); +}; + +const buildPreviewProfile = () => { + const payload = getPreviewProfilePayload(); + const profile: Profile = { + id: 'preview-profile', + first_name: payload.first_name, + last_name: payload.last_name, + full_name: `${payload.first_name} ${payload.last_name}`, + phone: payload.phone, + country_of_residence: payload.country_of_residence, + avatar_path: null, + notification_push_enabled: payload.notification_push_enabled, + notification_email_enabled: payload.notification_email_enabled, + notification_sms_enabled: payload.notification_sms_enabled, + }; + + return { profile, avatarUrl: payload.avatar_url }; +}; + +const ProfilePage: React.FC = () => { + const history = useHistory(); + const { user, signOut, refreshProfile } = useAuth(); + const [profile, setProfile] = useState(null); + const [avatarUrl, setAvatarUrl] = useState(null); + const [loading, setLoading] = useState(true); + const [signingOut, setSigningOut] = useState(false); + const [error, setError] = useState(null); + + useIonViewWillEnter(() => { + void loadProfile(); + }); + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const loadProfile = async () => { + setLoading(true); + + if (!user) { + const preview = buildPreviewProfile(); + setProfile(preview.profile); + setAvatarUrl(preview.avatarUrl); + setLoading(false); + return; + } + + const { data, error: profileError } = await supabase + .from('profiles') + .select('*') + .eq('id', user.id) + .single(); + + if (profileError || !data) { + showError(profileError?.message ?? 'Profile not found'); + const preview = buildPreviewProfile(); + setProfile(preview.profile); + setAvatarUrl(preview.avatarUrl); + setLoading(false); + return; + } + + const nextProfile = data as Profile; + setProfile(nextProfile); + if (nextProfile.avatar_path) { + const { data: signed } = await supabase.storage + .from('avatars') + .createSignedUrl(nextProfile.avatar_path, 3600); + setAvatarUrl(signed?.signedUrl ?? null); + } else { + setAvatarUrl(null); + } + setLoading(false); + }; + + const handleTogglePreference = async ( + field: + | 'notification_push_enabled' + | 'notification_email_enabled' + | 'notification_sms_enabled', + checked: boolean + ) => { + if (!profile) return; + const previous = profile; + const next = { ...profile, [field]: checked }; + setProfile(next); + + if (!user) { + savePreviewProfilePayload(next, avatarUrl); + return; + } + + const updatedAt = new Date().toISOString(); + const updates: any = + field === 'notification_push_enabled' + ? { notification_push_enabled: checked, updated_at: updatedAt } + : field === 'notification_email_enabled' + ? { notification_email_enabled: checked, updated_at: updatedAt } + : { notification_sms_enabled: checked, updated_at: updatedAt }; + + if (field === 'notification_push_enabled' && !checked) { + updates.fcm_token = null; + } + + const { error: updateError } = await supabase + .from('profiles') + .update(updates) + .eq('id', profile.id); + + if (updateError) { + setProfile(previous); + showError(updateError.message); + return; + } + await refreshProfile(); + }; + + const handleSignOut = async () => { + setSigningOut(true); + try { + await FirebaseAuthentication.signOut().catch(() => undefined); + await signOut(); + history.replace('/auth'); + } finally { + setSigningOut(false); + } + }; + + const initials = + profile?.full_name + ?.split(' ') + .map((part) => part.charAt(0)) + .slice(0, 2) + .join('') + .toUpperCase() || '?'; + + const paymentMethodsCount = 0; + + return ( + + +

Profile

+ {error && ( +

+ {error} +

+ )} + + {loading ? ( +
+ +
+ + +
+
+ ) : profile ? ( + <> +
+
+ {avatarUrl ? ( + {profile.full_name} + ) : ( +
{initials}
+ )} +
+
+

{profile.full_name}

+

{profile.country_of_residence}

+
+ history.push('/profile/edit')} + > + + +
+ +

Payments

+
+ 0 + ? `${paymentMethodsCount} saved for faster checkout` + : 'No saved cards yet' + } + onClick={() => + showError( + 'Saved cards will be added when payments are connected in a later phase' + ) + } + /> +
+ +

Account

+
+ history.push('/profile/edit')} + /> + history.push('/notifications')} + /> + + showError( + 'Security settings will be available after MVP launch' + ) + } + /> +
+ +

Support

+
+ + showError( + 'Help centre articles will be added in a later phase' + ) + } + /> + + showError('Support chat will be connected in a later phase') + } + /> + + showError( + 'Guided product explainers will be added in a later phase' + ) + } + /> +
+ +

Legal

+
+ + showError('Terms of service will be added in a later phase') + } + /> + + showError('Privacy policy will be added in a later phase') + } + /> +
+ +

Preferences

+
+ + handleTogglePreference('notification_push_enabled', checked) + } + /> + + handleTogglePreference('notification_email_enabled', checked) + } + /> + + handleTogglePreference('notification_sms_enabled', checked) + } + /> +
+ +
+ +
+ +
+
K
+

Kumusha

+

Version 1.0.0

+

+ © 2026 Kumusha. All rights reserved. +

+
+ + ) : null} +
+
+ ); +}; + +export default ProfilePage; diff --git a/src/pages/RecipientDetailPage.tsx b/src/pages/RecipientDetailPage.tsx new file mode 100644 index 0000000..ae6a7ce --- /dev/null +++ b/src/pages/RecipientDetailPage.tsx @@ -0,0 +1,1146 @@ +import React, { useMemo, useState } from 'react'; +import { renderToStaticMarkup } from 'react-dom/server'; +import { QRCodeSVG } from 'qrcode.react'; +import { + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonModal, + IonPage, + IonSkeletonText, + IonTitle, + IonToolbar, + useIonViewWillEnter, +} from '@ionic/react'; +import basketIcon from '../assets/basket.png'; +import momImage from '../assets/mom.jpg'; +import dadImage from '../assets/dad.jpg'; +import { + chevronBackOutline, + closeOutline, + createOutline, + heartOutline, + alertCircleOutline, + timeOutline, + flashOutline, + medkitOutline, + cartOutline, + wifiOutline, + checkmarkCircleOutline, + shareOutline, +} from 'ionicons/icons'; +import { useHistory, useParams } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import { formatMoney } from '../utils/formatMoney'; +import { buildCacheKey, readCache, writeCache } from '../utils/localCache'; +import '../styles/recipients.css'; + +type Params = { id: string }; + +type Recipient = { + id: string; + first_name: string; + last_name: string; + relationship: string; + country: string; + city: string; + mobile_number: string; + photo_path: string | null; +}; + +type OrderRow = { + id: string; + service_type: string; + status: string; + amount: number; + currency?: string | null; + created_at: string; + merchant_id?: string | null; + merchants?: { name: string; branch_name?: string | null } | null; + vouchers?: + | { + id: string; + voucher_code: string; + status: string; + expires_at: string; + }[] + | null; +}; + +type CareAlertRow = { + id: string; + title: string; + body: string; + severity: string; + service_type: string | null; + due_at: string | null; +}; + +type VoucherRow = NonNullable[number] & { + order_id: string; +}; + +const RecipientDetailPage: React.FC = () => { + const history = useHistory(); + const { id } = useParams(); + const { user } = useAuth(); + const [recipient, setRecipient] = useState(null); + const [avatarUrl, setAvatarUrl] = useState(null); + const [groupedOrders, setGroupedOrders] = useState< + { label: string; items: OrderRow[] }[] + >([]); + const [careAlerts, setCareAlerts] = useState([]); + const [totalAssistance, setTotalAssistance] = useState(0); + const [orderCount, setOrderCount] = useState(0); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [showVoucherShareSheet, setShowVoucherShareSheet] = useState(false); + const [voucherShareText, setVoucherShareText] = useState(''); + const [voucherShareSubject, setVoucherShareSubject] = useState(''); + const [voucherShareTitle, setVoucherShareTitle] = useState('Share voucher'); + + useIonViewWillEnter(() => { + void loadRecipientDetail(); + }); + + const handleGoBack = () => { + if (history.length > 1) { + history.goBack(); + } else { + history.replace('/recipients'); + } + }; + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const getSeededRecipientImage = ( + firstName?: string | null, + photoPath?: string | null + ) => { + const normalizedPath = photoPath?.trim().toLowerCase(); + if (normalizedPath === 'mom.jpg' || normalizedPath === 'mum.jpg') + return momImage; + if (normalizedPath === 'dad.jpg' || normalizedPath === 'father.jpg') + return dadImage; + + const normalizedName = firstName?.trim().toLowerCase(); + if (normalizedName === 'mum' || normalizedName === 'mom') return momImage; + if (normalizedName === 'dad' || normalizedName === 'father') + return dadImage; + return null; + }; + + const groupOrdersByDate = (orders: OrderRow[]) => { + const groups: { label: string; items: OrderRow[] }[] = []; + let currentLabel = ''; + let currentItems: OrderRow[] = []; + + const today = new Date(); + today.setHours(0, 0, 0, 0); + + const yesterday = new Date(today); + yesterday.setDate(yesterday.getDate() - 1); + + for (const order of orders) { + const orderDate = new Date(order.created_at); + orderDate.setHours(0, 0, 0, 0); + + let label = ''; + if (orderDate.getTime() === today.getTime()) { + label = 'Today'; + } else if (orderDate.getTime() === yesterday.getTime()) { + label = 'Yesterday'; + } else { + label = orderDate.toLocaleDateString(undefined, { + month: 'short', + day: 'numeric', + year: + orderDate.getFullYear() !== today.getFullYear() + ? 'numeric' + : undefined, + }); + } + + if (label !== currentLabel) { + if (currentItems.length > 0) { + groups.push({ label: currentLabel, items: currentItems }); + } + currentLabel = label; + currentItems = [order]; + } else { + currentItems.push(order); + } + } + if (currentItems.length > 0) { + groups.push({ label: currentLabel, items: currentItems }); + } + return groups; + }; + + const attachVouchersToOrders = async (orders: OrderRow[]) => { + const voucherOrderIds = orders + .filter( + (order) => + order.service_type === 'grocery' || + order.service_type === 'medication' + ) + .map((order) => order.id); + + if (voucherOrderIds.length === 0) return orders; + + const { data, error } = await supabase + .from('vouchers') + .select('id,order_id,voucher_code,status,expires_at') + .in('order_id', voucherOrderIds); + + if (error) { + showError('Voucher QR details could not be loaded'); + return orders; + } + + const vouchersByOrderId = new Map(); + ((data ?? []) as VoucherRow[]).forEach((voucher) => { + const existing = vouchersByOrderId.get(voucher.order_id) ?? []; + existing.push(voucher); + vouchersByOrderId.set(voucher.order_id, existing); + }); + + return orders.map((order) => ({ + ...order, + vouchers: vouchersByOrderId.get(order.id) ?? null, + })); + }; + + const loadRecipientDetail = async () => { + const activeUserId = user?.id ?? '00000000-0000-0000-0000-000000000000'; + const cacheKey = buildCacheKey(activeUserId, `recipient_${id}`); + + let hasCache = false; + try { + const cached = await readCache(cacheKey); + if (cached && cached.recipient) { + setRecipient(cached.recipient); + setAvatarUrl(cached.avatarUrl); + setGroupedOrders(cached.groupedOrders); + setCareAlerts(cached.careAlerts); + setTotalAssistance(cached.totalAssistance); + setOrderCount(cached.orderCount); + setLoading(false); + hasCache = true; + } + } catch (err) { + console.error('[recipient detail cache] error', err); + } + + if (!hasCache) setLoading(true); + setError(null); + + const [recipientResult, ordersResult, careAlertsResult] = await Promise.all( + [ + supabase + .from('recipients') + .select( + 'id,first_name,last_name,relationship,country,city,mobile_number,photo_path' + ) + .eq('id', id) + .eq('user_id', activeUserId) + .single(), + supabase + .from('support_orders') + .select( + 'id,service_type,status,amount,currency,created_at,merchant_id,merchants(name,branch_name)' + ) + .eq('recipient_id', id) + .eq('user_id', activeUserId) + .order('created_at', { ascending: false }), + supabase + .from('care_alerts') + .select('id,title,body,severity,service_type,due_at') + .eq('recipient_id', id) + .eq('user_id', activeUserId) + .is('dismissed_at', null) + .order('due_at', { ascending: true, nullsFirst: false }) + .limit(3), + ] + ); + + const queryError = + recipientResult.error ?? ordersResult.error ?? careAlertsResult.error; + if (queryError || !recipientResult.data) { + showError(queryError?.message ?? 'Loved one not found'); + if (!hasCache) setLoading(false); + return; + } + + const nextRecipient = recipientResult.data as Recipient; + setRecipient(nextRecipient); + + let freshAvatarUrl = null; + const seededImage = getSeededRecipientImage( + nextRecipient.first_name, + nextRecipient.photo_path + ); + if (seededImage) { + freshAvatarUrl = seededImage; + } else if (nextRecipient.photo_path) { + const { data } = await supabase.storage + .from('recipient-photos') + .createSignedUrl(nextRecipient.photo_path, 3600); + freshAvatarUrl = data?.signedUrl ?? null; + } + setAvatarUrl(freshAvatarUrl); + + const orders = await attachVouchersToOrders( + (ordersResult.data ?? []) as OrderRow[] + ); + const freshOrderCount = orders.length; + const freshTotalAssistance = orders + .filter( + (order) => order.status !== 'failed' && order.status !== 'cancelled' + ) + .reduce((sum, order) => sum + Number(order.amount ?? 0), 0); + const freshGroupedOrders = groupOrdersByDate(orders); + const freshCareAlerts = (careAlertsResult.data ?? []) as CareAlertRow[]; + + setOrderCount(freshOrderCount); + setTotalAssistance(freshTotalAssistance); + setGroupedOrders(freshGroupedOrders); + setCareAlerts(freshCareAlerts); + setLoading(false); + + void writeCache(cacheKey, { + recipient: nextRecipient, + avatarUrl: freshAvatarUrl, + groupedOrders: freshGroupedOrders, + careAlerts: freshCareAlerts, + totalAssistance: freshTotalAssistance, + orderCount: freshOrderCount, + }); + }; + + const formatDueDate = (value: string | null) => { + if (!value) return 'Upcoming'; + const dueDate = new Date(value); + const now = new Date(); + const diffMs = dueDate.getTime() - now.getTime(); + const diffDays = Math.ceil(diffMs / (1000 * 60 * 60 * 24)); + + if (diffDays <= 0) return 'Due today'; + if (diffDays === 1) return 'Due tomorrow'; + if (diffDays <= 5) return `Due in ${diffDays} days`; + + return 'Due in 5 days'; + }; + + const normalizeVoucherStatus = ( + serviceType: string | null, + status: string | null + ) => { + const normalizedStatus = (status ?? '').toLowerCase(); + if (serviceType === 'grocery' || serviceType === 'medication') { + if (normalizedStatus === 'redeemed') return 'redeemed'; + if (normalizedStatus === 'partial') return 'partial'; + return 'created'; + } + return normalizedStatus || 'created'; + }; + + const formatSupportDateTime = (value: string) => + new Date(value).toLocaleString(undefined, { + month: 'short', + day: 'numeric', + hour: 'numeric', + minute: '2-digit', + }); + + const getStatusDescription = (order: OrderRow) => { + const normalizedStatus = normalizeVoucherStatus( + order.service_type, + order.status + ); + const serviceLabel = order.service_type.replace(/_/g, ' '); + + if ( + order.service_type === 'grocery' || + order.service_type === 'medication' + ) { + if (normalizedStatus === 'redeemed') { + return 'Voucher collected by recipient.'; + } + if (normalizedStatus === 'partial') { + return 'Voucher partially used at merchant.'; + } + return 'Voucher created and ready to share.'; + } + + if (order.service_type === 'airtime') { + if (normalizedStatus === 'completed') { + return 'Top-up confirmed on recipient line.'; + } + if (normalizedStatus === 'delivered') { + return 'Top-up sent and awaiting final confirmation.'; + } + return `${serviceLabel.charAt(0).toUpperCase() + serviceLabel.slice(1)} request in progress.`; + } + + if (order.service_type === 'electricity') { + if (normalizedStatus === 'completed') { + return 'Token delivered successfully.'; + } + return 'Electricity support is being processed.'; + } + + return 'Support action recorded successfully.'; + }; + + const buildVoucherQrFile = async ( + order: OrderRow, + voucher: NonNullable[number], + recipientName: string, + serviceLabel: string, + merchantName: string + ) => { + const partnerGroup = + order.service_type === 'grocery' ? 'grocery' : 'pharmacy'; + const qrValue = JSON.stringify({ + type: 'kumusha-voucher', + voucherId: voucher.id, + voucherCode: voucher.voucher_code, + supportType: order.service_type, + supportLabel: serviceLabel, + recipientName, + partnerGroup, + status: normalizeVoucherStatus(order.service_type, voucher.status), + expiresAt: voucher.expires_at, + }); + + const markup = renderToStaticMarkup( + + ); + const svgBlob = new Blob([markup], { type: 'image/svg+xml;charset=utf-8' }); + const imageUrl = URL.createObjectURL(svgBlob); + + try { + const image = new Image(); + const loaded = new Promise((resolve, reject) => { + image.onload = () => resolve(); + image.onerror = () => reject(new Error('Could not prepare QR code')); + }); + image.src = imageUrl; + await loaded; + + const canvas = document.createElement('canvas'); + canvas.width = 1080; + canvas.height = 1320; + const ctx = canvas.getContext('2d'); + if (!ctx) return undefined; + + ctx.fillStyle = '#ffffff'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.fillStyle = '#171827'; + ctx.font = + '700 54px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'; + ctx.textAlign = 'center'; + ctx.fillText('Kumusha voucher', canvas.width / 2, 92); + ctx.font = + '500 34px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'; + ctx.fillStyle = '#5f6572'; + ctx.fillText(serviceLabel, canvas.width / 2, 146); + ctx.drawImage(image, 120, 218, 840, 840); + ctx.fillStyle = + order.service_type === 'medication' ? '#16a34a' : '#6d28d9'; + ctx.font = '700 46px ui-monospace, SFMono-Regular, Menlo, monospace'; + ctx.fillText(voucher.voucher_code, canvas.width / 2, 1124); + ctx.fillStyle = '#5f6572'; + ctx.font = + '500 30px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'; + ctx.fillText( + `Amount: ${formatMoney(Number(order.amount), order.currency ?? 'USD')}`, + canvas.width / 2, + 1188 + ); + ctx.fillText(`For ${recipientName}`, canvas.width / 2, 1240); + ctx.fillText(merchantName, canvas.width / 2, 1290); + + const blob = await new Promise((resolve) => + canvas.toBlob(resolve, 'image/png') + ); + if (!blob) return undefined; + return new File([blob], `kumusha-${voucher.voucher_code}.png`, { + type: 'image/png', + }); + } finally { + URL.revokeObjectURL(imageUrl); + } + }; + + const copyVoucherTextToClipboard = async (text: string) => { + try { + if (navigator.clipboard?.writeText) { + await navigator.clipboard.writeText(text); + return true; + } + } catch { + // Fall through to the textarea fallback for native webviews. + } + + const textArea = document.createElement('textarea'); + textArea.value = text; + textArea.setAttribute('readonly', ''); + textArea.style.position = 'fixed'; + textArea.style.top = '0'; + textArea.style.left = '0'; + textArea.style.width = '1px'; + textArea.style.height = '1px'; + textArea.style.opacity = '0'; + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + textArea.setSelectionRange(0, text.length); + + let copied = false; + try { + copied = document.execCommand('copy'); + } finally { + document.body.removeChild(textArea); + } + + return copied; + }; + + const openNativeVoucherShare = async ( + subject: string, + text: string, + file?: File + ) => { + if (!navigator.share) { + return false; + } + + const shareData: ShareData = { + title: subject, + text, + }; + + if (file) { + const fileShareData: ShareData = { + ...shareData, + files: [file], + }; + + if (!navigator.canShare || navigator.canShare(fileShareData)) { + await navigator.share(fileShareData); + return true; + } + } + + if (navigator.canShare && !navigator.canShare(shareData)) { + return false; + } + + await navigator.share(shareData); + return true; + }; + + const handleShareVoucher = async (order: OrderRow) => { + if ( + order.service_type !== 'grocery' && + order.service_type !== 'medication' + ) { + return; + } + + const serviceLabel = + order.service_type === 'grocery' + ? 'grocery voucher' + : 'medication voucher'; + const recipientName = recipient?.first_name ?? 'your loved one'; + const merchantName = order.merchants?.name + ? `${order.merchants.name}${order.merchants.branch_name ? ` ${order.merchants.branch_name}` : ''}` + : 'participating Kumusha partner merchants'; + const voucher = order.vouchers?.[0] ?? null; + + if (!voucher) { + showError('Voucher details are still being prepared'); + return; + } + + const statusLabel = normalizeVoucherStatus( + order.service_type, + voucher.status ?? order.status + ); + const shareText = + statusLabel === 'redeemed' + ? `${recipientName}'s ${serviceLabel} from Kumusha has already been redeemed at ${merchantName}. Voucher code: ${voucher.voucher_code}.` + : [ + `Hi ${recipientName}, your ${serviceLabel} from Kumusha is ready to use.`, + `Voucher code: ${voucher.voucher_code}`, + `Voucher amount: ${formatMoney(Number(order.amount), order.currency ?? 'USD')}`, + `Redeem at ${merchantName}.`, + 'Show the QR code in this message to the merchant for redemption.', + ].join('\n'); + const shareSubject = `Kumusha ${serviceLabel}`; + + setVoucherShareText(shareText); + setVoucherShareSubject(shareSubject); + setVoucherShareTitle('Share voucher'); + + try { + const qrFile = await buildVoucherQrFile( + order, + voucher, + recipientName, + serviceLabel, + merchantName + ); + if (await openNativeVoucherShare(shareSubject, shareText, qrFile)) { + return; + } + if (await openNativeVoucherShare(shareSubject, shareText)) { + return; + } + } catch (error) { + if ((error as Error)?.name === 'AbortError') { + return; + } + } + + setShowVoucherShareSheet(true); + }; + + const getServiceTheme = ( + serviceType: string | null, + status?: string | null + ) => { + const normalizedStatus = normalizeVoucherStatus( + serviceType, + status ?? null + ); + const successLike = ['redeemed', 'completed']; + const pendingLike = ['created', 'delivered', 'processing']; + const partialLike = ['partial']; + + const resolveTrailingIcon = () => { + if (partialLike.includes(normalizedStatus)) return alertCircleOutline; + if (successLike.includes(normalizedStatus)) return checkmarkCircleOutline; + if (pendingLike.includes(normalizedStatus)) return timeOutline; + return timeOutline; + }; + + switch (serviceType) { + case 'grocery': + return { + icon: cartOutline, + cardClass: 'service-grocery', + statusClass: + normalizedStatus === 'partial' + ? 'status-partial' + : normalizedStatus === 'created' + ? 'status-created' + : 'status-redeemed', + trailingIcon: resolveTrailingIcon(), + }; + case 'medication': + return { + icon: medkitOutline, + cardClass: 'service-medication', + statusClass: + normalizedStatus === 'partial' + ? 'status-partial' + : normalizedStatus === 'created' + ? 'status-created' + : 'status-redeemed', + trailingIcon: resolveTrailingIcon(), + }; + case 'electricity': + return { + icon: flashOutline, + cardClass: 'service-electricity', + statusClass: + normalizedStatus === 'completed' + ? 'status-completed' + : 'status-pending', + trailingIcon: resolveTrailingIcon(), + }; + case 'airtime': + return { + icon: wifiOutline, + cardClass: 'service-airtime', + statusClass: + normalizedStatus === 'completed' + ? 'status-completed' + : 'status-pending', + trailingIcon: resolveTrailingIcon(), + }; + default: + return { + icon: alertCircleOutline, + cardClass: 'service-default', + statusClass: 'status-default', + trailingIcon: resolveTrailingIcon(), + }; + } + }; + + const renderServiceIcon = (serviceType: string | null, ionIcon: string) => { + if (serviceType === 'grocery') { + return ( + + ); + } + return ; + }; + + const handleOpenOrder = (orderId?: string | null) => { + if (orderId) { + history.push(`/orders/${orderId}`, { parentRoot: '/recipients' }); + } + }; + + return ( + + + + + + + + + + + {recipient + ? `${recipient.first_name} ${recipient.last_name}`.trim() + : 'Loved one'} + + + + history.push(`/recipients/${id}/edit`)} + aria-label="Edit recipient" + style={ + { + '--recipient-action-accent': '#6d28d9', + } as React.CSSProperties + } + > + + + + + + + + setShowVoucherShareSheet(false)} + initialBreakpoint={0.4} + breakpoints={[0, 0.4, 0.62]} + className="kumusha-share-sheet" + > + +
+
+
+

Share

+

+ {voucherShareTitle} +

+
+ +
+ +
+ + + +
+
+
+
+ {loading ? ( +
+ + + +
+ ) : recipient ? ( + <> + {error && ( +

+ {error} +

+ )} +
+ {avatarUrl ? ( + {recipient.first_name} + ) : ( +
+ {recipient.first_name.charAt(0)} +
+ )} +
+

+ {recipient.first_name} {recipient.last_name} +

+

{recipient.relationship}

+

+ {recipient.city}, {recipient.country} +

+

{recipient.mobile_number}

+
+
+
+

+ {formatMoney(Math.round(totalAssistance))} +

+

Total sent

+
+
+

{orderCount}

+

Orders

+
+
+ + history.push('/support/new', { recipientId: id }) + } + > + + Send support + +
+ +

Care alerts

+ {careAlerts.length === 0 ? ( +
+
+ +
+
+

No active alerts

+

+ This loved one has no upcoming care reminders right now. +

+
+
+ ) : ( +
+ {careAlerts.map((alert) => { + const theme = getServiceTheme(alert.service_type); + return ( + + ); + })} +
+ )} + +
+
+

Support history

+

{orderCount} recent care actions

+
+
+ {groupedOrders.length === 0 ? ( +
+ +

No support yet

+

+ Send first support and history will appear here. +

+ + history.push('/support/new', { recipientId: id }) + } + style={ + { + '--background': '#6d28d9', + '--border-radius': '999px', + '--box-shadow': 'none', + } as React.CSSProperties + } + > + Send first support + +
+ ) : ( +
+ {groupedOrders.map((group) => ( +
+
+ {group.label} +
+ {group.items.map((row) => { + const inferredServiceType = row.service_type; + const normalizedStatus = normalizeVoucherStatus( + inferredServiceType, + row.status + ); + const theme = getServiceTheme( + inferredServiceType, + normalizedStatus + ); + const displayTitle = + row.service_type === 'grocery' + ? 'Grocery voucher' + : row.service_type === 'medication' + ? 'Medication voucher' + : row.service_type === 'electricity' + ? 'Electricity' + : row.service_type === 'airtime' + ? 'Airtime' + : `${row.service_type.charAt(0).toUpperCase()}${row.service_type.slice(1)}`; + const merchantName = row.merchants?.name ?? null; + const voucherSendDisabled = + (row.service_type === 'grocery' || + row.service_type === 'medication') && + normalizedStatus === 'redeemed'; + return ( + + ); + })} +
+ ))} +
+ )} + + ) : null} +
+
+ ); +}; + +export default RecipientDetailPage; diff --git a/src/pages/RecipientFormPage.tsx b/src/pages/RecipientFormPage.tsx new file mode 100644 index 0000000..7011069 --- /dev/null +++ b/src/pages/RecipientFormPage.tsx @@ -0,0 +1,728 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonInput, + IonList, + IonModal, + IonPage, + IonTitle, + IonToolbar, +} from '@ionic/react'; +import { + cameraOutline, + chevronBackOutline, + closeOutline, +} from 'ionicons/icons'; +import { useHistory, useParams } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import AvatarPicker from '../components/AvatarPicker'; +import momImage from '../assets/mom.jpg'; +import dadImage from '../assets/dad.jpg'; +import '../styles/recipients.css'; + +type Params = { id?: string }; + +type RecipientRow = { + id: string; + first_name: string; + last_name: string; + relationship: string; + country: string; + city: string; + mobile_number: string; + photo_path: string | null; +}; + +const countryOptions = [ + { name: 'Zimbabwe', flag: '🇿🇼', dialCode: '+263' }, + { name: 'South Africa', flag: '🇿🇦', dialCode: '+27' }, + { name: 'Zambia', flag: '🇿🇲', dialCode: '+260' }, + { name: 'Botswana', flag: '🇧🇼', dialCode: '+267' }, + { name: 'Mozambique', flag: '🇲🇿', dialCode: '+258' }, + { name: 'United Kingdom', flag: '🇬🇧', dialCode: '+44' }, + { name: 'United States', flag: '🇺🇸', dialCode: '+1' }, + { name: 'Canada', flag: '🇨🇦', dialCode: '+1' }, + { name: 'Australia', flag: '🇦🇺', dialCode: '+61' }, +]; + +const locationOptionsByCountry: Record< + string, + Array<{ + group: string; + options: Array<{ name: string; description: string }>; + }> +> = { + Zimbabwe: [ + { + group: 'Major cities', + options: [ + { name: 'Harare', description: 'Capital city coverage' }, + { name: 'Bulawayo', description: 'City merchants and pharmacies' }, + { name: 'Mutare', description: 'Eastern Highlands coverage' }, + { name: 'Gweru', description: 'Midlands city coverage' }, + ], + }, + { + group: 'Towns', + options: [ + { name: 'Chitungwiza', description: 'Harare metro support' }, + { name: 'Masvingo', description: 'Town and surrounding areas' }, + { name: 'Kwekwe', description: 'Supported collection points' }, + { name: 'Kadoma', description: 'Supported collection points' }, + { name: 'Victoria Falls', description: 'Town coverage' }, + ], + }, + { + group: 'Rural districts', + options: [ + { name: 'Murehwa District', description: 'Rural collection support' }, + { name: 'Gokwe District', description: 'Rural collection support' }, + { name: 'Buhera District', description: 'Rural collection support' }, + { name: 'Zaka District', description: 'Rural collection support' }, + { name: 'Guruve District', description: 'Rural collection support' }, + { + name: 'Tsholotsho District', + description: 'Rural collection support', + }, + ], + }, + ], + Zambia: [ + { + group: 'Major cities', + options: [ + { name: 'Lusaka', description: 'Capital city coverage' }, + { name: 'Ndola', description: 'Copperbelt coverage' }, + { name: 'Kitwe', description: 'Copperbelt coverage' }, + { name: 'Livingstone', description: 'Town coverage' }, + ], + }, + { + group: 'Rural districts', + options: [ + { name: 'Chongwe District', description: 'Rural collection support' }, + { name: 'Monze District', description: 'Rural collection support' }, + ], + }, + ], + Botswana: [ + { + group: 'Cities and towns', + options: [ + { name: 'Gaborone', description: 'Capital city coverage' }, + { name: 'Francistown', description: 'Town coverage' }, + { name: 'Maun', description: 'Town coverage' }, + ], + }, + { + group: 'Rural districts', + options: [ + { name: 'Kweneng District', description: 'Rural collection support' }, + { name: 'Central District', description: 'Rural collection support' }, + ], + }, + ], +}; + +const fallbackLocationGroups = [ + { + group: 'Supported areas', + options: [ + { name: 'Main city', description: 'Available merchant coverage' }, + { name: 'Nearby town', description: 'Supported collection points' }, + { name: 'Rural district', description: 'Rural collection support' }, + ], + }, +]; + +const getCountryMeta = (countryName: string) => + countryOptions.find((option) => option.name === countryName) ?? + countryOptions[0]; + +const getLocationGroups = (countryName: string) => + locationOptionsByCountry[countryName] ?? fallbackLocationGroups; + +const getSeededRecipientImage = ( + firstName?: string | null, + photoPath?: string | null +) => { + const normalizedPath = photoPath?.trim().toLowerCase(); + if (normalizedPath === 'mom.jpg' || normalizedPath === 'mum.jpg') { + return momImage; + } + if (normalizedPath === 'dad.jpg' || normalizedPath === 'father.jpg') { + return dadImage; + } + + const normalizedName = firstName?.trim().toLowerCase(); + if (normalizedName === 'mum' || normalizedName === 'mom') { + return momImage; + } + if (normalizedName === 'dad' || normalizedName === 'father') { + return dadImage; + } + + return null; +}; + +const stripDialCode = (value: string, dialCode: string) => { + const normalizedValue = value.trim(); + if (normalizedValue.startsWith(dialCode)) { + return normalizedValue.slice(dialCode.length).trimStart(); + } + return normalizedValue; +}; + +const sanitizePhoneInput = (value: string) => + value.replace(/[^\d\s()-]/g, '').replace(/\s{2,}/g, ' '); + +const normalizePhoneInput = (value: string) => + sanitizePhoneInput(value).replace(/^0+/, ''); + +const formatNameInput = (value: string) => + value + .toLowerCase() + .replace( + /(^|[\s'-])([a-z])/g, + (_match, separator: string, letter: string) => + `${separator}${letter.toUpperCase()}` + ); + +const RecipientFormPage: React.FC = () => { + const history = useHistory(); + const { id } = useParams(); + const { user } = useAuth(); + const isEdit = Boolean(id); + + const [firstName, setFirstName] = useState(''); + const [lastName, setLastName] = useState(''); + const [relationship, setRelationship] = useState(''); + const [country, setCountry] = useState('Zimbabwe'); + const [city, setCity] = useState(''); + const [mobileNumber, setMobileNumber] = useState(''); + const [showCountrySheet, setShowCountrySheet] = useState(false); + const [showLocationSheet, setShowLocationSheet] = useState(false); + const selectedCountry = getCountryMeta(country); + const locationGroups = getLocationGroups(country); + const [photoFile, setPhotoFile] = useState(null); + const [photoPreview, setPhotoPreview] = useState(null); + const previewObjectUrlRef = useRef(null); + const [existingPhotoPath, setExistingPhotoPath] = useState( + null + ); + const [loading, setLoading] = useState(false); + const [saving, setSaving] = useState(false); + const [error, setError] = useState(null); + const firstNameInputRef = useRef(null); + const lastNameInputRef = useRef(null); + const relationshipInputRef = useRef(null); + const mobileInputRef = useRef(null); + + useEffect(() => { + if (isEdit) { + void loadRecipient(); + } + }, [id, isEdit]); + + useEffect(() => { + return () => { + if (previewObjectUrlRef.current) { + URL.revokeObjectURL(previewObjectUrlRef.current); + } + }; + }, []); + + const handleGoBack = () => { + if (history.length > 1) { + history.goBack(); + } else { + history.replace('/recipients'); + } + }; + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const applyRecipientToForm = async (recipient: RecipientRow) => { + setFirstName(recipient.first_name); + setLastName(recipient.last_name); + setRelationship(recipient.relationship); + setCountry(recipient.country); + setCity(recipient.city); + const recipientCountry = getCountryMeta(recipient.country); + setMobileNumber( + stripDialCode(recipient.mobile_number, recipientCountry.dialCode) + ); + setExistingPhotoPath(recipient.photo_path); + + const seededImage = getSeededRecipientImage( + recipient.first_name, + recipient.photo_path + ); + if (seededImage) { + setPhotoPreview(seededImage); + return; + } + + if (!recipient.photo_path) { + setPhotoPreview(null); + return; + } + + const { data: signed } = await supabase.storage + .from('recipient-photos') + .createSignedUrl(recipient.photo_path, 3600); + setPhotoPreview(signed?.signedUrl ?? null); + }; + + const loadRecipient = async () => { + if (!id) return; + setLoading(true); + + const ownerId = user?.id ?? '00000000-0000-0000-0000-000000000000'; + + const { data, error: loadError } = await supabase + .from('recipients') + .select( + 'id,first_name,last_name,relationship,country,city,mobile_number,photo_path' + ) + .eq('id', id) + .eq('user_id', ownerId) + .single(); + + if (loadError || !data) { + showError(loadError?.message ?? 'Recipient not found'); + setLoading(false); + history.replace('/recipients'); + return; + } + + const recipient = data as RecipientRow; + await applyRecipientToForm(recipient); + setLoading(false); + }; + + const handlePhotoChange = (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + if (!file) return; + + if (previewObjectUrlRef.current) { + URL.revokeObjectURL(previewObjectUrlRef.current); + } + + const objectUrl = URL.createObjectURL(file); + previewObjectUrlRef.current = objectUrl; + setPhotoFile(file); + setPhotoPreview(objectUrl); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + if (!user) { + showError('Please sign in again to save this loved one'); + return; + } + + const payload = { + first_name: firstName.trim(), + last_name: lastName.trim(), + relationship: relationship.trim(), + country: country.trim(), + city: city.trim(), + mobile_number: + `${selectedCountry.dialCode} ${mobileNumber.trim()}`.trim(), + updated_at: new Date().toISOString(), + }; + + if ( + !payload.first_name || + !payload.last_name || + !payload.relationship || + !payload.country || + !payload.city || + !payload.mobile_number + ) { + showError('Please complete all required fields'); + return; + } + + setSaving(true); + setError(null); + + let photoPath = existingPhotoPath; + if (photoFile) { + const extension = photoFile.name.split('.').pop() || 'jpg'; + photoPath = `${user.id}/${Date.now()}.${extension}`; + const { error: uploadError } = await supabase.storage + .from('recipient-photos') + .upload(photoPath, photoFile); + + if (uploadError) { + showError(uploadError.message); + setSaving(false); + return; + } + } + + if (isEdit && id) { + const { error: updateError } = await supabase + .from('recipients') + .update({ ...payload, photo_path: photoPath }) + .eq('id', id) + .eq('user_id', user.id); + + if (updateError) { + showError(updateError.message); + setSaving(false); + return; + } + + setSaving(false); + history.push(`/recipients/${id}`); + return; + } + + const { data, error: insertError } = await supabase + .from('recipients') + .insert({ + user_id: user.id, + ...payload, + photo_path: photoPath, + }) + .select('id') + .single(); + + if (insertError || !data) { + showError(insertError?.message ?? 'Could not create recipient'); + setSaving(false); + return; + } + + setSaving(false); + history.replace(`/recipients/${data.id}`); + }; + + const initials = `${firstName.charAt(0)}${lastName.charAt(0)}`.toUpperCase(); + + return ( + + + + + + + + + + {isEdit ? 'Edit loved one' : 'Add loved one'} + + + + + +
+
+
+ + +
+ + + + + + + + {error && ( +

+ {error} +

+ )} +
+ +
+ + {saving ? 'Saving...' : isEdit ? 'Save changes' : 'Add loved one'} + +
+
+ + setShowCountrySheet(false)} + initialBreakpoint={1} + breakpoints={[0, 1]} + handle={true} + className="country-sheet-modal" + > +
+
+

Select country

+ setShowCountrySheet(false)} + aria-label="Close country selector" + > + + +
+
+ + {countryOptions.map((option) => { + const isSelected = option.name === country; + return ( + + ); + })} + +
+
+
+ + setShowLocationSheet(false)} + initialBreakpoint={1} + breakpoints={[0, 1]} + handle={true} + className="country-sheet-modal" + > +
+
+

Select location

+ setShowLocationSheet(false)} + aria-label="Close location selector" + > + + +
+
+
+ Choose a city, town, or rural district where support collection + is available. +
+ {locationGroups.map((group) => ( +
+

{group.group}

+ {group.options.map((option) => { + const isSelected = option.name === city; + return ( + + ); + })} +
+ ))} +
+
+
+
+
+ ); +}; + +export default RecipientFormPage; diff --git a/src/pages/RecipientsPage.tsx b/src/pages/RecipientsPage.tsx new file mode 100644 index 0000000..8fbbafc --- /dev/null +++ b/src/pages/RecipientsPage.tsx @@ -0,0 +1,306 @@ +import React, { useMemo, useState } from 'react'; +import { + IonButton, + IonContent, + IonIcon, + IonPage, + IonRefresher, + IonRefresherContent, + IonSkeletonText, + useIonViewWillEnter, +} from '@ionic/react'; +import { addOutline, peopleOutline } from 'ionicons/icons'; +import { useHistory } from 'react-router-dom'; +import dadImage from '../assets/dad.jpg'; +import momImage from '../assets/mom.jpg'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import { buildCacheKey, readCache, writeCache } from '../utils/localCache'; +import ListSearchRow from '../components/ListSearchRow'; +import RecipientListCard, { + RecipientListItem, +} from '../components/RecipientListCard'; +import '../styles/recipients.css'; + +type RecipientRow = { + id: string; + first_name: string; + last_name: string; + relationship: string; + country: string; + city: string; + photo_path: string | null; + created_at: string; +}; + +type ActivityRow = { + recipient_id: string | null; + event_at: string; +}; + +const formatLastActivity = (dateText?: string) => { + if (!dateText) return 'No support yet'; + const diffMs = Date.now() - new Date(dateText).getTime(); + const diffDays = Math.max(0, Math.floor(diffMs / 86400000)); + if (diffDays === 0) return 'Today'; + if (diffDays === 1) return 'Yesterday'; + return `${diffDays} days ago`; +}; + +const getSeededRecipientImage = (firstName?: string | null) => { + const normalized = firstName?.trim().toLowerCase(); + if (normalized === 'mum' || normalized === 'mom') return momImage; + if (normalized === 'dad' || normalized === 'father') return dadImage; + return null; +}; + +const RecipientsPage: React.FC = () => { + const history = useHistory(); + const { user } = useAuth(); + const [recipients, setRecipients] = useState([]); + const [searchTerm, setSearchTerm] = useState(''); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useIonViewWillEnter(() => { + void loadRecipients(); + }); + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const loadRecipients = async (options?: { forceRefresh?: boolean }) => { + const activeUserId = user?.id ?? '00000000-0000-0000-0000-000000000000'; + const cacheKey = buildCacheKey(activeUserId, 'recipientsList'); + + let hasCache = false; + if (!options?.forceRefresh) { + try { + const cached = await readCache(cacheKey); + if (cached && Array.isArray(cached)) { + setRecipients(cached); + setLoading(false); + hasCache = true; + } + } catch (err) { + console.error('[recipients cache] error', err); + } + } + + if (!hasCache) { + setLoading(true); + } + setError(null); + + const [recipientsResult, activityResult] = await Promise.all([ + supabase + .from('recipients') + .select( + 'id,first_name,last_name,relationship,country,city,photo_path,created_at,is_active' + ) + .eq('user_id', activeUserId) + .order('created_at', { ascending: false }), + supabase + .from('activity_events') + .select('recipient_id,event_at') + .eq('user_id', activeUserId) + .order('event_at', { ascending: false }) + .limit(100), + ]); + + const queryError = recipientsResult.error ?? activityResult.error; + if (queryError) { + showError(queryError.message); + if (!hasCache) setLoading(false); + return; + } + + const activities = (activityResult.data ?? []) as ActivityRow[]; + // Filter active on the client if it's the real user; preview user bypass may not have is_active set consistently + const rows = (recipientsResult.data ?? []) as (RecipientRow & { + is_active: boolean | null; + })[]; + const activeRows = user ? rows.filter((r) => r.is_active !== false) : rows; + + const list = await Promise.all( + activeRows.map(async (recipient) => { + const latestActivity = activities.find( + (a) => a.recipient_id === recipient.id + ); + + let avatarUrl = null; + if (recipient.photo_path) { + const { data: urlData } = await supabase.storage + .from('recipient-photos') + .createSignedUrl(recipient.photo_path, 3600); + avatarUrl = urlData?.signedUrl ?? null; + } + + if (!avatarUrl) { + avatarUrl = getSeededRecipientImage(recipient.first_name); + } + + return { + id: recipient.id, + firstName: recipient.first_name, + lastName: recipient.last_name, + relationship: recipient.relationship, + location: `${recipient.city}, ${recipient.country}`, + lastActivityText: formatLastActivity(latestActivity?.event_at), + avatarUrl, + }; + }) + ); + + setRecipients(list); + setLoading(false); + void writeCache(cacheKey, list); + }; + + const visibleRecipients = useMemo(() => { + const query = searchTerm.trim().toLowerCase(); + if (!query) return recipients; + return recipients.filter((recipient) => + [ + recipient.firstName, + recipient.lastName, + recipient.relationship, + recipient.location, + ] + .join(' ') + .toLowerCase() + .includes(query) + ); + }, [recipients, searchTerm]); + + const handleRefresh = async (event: CustomEvent) => { + await loadRecipients({ forceRefresh: true }); + event.detail.complete(); + }; + + return ( + + + + + + +
+
+

Loved ones

+

+ Manage family and care recipients +

+
+ history.push('/recipients/new')} + > + + Add + +
+ + + + {error && ( +

+ {error} +

+ )} + + {loading ? ( +
+ {[1, 2, 3].map((item) => ( +
+ +
+ + +
+
+ ))} +
+ ) : visibleRecipients.length === 0 ? ( +
+ +

+ {recipients.length === 0 + ? 'No loved ones yet' + : 'No matches found'} +

+

+ {recipients.length === 0 + ? 'Add your first loved one so you can send support with confidence.' + : 'Try a different name, relationship, or city.'} +

+ {recipients.length === 0 && ( + history.push('/recipients/new')} + style={ + { + '--background': '#6d28d9', + '--border-radius': '999px', + '--box-shadow': 'none', + } as React.CSSProperties + } + > + + Add loved one + + )} +
+ ) : ( +
+ {visibleRecipients.map((recipient) => ( + history.push(`/recipients/${id}`)} + /> + ))} +
+ )} +
+
+ ); +}; + +export default RecipientsPage; diff --git a/src/pages/SetupProfilePage.tsx b/src/pages/SetupProfilePage.tsx new file mode 100644 index 0000000..32fa534 --- /dev/null +++ b/src/pages/SetupProfilePage.tsx @@ -0,0 +1,366 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { IonButton, IonContent, IonInput, IonPage } from '@ionic/react'; +import { useHistory } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import AvatarPicker from '../components/AvatarPicker'; +import '../styles/auth.css'; + +type ProfileDraft = { + first_name?: string | null; + last_name?: string | null; + phone?: string | null; + country_of_residence?: string | null; + avatar_path?: string | null; +}; + +const SetupProfilePage: React.FC = () => { + const history = useHistory(); + const { user, setProfile, signOut } = useAuth(); + + const [firstName, setFirstName] = useState(''); + const [lastName, setLastName] = useState(''); + const [phone, setPhone] = useState(''); + const [country, setCountry] = useState(''); + const [avatarFile, setAvatarFile] = useState(null); + const [avatarPreview, setAvatarPreview] = useState(null); + const messageTimerRef = useRef | null>(null); + const mountedRef = useRef(true); + const [loading, setLoading] = useState(false); + const [prefilling, setPrefilling] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + mountedRef.current = true; + return () => { + mountedRef.current = false; + if (messageTimerRef.current) { + clearTimeout(messageTimerRef.current); + } + }; + }, []); + + useEffect(() => { + loadExistingProfile(); + }, [user?.id]); + + const showError = (message: string) => { + if (messageTimerRef.current) { + clearTimeout(messageTimerRef.current); + } + setError(message); + messageTimerRef.current = setTimeout(() => { + if (mountedRef.current) { + setError(null); + } + }, 4000); + }; + + const loadExistingProfile = async () => { + if (!user) { + setPrefilling(false); + return; + } + + setPrefilling(true); + let profile: ProfileDraft | null = null; + let profileLoadError: unknown = null; + + try { + const profileLoadRequest = supabase + .from('profiles') + .select('first_name,last_name,phone,country_of_residence,avatar_path') + .eq('id', user.id) + .maybeSingle(); + + const result = await Promise.race([ + profileLoadRequest, + new Promise((_, reject) => + setTimeout( + () => reject(new Error('Profile setup loading timed out.')), + 8000 + ) + ), + ]); + + profile = result.data as ProfileDraft | null; + profileLoadError = result.error; + } catch (loadError) { + profileLoadError = loadError; + } + + if (!mountedRef.current) return; + + if (profileLoadError) { + console.error( + '[SetupProfilePage] Failed to load existing profile', + profileLoadError + ); + showError( + 'We could not load your profile yet. You can still finish setup.' + ); + } + if (profile) { + setFirstName(profile.first_name ?? ''); + setLastName(profile.last_name ?? ''); + setPhone(profile.phone ?? ''); + setCountry(profile.country_of_residence ?? ''); + if (profile.avatar_path) { + const { data: publicUrlData } = supabase.storage + .from('avatars') + .getPublicUrl(profile.avatar_path); + setAvatarPreview(publicUrlData.publicUrl); + } + } else if (user.user_metadata?.full_name) { + const parts = String(user.user_metadata.full_name).split(' '); + setFirstName(parts[0] ?? ''); + setLastName(parts.slice(1).join(' ')); + } + setPrefilling(false); + }; + + const handleAvatarChange = (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onload = () => { + if (!mountedRef.current) return; + setAvatarFile(file); + setAvatarPreview( + typeof reader.result === 'string' ? reader.result : null + ); + }; + reader.onerror = () => { + showError( + 'We could not preview that image. Please choose another photo.' + ); + }; + reader.readAsDataURL(file); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + + if (!user) { + showError('Please sign in again to complete your profile'); + return; + } + + const cleanFirstName = firstName.trim(); + const cleanLastName = lastName.trim(); + const cleanPhone = phone.trim(); + const cleanCountry = country.trim(); + + if (!cleanFirstName || !cleanLastName || !cleanPhone || !cleanCountry) { + showError('Please complete all profile fields'); + return; + } + + setLoading(true); + setError(null); + + try { + let avatarPath: string | null = null; + if (avatarFile) { + const extension = avatarFile.name.split('.').pop() || 'jpg'; + avatarPath = `${user.id}/${Date.now()}.${extension}`; + const uploadRequest = supabase.storage + .from('avatars') + .upload(avatarPath, avatarFile); + const { error: uploadError } = await Promise.race([ + uploadRequest, + new Promise((_, reject) => + setTimeout( + () => + reject(new Error('Photo upload timed out. Please try again.')), + 12000 + ) + ), + ]); + + if (uploadError) { + showError(uploadError.message); + setLoading(false); + return; + } + } + + const now = new Date().toISOString(); + const profilePayload = { + id: user.id, + first_name: cleanFirstName, + last_name: cleanLastName, + full_name: `${cleanFirstName} ${cleanLastName}`, + phone: cleanPhone, + country_of_residence: cleanCountry, + ...(avatarPath ? { avatar_path: avatarPath } : {}), + notification_push_enabled: true, + notification_email_enabled: true, + notification_sms_enabled: false, + updated_at: now, + }; + + const profileSaveRequest = supabase + .from('profiles') + .upsert(profilePayload, { onConflict: 'id' }) + .select('*') + .single(); + + const { data: savedProfile, error: profileError } = await Promise.race([ + profileSaveRequest, + new Promise((_, reject) => + setTimeout( + () => + reject(new Error('Profile save timed out. Please try again.')), + 12000 + ) + ), + ]); + + if (profileError) { + showError(profileError.message); + setLoading(false); + return; + } + + if (!mountedRef.current) return; + + setLoading(false); + setProfile(savedProfile); + history.replace('/home'); + } catch (submitError: any) { + if (!mountedRef.current) return; + showError( + submitError.message || 'Profile setup failed. Please try again.' + ); + setLoading(false); + } + }; + + const initials = `${firstName.charAt(0)}${lastName.charAt(0)}`.toUpperCase(); + + const handleLogout = async () => { + if (loading || prefilling) return; + + setLoading(true); + setError(null); + + try { + await signOut(); + history.replace('/auth'); + } catch (logoutError: any) { + showError( + logoutError?.message || 'We could not sign you out. Please try again.' + ); + setLoading(false); + } + }; + + return ( + + +
+
+

Profile setup

+

Tell us about you

+

+ We use this to personalise your Kumusha dashboard and keep your + account secure. +

+
+ +
+ + + setFirstName(event.detail.value ?? '')} + disabled={loading || prefilling} + placeholder="e.g. Tadiwa" + className="auth-field" + /> + setLastName(event.detail.value ?? '')} + disabled={loading || prefilling} + placeholder="e.g. Moyo" + className="auth-field" + /> + setPhone(event.detail.value ?? '')} + disabled={loading || prefilling} + placeholder="e.g. +44 7123 456789" + className="auth-field" + /> + setCountry(event.detail.value ?? '')} + disabled={loading || prefilling} + placeholder="e.g. United Kingdom" + className="auth-field" + /> + + {error && ( +

+ {error} +

+ )} + +
+ + Logout + + + {loading ? 'Saving profile...' : 'Finish setup'} + +
+ +
+
+
+ ); +}; + +export default SetupProfilePage; diff --git a/src/pages/SupportFlowPage.tsx b/src/pages/SupportFlowPage.tsx new file mode 100644 index 0000000..e62f1c9 --- /dev/null +++ b/src/pages/SupportFlowPage.tsx @@ -0,0 +1,1843 @@ +import React, { useEffect, useMemo, useState } from 'react'; +import type { CSSProperties } from 'react'; +import { + IonAvatar, + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonInput, + IonItem, + IonLabel, + IonModal, + IonPage, + IonTitle, + IonToolbar, + IonSelect, + IonSelectOption, + IonList, + useIonViewWillEnter, +} from '@ionic/react'; +import { + addOutline, + cardOutline, + chevronBackOutline, + chevronDownOutline, + checkmarkCircleOutline, + closeCircleOutline, + closeOutline, + flashOutline, + logoApple, + logoPaypal, + medkitOutline, + phonePortraitOutline, + timeOutline, +} from 'ionicons/icons'; +import { useHistory, useLocation } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import momImage from '../assets/mom.jpg'; +import dadImage from '../assets/dad.jpg'; +import basketIcon from '../assets/basket.png'; +import { formatMoney } from '../utils/formatMoney'; +import { buildCacheKey, readCache, writeCache } from '../utils/localCache'; +import '../styles/support.css'; + +type ServiceType = 'grocery' | 'medication' | 'airtime' | 'electricity'; + +type RecipientOption = { + id: string; + first_name: string; + last_name: string; + photo_url?: string | null; + photo_path?: string | null; +}; + +type MerchantOption = { + id: string; + name: string; + branch_name: string | null; + merchant_type: string; +}; + +type LocationState = { + recipientId?: string; + serviceType?: ServiceType; + amount?: number; + merchantId?: string | null; + network?: string | null; + meterNumber?: string | null; + startAtAmount?: boolean; + parentRoot?: string; +}; + +const services: Array<{ + type: ServiceType; + label: string; + reviewLabel: string; + amountHeading: string; + amountHint: string; + icon?: string; + imageSrc?: string; + imageAlt?: string; + color: string; + bg: string; + cardBg: string; + selectedTint: string; +}> = [ + { + type: 'grocery', + label: 'Groceries', + reviewLabel: 'Grocery voucher', + amountHeading: 'Voucher amount', + amountHint: 'You are sending a grocery voucher.', + imageSrc: basketIcon, + imageAlt: 'Groceries', + color: '#6d28d9', + bg: 'rgba(109,40,217,0.12)', + cardBg: 'rgba(109,40,217,0.03)', + selectedTint: 'rgba(109,40,217,0.08)', + }, + { + type: 'medication', + label: 'Medication', + reviewLabel: 'Medication voucher', + amountHeading: 'Voucher amount', + amountHint: 'You are sending a medication voucher.', + icon: medkitOutline, + color: '#16a34a', + bg: 'rgba(22,163,74,0.14)', + cardBg: 'rgba(22,163,74,0.06)', + selectedTint: 'rgba(22,163,74,0.08)', + }, + { + type: 'airtime', + label: 'Airtime & Data', + reviewLabel: 'Airtime & data', + amountHeading: 'Choose airtime & data amount', + amountHint: 'You are topping up airtime or data.', + icon: phonePortraitOutline, + color: '#3b82f6', + bg: 'rgba(59,130,246,0.1)', + cardBg: 'rgba(59,130,246,0.03)', + selectedTint: 'rgba(59,130,246,0.08)', + }, + { + type: 'electricity', + label: 'Electricity', + reviewLabel: 'Electricity', + amountHeading: 'Choose electricity amount', + amountHint: 'You are buying an electricity token.', + icon: flashOutline, + color: '#f59e0b', + bg: 'rgba(245,158,11,0.1)', + cardBg: 'rgba(245,158,11,0.03)', + selectedTint: 'rgba(245,158,11,0.08)', + }, +]; + +const amountPresets = [10, 20, 50, 100]; +const networks = ['Econet', 'NetOne', 'Telecel']; +const previewUserId = '00000000-0000-0000-0000-000000000000'; + +const previewRecipients: RecipientOption[] = [ + { + id: 'preview-mum', + first_name: 'Mum', + last_name: 'Moyo', + photo_url: momImage, + }, + { + id: 'preview-dad', + first_name: 'Dad', + last_name: 'Moyo', + photo_url: dadImage, + }, +]; + +const paymentMethods = [ + { + value: 'card', + label: 'Visa ending 4242', + detail: 'Default card • reusable checkout', + kind: 'card' as const, + }, + { + value: 'apple_pay', + label: 'Apple Pay', + detail: 'Wallet checkout', + kind: 'apple' as const, + }, + { + value: 'google_pay', + label: 'Google Pay', + detail: 'Fast wallet checkout', + kind: 'google' as const, + }, + { + value: 'paypal', + label: 'PayPal', + detail: 'Pay with PayPal', + kind: 'paypal' as const, + }, +] as const; + +const getRecipientPhoto = (recipient?: RecipientOption | null) => { + if (!recipient) return null; + + const photoPath = recipient.photo_path?.toLowerCase() ?? ''; + if (photoPath === 'mom.jpg' || photoPath === 'mum.jpg') return momImage; + if (photoPath === 'dad.jpg' || photoPath === 'father.jpg') return dadImage; + + if (recipient.photo_url) return recipient.photo_url; + if (recipient.first_name.toLowerCase() === 'mum') return momImage; + if (recipient.first_name.toLowerCase() === 'dad') return dadImage; + return null; +}; + +const sanitizeAmount = (raw: string) => { + const cleaned = raw.replace(/[^\d.]/g, ''); + const parts = cleaned.split('.'); + const normalized = + parts.length <= 1 ? cleaned : `${parts[0]}.${parts.slice(1).join('')}`; + const dotIndex = normalized.indexOf('.'); + return dotIndex === -1 ? normalized : normalized.slice(0, dotIndex + 3); +}; + +const SupportFlowPage: React.FC = () => { + const history = useHistory(); + const location = useLocation(); + const { user } = useAuth(); + + const [step, setStep] = useState(1); + const [recipients, setRecipients] = useState([]); + const [merchants, setMerchants] = useState([]); + const [selectedRecipientId, setSelectedRecipientId] = useState( + location.state?.recipientId ?? null + ); + const [serviceType, setServiceType] = useState( + location.state?.serviceType ?? null + ); + const [merchantId, setMerchantId] = useState(null); + const [network, setNetwork] = useState(null); + const [meterNumber, setMeterNumber] = useState(''); + const [amountDisplay, setAmountDisplay] = useState(''); + const [isCustomAmountSelected, setIsCustomAmountSelected] = useState(false); + const [platformFee, setPlatformFee] = useState(0); + const [totalAmount, setTotalAmount] = useState(0); + const [orderId, setOrderId] = useState(null); + const [paymentMethod, setPaymentMethod] = useState('card'); + const [isPaymentSheetOpen, setIsPaymentSheetOpen] = useState(false); + const [loading, setLoading] = useState(!user); + const [submitting, setSubmitting] = useState(false); + const [error, setError] = useState(null); + const [isRecipientSheetOpen, setIsRecipientSheetOpen] = useState(false); + + const parentRoot = location.state?.parentRoot ?? '/home'; + + const [paymentResult, setPaymentResult] = useState< + 'idle' | 'success' | 'failure' + >('idle'); + const [paymentResultMessage, setPaymentResultMessage] = useState< + string | null + >(null); + const isShowingPaymentResult = paymentResult !== 'idle'; + + const [isRecurringEnabled, setIsRecurringEnabled] = useState(false); + const [frequencyUnit, setFrequencyUnit] = useState<'weekly' | 'monthly'>( + 'weekly' + ); + const [frequencyInterval, setFrequencyInterval] = useState(1); + + const requiresSupportDetails = + serviceType === 'airtime' || serviceType === 'electricity'; + const totalSteps = requiresSupportDetails ? 5 : 4; + const amountStep = requiresSupportDetails ? 4 : 3; + const reviewStep = requiresSupportDetails ? 5 : 4; + + const parsedAmount = useMemo(() => { + if (!amountDisplay || amountDisplay === '.') return null; + const value = Number(amountDisplay); + return Number.isFinite(value) && value > 0 ? value : null; + }, [amountDisplay]); + + const selectedService = useMemo( + () => services.find((item) => item.type === serviceType) ?? null, + [serviceType] + ); + + const pageBackground = selectedService + ? `linear-gradient(180deg, ${selectedService.selectedTint} 0%, #fafafa 240px)` + : '#fafafa'; + + const themeStyle = selectedService + ? ({ + '--flow-accent': selectedService.color, + '--flow-accent-soft': selectedService.selectedTint, + '--flow-icon-soft': selectedService.bg, + '--flow-card-soft': selectedService.cardBg, + } as CSSProperties) + : undefined; + + const flowTitle = selectedService?.label ?? 'Send support'; + const isPresetAmountSelected = amountPresets.includes(Number(amountDisplay)); + + useEffect(() => { + void loadInitialData(); + }, [user?.id]); + + useIonViewWillEnter(() => { + const presetRecipientId = location.state?.recipientId ?? null; + const presetServiceType = location.state?.serviceType ?? null; + const presetAmount = location.state?.amount; + const presetAmountDisplay = + typeof presetAmount === 'number' && Number.isFinite(presetAmount) + ? presetAmount.toFixed(2) + : ''; + const presetStartAtAmount = Boolean(location.state?.startAtAmount); + const presetRequiresSupportDetails = + presetServiceType === 'airtime' || presetServiceType === 'electricity'; + const presetAmountStep = presetRequiresSupportDetails ? 4 : 3; + + setStep( + presetStartAtAmount && presetRecipientId && presetServiceType + ? presetAmountStep + : presetRecipientId && presetServiceType + ? presetAmountStep + : presetRecipientId || presetServiceType + ? 2 + : 1 + ); + setSelectedRecipientId(presetRecipientId); + setServiceType(presetServiceType); + setMerchantId(location.state?.merchantId ?? null); + setNetwork(location.state?.network ?? null); + setMeterNumber(location.state?.meterNumber ?? ''); + setAmountDisplay(presetAmountDisplay); + setIsCustomAmountSelected( + Boolean( + presetAmountDisplay && + !amountPresets.includes(Number(presetAmountDisplay)) + ) + ); + setPlatformFee(0); + setTotalAmount(0); + setOrderId(null); + setPaymentMethod('card'); + setIsPaymentSheetOpen(false); + setSubmitting(false); + setError(null); + setPaymentResult('idle'); + setPaymentResultMessage(null); + setIsRecurringEnabled(false); + setFrequencyUnit('weekly'); + setFrequencyInterval(1); + }); + + useEffect(() => { + if (serviceType === 'grocery' || serviceType === 'medication') { + void loadMerchantsForService(serviceType); + } else { + setMerchantId(null); + setMerchants([]); + } + }, [serviceType]); + + useEffect(() => { + const fee = parsedAmount + ? Number((2.99 + parsedAmount * 0.03).toFixed(2)) + : 0; + setPlatformFee(fee); + setTotalAmount(parsedAmount ? Number((parsedAmount + fee).toFixed(2)) : 0); + }, [parsedAmount]); + + useEffect(() => { + const loadExistingSchedule = async () => { + if (!user || !selectedRecipientId || !serviceType) return; + const { data, error: fetchError } = await supabase + .from('support_schedules') + .select( + 'id, frequency_unit, frequency_interval, next_due_at, is_active' + ) + .eq('recipient_id', selectedRecipientId) + .eq('service_type', serviceType) + .eq('user_id', user.id) + .maybeSingle(); + + if (fetchError) { + showError('Could not load support frequency'); + } else if (data) { + setIsRecurringEnabled(data.is_active); + setFrequencyUnit(data.frequency_unit as 'weekly' | 'monthly'); + setFrequencyInterval(data.frequency_interval); + } else { + setIsRecurringEnabled(false); + setFrequencyUnit('weekly'); + setFrequencyInterval( + serviceType === 'grocery' || serviceType === 'medication' ? 4 : 1 + ); + } + }; + void loadExistingSchedule(); + }, [user?.id, selectedRecipientId, serviceType]); + + const showError = (message: string) => { + setError(message); + setTimeout(() => setError(null), 4000); + }; + + const resolveRecipientOptions = async (rows: RecipientOption[]) => + Promise.all( + rows.map(async (recipient) => { + const seededPhoto = getRecipientPhoto(recipient); + if (seededPhoto || !recipient.photo_path) { + return { + ...recipient, + photo_url: seededPhoto ?? recipient.photo_url, + }; + } + + const { data: urlData } = await supabase.storage + .from('recipient-photos') + .createSignedUrl(recipient.photo_path, 3600); + + return { + ...recipient, + photo_url: urlData?.signedUrl ?? recipient.photo_url ?? null, + }; + }) + ); + + const loadInitialData = async () => { + const activeUserId = user?.id ?? previewUserId; + const cacheKey = buildCacheKey(activeUserId, 'supportRecipients'); + + let hasCache = false; + try { + const cached = await readCache(cacheKey); + if (cached && Array.isArray(cached) && cached.length > 0) { + setRecipients(cached); + setSelectedRecipientId((current) => { + if (current && cached.some((recipient) => recipient.id === current)) { + return current; + } + return current ?? cached[0]?.id ?? null; + }); + setLoading(false); + hasCache = true; + } + } catch (err) { + console.error('[support recipients cache] error', err); + } + + if (!hasCache) setLoading(true); + + const query = supabase + .from('recipients') + .select('id,first_name,last_name,photo_path') + .eq('user_id', activeUserId) + .order('created_at', { ascending: false }); + + const { data, error: loadError } = user + ? await query.eq('is_active', true) + : await query; + + if (loadError) { + showError(loadError.message); + if (!hasCache) { + const fallbackRecipients = + await resolveRecipientOptions(previewRecipients); + setRecipients(fallbackRecipients); + setSelectedRecipientId( + (current) => current ?? fallbackRecipients[0]?.id ?? null + ); + setLoading(false); + } + return; + } + + const resolvedRecipients = await resolveRecipientOptions( + (data ?? []) as RecipientOption[] + ); + setRecipients(resolvedRecipients); + setSelectedRecipientId((current) => { + if ( + current && + resolvedRecipients.some((recipient) => recipient.id === current) + ) { + return current; + } + return current ?? resolvedRecipients[0]?.id ?? null; + }); + setLoading(false); + void writeCache(cacheKey, resolvedRecipients); + }; + + const loadMerchantsForService = async (nextService: ServiceType) => { + const merchantType = nextService === 'grocery' ? 'grocery' : 'pharmacy'; + const activeUserId = user?.id ?? previewUserId; + const cacheKey = buildCacheKey(activeUserId, `merchants_${merchantType}`); + + try { + const cached = await readCache(cacheKey); + if (cached && Array.isArray(cached) && cached.length > 0) { + setMerchants(cached); + } + } catch (err) { + console.error('[support merchants cache] error', err); + } + + const { data, error: merchantError } = await supabase + .from('merchants') + .select('id,name,branch_name,merchant_type') + .eq('merchant_type', merchantType) + .eq('is_active', true) + .order('name', { ascending: true }); + + if (merchantError) { + showError(merchantError.message); + return; + } + const freshMerchants = (data ?? []) as MerchantOption[]; + setMerchants(freshMerchants); + void writeCache(cacheKey, freshMerchants); + }; + + const handleServiceSelect = (nextService: ServiceType) => { + setServiceType(nextService); + setMerchantId(null); + setNetwork(null); + setMeterNumber(''); + setOrderId(null); + setAmountDisplay(''); + setIsCustomAmountSelected(false); + }; + + const validateCurrentStep = () => { + if (step === 1 && !selectedRecipientId) + return 'Choose who will receive support'; + if (step === 2 && !serviceType) return 'Choose a support type'; + if (step === 3 && requiresSupportDetails) { + if (serviceType === 'airtime' && !network) + return 'Choose a mobile network'; + if (serviceType === 'electricity' && !meterNumber.trim()) + return 'Enter the meter number'; + } + if (step === amountStep && !parsedAmount) return 'Enter a support amount'; + return null; + }; + + const createOrderAndIntent = async () => { + if (!selectedRecipientId || !serviceType || !parsedAmount) return false; + + setSubmitting(true); + + const activeUserId = user?.id ?? previewUserId; + let currentOrderId = orderId; + if (!currentOrderId) { + const { data, error: orderError } = await supabase + .from('support_orders') + .insert({ + user_id: activeUserId, + recipient_id: selectedRecipientId, + merchant_id: merchantId, + service_type: serviceType, + amount: parsedAmount, + platform_fee: platformFee, + total_amount: totalAmount, + currency: 'USD', + status: 'pending_payment', + payment_method: paymentMethod, + network, + meter_number: meterNumber.trim() || null, + }) + .select('id') + .single(); + + if (orderError || !data) { + showError(orderError?.message ?? 'Could not create order'); + setSubmitting(false); + return false; + } + currentOrderId = data.id; + setOrderId(currentOrderId); + } + + if (!user) { + setSubmitting(false); + return true; + } + + const { data: intentData, error: intentError } = + await supabase.functions.invoke('calculate-payment-intent', { + body: { + orderId: currentOrderId, + serviceType, + amount: parsedAmount, + currency: 'USD', + paymentMethod, + }, + }); + + if (intentError) { + showError(intentError.message); + setSubmitting(false); + return false; + } + + const response = intentData as { + platformFee?: number; + totalAmount?: number; + } | null; + setPlatformFee(Number(response?.platformFee ?? platformFee)); + setTotalAmount(Number(response?.totalAmount ?? totalAmount)); + setSubmitting(false); + return true; + }; + + const handleContinue = async () => { + const validation = validateCurrentStep(); + if (validation) { + showError(validation); + return; + } + + if (step === amountStep) { + const ok = await createOrderAndIntent(); + if (!ok) return; + } + + setStep((current) => Math.min(totalSteps, current + 1)); + }; + + const handleBack = () => { + if (paymentResult === 'failure') { + setPaymentResult('idle'); + return; + } + if (paymentResult === 'success') { + if (orderId) { + history.push(`/orders/${orderId}`, { parentRoot }); + } else { + history.push(parentRoot); + } + return; + } + + if (step > 1) { + setStep((current) => Math.max(1, current - 1)); + return; + } + + history.length > 1 ? history.goBack() : history.replace('/home'); + }; + + const handleConfirmPayment = async () => { + if (!orderId || !selectedRecipientId || !serviceType) { + showError('Order is not ready yet'); + return; + } + + setSubmitting(true); + setPaymentResult('idle'); + setPaymentResultMessage(null); + + const { error: fulfilError } = await supabase.functions.invoke( + 'confirm-payment-and-fulfil', + { + body: { orderId }, + } + ); + + if (fulfilError) { + setSubmitting(false); + setPaymentResult('failure'); + setPaymentResultMessage( + fulfilError.message || 'Payment could not be processed at this time.' + ); + return; + } + + if (isRecurringEnabled) { + const scheduleId = await upsertSupportSchedule(); + if (scheduleId) { + await supabase + .from('support_orders') + .update({ recurring_schedule_id: scheduleId }) + .eq('id', orderId); + + await createGeneralizedCareAlert(scheduleId); + } + } + + setSubmitting(false); + setPaymentResult('success'); + setPaymentResultMessage( + `Your ${selectedService?.reviewLabel.toLowerCase()} order is confirmed and ready for ${selectedRecipient?.first_name}.` + ); + }; + + const handleViewOrderDetails = () => { + if (orderId) { + history.push(`/orders/${orderId}`, { parentRoot }); + } else { + history.push(parentRoot); + } + }; + + const handlePaymentResultSecondaryAction = () => { + if (paymentResult === 'success') { + history.push(parentRoot); + } else { + setPaymentResult('idle'); + setPaymentResultMessage(null); + } + }; + + const handleRetryPayment = () => { + setError(null); + setPaymentResult('idle'); + setPaymentResultMessage(null); + void handleConfirmPayment(); + }; + + const calculateNextDueDate = () => { + const date = new Date(); + if (frequencyUnit === 'weekly') { + date.setDate(date.getDate() + 7 * frequencyInterval); + } else { + date.setMonth(date.getMonth() + frequencyInterval); + } + return date.toISOString(); + }; + + const upsertSupportSchedule = async () => { + if (!user || !selectedRecipientId || !serviceType) return null; + const nextDueAt = calculateNextDueDate(); + + const { data: existing } = await supabase + .from('support_schedules') + .select('id') + .eq('user_id', user.id) + .eq('recipient_id', selectedRecipientId) + .eq('service_type', serviceType) + .maybeSingle(); + + if (existing) { + const { error: updateError } = await supabase + .from('support_schedules') + .update({ + frequency_unit: frequencyUnit, + frequency_interval: frequencyInterval, + last_supported_at: new Date().toISOString(), + next_due_at: nextDueAt, + is_active: true, + }) + .eq('id', existing.id); + + if (updateError) { + showError('Failed to update recurring schedule'); + return null; + } + return existing.id; + } + + const { data: inserted, error: insertError } = await supabase + .from('support_schedules') + .insert({ + user_id: user.id, + recipient_id: selectedRecipientId, + service_type: serviceType, + frequency_unit: frequencyUnit, + frequency_interval: frequencyInterval, + last_supported_at: new Date().toISOString(), + next_due_at: nextDueAt, + is_active: true, + }) + .select('id') + .single(); + + if (insertError || !inserted) { + showError('Failed to save recurring schedule'); + return null; + } + return inserted.id; + }; + + const createGeneralizedCareAlert = async (scheduleId: string) => { + if (!user || !selectedRecipientId || !serviceType) return; + const nextDueAt = calculateNextDueDate(); + + const recipient = recipients.find((r) => r.id === selectedRecipientId); + const firstName = recipient?.first_name || 'Loved one'; + + let title = ''; + if (serviceType === 'grocery') title = 'Grocery support due soon'; + else if (serviceType === 'medication') { + title = 'Medication support due soon'; + } else if (serviceType === 'airtime') { + title = 'Airtime running low soon'; + } else if (serviceType === 'electricity') { + title = 'Electricity top-up may be needed'; + } + + let intervalStr = ''; + if (frequencyInterval === 1) { + intervalStr = frequencyUnit === 'weekly' ? 'a week' : 'a month'; + } else { + intervalStr = `${frequencyInterval} ${frequencyUnit === 'weekly' ? 'weeks' : 'months'}`; + } + const body = `For ${firstName} • in ${intervalStr}`; + + const { data: existingAlert } = await supabase + .from('care_alerts') + .select('id') + .eq('schedule_id', scheduleId) + .is('dismissed_at', null) + .maybeSingle(); + + if (existingAlert) { + await supabase + .from('care_alerts') + .update({ + title, + body, + due_at: nextDueAt, + service_type: serviceType, + }) + .eq('id', existingAlert.id); + } else { + await supabase.from('care_alerts').insert({ + user_id: user.id, + recipient_id: selectedRecipientId, + schedule_id: scheduleId, + service_type: serviceType, + alert_type: 'support_due', + title, + body, + severity: 'info', + due_at: nextDueAt, + }); + } + }; + + const ctaLabel = + step === amountStep + ? submitting + ? 'Preparing...' + : 'Review payment' + : step === reviewStep + ? submitting + ? 'Confirming...' + : 'Confirm payment' + : 'Continue'; + + const renderPaymentResultCard = () => { + if (paymentResult === 'idle') return null; + + const isSuccess = paymentResult === 'success'; + + return ( +
+
+ +
+
+

+ Payment {isSuccess ? 'Confirmed' : 'Declined'} +

+

+ {isSuccess ? 'Payment successful' : 'Payment failed'} +

+

{paymentResultMessage}

+
+ +
+
+ Recipient + + {selectedRecipient + ? `${selectedRecipient.first_name} ${selectedRecipient.last_name}` + : ''} + +
+
+ Support type + {selectedService?.label} +
+
+ Total paid + {formatMoney(totalAmount)} +
+
+ +
+ {isSuccess ? ( + <> + + View order details + + + Back to activity + + + ) : ( + <> + + {submitting ? 'Retrying...' : 'Try payment again'} + + + Back to review + + + )} +
+
+ ); + }; + + const selectedRecipient = + recipients.find((recipient) => recipient.id === selectedRecipientId) ?? + null; + const selectedRecipientPhoto = getRecipientPhoto(selectedRecipient); + const selectedPaymentMethod = + paymentMethods.find((method) => method.value === paymentMethod) ?? + paymentMethods[0]; + + return ( + + + + + 1 ? 'Go to previous step' : 'Go back'} + > + + + + + {selectedService && ( + + )} + {flowTitle} + + + + + +
+ {!isShowingPaymentResult && ( +
+ {Array.from({ length: totalSteps }, (_, index) => index + 1).map( + (item, index) => ( + +
+ {item} +
+ {index < totalSteps - 1 && ( +
+ )} + + ) + )} +
+ )} + + {error && !isShowingPaymentResult && ( +

+ {error} +

+ )} + + {isShowingPaymentResult && renderPaymentResultCard()} + + {!isShowingPaymentResult && step === 1 && ( +
+

Who are you supporting?

+ + {!loading && recipients.length === 0 && ( + history.push('/recipients/new')} + > + Add your first loved one + + )} +
+ )} + + {!isShowingPaymentResult && step === 2 && ( +
+

Choose support type

+
+ {services.map((service) => ( + + ))} +
+
+ )} + + {!isShowingPaymentResult && step === 3 && ( + <> + {(serviceType === 'airtime' || serviceType === 'electricity') && ( +
+

Support details

+ {serviceType === 'airtime' && ( + setNetwork(event.detail.value)} + > + {networks.map((item) => ( + + {item} + + ))} + + )} + {serviceType === 'electricity' && ( + + setMeterNumber( + (event.detail.value ?? '').replace(/\D/g, '') + ) + } + /> + )} +
+ )} + + )} + + {!isShowingPaymentResult && step === amountStep && ( +
+ {selectedService && ( +
+ +
+

+ {selectedRecipient + ? `For ${selectedRecipient.first_name} ${selectedRecipient.last_name}` + : 'Selected recipient'} +

+

+ {selectedService.amountHeading} +

+

+ {selectedService.amountHint} +

+
+
+ )} + {!selectedService && ( +

+ Choose amount +

+ )} +
+ {amountPresets.map((amount) => ( + + ))} + +
+ {isCustomAmountSelected && ( + + + $ + + + setAmountDisplay(sanitizeAmount(event.detail.value ?? '')) + } + /> + + )} + + {parsedAmount && parsedAmount > 0 && ( +
+
+
+
+ +
+
+

+ Repeat support +

+

+ Set up automatic reminders +

+
+
+
setIsRecurringEnabled(!isRecurringEnabled)} + style={{ + width: 44, + height: 24, + borderRadius: 12, + background: isRecurringEnabled + ? 'var(--flow-accent, #6d28d9)' + : 'rgba(23,24,39,0.1)', + position: 'relative', + cursor: 'pointer', + transition: '0.2s', + flexShrink: 0, + }} + > +
+
+
+ + {isRecurringEnabled && ( +
+
+ + +
+ +
+ + Every + +
+ + + {frequencyInterval} + + +
+
+
+ )} +
+ )} +
+ )} + + {!isShowingPaymentResult && step === reviewStep && ( +
+

Review and pay

+
+ {selectedService?.reviewLabel ?? 'Support amount'} + {formatMoney(parsedAmount ?? 0)} +
+ {(serviceType === 'grocery' || serviceType === 'medication') && ( +
+
+ {selectedService?.imageSrc ? ( + + ) : ( + + )} +
+
+

+ Redeemable at any Kumusha{' '} + {serviceType === 'grocery' ? 'grocery' : 'pharmacy'}{' '} + partner +

+

+ The recipient can use this voucher with approved + participating merchants. +

+
+
+ )} +
+ Service fee + {formatMoney(platformFee)} +
+
+ Total + {formatMoney(totalAmount)} +
+ + {isRecurringEnabled && ( +
+ + + Remind me every{' '} + {frequencyInterval === 1 + ? frequencyUnit === 'weekly' + ? 'week' + : 'month' + : `${frequencyInterval} ${frequencyUnit === 'weekly' ? 'weeks' : 'months'}`} + +
+ )} + +
+ + Payment method + + +
+ + Saved card will be reused for + future support in the live version. + +
+ )} + + {!isShowingPaymentResult && ( +
+
+

Total

+

{formatMoney(totalAmount)}

+
+ + {ctaLabel} + +
+ )} +
+ + setIsPaymentSheetOpen(false)} + className="support-payment-modal" + initialBreakpoint={0.58} + breakpoints={[0, 0.58, 0.84]} + handle={true} + > + +
+
+
+

+ Payment method +

+

+ Choose how you want to pay for this support. +

+
+ +
+ + + {paymentMethods.map((method) => { + const isSelected = method.value === paymentMethod; + return ( + + ); + })} + +
+
+
+ + setIsRecipientSheetOpen(false)} + className="support-recipient-modal" + initialBreakpoint={0.55} + breakpoints={[0, 0.55, 0.82]} + handle={true} + > + +
+
+
+

+ Choose recipient +

+

+ Pick who should receive this support. +

+
+ +
+ +
+ {recipients.map((recipient) => { + const photo = getRecipientPhoto(recipient); + const isSelected = recipient.id === selectedRecipientId; + return ( + + ); + })} +
+
+
+
+ + + ); +}; + +export default SupportFlowPage; diff --git a/src/pages/VerifyEmailPage.tsx b/src/pages/VerifyEmailPage.tsx new file mode 100644 index 0000000..492039a --- /dev/null +++ b/src/pages/VerifyEmailPage.tsx @@ -0,0 +1,297 @@ +import React, { useState, useEffect } from 'react'; +import { + IonPage, + IonContent, + IonHeader, + IonToolbar, + IonButtons, + IonTitle, + IonButton, + useIonViewWillEnter, +} from '@ionic/react'; +import { useHistory, useLocation } from 'react-router-dom'; +import { IonIcon } from '@ionic/react'; +import { chevronBackOutline, mailOutline } from 'ionicons/icons'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import OtpInputSlots from '../components/OtpInputSlots'; +import '../styles/auth.css'; + +interface LocationState { + email?: string; + resent?: boolean; +} + +const VerifyEmailPage: React.FC = () => { + const history = useHistory(); + const location = useLocation(); + const { user, profile, profileStatus } = useAuth(); + + const email = + location.state?.email?.trim().toLowerCase() || + localStorage.getItem('kumusha_pending_verification_email') || + ''; + const wasResent = location.state?.resent; + + const [code, setCode] = useState(['', '', '', '', '', '']); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [status, setStatus] = useState( + wasResent ? 'We sent a fresh code to your email.' : null + ); + const [cooldown, setCooldown] = useState(wasResent ? 60 : 0); + + useEffect(() => { + if (!email) { + showError( + 'We could not find the email used for sign up. Please sign up again.' + ); + } + }, [email]); + + useEffect(() => { + if (!user || profileStatus === 'loading') return; + + if ( + !profile || + !profile.first_name || + !profile.last_name || + !profile.phone || + !profile.country_of_residence + ) { + history.replace('/setup-profile'); + } else { + history.replace('/home'); + } + }, [user, profile, profileStatus, history]); + + useIonViewWillEnter(() => { + setError(null); + }); + + useEffect(() => { + let timer: ReturnType | undefined; + if (cooldown > 0) { + timer = setTimeout(() => setCooldown((c) => c - 1), 1000); + } + return () => { + if (timer) { + clearTimeout(timer); + } + }; + }, [cooldown]); + + const showError = (msg: string) => { + setStatus(null); + setError(msg); + setTimeout(() => setError(null), 4000); + }; + + const showStatus = (msg: string) => { + setError(null); + setStatus(msg); + setTimeout(() => setStatus(null), 4000); + }; + + const handleDigitChange = (index: number, val: string) => { + const newCode = [...code]; + newCode[index] = val; + setCode(newCode); + }; + + const handlePaste = (e: React.ClipboardEvent) => { + e.preventDefault(); + const pastedData = e.clipboardData + .getData('Text') + .replace(/[^0-9]/g, '') + .slice(0, 6); + if (!pastedData) return; + const newCode = [...code]; + for (let i = 0; i < pastedData.length; i++) { + newCode[i] = pastedData[i]; + } + setCode(newCode); + }; + + const handleVerifyOtp = async () => { + const token = code.join(''); + if (token.length !== 6) { + showError('Please enter the full 6-digit code.'); + return; + } + + if (!email) { + showError( + 'We could not find the email used for sign up. Please go back and create your account again.' + ); + return; + } + + setLoading(true); + setError(null); + setStatus(null); + + const { error: verifyError } = await supabase.auth.verifyOtp({ + email, + token, + type: 'email', + }); + + if (verifyError) { + showError(verifyError.message); + setLoading(false); + return; + } + + localStorage.removeItem('kumusha_pending_verification_email'); + showStatus('Email verified. Finishing your sign in...'); + setLoading(false); + }; + + const handleResend = async () => { + if (cooldown > 0) return; + if (!email) { + showError( + 'We could not find the email used for sign up. Please go back and create your account again.' + ); + return; + } + setError(null); + setStatus(null); + + const { error: resendError } = await supabase.auth.resend({ + type: 'signup', + email, + }); + + if (resendError) { + showError(resendError.message); + return; + } + + setCode(['', '', '', '', '', '']); + setCooldown(60); + showStatus('A new 6-digit code has been sent.'); + }; + + return ( + + + + + history.goBack()}> + + + + Verify email + + + + +
+
+
+ +
+

+ Check your email +

+

+ {email ? ( + <> + We sent a 6-digit code to {email}. Enter it + below to confirm your account and continue. + + ) : ( + 'We could not find the email used for sign up. Go back and create your account again.' + )} +

+
+ +
+
+ + + {status ? ( +
+ {status} +
+ ) : null} + + {error ? ( +
{error}
+ ) : null} + + + + +
+
+
+
+
+ ); +}; + +export default VerifyEmailPage; diff --git a/src/pages/VerifyResetPage.tsx b/src/pages/VerifyResetPage.tsx new file mode 100644 index 0000000..ee2c20d --- /dev/null +++ b/src/pages/VerifyResetPage.tsx @@ -0,0 +1,317 @@ +import React, { useEffect, useState } from 'react'; +import { + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonInput, + IonPage, + IonTitle, + IonToolbar, +} from '@ionic/react'; +import { chevronBackOutline, lockClosedOutline } from 'ionicons/icons'; +import { useHistory, useLocation } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import OtpInputSlots from '../components/OtpInputSlots'; +import '../styles/auth.css'; + +interface LocationState { + email?: string; +} + +const VerifyResetPage: React.FC = () => { + const history = useHistory(); + const location = useLocation(); + const { user, refreshProfile, profileStatus } = useAuth(); + const email = location.state?.email; + + const [code, setCode] = useState(['', '', '', '', '', '']); + const [newPassword, setNewPassword] = useState(''); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [status, setStatus] = useState(null); + const [cooldown, setCooldown] = useState(0); + const [passwordUpdated, setPasswordUpdated] = useState(false); + + useEffect(() => { + if (!email) { + history.replace('/forgot-password'); + } + }, [email, history]); + + useEffect(() => { + if (cooldown <= 0) return; + const timer = setTimeout(() => setCooldown((current) => current - 1), 1000); + return () => clearTimeout(timer); + }, [cooldown]); + + useEffect(() => { + if (user && passwordUpdated && profileStatus !== 'loading') { + loadProfileAndNavigate(); + } + }, [user, passwordUpdated, profileStatus]); + + const showMessage = (message: string, kind: 'error' | 'status') => { + if (kind === 'error') { + setError(message); + setStatus(null); + setTimeout(() => setError(null), 4000); + } else { + setStatus(message); + setError(null); + setTimeout(() => setStatus(null), 4000); + } + }; + + const loadProfileAndNavigate = async () => { + if (!user) return; + + const data = await refreshProfile(); + + if ( + !data || + !data.first_name || + !data.last_name || + !data.phone || + !data.country_of_residence + ) { + history.replace('/setup-profile'); + } else { + history.replace('/home'); + } + }; + + const handleDigitChange = (index: number, value: string) => { + const nextCode = [...code]; + nextCode[index] = value.replace(/\D/g, '').slice(-1); + setCode(nextCode); + }; + + const handlePaste = (event: React.ClipboardEvent) => { + event.preventDefault(); + const digits = event.clipboardData + .getData('Text') + .replace(/\D/g, '') + .slice(0, 6); + if (!digits) return; + + const nextCode = ['', '', '', '', '', '']; + digits.split('').forEach((digit, index) => { + nextCode[index] = digit; + }); + setCode(nextCode); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + + const token = code.join(''); + if (token.length !== 6) { + showMessage('Please enter the 6-digit reset code', 'error'); + return; + } + + if (newPassword.length < 6) { + showMessage('Password must be at least 6 characters', 'error'); + return; + } + + setLoading(true); + setError(null); + setStatus(null); + + const { error: verifyError } = await supabase.auth.verifyOtp({ + email: email!, + token, + type: 'recovery', + }); + + if (verifyError) { + showMessage(verifyError.message, 'error'); + setLoading(false); + return; + } + + const { error: updateError } = await supabase.auth.updateUser({ + password: newPassword, + }); + + if (updateError) { + showMessage(updateError.message, 'error'); + setLoading(false); + return; + } + + showMessage('Password updated', 'status'); + setPasswordUpdated(true); + setLoading(false); + }; + + const handleResend = async () => { + if (cooldown > 0 || !email) return; + + const { error: resendError } = + await supabase.auth.resetPasswordForEmail(email); + if (resendError) { + showMessage(resendError.message, 'error'); + return; + } + + showMessage('A new reset code has been sent', 'status'); + setCooldown(60); + }; + + return ( + + + + + history.goBack()} + style={ + { + '--color': '#111827', + '--border-radius': '12px', + } as React.CSSProperties + } + aria-label="Go back" + > + + + + + New password + + + + + +
+
+
+ +
+
+

Enter your reset code

+

+ Use the 6-digit code sent to {email}, then + choose a new password. +

+
+
+ +
+
+ + + +
+ +
+ setNewPassword(event.detail.value ?? '')} + disabled={loading} + placeholder="Enter a new password" + style={ + { + '--background': '#fafafa', + '--border-radius': '12px', + '--padding-start': '14px', + '--padding-end': '14px', + '--highlight-color-focused': '#6d28d9', + } as React.CSSProperties + } + /> + + {error && ( +

+ {error} +

+ )} + {status && ( +

+ {status} +

+ )} + + + {loading ? 'Updating password...' : 'Update password'} + +
+
+
+
+
+ ); +}; + +export default VerifyResetPage; diff --git a/src/pages/VoucherDetailPage.tsx b/src/pages/VoucherDetailPage.tsx new file mode 100644 index 0000000..6a69e95 --- /dev/null +++ b/src/pages/VoucherDetailPage.tsx @@ -0,0 +1,295 @@ +import React, { useState } from 'react'; +import { + IonButton, + IonButtons, + IonContent, + IonHeader, + IonIcon, + IonPage, + IonSkeletonText, + IonTitle, + IonToolbar, + useIonViewWillEnter, +} from '@ionic/react'; +import { + chevronBackOutline, + copyOutline, + listOutline, + qrCodeOutline, + shieldCheckmarkOutline, +} from 'ionicons/icons'; +import { useHistory, useLocation, useParams } from 'react-router-dom'; +import { supabase } from '../supabase'; +import { useAuth } from '../contexts/AuthContext'; +import { formatMoney } from '../utils/formatMoney'; +import '../styles/support.css'; + +type Params = { id: string }; + +type RedemptionEntry = { + id: string; + redeemed_amount: number; + redeemed_at: string; + merchant_name: string | null; + status: string | null; +}; + +type Voucher = { + id: string; + voucher_code: string; + status: string; + expires_at: string; + qr_payload: string; + voucher_type: string; + redeemed_amount?: number; + remaining_amount?: number; + voucher_redemptions?: RedemptionEntry[] | null; + support_orders?: { + service_type: string; + amount: number; + recipients?: { first_name: string; last_name: string } | null; + merchants?: { name: string; branch_name: string | null } | null; + } | null; +}; + +const VoucherDetailPage: React.FC = () => { + const { id } = useParams(); + const history = useHistory(); + const location = useLocation<{ parentRoot?: string }>(); + const { user } = useAuth(); + const [voucher, setVoucher] = useState(null); + const [loading, setLoading] = useState(true); + const [message, setMessage] = useState(null); + + useIonViewWillEnter(() => { + void loadVoucher(); + }); + + const handleGoBack = () => { + if (history.length > 1) { + history.goBack(); + } else { + history.replace('/activity'); + } + }; + + const parentRoot = location.state?.parentRoot ?? '/activity'; + + const handleGoToParentRoot = () => { + history.replace(parentRoot); + }; + + const showMessage = (text: string) => { + setMessage(text); + setTimeout(() => setMessage(null), 4000); + }; + + const loadVoucher = async () => { + if (!user) return; + setLoading(true); + + const { data, error } = await supabase + .from('vouchers') + .select( + 'id,voucher_code,status,expires_at,qr_payload,voucher_type,redeemed_amount,remaining_amount,voucher_redemptions(id,redeemed_amount,redeemed_at,merchant_name,status),support_orders!inner(service_type,amount,user_id,recipients(first_name,last_name),merchants(name,branch_name))' + ) + .eq('id', id) + .eq('support_orders.user_id', user.id) + .single(); + + if (error || !data) { + showMessage(error?.message ?? 'Voucher not found'); + setLoading(false); + return; + } + + setVoucher(data as unknown as Voucher); + setLoading(false); + }; + + const handleCopyCode = async () => { + if (!voucher) return; + await navigator.clipboard.writeText(voucher.voucher_code); + showMessage('Voucher code copied'); + }; + + const totalAmount = Number(voucher?.support_orders?.amount ?? 0); + const redeemedAmount = Number(voucher?.redeemed_amount ?? 0); + const fallbackRemaining = Math.max(totalAmount - redeemedAmount, 0); + const remainingAmount = Number( + voucher?.remaining_amount ?? fallbackRemaining + ); + const hasPartialRedemption = redeemedAmount > 0 && remainingAmount > 0; + const redemptionHistory = [...(voucher?.voucher_redemptions ?? [])].sort( + (a, b) => + new Date(b.redeemed_at).getTime() - new Date(a.redeemed_at).getTime() + ); + + return ( + + + + + + + + + Voucher + + + + + + + + + + {loading ? ( +
+ + +
+ ) : voucher ? ( + <> + {message && ( +

+ {message} +

+ )} +
+ {voucher.voucher_code} +
+ +
+
+

+ Expires {new Date(voucher.expires_at).toLocaleDateString()} +

+

+ {voucher.support_orders?.merchants + ? `${voucher.support_orders.merchants.name}${voucher.support_orders.merchants.branch_name ? ` — ${voucher.support_orders.merchants.branch_name}` : ''}` + : `Kumusha ${voucher.support_orders?.service_type === 'medication' ? 'pharmacy' : 'grocery'} partner`} +

+

+ For{' '} + {voucher.support_orders?.recipients + ? `${voucher.support_orders.recipients.first_name} ${voucher.support_orders.recipients.last_name}` + : 'recipient'}{' '} + · {formatMoney(Number(voucher.support_orders?.amount ?? 0))} +

+
+ + + Copy code + +
+ + {(hasPartialRedemption || redemptionHistory.length > 0) && ( +
+
+
+

Voucher balance

+

+ Track redeemed and remaining value for this voucher. +

+
+
+ {formatMoney(totalAmount)} +
+
+ +
+
+ Redeemed {formatMoney(redeemedAmount)} +
+
+ Unredeemed {formatMoney(remainingAmount)} +
+
+ + {redemptionHistory.length > 0 && ( +
+

+ Redemption history +

+ {redemptionHistory.map((entry) => ( +
+
+

+ {entry.merchant_name || + voucher.support_orders?.merchants?.name || + `Kumusha ${voucher.support_orders?.service_type === 'medication' ? 'pharmacy' : 'grocery'} partner`} +

+

+ {new Date(entry.redeemed_at).toLocaleString()} +

+
+
+

+ {formatMoney(entry.redeemed_amount)} +

+ + {entry.status || 'Redeemed'} + +
+
+ ))} +
+ )} +
+ )} + +
+ +

+ Redeemable at any approved Kumusha{' '} + {voucher.support_orders?.service_type === 'medication' + ? 'pharmacy' + : 'grocery'}{' '} + partner. Balance updates automatically after partial redemption. + Do not share code. +

+
+ + ) : null} +
+
+ ); +}; + +export default VoucherDetailPage; diff --git a/src/styles/activity.css b/src/styles/activity.css new file mode 100644 index 0000000..075f770 --- /dev/null +++ b/src/styles/activity.css @@ -0,0 +1,507 @@ +/* Activity Feed */ +.activity-top-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin: 0 20px 14px; +} + +.activity-title-block { + min-width: 0; + display: flex; + flex-direction: column; + gap: 4px; +} + +.activity-page-title { + font-size: 28px; + font-weight: 700; + line-height: 1.05; + color: #171827; + margin: 0; + letter-spacing: -0.02em; +} + +.activity-page-subtitle { + margin: 0; + color: rgba(23, 24, 39, 0.56); + font-size: 14px; + line-height: 1.35; + font-weight: 500; +} + +.activity-shell { + padding-bottom: calc(130px + var(--ion-safe-area-bottom, 0px)); +} + +.activity-type-filter-row { + display: flex; + align-items: center; + gap: 8px; + margin: 0 20px 12px; + overflow-x: auto; + scrollbar-width: none; +} + +.activity-type-filter-row::-webkit-scrollbar { + display: none; +} + +.activity-type-chip { + flex: 0 0 auto; + background: #ffffff; + color: rgba(23, 24, 39, 0.58); + border: none; + border-radius: 999px; + font-size: 13px; + font-weight: 700; + padding: 9px 16px; + margin: 0; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03); +} + +.activity-type-chip.active { + background: #6d28d9; + color: #ffffff; +} + +.activity-filter-row { + margin: 0 20px 18px; +} + +.activity-range-shell { + background: rgba(255, 255, 255, 0.78); + border-radius: 24px; + padding: 6px; +} + +.activity-range-segment { + padding: 0; + background: transparent; + border-radius: 999px; +} + +.activity-range-segment ion-segment-button { + min-height: 46px; + --background: transparent; + --background-checked: #6d28d9; + --color: rgba(23, 24, 39, 0.5); + --color-checked: #ffffff; + --indicator-color: transparent; + --border-radius: 999px; + --padding-start: 2px; + --padding-end: 2px; + text-transform: none; + font-size: 12px; + font-weight: 700; + letter-spacing: -0.01em; +} + +.activity-range-segment ion-label { + margin: 0; + white-space: nowrap; +} + +.activity-grouped-list { + background: rgba(255, 255, 255, 0.94); + border-radius: 24px; + padding: 6px 0; + margin: 0 20px 20px; +} + +.activity-date-group-label { + font-size: 11px; + font-weight: 700; + color: rgba(23, 24, 39, 0.38); + text-transform: uppercase; + letter-spacing: 0.08em; + margin: 16px 20px 8px; +} + +.activity-list-item { + display: flex; + align-items: center; + padding: 14px 20px; + gap: 16px; + cursor: pointer; +} + +.activity-feed-item { + width: 100%; + border: none; + background: transparent; + display: flex; + align-items: flex-start; + gap: 12px; + padding: 14px 16px; + text-align: left; +} + +.activity-feed-item + .activity-feed-item { + border-top: 1px solid rgba(23, 24, 39, 0.06); +} + +.activity-feed-item:disabled { + opacity: 1; +} + +.activity-feed-item:active { + background: rgba(109, 40, 217, 0.03); +} + +.activity-feed-avatar-wrap { + flex-shrink: 0; + margin-top: 2px; +} + +.activity-feed-avatar { + position: relative; + width: 53px; + height: 53px; + border-radius: 999px; + display: flex; + align-items: center; + justify-content: center; + color: #171827; + font-size: 14px; + font-weight: 700; + flex-shrink: 0; + overflow: visible; +} + +.activity-feed-avatar-image { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 999px; +} + +.activity-feed-avatar-lavender { + background: #efe7fb; + color: #6d28d9; +} + +.activity-feed-avatar-mint { + background: #e8f7ee; + color: #16a34a; +} + +.activity-feed-avatar-sky { + background: #eaf3ff; + color: #3b82f6; +} + +.activity-feed-avatar-gold { + background: #fff2df; + color: #d97706; +} + +.activity-feed-avatar-brand { + background: #ece9ff; + color: #6d28d9; +} + +.activity-feed-avatar-badge { + position: absolute; + right: -5px; + bottom: -5px; + width: 24px; + height: 24px; + border-radius: 999px; + border: 2px solid #ffffff; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + box-shadow: 0 6px 14px rgba(23, 24, 39, 0.12); +} + +.activity-feed-avatar-badge-grocery { + background: #f1e7fb; + color: #6d28d9; +} + +.activity-feed-avatar-badge-medication { + background: #e8f7ee; + color: #16a34a; +} + +.activity-feed-avatar-badge-airtime { + background: #eaf3ff; + color: #3b82f6; +} + +.activity-feed-avatar-badge-electricity { + background: #fff2df; + color: #d97706; +} + +.activity-feed-avatar-badge ion-icon { + font-size: 13px; + --ionicon-stroke-width: 48px; +} + +.activity-feed-badge-image { + width: 22px; + height: 22px; + object-fit: contain; + display: block; + flex-shrink: 0; +} + +.activity-feed-main { + flex: 1; + min-width: 0; +} + +.activity-feed-row { + display: grid; + grid-template-columns: minmax(128px, 1fr) auto; + align-items: flex-start; + gap: 10px; +} + +.activity-feed-copy { + min-width: 0; + flex: 1; + display: flex; + flex-direction: column; + gap: 4px; +} + +.activity-feed-title { + margin: 0; + color: #171827; + font-size: 14px; + line-height: 1.2; + font-weight: 800; +} + +.activity-feed-subtitle { + margin: 0; + color: rgba(23, 24, 39, 0.54); + font-size: 13px; + line-height: 1.3; + font-weight: 500; +} + +.activity-feed-right { + display: flex; + flex-direction: column; + align-items: flex-end; + justify-content: flex-start; + gap: 8px; + flex-shrink: 0; + min-width: 112px; +} + +.activity-feed-amount { + margin: 0; + color: #171827; + font-size: 14px; + line-height: 1.1; + font-weight: 700; +} + +.activity-feed-status { + width: fit-content; + min-height: 28px; + border: none; + border-radius: 999px; + padding: 0 10px 0 12px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 5px; + font-size: 12px; + font-weight: 800; + text-transform: capitalize; + background: transparent; +} + +.activity-feed-status ion-icon { + font-size: 12px; + flex-shrink: 0; +} + +.activity-feed-status-success { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.activity-feed-status-warning { + background: rgba(245, 158, 11, 0.1); + color: #d97706; +} + +.activity-feed-status-partial { + background: rgba(245, 158, 11, 0.14); + color: #b45309; +} + +.activity-feed-breakdown { + display: flex; + flex-direction: column; + gap: 6px; + margin-top: 8px; +} + +.activity-feed-breakdown-summary { + display: flex; + flex-wrap: wrap; + gap: 6px; +} + +.activity-feed-breakdown-pill { + min-height: 24px; + border-radius: 999px; + padding: 0 10px; + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 12px; + font-weight: 700; +} + +.activity-feed-breakdown-pill ion-icon { + font-size: 12px; + flex-shrink: 0; +} + +.activity-feed-breakdown-pill.is-redeemed { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.activity-feed-breakdown-pill.is-remaining { + background: rgba(245, 158, 11, 0.12); + color: #d97706; +} + +.activity-feed-usage-note { + width: 100%; + margin: 0; + color: rgba(23, 24, 39, 0.56); + font-size: 10px; + line-height: 1.35; + font-weight: 500; +} + +/* Notifications List */ +.notifications-list-card { + background: #ffffff; + border-radius: 24px; + padding: 8px 0; + margin: 20px; +} + +.notification-row { + display: flex; + align-items: flex-start; + padding: 16px 20px; + gap: 16px; + position: relative; +} + +.nr-status-dot { + position: absolute; + top: 24px; + left: 8px; + width: 8px; + height: 8px; + border-radius: 50%; +} + +.nr-status-dot.is-unread { + background: #6d28d9; +} + +.nr-status-dot.is-read { + background: #d1d5db; +} + +.nr-icon-box { + width: 44px; + height: 44px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + flex-shrink: 0; +} + +.nr-icon-box img { + width: 25px; + height: 25px; + object-fit: contain; + display: block; + flex-shrink: 0; +} + +.nr-icon-box ion-icon { + font-size: 21px; + flex-shrink: 0; +} + +.nr-icon-box.is-read { + opacity: 0.64; +} + +/* Support type mappings */ +.nr-icon-box.notification-service-grocery { + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; +} + +.nr-icon-box.notification-service-medication { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.nr-icon-box.notification-service-airtime { + background: rgba(37, 99, 235, 0.1); + color: #2563eb; +} + +.nr-icon-box.notification-service-electricity { + background: rgba(245, 158, 11, 0.12); + color: #d97706; +} + +.nr-icon-box.notification-service-support { + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; +} + +.nr-content { + flex: 1; +} + +.nr-title { + font-size: 15px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0 0 4px; +} + +.nr-body { + font-size: 13px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0 0 6px; + line-height: 1.4; +} + +.nr-time { + font-size: 11px; + font-weight: 600; + color: #9ca3af; +} + +.nr-link-icon { + font-size: 18px; + color: var(--ion-color-medium); + align-self: center; +} diff --git a/src/styles/auth.css b/src/styles/auth.css new file mode 100644 index 0000000..d5d8821 --- /dev/null +++ b/src/styles/auth.css @@ -0,0 +1,599 @@ +.auth-page-shell, +.auth-shell { + padding: 18px 20px calc(var(--ion-safe-area-bottom, 0px) + 28px); +} + +.auth-content { + --background: linear-gradient(180deg, #fafafa 0%, #f6f1ff 52%, #f4f0ff 100%); +} + +.auth-shell--centered { + min-height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + gap: 20px; +} + +.auth-brand-block, +.auth-brand-intro { + background: transparent; + border-radius: 0; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 8px; +} + +.auth-card { + background: rgba(255, 255, 255, 0.94); + border-radius: 24px; + padding: 20px; +} + +.auth-card--elevated { + box-shadow: + 0 24px 60px rgba(109, 40, 217, 0.1), + 0 8px 20px rgba(17, 24, 39, 0.05); + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); +} + +.auth-social-buttons, +.auth-form-fields { + display: flex; + flex-direction: column; + gap: 14px; +} + +.auth-form-stack { + display: flex; + flex-direction: column; + gap: 18px; +} + +.auth-divider { + color: rgba(17, 24, 39, 0.45); + font-size: 12px; + text-align: center; + position: relative; + margin: 20px 0 16px; +} + +.auth-divider span { + background: rgba(255, 255, 255, 0.94); + padding: 0 12px; + position: relative; + z-index: 1; +} + +.auth-divider::before { + content: ''; + position: absolute; + top: 50%; + left: 0; + right: 0; + height: 1px; + background: rgba(17, 24, 39, 0.08); +} + +.field-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.auth-field-label { + font-size: 13px; + font-weight: 600; + color: rgba(17, 24, 39, 0.66); +} + +.auth-text-input { + width: 100%; + min-height: 52px; + padding: 0 16px; + border: 1px solid rgba(17, 24, 39, 0.08); + border-radius: 12px; + background: #f8f7fb; + font-size: 15px; + color: #111827; + outline: none; + box-sizing: border-box; + transition: + border-color 0.18s ease, + background 0.18s ease, + box-shadow 0.18s ease; +} + +.auth-text-input::placeholder { + color: rgba(17, 24, 39, 0.38); +} + +.auth-text-input:focus { + border-color: rgba(109, 40, 217, 0.4); + background: #ffffff; + box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.08); +} + +.auth-text-input:disabled { + opacity: 0.65; +} + +.auth-text-input.has-error { + border-color: rgba(220, 38, 38, 0.28); + background: rgba(254, 242, 242, 0.8); +} + +.auth-password-wrap { + position: relative; +} + +.auth-password-wrap .auth-text-input { + padding-right: 48px; +} + +.auth-password-toggle { + position: absolute; + top: 50%; + right: 12px; + transform: translateY(-50%); + width: 28px; + height: 28px; + border-radius: 12px; + border: none; + background: transparent; + color: rgba(17, 24, 39, 0.5); + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + padding: 0; +} + +.auth-password-toggle ion-icon { + font-size: 18px; +} + +.auth-field-error { + margin: 0; + font-size: 12px; + font-weight: 500; + color: #dc2626; +} + +.auth-submit-btn { + width: 100%; + min-height: 52px; + border: none; + border-radius: 999px; + background: #6d28d9; + color: #ffffff; + font-size: 15px; + font-weight: 700; + cursor: pointer; + transition: + transform 0.18s ease, + opacity 0.18s ease; +} + +.auth-submit-btn:disabled { + opacity: 0.55; + cursor: not-allowed; +} + +.auth-inline-message { + border-radius: 12px; + background: rgba(220, 38, 38, 0.08); + color: #dc2626; + padding: 12px 14px; + font-size: 13px; + font-weight: 500; + text-align: center; +} + +.auth-meta-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.auth-meta-hint { + font-size: 12px; + color: rgba(17, 24, 39, 0.45); +} + +.auth-link-button { + border: none; + background: transparent; + padding: 0; + color: #6d28d9; + font-size: 13px; + font-weight: 700; + cursor: pointer; +} + +.auth-eyebrow { + margin: 0 0 4px 0; + font-size: 22px; + font-weight: 800; + color: #6d28d9; + line-height: 1.2; + letter-spacing: -0.01em; +} + +.auth-heading { + font-size: 32px; + font-weight: 700; + color: #111827; + line-height: 1.12; + letter-spacing: -0.02em; + margin: 0; +} + +.auth-subtitle { + font-size: 15px; + font-weight: 400; + color: rgba(17, 24, 39, 0.62); + line-height: 1.6; + margin: 0; +} + +.auth-mode-toggle { + background: #f7f4fb; + border-radius: 999px; + padding: 6px; + display: flex; + gap: 8px; +} + +.auth-toggle-pill { + flex: 1; + text-align: center; + padding: 11px 12px; + border: none; + border-radius: 999px; + font-size: 14px; + transition: all 0.2s ease; +} + +.auth-toggle-pill.active { + background: #ffffff; + font-weight: 700; + color: #111827; + box-shadow: 0 8px 18px rgba(17, 24, 39, 0.06); +} + +.auth-toggle-pill.inactive { + background: transparent; + font-weight: 600; + color: rgba(17, 24, 39, 0.5); +} + +.social-auth-button { + width: 100%; + min-height: 52px; + padding: 0 16px; + border: none; + border-radius: 999px; + background: #f8f7fb; + color: #111827; + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + font-size: 14px; + font-weight: 600; + cursor: pointer; + transition: + background 0.18s ease, + opacity 0.18s ease; +} + +.social-auth-button:disabled { + opacity: 0.6; + cursor: not-allowed; +} + +.social-auth-button__icon { + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.social-auth-button__label { + line-height: 1; +} + +.login, +.register { + border-radius: 999px; +} + +.otp-input-row { + display: flex; + gap: 8px; + justify-content: center; +} + +.otp-slot { + -webkit-appearance: none; + appearance: none; +} + +.avatar-picker-container { + display: flex; + flex-direction: column; + align-items: center; +} + +.avatar-preview-circle { + flex-shrink: 0; +} + +.auth-form-card { + background: #ffffff; + border-radius: 24px; + padding: 20px; + margin: 0; + display: flex; + flex-direction: column; + gap: 14px; +} + +.auth-field { + --background: #fafafa; + --color: #111827; + --placeholder-color: rgba(17, 24, 39, 0.38); + --placeholder-opacity: 1; + --highlight-color-focused: #6d28d9; + --border-radius: 12px; + --padding-start: 16px; + --padding-end: 16px; + color: #111827; +} + +.auth-field::part(label) { + color: rgba(17, 24, 39, 0.62); +} + +.auth-field.ion-focused::part(label) { + color: #6d28d9; +} + +.auth-helper-text { + font-size: 12px; + font-weight: 500; + color: var(--ion-color-danger); + margin-left: 16px; + margin-top: -6px; +} + +.auth-status-text { + font-size: 13px; + font-weight: 500; + text-align: center; + margin-top: 8px; +} + +.auth-primary-btn { + --background: var(--ion-color-primary); + --border-radius: 999px; + font-size: 15px; + font-weight: 700; + color: #ffffff; + margin-top: 8px; + height: 52px; +} + +.auth-social-btn { + --background: #fafafa; + --border-radius: 999px; + --box-shadow: none; + --color: var(--ion-color-dark); + font-size: 14px; + font-weight: 600; + height: 52px; +} + +.auth-footer { + background: transparent; + margin: 16px 0 0 0; + text-align: center; +} + +.auth-footer-text { + font-size: 13px; + font-weight: 400; + color: var(--ion-color-medium); +} + +.auth-footer-link { + font-size: 13px; + font-weight: 700; + color: var(--ion-color-primary); + cursor: pointer; +} + +.auth-intro-block { + background: transparent; + margin: 8px 0 24px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + gap: 16px; +} + +.auth-icon-container { + width: 56px; + height: 56px; + border-radius: 24px; + background: rgba(109, 40, 217, 0.12); + display: flex; + align-items: center; + justify-content: center; + color: var(--ion-color-primary); + font-size: 26px; +} + +.auth-intro-heading { + font-size: 24px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0; +} + +.auth-intro-body { + font-size: 15px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0; +} + +.auth-otp-row { + background: #ffffff; + border-radius: 24px; + padding: 20px; + margin: 0 0 20px; + display: flex; + gap: 12px; + justify-content: space-between; +} + +.auth-otp-input { + width: calc((100% - 60px) / 6); + height: 56px; + border-radius: 12px; + background: #fafafa; + border: 1px solid transparent; + font-size: 24px; + font-weight: 700; + color: var(--ion-color-dark); + text-align: center; + padding: 0; +} + +.auth-otp-input:focus { + outline: none; + background: rgba(109, 40, 217, 0.1); + border-color: var(--ion-color-primary); + color: var(--ion-color-primary); +} + +.auth-action-area { + background: transparent; + display: flex; + flex-direction: column; + gap: 12px; +} + +.auth-resend-btn { + --background: transparent; + --color: var(--ion-color-primary); + --box-shadow: none; + font-size: 14px; + font-weight: 700; +} + +.auth-resend-btn[disabled] { + --color: #9ca3af; +} + +.auth-success-card { + background: #ffffff; + border-radius: 24px; + padding: 20px; + text-align: center; + display: flex; + flex-direction: column; + gap: 16px; + align-items: center; +} + +.auth-success-title { + font-size: 18px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0; +} + +.auth-success-body { + font-size: 14px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0; +} + +.setup-avatar-container { + width: 88px; + height: 88px; + border-radius: 24px; + background: rgba(109, 40, 217, 0.1); + margin: 0 auto 16px; + display: flex; + align-items: center; + justify-content: center; + position: relative; + overflow: hidden; +} + +.setup-avatar-img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.setup-avatar-icon { + font-size: 32px; + color: var(--ion-color-primary); +} + +.setup-avatar-input { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; + cursor: pointer; +} + +.setup-profile-actions-row { + display: flex; + align-items: center; + gap: 12px; + margin-top: 8px; +} + +.setup-profile-actions-row ion-button { + margin: 0; +} + +.setup-profile-secondary-btn { + flex: 0 0 auto; + min-width: 112px; + height: 52px; + --border-radius: 999px; + --box-shadow: none; + --border-color: rgba(109, 40, 217, 0.18); + --border-width: 1px; + --color: #6d28d9; + font-size: 15px; + font-weight: 700; +} + +.setup-profile-primary-btn { + flex: 1; + height: 52px; + --background: #6d28d9; + --background-activated: #5b21b6; + --border-radius: 999px; + --box-shadow: none; + --color: #ffffff; + font-size: 15px; + font-weight: 700; +} diff --git a/src/styles/home.css b/src/styles/home.css new file mode 100644 index 0000000..b659d64 --- /dev/null +++ b/src/styles/home.css @@ -0,0 +1,1181 @@ +.home-shell { + padding: calc(var(--ion-safe-area-top, 0px) + 12px) 0 + calc(140px + var(--ion-safe-area-bottom, 0px)); + background: linear-gradient(180deg, #fcfbff 0%, #f2edf8 44%, #fbfbfc 100%); + min-height: 100%; +} + +.home-topline, +.home-header-actions-row, +.home-section-row, +.home-action-grid, +.home-activity-card { + margin-left: 20px; + margin-right: 20px; +} + +.home-topline { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; +} + +.home-topline-left { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} + +.home-main-avatar-wrap { + width: 52px; + height: 52px; + border-radius: 999px; + overflow: hidden; + background: #eadff8; + flex-shrink: 0; +} + +.home-main-avatar, +.home-person-avatar { + width: 100%; + height: 100%; + object-fit: cover; +} + +.home-greeting-block { + min-width: 0; +} + +.home-greeting { + margin: 0; + color: #151624; + font-size: 20px; + line-height: 1.02; + font-weight: 800; + letter-spacing: -0.045em; +} + +.home-notification-card { + width: 50px; + height: 50px; + border: none; + border-radius: 18px; + background: rgba(255, 255, 255, 0.94); + color: #171827; + display: flex; + align-items: center; + justify-content: center; + position: relative; + font-size: 23px; + flex-shrink: 0; + box-shadow: 0 12px 28px rgba(92, 63, 134, 0.07); +} + +.home-notification-card ion-icon { + transform: translateY(1px); + --ionicon-stroke-width: 34px; +} + +.home-dot { + position: absolute; + top: 9px; + right: 9px; + width: 9px; + height: 9px; + border-radius: 999px; + background: #7c3aed; + box-shadow: 0 0 0 3px #ffffff; +} + +.home-header-actions-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-top: 6px; + margin-left: 84px; + margin-right: 20px; +} + +.home-tagline-wrap { + flex: 1; + min-width: 0; + display: flex; + align-items: center; +} + +.home-subcopy { + margin: 0; + color: rgba(21, 22, 36, 0.56); + font-size: 13px; + line-height: 1.16; + font-weight: 700; + letter-spacing: -0.015em; + max-width: 134px; +} + +.home-month-pill { + min-width: 142px; + max-width: 154px; + min-height: 46px; + border-radius: 999px; + background: rgba(255, 255, 255, 0.92); + display: flex; + align-items: center; + justify-content: center; + gap: 9px; + padding: 6px 12px 6px 8px; + box-shadow: 0 12px 28px rgba(92, 63, 134, 0.07); + flex-shrink: 0; +} + +.home-month-icon { + width: 31px; + height: 31px; + border-radius: 999px; + background: #f1e7fb; + color: #8b3ff2; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + flex-shrink: 0; +} + +.home-month-copy { + min-width: 0; + transform: translateY(1px); +} + +.home-month-label { + margin: 0 0 1px; + color: rgba(21, 22, 36, 0.42); + font-size: 9px; + line-height: 1.02; + font-weight: 600; +} + +.home-month-value { + margin: 0; + color: #6d28d9; + font-size: 13px; + line-height: 1.06; + font-weight: 800; +} + +.home-section-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-top: 20px; + margin-bottom: 8px; +} + +.home-section-row-spaced { + margin-top: 18px; +} + +.home-section-heading { + margin: 0; + color: #171827; + font-size: 20px; + line-height: 1.15; + font-weight: 800; + letter-spacing: -0.035em; +} + +.home-section-link { + border: none; + background: transparent; + padding: 0; + color: #6d28d9; + font-size: 14px; + line-height: 1.2; + font-weight: 700; +} + +.home-loved-ones-scroll { + display: flex; + gap: 12px; + overflow-x: auto; + padding: 0 20px 4px; + scroll-snap-type: x mandatory; + -webkit-overflow-scrolling: touch; +} + +.home-loved-ones-scroll::-webkit-scrollbar { + display: none; +} + +.home-person-card { + width: 264px; + min-width: 264px; + border-radius: 24px; + padding: 13px; + display: flex; + flex-direction: column; + gap: 10px; + scroll-snap-align: start; +} + +.home-person-card-lavender { + background: #f6effb; +} + +.home-person-card-mint { + background: #edf7ef; +} + +.home-person-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 10px; +} + +.home-person-meta { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} + +.home-person-avatar-shell { + width: 54px; + height: 54px; + border-radius: 999px; + overflow: hidden; + background: #eadff8; + color: #6d28d9; + position: relative; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; +} + +.home-person-initial { + color: currentColor; + font-size: 20px; + line-height: 1; + font-weight: 800; +} + +.home-person-online { + position: absolute; + right: 1px; + bottom: 2px; + width: 11px; + height: 11px; + border-radius: 999px; + border: 2px solid #ffffff; + background: #16a34a; +} + +.home-person-name { + margin: 0 0 3px; + color: #171827; + font-size: 15px; + line-height: 1.12; + font-weight: 800; +} + +.home-person-location { + margin: 0; + color: rgba(23, 24, 39, 0.52); + font-size: 12px; + line-height: 1.18; + font-weight: 500; +} + +.home-card-menu { + width: 30px; + height: 30px; + border: none; + border-radius: 12px; + background: transparent; + color: rgba(23, 24, 39, 0.62); + display: flex; + align-items: center; + justify-content: center; + font-size: 18px; + flex-shrink: 0; +} + +.home-status-stack { + display: flex; + flex-direction: column; + gap: 8px; + min-height: 160px; +} + +.home-status-row { + display: flex; + align-items: center; + gap: 10px; + min-height: 48px; + background: rgba(255, 255, 255, 0.46); + border-radius: 12px; + padding: 8px 10px; +} + +.home-status-empty-row { + min-height: 156px; + border-radius: 12px; + background: rgba(255, 255, 255, 0.46); + color: rgba(23, 24, 39, 0.52); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 8px; + font-size: 12px; + line-height: 1.2; + font-weight: 700; + text-align: center; +} + +.home-status-empty-row ion-icon { + font-size: 22px; + color: rgba(109, 40, 217, 0.42); +} + +.home-person-card-mint .home-status-row { + background: rgba(255, 255, 255, 0.46); +} + +.home-status-icon, +.home-action-icon, +.home-alert-icon, +.home-activity-icon { + width: 34px; + height: 34px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 18px; + flex-shrink: 0; +} + +.home-status-icon ion-icon, +.home-action-icon ion-icon, +.home-alert-icon ion-icon, +.home-activity-icon ion-icon { + --ionicon-stroke-width: 42px; +} + +.home-custom-icon { + width: 24px; + height: 24px; + object-fit: contain; + display: block; + flex-shrink: 0; +} + +.home-custom-icon.is-basket { + width: 32px; + height: 32px; +} + +.home-custom-icon.is-pill { + width: 34px; + height: 34px; +} + +.home-status-copy { + flex: 1; + min-width: 0; +} + +.home-status-label { + margin: 0 0 2px; + color: #171827; + font-size: 13px; + line-height: 1.12; + font-weight: 800; +} + +.home-status-detail { + margin: 0; + font-size: 10.5px; + line-height: 1.12; + font-weight: 600; +} + +.home-status-detail.is-success, +.home-status-trailing.is-success { + color: #16a34a; +} + +.home-status-detail.is-warning, +.home-status-trailing.is-warning { + color: #d99a12; +} + +.home-status-trailing { + font-size: 18px; + flex-shrink: 0; +} + +.home-send-button { + width: 100%; + min-height: 48px; + border: none; + border-radius: 999px; + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + padding: 0 18px; + font-size: 14px; + font-weight: 800; + margin-top: 4px; +} + +.home-send-button.home-tone-grocery { + background: #6d28d9; + color: #ffffff; +} + +.home-send-button.home-tone-grocery .home-send-button-icon { + color: #6d28d9; +} + +.home-send-button.home-tone-medication { + background: #16a34a; + color: #ffffff; +} + +.home-send-button.home-tone-medication .home-send-button-icon { + color: #16a34a; +} + +.home-send-button.home-tone-airtime { + background: #2563eb; + color: #ffffff; +} + +.home-send-button.home-tone-airtime .home-send-button-icon { + color: #2563eb; +} + +.home-send-button.home-tone-electricity { + background: #d97706; + color: #ffffff; +} + +.home-send-button.home-tone-electricity .home-send-button-icon { + color: #d97706; +} + +.home-send-button-icon { + width: 28px; + height: 28px; + border-radius: 999px; + background: #ffffff; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.home-send-button-icon ion-icon { + font-size: 18px; + --ionicon-stroke-width: 42px; +} + +.home-send-button-icon .home-custom-icon.is-basket { + width: 40.32px; + height: 40.32px; +} + +.home-carousel-indicator { + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + margin-top: 10px; +} + +.home-dot-active { + width: 18px; + height: 6px; + border-radius: 999px; + background: #6d28d9; +} + +.home-dot-inactive { + width: 6px; + height: 6px; + border-radius: 999px; + background: rgba(109, 40, 217, 0.18); +} + +.home-action-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.home-action-card { + min-height: 84px; + border: none; + border-radius: 24px; + background: rgba(255, 255, 255, 0.94); + padding: 14px; + display: flex; + align-items: center; + gap: 12px; + text-align: left; + box-shadow: none; +} + +.home-action-card .home-action-icon { + width: 42px; + height: 42px; + border-radius: 12px; + font-size: 22px; +} + +.home-action-card .home-action-icon ion-icon { + --ionicon-stroke-width: 38px; +} + +.home-action-card .home-action-icon .home-custom-icon.is-basket { + width: 30px; + height: 30px; +} + +.home-action-text-block { + display: flex; + flex-direction: column; + gap: 4px; + min-width: 0; +} + +.home-action-label { + color: #171827; + font-size: 15px; + line-height: 1.2; + font-weight: 800; +} + +.home-action-helper { + color: rgba(23, 24, 39, 0.56); + font-size: 11px; + line-height: 1.3; + font-weight: 600; +} + +.home-alert-marquee { + position: relative; + overflow-x: auto; + overflow-y: hidden; + padding: 0 0 4px; + -webkit-overflow-scrolling: touch; + scroll-snap-type: x mandatory; + scrollbar-width: none; + cursor: grab; + overscroll-behavior-x: contain; +} + +.home-alert-marquee::-webkit-scrollbar { + display: none; +} + +.home-alert-marquee:active { + cursor: grabbing; +} + +.home-alert-marquee-track { + display: flex; + gap: 12px; + width: max-content; + padding: 0 20px; + animation: home-alert-marquee-scroll 24s linear infinite; + will-change: transform; +} + +.home-alert-marquee:hover .home-alert-marquee-track, +.home-alert-marquee:active .home-alert-marquee-track, +.home-alert-marquee:focus-within .home-alert-marquee-track { + animation-play-state: paused; +} + +.home-alert-overlay-state, +.home-alert-overlay-note { + position: absolute; + inset: 0; + display: flex; + align-items: center; + padding: 0 20px 4px; + pointer-events: none; +} + +.home-alert-overlay-note { + justify-content: flex-start; +} + +@keyframes home-alert-marquee-scroll { + from { + transform: translateX(0); + } + to { + transform: translateX(calc(-50% - 6px)); + } +} + +@media (prefers-reduced-motion: reduce) { + .home-alert-marquee-track { + animation: none; + } +} + +.home-alert-card { + width: 215px; + min-width: 215px; + min-height: 94px; + border: none; + border-radius: 24px; + background: #ffffff; + padding: 14px 12px; + display: flex; + align-items: center; + gap: 10px; + text-align: left; + scroll-snap-align: start; + box-shadow: none; + transition: transform 0.18s ease; + flex-shrink: 0; +} + +.home-alert-content { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; +} + +.home-alert-title { + color: #171827; + font-size: 14px; + line-height: 1.16; + font-weight: 800; + margin-bottom: 4px; +} + +.home-alert-subtitle { + color: rgba(23, 24, 39, 0.6); + font-size: 10.5px; + line-height: 1.22; + font-weight: 600; +} + +.home-alert-chevron-chip { + width: 34px; + height: 34px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + font-size: 16px; +} + +.home-alert-chevron-chip ion-icon { + --ionicon-stroke-width: 48px; +} + +.home-alert-card:active { + transform: scale(0.985); +} + +.home-alert-preview-note { + min-width: fit-content; + align-self: center; + border-radius: 999px; + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; + padding: 7px 12px; + font-size: 11px; + font-weight: 800; + flex-shrink: 0; +} + +.home-alert-error { + min-width: fit-content; + align-self: center; + margin: 0; + border-radius: 999px; + background: rgba(220, 38, 38, 0.1); + color: #dc2626; + padding: 7px 12px; + font-size: 11px; + font-weight: 800; + flex-shrink: 0; +} + +.home-alert-skeleton .home-alert-icon, +.home-alert-skeleton-title, +.home-alert-skeleton-subtitle, +.home-alert-skeleton-cta { + background: #eee8f6; +} + +.home-alert-skeleton-title, +.home-alert-skeleton-subtitle, +.home-alert-skeleton-cta { + display: block; + border-radius: 12px; +} + +.home-alert-skeleton-title { + width: 118px; + height: 13px; + margin-bottom: 6px; +} + +.home-alert-skeleton-subtitle { + width: 86px; + height: 11px; + margin-bottom: 9px; +} + +.home-alert-skeleton-cta { + width: 72px; + height: 21px; + border-radius: 999px; +} + +.home-tone-grocery { + background: rgba(109, 40, 217, 0.12); + color: #6d28d9; +} +.home-alert-cta.home-tone-grocery { + background: rgba(109, 40, 217, 0.12); +} + +.home-tone-medication { + background: rgba(22, 163, 74, 0.12); + color: #16a34a; +} +.home-alert-cta.home-tone-medication { + background: rgba(22, 163, 74, 0.12); +} + +.home-tone-airtime { + background: rgba(59, 130, 246, 0.12); + color: #2563eb; +} +.home-alert-cta.home-tone-airtime { + background: rgba(59, 130, 246, 0.12); +} + +.home-tone-electricity { + background: rgba(245, 158, 11, 0.14); + color: #d97706; +} +.home-alert-cta.home-tone-electricity { + background: rgba(245, 158, 11, 0.14); +} + +.home-tone-default { + background: #f4f4f5; + color: #52525b; +} +.home-alert-cta.home-tone-default { + background: rgba(82, 82, 91, 0.12); +} + +.home-empty-alerts { + background: #ffffff; + border-radius: 24px; + padding: 24px 20px; + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + box-shadow: 0 4px 12px rgba(23, 24, 39, 0.03); +} + +.home-empty-alerts-icon { + width: 48px; + height: 48px; + border-radius: 24px; + background: #f3ebff; + color: #6d28d9; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 12px; +} +.home-empty-alerts-icon ion-icon { + font-size: 24px; +} + +.home-empty-alerts-msg { + font-size: 16px; + font-weight: 700; + color: #171827; + margin: 0 0 4px; +} + +.home-empty-alerts-helper { + font-size: 13px; + color: rgba(23, 24, 39, 0.6); + margin: 0 0 16px; + line-height: 1.4; + max-width: 220px; +} + +.home-empty-alerts-cta { + background: #6d28d9; + color: #ffffff; + font-size: 14px; + font-weight: 600; + padding: 10px 20px; + border-radius: 999px; + border: none; +} + +.home-alert-chevron, +.home-activity-chevron { + color: rgba(23, 24, 39, 0.32); + font-size: 16px; + flex-shrink: 0; +} + +.home-activity-card { + background: rgba(255, 255, 255, 0.94); + border-radius: 24px; + padding: 4px 0; +} + +.home-activity-row { + display: flex; + align-items: flex-start; + gap: 14px; + padding: 13px 14px; + position: relative; +} + +.home-activity-row::after { + content: ''; + position: absolute; + left: 14px; + right: 14px; + bottom: 0; + height: 1px; + background: rgba(23, 24, 39, 0.06); +} + +.home-activity-row-button { + width: 100%; + border: none; + background: transparent; + text-align: left; +} + +.home-activity-row.is-last { + padding-bottom: 15px; +} + +.home-activity-row.is-last::after { + display: none; +} + +.home-activity-avatar-shell { + position: relative; + width: 53px; + height: 53px; + border-radius: 999px; + flex-shrink: 0; +} + +.home-activity-avatar { + width: 100%; + height: 100%; + border-radius: 999px; + object-fit: cover; + background: #eadff8; +} + +.home-activity-avatar-fallback { + color: #6d28d9; + display: flex; + align-items: center; + justify-content: center; + font-size: 18px; + line-height: 1; + font-weight: 800; +} + +.home-activity-avatar-badge { + position: absolute; + bottom: -5px; + right: -5px; + width: 30px; + height: 30px; + border-radius: 999px; + display: flex; + align-items: center; + justify-content: center; + border: 2px solid #ffffff; + box-shadow: 0 6px 14px rgba(23, 24, 39, 0.12); +} + +.home-activity-avatar-badge.home-tone-grocery { + background: #f1e7fb; + color: #6d28d9; +} + +.home-activity-avatar-badge.home-tone-medication { + background: #e8f7ee; + color: #16a34a; +} + +.home-activity-avatar-badge.home-tone-airtime { + background: #eaf3ff; + color: #3b82f6; +} + +.home-activity-avatar-badge.home-tone-electricity { + background: #fff2df; + color: #d97706; +} + +.home-activity-avatar-badge .home-custom-icon { + width: 12px; + height: 12px; +} + +.home-activity-avatar-badge .home-custom-icon.is-basket { + width: 22px; + height: 22px; +} + +.home-activity-avatar-badge .home-custom-icon.is-pill { + width: 15px; + height: 15px; +} + +.home-activity-avatar-badge ion-icon { + font-size: 13px; + --ionicon-stroke-width: 48px; +} + +.home-activity-copy { + flex: 1; + min-width: 0; +} + +.home-activity-head-row { + display: grid; + grid-template-columns: minmax(128px, 1fr) auto; + align-items: flex-start; + gap: 10px; +} + +.home-activity-text-block { + min-width: 0; +} + +.home-activity-title { + margin: 0 0 3px; + color: #171827; + font-size: 14px; + line-height: 1.2; + font-weight: 800; + white-space: nowrap; +} + +.home-activity-subtitle, +.home-activity-meta { + margin: 0; + color: rgba(23, 24, 39, 0.54); + font-size: 12px; + line-height: 1.35; + font-weight: 600; +} + +.home-activity-meta { + margin-top: 2px; +} + +.home-activity-right { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 6px; + flex-shrink: 0; + min-width: 92px; +} + +.home-activity-amount { + margin: 0; + color: #171827; + font-size: 14px; + line-height: 1.1; + font-weight: 700; +} + +.home-activity-badge { + width: fit-content; + min-height: 24px; + border-radius: 999px; + padding: 0 10px; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 12px; + font-weight: 800; + text-transform: capitalize; +} + +.home-activity-breakdown { + display: flex; + flex-direction: column; + gap: 6px; + margin-top: 8px; +} + +.home-activity-breakdown-summary { + display: flex; + flex-wrap: wrap; + gap: 6px; +} + +.home-activity-breakdown-pill { + min-height: 24px; + border-radius: 999px; + padding: 0 10px; + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 12px; + font-weight: 700; +} + +.home-activity-breakdown-pill.is-redeemed { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.home-activity-breakdown-pill.is-remaining { + background: rgba(245, 158, 11, 0.12); + color: #d97706; +} + +.home-activity-usage-note { + width: 100%; + margin: 0; + color: rgba(23, 24, 39, 0.56); + font-size: 11px; + line-height: 1.4; + font-weight: 500; +} + +.home-activity-dot { + width: 6px; + height: 6px; + border-radius: 999px; +} + +.home-activity-badge ion-icon { + font-size: 12px; + flex-shrink: 0; +} + +.home-badge-success { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.home-badge-info { + background: rgba(59, 130, 246, 0.1); + color: #3b82f6; +} + +.home-badge-warning { + background: rgba(245, 158, 11, 0.1); + color: #d97706; +} + +.home-badge-info { + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; +} + +.home-badge-partial { + background: rgba(245, 158, 11, 0.14); + color: #b45309; +} + +.home-badge-default { + background: rgba(23, 24, 39, 0.05); + color: rgba(23, 24, 39, 0.6); +} + +.home-tone-brand, +.home-tone-grocery { + background: rgba(109, 40, 217, 0.12); + color: #6d28d9; +} + +.home-tone-rose, +.home-tone-medication, +.home-tone-success, +.home-tone-mint { + background: rgba(22, 163, 74, 0.12); + color: #16a34a; +} + +.home-tone-blue, +.home-tone-airtime { + background: rgba(59, 130, 246, 0.12); + color: #2563eb; +} + +.home-tone-amber, +.home-tone-warning, +.home-tone-gold, +.home-tone-electricity { + background: rgba(245, 158, 11, 0.14); + color: #d97706; +} + +@media (max-width: 380px) { + .home-header-actions-row { + margin-left: 78px; + gap: 8px; + } + + .home-subcopy { + max-width: 118px; + font-size: 12px; + } + + .home-month-pill { + min-width: 136px; + max-width: 146px; + } + + .home-person-card { + width: 264px; + min-width: 264px; + } + + .home-action-card { + min-height: 70px; + padding: 10px 12px; + } + + .home-action-label { + font-size: 14px; + } +} diff --git a/src/styles/profile.css b/src/styles/profile.css new file mode 100644 index 0000000..df64544 --- /dev/null +++ b/src/styles/profile.css @@ -0,0 +1,349 @@ +/* Profile Tab */ +.profile-shell { + padding-bottom: calc(130px + var(--ion-safe-area-bottom, 0px)); +} + +.profile-page-title { + font-size: 28px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0 20px 16px; +} + +.profile-summary-card { + background: #ffffff; + border-radius: 24px; + padding: 20px; + margin: 0 20px 12px; + display: flex; + align-items: center; + gap: 16px; +} + +.psc-avatar-shell { + width: 72px; + height: 72px; + border-radius: 24px; + background: rgba(109, 40, 217, 0.08); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.psc-avatar { + width: 72px; + height: 72px; + border-radius: 24px; + object-fit: cover; +} + +.psc-avatar-placeholder { + width: 72px; + height: 72px; + border-radius: 24px; + background: rgba(109, 40, 217, 0.1); + display: flex; + align-items: center; + justify-content: center; + color: var(--ion-color-primary); + font-size: 28px; + font-weight: 700; +} + +.psc-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 2px; + min-width: 0; +} + +.psc-name { + font-size: 22px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0 0 2px; +} + +.psc-location { + font-size: 14px; + font-weight: 500; + color: var(--ion-color-medium); + margin: 0; +} + +.psc-edit-btn { + --background: #fafafa; + --color: var(--ion-color-dark); + --border-radius: 12px; + --box-shadow: none; + width: 44px; + height: 44px; + margin: 0; + flex-shrink: 0; +} + +.profile-quick-actions-card { + background: #ffffff; + border-radius: 24px; + padding: 8px 0; + margin: 0 20px 24px; +} + +.profile-quick-action { + width: 100%; + border: none; + background: transparent; + display: flex; + align-items: center; + gap: 12px; + padding: 14px 16px; + text-align: left; + cursor: pointer; +} + +.profile-quick-action + .profile-quick-action { + border-top: 1px solid rgba(17, 24, 39, 0.06); +} + +.profile-quick-action-icon { + width: 40px; + height: 40px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 18px; + flex-shrink: 0; +} + +.profile-quick-action-icon--accent { + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; +} + +.profile-quick-action-icon--soft { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.profile-quick-action-copy { + display: flex; + flex-direction: column; + gap: 3px; + min-width: 0; +} + +.profile-quick-action-title { + font-size: 15px; + font-weight: 600; + color: #111827; +} + +.profile-quick-action-subtitle { + font-size: 13px; + color: rgba(17, 24, 39, 0.6); +} + +/* Settings Cards */ +.settings-section-title { + font-size: 14px; + font-weight: 700; + color: rgba(17, 24, 39, 0.48); + margin: 0 20px 8px; + text-transform: uppercase; + letter-spacing: 0.08em; +} + +.settings-card { + background: #ffffff; + border-radius: 24px; + padding: 8px 0; + margin: 0 20px 20px; +} + +.profile-footer-mark { + margin: 8px 20px 0; + padding: 12px 20px calc(8px + var(--ion-safe-area-bottom, 0px)); + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + text-align: center; +} + +.profile-footer-logo { + width: 48px; + height: 48px; + border-radius: 16px; + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; + display: flex; + align-items: center; + justify-content: center; + font-size: 22px; + font-weight: 700; +} + +.profile-footer-name { + margin: 0; + font-size: 15px; + font-weight: 700; + color: #111827; +} + +.profile-footer-meta { + margin: 0; + font-size: 12px; + font-weight: 500; + color: rgba(17, 24, 39, 0.48); +} + +.profile-footer-copyright { + margin: 2px 0 0; + font-size: 11px; + font-weight: 500; + color: rgba(17, 24, 39, 0.4); +} + +.profile-inline-note { + margin: 0 16px 10px; + padding: 12px; + border-radius: 12px; + background: rgba(109, 40, 217, 0.06); + display: flex; + align-items: flex-start; + gap: 12px; +} + +.profile-inline-note-icon { + width: 32px; + height: 32px; + border-radius: 12px; + background: rgba(109, 40, 217, 0.12); + color: #6d28d9; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + flex-shrink: 0; +} + +.profile-inline-note-title { + font-size: 14px; + font-weight: 600; + color: #111827; + margin: 0 0 2px; +} + +.profile-inline-note-text { + font-size: 13px; + line-height: 1.45; + color: rgba(17, 24, 39, 0.6); + margin: 0; +} + +.settings-row { + display: flex; + align-items: center; + min-height: 56px; + padding: 8px 16px; + gap: 12px; +} + +.sr-icon-box { + width: 36px; + height: 36px; + border-radius: 12px; + background: #fafafa; + display: flex; + align-items: center; + justify-content: center; + font-size: 18px; + color: var(--ion-color-primary); +} + +.sr-icon-box.danger { + color: var(--ion-color-danger); + background: rgba(220, 38, 38, 0.08); +} + +.sr-label { + flex: 1; + font-size: 15px; + font-weight: 600; + color: var(--ion-color-dark); +} + +.sr-label.danger { + color: var(--ion-color-danger); +} + +.sr-toggle { + --handle-background: #ffffff; + --handle-background-checked: #ffffff; + --track-background: #e5e7eb; + --track-background-checked: var(--ion-color-primary); + padding: 0; +} + +/* Edit Profile */ +.edit-profile-card { + background: #ffffff; + border-radius: 24px; + padding: 20px; + margin: 20px; + display: flex; + flex-direction: column; + gap: 14px; +} + +.profile-back-button { + --color: var(--profile-action-accent, var(--color-brand)); + --background: transparent; + --background-activated: transparent; + --border-radius: 12px; + --box-shadow: none; + width: 44px; + height: 44px; + margin-left: 8px; +} + +.profile-back-button ion-icon { + color: var(--profile-action-accent, var(--color-brand)); + font-size: 24px; +} + +.edit-profile-shell { + padding-bottom: calc(32px + var(--ion-safe-area-bottom, 0px)); +} + +.epc-field { + --background: #fafafa; + --color: #111827; + --placeholder-color: rgba(17, 24, 39, 0.38); + --placeholder-opacity: 1; + --highlight-color-focused: #6d28d9; + --border-radius: 12px; + --padding-start: 16px; + --padding-end: 16px; + color: #111827; +} + +.epc-field::part(label) { + color: rgba(17, 24, 39, 0.62); +} + +.epc-field.ion-focused::part(label) { + color: #6d28d9; +} + +.epc-save-btn { + --background: var(--ion-color-primary); + --border-radius: 999px; + font-size: 15px; + font-weight: 700; + margin: 0 20px 20px; + height: 52px; +} diff --git a/src/styles/recipients.css b/src/styles/recipients.css new file mode 100644 index 0000000..729815a --- /dev/null +++ b/src/styles/recipients.css @@ -0,0 +1,1067 @@ +/* Recipients List */ +.recipients-top-row { + display: flex; + align-items: center; + justify-content: space-between; + margin: 0 20px; +} + +.recipients-page-title { + font-size: 28px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0; +} + +.recipient-detail-toolbar-title::part(title) { + color: #171827 !important; +} + +.recipient-detail-toolbar-title { + color: #171827 !important; +} + +.recipients-add-btn { + --background: rgba(109, 40, 217, 0.1); + --color: var(--ion-color-primary); + --border-radius: 999px; + --box-shadow: none; + --padding-start: 16px; + --padding-end: 16px; + font-size: 14px; + font-weight: 700; + height: 40px; + margin: 0; +} + +/* Back Button Consistency */ +.recipients-back-button { + --color: var(--recipient-action-accent, var(--color-brand)); + --background: transparent; + --background-activated: transparent; + --border-radius: 12px; + --box-shadow: none; + width: 44px; + height: 44px; + margin-left: 8px; +} + +.recipients-back-button ion-icon { + color: var(--recipient-action-accent, var(--color-brand)); + font-size: 24px; +} + +.recipients-shell { + padding-bottom: calc(130px + var(--ion-safe-area-bottom, 0px)); +} + +.search-row { + margin: 0 20px 12px; +} + +.search-input-container { + background: #ffffff; + border-radius: 12px; + display: flex; + align-items: center; + padding: 0 16px; + height: 48px; +} + +.search-icon { + font-size: 20px; + color: var(--ion-color-medium); + margin-right: 12px; +} + +.search-input { + --padding-start: 0; + --padding-end: 0; + --placeholder-color: var(--ion-color-medium); + --placeholder-opacity: 1; + font-size: 15px; + color: var(--ion-color-dark); +} + +.recipient-list-card { + background: #ffffff; + border-radius: 24px; + padding: 16px; + margin: 0 20px 12px; + display: flex; + align-items: center; + gap: 16px; +} + +.rlc-avatar { + width: 52px; + height: 52px; + border-radius: 16px; + object-fit: cover; +} + +.rlc-avatar-placeholder { + width: 52px; + height: 52px; + border-radius: 16px; + background: rgba(109, 40, 217, 0.1); + display: flex; + align-items: center; + justify-content: center; + color: var(--ion-color-primary); + font-size: 20px; + font-weight: 700; +} + +.rlc-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 2px; +} + +.rlc-name-row { + display: flex; + align-items: center; + gap: 8px; +} + +.rlc-name { + font-size: 16px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0; +} + +.rlc-relationship { + font-size: 13px; + font-weight: 600; + color: var(--ion-color-primary); + background: rgba(109, 40, 217, 0.1); + padding: 2px 8px; + border-radius: 12px; +} + +.rlc-location { + font-size: 13px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0; +} + +.rlc-activity { + font-size: 12px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 2px 0 0; +} + +.rlc-chevron { + font-size: 18px; + color: #9ca3af; +} + +.empty-state-card { + background: #ffffff; + border-radius: 24px; + padding: 28px; + margin: 0 20px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; +} + +.esc-icon { + font-size: 44px; + color: var(--ion-color-primary); + margin-bottom: 16px; +} + +.esc-title { + font-size: 16px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0 0 8px; +} + +.esc-msg { + font-size: 14px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0 0 20px; +} + +/* Recipient Detail */ +.recipient-summary-card { + margin: 20px; + background: #ffffff; + border-radius: 24px; + padding: 20px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + gap: 16px; +} + +.rsc-avatar { + width: 80px; + height: 80px; + border-radius: 24px; + object-fit: cover; +} + +.rsc-avatar-placeholder { + width: 80px; + height: 80px; + border-radius: 24px; + background: rgba(109, 40, 217, 0.1); + display: flex; + align-items: center; + justify-content: center; + color: var(--ion-color-primary); + font-size: 32px; + font-weight: 700; +} + +.rsc-info { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; +} + +.rsc-name { + font-size: 22px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0; +} + +.rsc-relationship { + font-size: 14px; + font-weight: 600; + color: var(--ion-color-primary); + margin: 0; +} + +.rsc-location { + font-size: 14px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0; +} + +.rsc-stats-row { + display: flex; + gap: 12px; + width: 100%; +} + +.rsc-stat-box { + flex: 1; + background: #fafafa; + border-radius: 12px; + padding: 12px; + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; +} + +.rsc-stat-val { + font-size: 16px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0; +} + +.rsc-stat-label { + font-size: 12px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0; +} + +.rsc-cta-btn { + --background: var(--ion-color-primary); + --border-radius: 999px; + font-size: 15px; + font-weight: 700; + width: 100%; + height: 52px; + margin: 8px 0 0; +} + +.detail-section-header { + margin: 24px 20px 12px; + font-size: 16px; + font-weight: 700; + color: var(--ion-color-dark); +} + +.detail-section-header-with-meta { + display: flex; + align-items: flex-end; + justify-content: space-between; +} + +.detail-section-header-with-meta h2 { + margin: 0; + font-size: 16px; + font-weight: 700; + color: var(--ion-color-dark); +} + +.detail-section-header-with-meta p { + margin: 4px 0 0; + font-size: 13px; + color: var(--ion-color-medium); + font-weight: 400; +} + +.recipient-history-date-label { + font-size: 11px; + font-weight: 700; + color: rgba(23, 24, 39, 0.45); + text-transform: uppercase; + letter-spacing: 0.06em; + margin-top: 6px; + margin-bottom: -2px; + margin-left: 4px; +} + +.recipient-history-stack { + margin: 0 20px 20px; + display: flex; + flex-direction: column; + gap: 12px; +} + +.recipient-history-item { + width: 100%; + border: none; + background: #ffffff; + border-radius: 24px; + padding: 14px; + display: flex; + align-items: flex-start; + gap: 12px; + text-align: left; +} + +.recipient-history-item.service-grocery, +.recipient-alert-card.service-grocery { + background: rgba(109, 40, 217, 0.05); +} + +.recipient-history-item.service-medication, +.recipient-alert-card.service-medication { + background: rgba(22, 163, 74, 0.06); +} + +.recipient-history-item.service-electricity, +.recipient-alert-card.service-electricity { + background: rgba(245, 158, 11, 0.08); +} + +.recipient-history-item.service-airtime, +.recipient-alert-card.service-airtime { + background: rgba(249, 115, 22, 0.08); +} + +.recipient-history-badge { + width: 40px; + height: 40px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.recipient-history-badge ion-icon { + font-size: 18px; +} + +.recipient-history-badge.service-grocery, +.recipient-alert-icon-wrap.service-grocery { + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; +} + +.recipient-history-badge.service-medication, +.recipient-alert-icon-wrap.service-medication { + background: rgba(22, 163, 74, 0.14); + color: #16a34a; +} + +.recipient-history-badge.service-electricity, +.recipient-alert-icon-wrap.service-electricity { + background: rgba(245, 158, 11, 0.16); + color: #d97706; +} + +.recipient-history-badge.service-airtime, +.recipient-alert-icon-wrap.service-airtime { + background: rgba(249, 115, 22, 0.14); + color: #ea580c; +} + +.recipient-history-badge.service-default, +.recipient-alert-icon-wrap.service-default { + background: rgba(148, 163, 184, 0.14); + color: #64748b; +} + +.recipient-history-copy { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + gap: 6px; +} + +.recipient-history-topline { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 10px; +} + +.recipient-history-title-block { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + gap: 2px; +} + +.recipient-history-topline h3 { + margin: 0; + font-size: 15px; + font-weight: 700; + color: var(--ion-color-dark); +} + +.recipient-history-support-meta { + margin: 0; + font-size: 12px; + line-height: 1.25; + color: rgba(23, 24, 39, 0.56); +} + +.recipient-history-amount { + flex-shrink: 0; + font-size: 14px; + font-weight: 700; + color: var(--ion-color-primary); + font-variant-numeric: tabular-nums; +} + +.recipient-history-copy p { + margin: 0; + font-size: 13px; + line-height: 1.4; + color: var(--ion-color-medium); +} + +.recipient-history-meta-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; +} + +.recipient-history-meta-row-compact { + align-items: center; +} + +.recipient-history-status { + align-self: flex-start; + border-radius: 999px; + padding: 5px 9px; + font-size: 11px; + font-weight: 700; + text-transform: capitalize; +} + +.recipient-history-trailing { + font-size: 16px; + flex-shrink: 0; +} + +.recipient-history-description { + font-size: 12px; + line-height: 1.35; + color: rgba(23, 24, 39, 0.64); +} + +.recipient-history-status.status-created, +.recipient-alert-pill.status-created, +.recipient-history-trailing.status-created, +.recipient-history-status.status-pending, +.recipient-alert-pill.status-pending, +.recipient-history-trailing.status-pending { + background: rgba(245, 158, 11, 0.14); + color: #b45309; +} + +.recipient-history-status.status-redeemed, +.recipient-alert-pill.status-redeemed, +.recipient-history-trailing.status-redeemed, +.recipient-history-status.status-completed, +.recipient-alert-pill.status-completed, +.recipient-history-trailing.status-completed { + background: rgba(22, 163, 74, 0.14); + color: #16a34a; +} + +.recipient-history-status.status-partial, +.recipient-alert-pill.status-partial, +.recipient-history-trailing.status-partial { + background: rgba(109, 40, 217, 0.12); + color: #6d28d9; +} + +.recipient-history-status.status-default, +.recipient-alert-pill.status-default, +.recipient-history-trailing.status-default { + background: rgba(148, 163, 184, 0.14); + color: #64748b; +} + +.recipient-alerts-stack { + margin: 0 20px 8px; + display: flex; + flex-direction: column; + gap: 12px; +} + +.recipient-alert-card { + background: #ffffff; + border-radius: 24px; + padding: 16px; + display: flex; + align-items: flex-start; + gap: 14px; +} + +.recipient-alert-icon-wrap { + width: 44px; + height: 44px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.recipient-alert-icon-wrap ion-icon { + font-size: 20px; +} + +.recipient-alert-icon-wrap.service-medication ion-icon { + font-size: 22px; +} + +.recipient-alert-copy { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + gap: 6px; +} + +.recipient-alert-topline { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 10px; +} + +.recipient-alert-topline h3 { + margin: 0; + font-size: 15px; + font-weight: 700; + color: var(--ion-color-dark); +} + +.recipient-alert-copy p { + margin: 0; + font-size: 13px; + line-height: 1.45; + color: var(--ion-color-medium); +} + +.recipient-alert-pill { + flex-shrink: 0; + border-radius: 999px; + padding: 6px 10px; + font-size: 11px; + font-weight: 700; +} + +.recipient-empty-inline-card { + margin: 0 20px 8px; + background: #ffffff; + border-radius: 24px; + padding: 16px; + display: flex; + align-items: center; + gap: 14px; +} + +.recipient-custom-basket-icon { + display: block; +} + +.recipient-empty-inline-icon { + width: 44px; + height: 44px; + border-radius: 12px; + background: rgba(109, 40, 217, 0.08); + color: var(--ion-color-primary); + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + flex-shrink: 0; +} + +.recipient-empty-inline-copy { + display: flex; + flex-direction: column; + gap: 4px; +} + +.recipient-empty-inline-copy h3 { + margin: 0; + font-size: 15px; + font-weight: 700; + color: var(--ion-color-dark); +} + +.recipient-empty-inline-copy p { + margin: 0; + font-size: 13px; + line-height: 1.4; + color: var(--ion-color-medium); +} + +/* Recipient Form */ +.recipient-form-card { + background: #ffffff; + border-radius: 24px; + padding: 16px; + margin: 12px 20px 14px; + display: flex; + flex-direction: column; + gap: 10px; +} + +.rf-photo-picker { + background: #f8f7fb; + border-radius: 24px; + padding: 14px 16px 12px; + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + position: relative; + overflow: hidden; +} + +.rf-photo-preview { + width: 64px; + height: 64px; + border-radius: 16px; + object-fit: cover; +} + +.rf-photo-placeholder { + width: 64px; + height: 64px; + border-radius: 16px; + background: rgba(109, 40, 217, 0.1); + display: flex; + align-items: center; + justify-content: center; + color: var(--ion-color-primary); + font-size: 24px; +} + +.rf-photo-label { + font-size: 13px; + font-weight: 600; + color: var(--ion-color-primary); +} + +.rf-photo-input { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; + cursor: pointer; +} + +.rf-input-shell { + min-height: 56px; + background: #f8f7fb; + border: 1.5px solid transparent; + border-radius: 12px; + padding: 8px 16px 7px; + display: flex; + flex-direction: column; + justify-content: center; + gap: 2px; + transition: + background 160ms ease, + border-color 160ms ease, + box-shadow 160ms ease; +} + +.rf-text-shell, +.rf-phone-shell { + width: 100%; + appearance: none; + border-color: transparent; + text-align: left; +} + +.rf-input-shell:focus-within { + background: #ffffff; + border-color: rgba(109, 40, 217, 0.42); + box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.1); +} + +.rf-field-label { + color: rgba(17, 24, 39, 0.62); + font-size: 12px; + font-weight: 650; + line-height: 1.1; + letter-spacing: 0; +} + +.rf-input-shell:focus-within .rf-field-label { + color: var(--ion-color-primary); +} + +.rf-field { + --background: transparent; + --padding-start: 0; + --padding-end: 0; + --padding-top: 0; + --padding-bottom: 0; + --color: #111827; + --placeholder-color: rgba(17, 24, 39, 0.34); + --placeholder-opacity: 1; + --highlight-color-focused: transparent; + --highlight-color-valid: transparent; + --highlight-color-invalid: transparent; + color: #111827; + font-size: 15px; + font-weight: 600; + min-height: 20px; + caret-color: var(--ion-color-primary); +} + +.rf-field::part(native) { + color: #111827; + font-size: 15px; + font-weight: 600; + line-height: 1.25; + padding: 0; + caret-color: var(--ion-color-primary); +} + +.rf-field input::placeholder { + color: rgba(17, 24, 39, 0.34); + font-weight: 400; +} + +.rf-phone-shell { + align-items: stretch; +} + +.rf-phone-row { + display: flex; + align-items: center; + gap: 14px; + min-width: 0; +} + +.rf-phone-prefix { + display: flex; + align-items: center; + gap: 7px; + min-width: 76px; + flex-shrink: 0; + color: #111827; + font-size: 15px; + font-weight: 600; +} + +.rf-phone-flag { + font-size: 17px; + line-height: 1; +} + +.rf-phone-code { + font-variant-numeric: tabular-nums; +} + +.rf-phone-field { + flex: 1; + min-width: 0; +} + +.rf-phone-hint { + font-size: 12px; + color: var(--ion-color-medium); + margin-top: -4px; +} + +.rf-actions { + margin: 0 20px 20px; + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; +} + +.rf-submit-btn { + --background: var(--ion-color-primary); + --border-radius: 999px; + font-size: 15px; + font-weight: 700; + margin: 0; + height: 52px; + width: 100%; +} + +/* Country Bottom Sheet */ +.rf-country-trigger { + width: 100%; + border: 1.5px solid transparent; + background: #f8f7fb; + border-radius: 12px; + padding: 8px 16px 7px; + display: flex; + flex-direction: column; + justify-content: center; + gap: 2px; + text-align: left; + min-height: 56px; + transition: + background 160ms ease, + border-color 160ms ease, + box-shadow 160ms ease; +} + +.rf-country-trigger:focus-visible { + background: #ffffff; + border-color: rgba(109, 40, 217, 0.42); + box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.1); + outline: none; +} + +.rf-country-trigger:disabled { + opacity: 0.6; +} + +.rf-country-label { + font-size: 12px; + font-weight: 650; + color: rgba(17, 24, 39, 0.62); + line-height: 1.1; + letter-spacing: 0; +} + +.rf-country-trigger:focus-visible .rf-country-label { + color: var(--ion-color-primary); +} + +.rf-country-value-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.rf-country-value { + font-size: 15px; + font-weight: 600; + color: #111827; + line-height: 1.25; +} + +.rf-country-value.is-placeholder { + color: rgba(17, 24, 39, 0.34); + font-weight: 400; +} + +.rf-country-chevron { + font-size: 17px; + color: rgba(17, 24, 39, 0.46); + transform: rotate(-90deg); + flex-shrink: 0; +} + +.country-sheet-modal { + --border-radius: 24px 24px 0 0; + --height: min(560px, 72vh); +} + +.country-sheet-modal::part(content) { + height: min(560px, 72vh); + max-height: calc(100vh - var(--ion-safe-area-top) - 24px); + overflow: hidden; +} + +.country-sheet-shell { + height: 100%; + min-height: 360px; + background: #ffffff; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.country-sheet-header { + min-height: 60px; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + padding: 8px 56px 6px; + position: relative; + background: #ffffff; +} + +.country-sheet-header h2 { + margin: 0; + font-size: 17px; + font-weight: 700; + color: var(--ion-color-dark); +} + +.country-sheet-close { + position: absolute; + right: 12px; + top: 8px; + width: 44px; + height: 44px; + --padding-start: 0; + --padding-end: 0; + --color: var(--ion-color-primary); + margin: 0; +} + +.country-sheet-scroll { + flex: 1; + min-height: 0; + overflow-y: scroll; + overscroll-behavior: contain; + -webkit-overflow-scrolling: touch; + background: #ffffff; + scrollbar-width: none; + -ms-overflow-style: none; + padding-bottom: calc(180px + var(--ion-safe-area-bottom)); +} + +.country-sheet-scroll::-webkit-scrollbar { + display: none; +} + +.country-sheet-list { + padding: 4px 20px 0; + background: transparent; +} + +.country-sheet-option { + width: 100%; + min-height: 52px; + border: none; + background: transparent; + text-align: left; + padding: 14px 0; + border-bottom: 1px solid rgba(17, 24, 39, 0.06); +} + +.country-sheet-option:last-child { + border-bottom: none; +} + +.country-sheet-option-text { + display: flex; + align-items: center; + gap: 8px; + color: var(--ion-color-primary); +} + +.country-sheet-flag { + font-size: 21px; + line-height: 1; + flex-shrink: 0; +} + +.country-sheet-name, +.country-sheet-code { + font-size: 15px; + line-height: 1.25; +} + +.country-sheet-option.is-selected .country-sheet-name, +.country-sheet-option.is-selected .country-sheet-code, +.location-sheet-option.is-selected .location-sheet-name { + font-weight: 700; +} + +.location-sheet-helper { + margin: 0 20px 8px; + padding: 12px 14px; + border-radius: 12px; + background: rgba(109, 40, 217, 0.08); + color: var(--ion-color-primary); + font-size: 13px; + line-height: 1.35; +} + +.location-sheet-group { + padding: 0 20px; +} + +.location-sheet-group-title { + margin: 18px 0 6px; + font-size: 12px; + font-weight: 700; + color: var(--ion-color-medium); + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.location-sheet-option { + padding: 12px 0; +} + +.location-sheet-option-text { + display: flex; + flex-direction: column; + gap: 3px; + color: var(--ion-color-primary); +} + +.location-sheet-name { + font-size: 15px; + line-height: 1.25; +} + +.location-sheet-description { + font-size: 12px; + line-height: 1.3; + color: var(--ion-color-medium); +} diff --git a/src/styles/support.css b/src/styles/support.css new file mode 100644 index 0000000..fdb037f --- /dev/null +++ b/src/styles/support.css @@ -0,0 +1,2301 @@ +/* Support Flow */ +.support-toolbar { + --background: var(--flow-accent-soft, #fafafa); + --border-width: 0px; + --min-height: 58px; + --padding-start: 8px; + --padding-end: 20px; + color: var(--color-text-primary); +} + +.support-toolbar-title { + color: var(--color-text-primary); + font-size: 18px; + font-weight: 700; +} + +.support-toolbar-title .toolbar-title, +.support-summary-toolbar-title .toolbar-title { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; +} + +.support-summary-toolbar-title::part(title) { + color: #171827 !important; +} + +.support-summary-toolbar-title { + color: #171827 !important; + letter-spacing: -0.02em; +} + +.support-toolbar-service-icon { + width: 32px; + height: 32px; + border-radius: 12px; + background: var(--flow-icon-soft, rgba(109, 40, 217, 0.12)); + color: var(--flow-accent, #6d28d9); + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + vertical-align: middle; +} + +.support-toolbar-service-icon ion-icon { + font-size: 18px; +} + +.support-toolbar-service-image { + width: 24px; + height: 24px; + object-fit: contain; +} + +.support-back-button { + --color: var(--support-action-accent, var(--color-brand)); + --background: transparent; + --background-activated: transparent; + --border-radius: 12px; + --box-shadow: none; + width: 44px; + height: 44px; + margin-left: 8px; +} + +.support-back-button ion-icon { + color: var(--support-action-accent, var(--color-brand)); + font-size: 24px; +} + +.order-detail-root-escape-button { + --color: var(--root-escape-accent, var(--color-text-primary)); + --background: transparent; + --background-activated: transparent; +} + +.order-detail-root-escape-button ion-icon { + color: var(--root-escape-accent, var(--color-text-primary)); + font-size: 22px; +} + +.order-detail-root-escape-image { + width: 26px; + height: 26px; + object-fit: contain; + flex-shrink: 0; +} + +.support-step-indicator { + background: #ffffff; + border-radius: 24px; + padding: 14px 16px; + margin: 16px 20px; + display: flex; + align-items: center; + justify-content: space-between; +} + +.ssi-chip { + width: 32px; + height: 32px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + font-weight: 700; + background: #fafafa; + color: var(--ion-color-medium); + transition: all 0.3s ease; +} + +.ssi-chip.active { + background: var(--flow-accent, var(--ion-color-primary)); + color: #ffffff; +} + +.ssi-chip.completed { + background: var(--flow-accent-soft, rgba(109, 40, 217, 0.1)); + color: var(--flow-accent, var(--ion-color-primary)); +} + +.ssi-line { + flex: 1; + height: 2px; + background: #f4f5f5; + margin: 0 8px; +} + +.ssi-line.active { + background: var(--flow-accent, rgba(109, 40, 217, 0.5)); + opacity: 0.45; +} + +.support-form-card { + background: #ffffff; + border-radius: 24px; + padding: 20px; + margin: 0 20px 12px; +} + +.support-form-card-themed { + background: linear-gradient( + 180deg, + var(--flow-card-soft, #ffffff) 0%, + #ffffff 58% + ); +} + +.support-select, +.support-text-input { + --background: #fafafa; + --color: var(--color-text-primary); + --placeholder-color: var(--color-text-secondary); + --placeholder-opacity: 1; + --border-radius: 12px; + --padding-start: 16px; + --padding-end: 16px; + min-height: 54px; + border-radius: 12px; + background: #fafafa; +} + +.support-payment-select-wrap { + margin-top: 16px; +} + +.support-payment-select-label { + display: block; + margin-bottom: 8px; + font-size: 13px; + font-weight: 600; + color: #171827; +} + +.support-payment-trigger-copy { + display: flex; + flex-direction: column; + gap: 2px; + min-width: 0; + flex: 1; +} + +.support-payment-trigger-name { + font-size: 15px; + font-weight: 700; + color: #171827; +} + +.support-payment-trigger-detail { + font-size: 12px; + color: rgba(23, 24, 39, 0.56); + line-height: 1.35; +} + +.support-payment-preview, +.support-payment-sheet-option { + width: 100%; + border: none; + border-radius: 16px; + background: #fafafa; + padding: 14px 16px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.support-payment-preview-button { + cursor: pointer; +} + +.support-payment-preview-chevron { + flex-shrink: 0; + color: rgba(23, 24, 39, 0.5); + font-size: 18px; +} + +.support-payment-modal { + --border-radius: 18px 18px 0 0; +} + +.support-payment-modal::part(content) { + border-radius: 18px 18px 0 0; +} + +.support-payment-modal::part(backdrop) { + border-radius: 18px 18px 0 0; +} + +.support-payment-sheet-content { + --padding-bottom: calc(40px + var(--ion-safe-area-bottom)); +} + +.support-payment-sheet { + padding: 12px 20px calc(56px + var(--ion-safe-area-bottom)); + min-height: 100%; +} + +.support-payment-sheet-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 20px; +} + +.support-payment-sheet-title { + margin: 0 0 4px; + font-size: 18px; + font-weight: 700; + color: #171827; +} + +.support-payment-sheet-subtitle { + margin: 0; + font-size: 13px; + color: rgba(23, 24, 39, 0.56); + line-height: 1.45; +} + +.support-payment-sheet-close { + width: 36px; + height: 36px; + border: none; + border-radius: 12px; + background: #f5f5f5; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.support-payment-sheet-close ion-icon { + font-size: 20px; + color: #171827; +} + +.support-payment-sheet-list { + display: flex; + flex-direction: column; + gap: 14px; + background: transparent; + padding: 0 0 calc(132px + var(--ion-safe-area-bottom)); + margin-bottom: calc(24px + var(--ion-safe-area-bottom)); +} + +.support-payment-sheet-option { + box-shadow: inset 0 0 0 1px rgba(23, 24, 39, 0.04); +} + +.support-payment-sheet-option.selected { + background: rgba(109, 40, 217, 0.08); + box-shadow: inset 0 0 0 1.5px rgba(109, 40, 217, 0.18); +} + +.support-payment-selected-dot { + width: 10px; + height: 10px; + border-radius: 999px; + background: #6d28d9; + flex-shrink: 0; +} + +.support-payment-method-icon { + width: 44px; + height: 44px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + font-size: 20px; +} + +.support-payment-method-icon ion-icon { + font-size: 20px; +} + +.support-google-pay-mark { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 2px; + font-family: Arial, Helvetica, sans-serif; + line-height: 1; +} + +.support-google-pay-g { + width: 18px; + height: 18px; + display: block; + flex-shrink: 0; +} + +.support-google-pay-pay { + font-size: 11px; + font-weight: 700; + color: #3c4043; + letter-spacing: -0.4px; +} + +.support-payment-method-icon-card { + background: linear-gradient( + 135deg, + rgba(109, 40, 217, 0.14), + rgba(124, 58, 237, 0.22) + ); + color: #6d28d9; +} + +.support-payment-method-icon-apple { + background: linear-gradient(135deg, #101828, #1f2937); + color: #ffffff; +} + +.support-payment-method-icon-apple ion-icon { + color: #ffffff; +} + +.support-payment-method-icon-google { + background: linear-gradient(180deg, #ffffff 0%, #f3f6fb 100%); + box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.05); + color: #4285f4; +} + +.support-payment-method-icon-paypal { + background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%); + color: #003087; +} + +.support-payment-method-icon-paypal ion-icon { + font-size: 22px; +} + +.support-payment-sheet-option:last-child { + margin-bottom: calc(64px + var(--ion-safe-area-bottom)); +} + +.support-recipient-trigger { + width: 100%; + min-height: 76px; + border: none; + border-radius: 12px; + background: #fafafa; + padding: 14px 16px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.support-recipient-trigger-left, +.support-recipient-sheet-item-left { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} + +.support-recipient-avatar { + width: 44px; + height: 44px; + flex-shrink: 0; + background: rgba(109, 40, 217, 0.12); +} + +.support-recipient-avatar img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.support-recipient-avatar-fallback { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; + font-weight: 700; + color: #6d28d9; +} + +.support-recipient-copy { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 3px; + min-width: 0; +} + +.support-recipient-name { + font-size: 15px; + font-weight: 600; + color: #171827; +} + +.support-recipient-hint { + font-size: 12px; + color: rgba(23, 24, 39, 0.56); + text-align: left; +} + +.support-recipient-chevron { + flex-shrink: 0; + color: rgba(23, 24, 39, 0.5); + font-size: 18px; +} + +.support-recipient-modal { + --border-radius: 18px 18px 0 0; +} + +.support-recipient-modal::part(content) { + border-radius: 18px 18px 0 0; +} + +.support-recipient-modal::part(backdrop) { + border-radius: 18px 18px 0 0; +} + +.support-recipient-sheet { + padding: 12px 20px calc(24px + var(--ion-safe-area-bottom)); +} + +.support-recipient-sheet-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 18px; +} + +.support-recipient-sheet-title { + margin: 0 0 4px; + font-size: 18px; + font-weight: 700; + color: #171827; +} + +.support-recipient-sheet-subtitle { + margin: 0; + font-size: 13px; + color: rgba(23, 24, 39, 0.56); + line-height: 1.45; +} + +.support-recipient-sheet-close { + width: 36px; + height: 36px; + border: none; + border-radius: 12px; + background: #f5f5f5; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.support-recipient-sheet-close ion-icon { + font-size: 20px; + color: #171827; +} + +.support-recipient-sheet-list { + display: flex; + flex-direction: column; + gap: 10px; +} + +.support-recipient-sheet-item { + width: 100%; + border: none; + border-radius: 16px; + background: #fafafa; + padding: 14px 16px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.support-recipient-sheet-item.selected { + background: rgba(109, 40, 217, 0.08); +} + +.support-recipient-sheet-avatar { + width: 48px; + height: 48px; +} + +.support-recipient-selected-dot { + width: 10px; + height: 10px; + border-radius: 999px; + background: #6d28d9; + flex-shrink: 0; +} + +.category-explainer-card { + width: 100%; +} + +.sfc-title { + font-size: 16px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0 0 16px; +} + +.support-context-row { + display: flex; + align-items: flex-start; + gap: 12px; + margin-bottom: 16px; +} + +.support-context-row-amount { + margin-bottom: 20px; +} + +.support-context-avatar-wrap { + position: relative; + width: 74px; + height: 74px; + flex-shrink: 0; +} + +.support-context-avatar { + width: 67px; + height: 67px; + background: var(--flow-icon-soft, rgba(109, 40, 217, 0.12)); +} + +.support-context-avatar img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.support-context-badge { + position: absolute; + right: 0; + bottom: 0; + width: 24px; + height: 24px; + border-radius: 12px; + background: var(--flow-icon-soft, rgba(109, 40, 217, 0.12)); + color: var(--flow-accent, #6d28d9); + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 0 0 3px #ffffff; +} + +.support-context-badge ion-icon { + font-size: 22px; +} + +.support-context-badge-image { + width: 22.5px; + height: 22.5px; + object-fit: contain; +} + +.support-context-icon { + width: 44px; + height: 44px; + border-radius: 12px; + background: var(--flow-icon-soft, rgba(109, 40, 217, 0.12)); + color: var(--flow-accent, #6d28d9); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.support-context-icon ion-icon { + font-size: 22px; +} + +.support-context-image { + width: 30px; + height: 30px; + object-fit: contain; +} + +.support-step-kicker { + margin: 0 0 4px; + color: var(--flow-accent, #6d28d9); + font-size: 12px; + font-weight: 700; +} + +.support-themed-title { + margin-bottom: 0; +} + +.support-recurring-icon { + width: 40px; + height: 40px; + border-radius: 12px; + background: var(--flow-accent-soft, rgba(109, 40, 217, 0.1)); + color: var(--flow-accent, #6d28d9); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.support-recurring-icon ion-icon { + font-size: 20px; +} + +.support-amount-hint { + margin: 2px 0 0; + color: rgba(23, 24, 39, 0.58); + font-size: 13px; + line-height: 1.4; +} + +/* Service Type Cards */ +.service-type-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 12px; +} + +.service-type-card { + background: var(--service-card-bg, #fafafa); + border: 2px solid transparent; + border-radius: 16px; + padding: 16px; + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + transition: all 0.2s ease; +} + +.service-type-card.selected { + background: var(--service-tint, rgba(109, 40, 217, 0.08)); + border-color: var(--service-accent, var(--ion-color-primary)); +} + +.stc-icon-box { + width: 48px; + height: 48px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 24px; + flex-shrink: 0; +} + +.stc-icon-box ion-icon { + font-size: 24px; +} + +.service-type-card.service-medication .stc-icon-box ion-icon { + font-size: 22px; +} + +.support-service-image { + display: block; + object-fit: contain; +} + +.support-service-image-grocery { + width: 33px; + height: 33px; +} + +.stc-label { + font-size: 14px; + font-weight: 600; + color: var(--ion-color-dark); +} + +/* Amount Selection */ +.amount-preset-chips { + display: flex; + flex-wrap: wrap; + gap: 12px; + margin-bottom: 16px; +} + +.amount-chip { + padding: 10px 20px; + border-radius: 999px; + background: #fafafa; + color: var(--ion-color-dark); + font-size: 15px; + font-weight: 600; + border: 2px solid transparent; +} + +.amount-chip.active { + background: rgba(109, 40, 217, 0.1); + border-color: var(--ion-color-primary); + color: var(--ion-color-primary); +} + +.support-form-card-themed .amount-chip.active { + background: var(--flow-accent-soft, rgba(109, 40, 217, 0.1)); + border-color: var(--flow-accent, var(--ion-color-primary)); + color: var(--flow-accent, var(--ion-color-primary)); +} + +.custom-amount-input { + --background: #fafafa; + --color: #171827; + --placeholder-color: rgba(23, 24, 39, 0.42); + --placeholder-opacity: 1; + --border-radius: 12px; + --padding-start: 16px; + color: #171827; + caret-color: var(--flow-accent, #6d28d9); + font-size: 21px; + font-weight: 700; + font-variant-numeric: tabular-nums; +} + +.custom-amount-input input { + color: #171827 !important; + caret-color: var(--flow-accent, #6d28d9); +} + +/* Inline Action Card */ +.support-page-shell { + display: flex; + flex-direction: column; + gap: 12px; + padding-bottom: calc(20px + var(--ion-safe-area-bottom)); +} + +.support-inline-action-card { + margin: 0 20px calc(20px + var(--ion-safe-area-bottom)); + padding: 16px 18px; + border-radius: 24px; + background: rgba(255, 255, 255, 0.96); + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; +} + +.ssb-info { + display: flex; + flex-direction: column; +} + +.ssb-label { + font-size: 13px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0; +} + +.ssb-total { + font-size: 18px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0; +} + +.ssb-btn { + --background: var(--flow-accent, var(--ion-color-primary)); + --background-activated: var(--flow-accent, var(--ion-color-primary)); + --border-radius: 999px; + font-size: 15px; + font-weight: 700; + margin: 0; + min-width: 140px; +} + +.support-payment-result-card { + background: #ffffff; + border-radius: 24px; + padding: 24px; + margin: 16px 20px 12px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + gap: 16px; +} + +.sprc-icon-shell { + width: 64px; + height: 64px; + border-radius: 24px; + display: flex; + align-items: center; + justify-content: center; +} + +.sprc-icon-shell.success { + background: rgba(22, 163, 74, 0.12); + color: #16a34a; +} + +.sprc-icon-shell.failure { + background: rgba(239, 68, 68, 0.12); + color: #dc2626; +} + +.sprc-icon-shell ion-icon { + font-size: 32px; +} + +.sprc-eyebrow { + margin: 0; + color: rgba(23, 24, 39, 0.48); + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; +} + +.sprc-title { + margin: 0 0 6px; + color: #171827; + font-size: 26px; + font-weight: 700; + line-height: 1.12; +} + +.sprc-body { + margin: 0; + color: rgba(23, 24, 39, 0.62); + font-size: 14px; + line-height: 1.5; +} + +.sprc-summary-slab { + width: 100%; + background: #fafafa; + border-radius: 16px; + padding: 14px 16px; + display: flex; + flex-direction: column; + gap: 10px; + text-align: left; +} + +.sprc-summary-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; + font-size: 14px; +} + +.sprc-summary-row span { + color: rgba(23, 24, 39, 0.56); +} + +.sprc-summary-row strong { + color: #171827; + font-weight: 700; +} + +.sprc-actions { + width: 100%; + display: flex; + flex-direction: column; + gap: 10px; + margin-top: 8px; +} + +.sprc-primary-btn { + --background: var(--flow-accent, var(--ion-color-primary)); + --background-activated: var(--flow-accent, var(--ion-color-primary)); + --border-radius: 999px; + margin: 0; + min-height: 48px; + font-size: 15px; + font-weight: 700; +} + +.sprc-secondary-btn { + --background: #fafafa; + --color: #171827; + --border-radius: 999px; + --box-shadow: none; + margin: 0; + min-height: 48px; + font-size: 15px; + font-weight: 700; +} + +/* Orders List */ +.orders-filter-row { + display: flex; + overflow-x: auto; + padding: 0 20px 12px; + margin: 8px 0 0; + gap: 8px; + scroll-snap-type: x mandatory; +} + +.orders-filter-row::-webkit-scrollbar { + display: none; +} + +.status-filter-chip { + padding: 8px 16px; + border-radius: 999px; + font-size: 13px; + font-weight: 600; + white-space: nowrap; + scroll-snap-align: start; +} + +.status-filter-chip.active { + background: var(--ion-color-primary); + color: #ffffff; +} + +.status-filter-chip.inactive { + background: #ffffff; + color: var(--ion-color-medium); +} + +.order-summary-card { + background: #ffffff; + border-radius: 24px; + padding: 16px; + margin: 0 20px 12px; + display: flex; + align-items: center; + gap: 16px; +} + +.osc-icon { + width: 48px; + height: 48px; + border-radius: 16px; + display: flex; + align-items: center; + justify-content: center; + font-size: 24px; + flex-shrink: 0; +} + +.osc-info { + flex: 1; +} + +.osc-title { + font-size: 15px; + font-weight: 700; + color: var(--ion-color-dark); + margin: 0 0 2px; +} + +.osc-subtitle { + font-size: 13px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0 0 4px; +} + +.osc-date { + font-size: 12px; + font-weight: 400; + color: #9ca3af; + margin: 0; +} + +.osc-meta { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 6px; +} + +.osc-amount { + font-size: 15px; + font-weight: 700; + color: var(--ion-color-dark); +} + +.osc-badge { + padding: 4px 8px; + border-radius: 999px; + font-size: 11px; + font-weight: 700; + display: flex; + align-items: center; + gap: 4px; +} + +/* Order Detail */ +.order-status-summary { + background: #ffffff; + border-radius: 24px; + padding: 24px 20px 22px; + margin: 20px; + display: flex; + flex-direction: column; + gap: 12px; +} + +.order-status-summary-modern { + position: relative; + overflow: hidden; + padding: 16px; + background: linear-gradient( + 180deg, + rgba(255, 255, 255, 0.98) 0%, + #ffffff 100% + ); +} + +.order-status-summary-glow { + position: absolute; + right: -28px; + top: -38px; + width: 168px; + height: 168px; + border-radius: 999px; + background: radial-gradient( + circle, + var(--service-soft, rgba(109, 40, 217, 0.12)) 0%, + rgba(255, 255, 255, 0) 72% + ); + pointer-events: none; +} + +.order-status-summary-topline { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + position: relative; + z-index: 1; +} + +.order-status-meta-row { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.order-status-badge { + min-height: 28px; + padding: 0 12px; + border-radius: 999px; + display: inline-flex; + align-items: center; + font-size: 12px; + font-weight: 700; + flex-shrink: 0; +} + +.order-status-recipient { + color: rgba(23, 24, 39, 0.62); + font-size: 13px; + font-weight: 600; +} + +.order-status-summary-core { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + position: relative; + z-index: 1; +} + +.order-status-summary-core-refined { + display: grid; + grid-template-columns: clamp(52px, 16vw, 70px) minmax(0, 1fr) clamp( + 76px, + 24vw, + 102px + ); + gap: clamp(8px, 3vw, 14px); + align-items: center; +} + +.order-status-summary-hero-copy { + min-width: 0; + text-align: left; + display: flex; + flex-direction: column; + justify-content: center; +} + +.order-status-summary-title-copy { + min-width: 0; +} + +.order-status-summary-title-copy .oss-title { + width: 100%; + font-size: clamp(18px, 5.2vw, 22px); + line-height: 1.12; + font-weight: 700; + color: #171827; + overflow-wrap: normal; + word-break: keep-all; + hyphens: none; +} + +@media (max-width: 374px) { + .order-status-summary-core-refined { + grid-template-columns: 52px minmax(0, 1fr) 76px; + } + .order-status-summary-title-copy .oss-title { + font-size: 18px; + } +} + +.order-status-summary-service-badge-large { + width: 100%; + height: auto; + aspect-ratio: 1; + border-radius: 20px; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + flex-shrink: 0; +} + +.order-status-summary-hero-art { + flex-shrink: 0; +} + +.order-status-summary-label { + margin: 0 0 6px; + color: rgba(23, 24, 39, 0.5); + font-size: 11px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.order-status-summary-finance-row { + display: flex; + align-items: center; + gap: 12px; + border-radius: 24px; + background: linear-gradient( + 180deg, + rgba(255, 255, 255, 0.94) 0%, + #fafafa 100% + ); + padding: 14px 16px; + position: relative; + z-index: 1; +} + +.order-status-summary-finance-block { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + gap: 4px; +} + +.order-status-summary-finance-block.align-end { + text-align: right; + align-items: flex-end; +} + +.order-status-summary-finance-label { + color: rgba(23, 24, 39, 0.48); + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; +} + +.order-status-summary-finance-block strong { + color: #171827; + font-size: 19px; + font-weight: 600; + font-variant-numeric: tabular-nums; +} + +.order-status-summary-finance-divider { + width: 1px; + align-self: stretch; + background: rgba(23, 24, 39, 0.08); +} + +.order-detail-recipient-hero-avatar-shell { + position: relative; + width: 100%; + height: auto; + aspect-ratio: 1; + flex-shrink: 0; +} + +.order-detail-recipient-hero-avatar, +.order-detail-recipient-hero-avatar-fallback { + width: 100%; + height: 100%; + border-radius: 24px; +} + +.order-detail-recipient-hero-avatar { + object-fit: cover; +} + +.order-detail-recipient-hero-avatar-fallback { + color: #6d28d9; + font-size: 30px; + font-weight: 700; +} + +.order-detail-recipient-hero-badge { + position: absolute; + right: -3px; + bottom: -3px; + width: 34px; + height: 34px; + border-radius: 999px; + display: flex; + align-items: center; + justify-content: center; + border: 2px solid #ffffff; + box-shadow: 0 6px 14px rgba(23, 24, 39, 0.12); + overflow: hidden; +} + +.order-detail-recipient-hero-badge.order-service-card-grocery { + background: #f1e7fb; + color: #6d28d9; +} + +.order-detail-recipient-hero-badge.order-service-card-medication { + background: #e8f7ee; + color: #16a34a; +} + +.order-detail-recipient-hero-badge.order-service-card-airtime { + background: #eaf3ff; + color: #2563eb; +} + +.order-detail-recipient-hero-badge.order-service-card-electricity { + background: #fff2df; + color: #d97706; +} + +.order-detail-recipient-hero-badge .support-service-icon-vector { + font-size: 15px; + --ionicon-stroke-width: 48px; +} + +.order-detail-recipient-hero-badge .order-detail-basket-image { + width: 24px; + height: 24px; +} + +.support-service-icon-vector { + font-size: 30px; + --ionicon-stroke-width: 44px; + flex-shrink: 0; +} + +.order-status-summary-service-badge-large .support-service-icon-vector { + font-size: 34px; +} + +.order-status-summary-service-badge-large .support-service-image { + width: 36px; + height: 36px; +} + +.order-status-summary-service-badge-large .support-service-image-grocery { + width: 38px; + height: 38px; +} + +.order-service-card-grocery { + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; +} + +.order-service-card-medication { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.order-service-card-airtime { + background: rgba(37, 99, 235, 0.1); + color: #2563eb; +} + +.order-service-card-electricity { + background: rgba(245, 158, 11, 0.12); + color: #d97706; +} + +undefined .money-breakdown-list { + background: #ffffff; + border-radius: 24px; + padding: 16px 20px; + margin: 0 20px 12px; + display: flex; + flex-direction: column; + gap: 12px; +} + +.mbl-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + padding: 6px 0; + font-size: 14px; + color: var(--ion-color-medium); +} + +.mbl-row span, +.mbl-row strong { + line-height: 1.4; +} + +.mbl-row strong { + text-align: right; + flex-shrink: 0; +} + +.support-review-primary-row { + margin-bottom: 8px; +} + +.support-redemption-note { + display: flex; + align-items: flex-start; + gap: 12px; + margin: 0 0 14px; + padding: 12px 14px; + border-radius: 12px; + background: var(--flow-accent-soft, rgba(109, 40, 217, 0.08)); +} + +.support-redemption-note-icon { + width: 36px; + height: 36px; + border-radius: 12px; + background: var(--flow-icon-soft, rgba(109, 40, 217, 0.12)); + color: var(--flow-accent, #6d28d9); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.support-redemption-note-icon ion-icon { + font-size: 29px; +} + +.support-redemption-note-icon img { + width: 29px; + height: 29px; + object-fit: contain; + transform: scale(1.08); + transform-origin: center; +} + +.support-redemption-note-copy { + display: flex; + flex-direction: column; + gap: 3px; + min-width: 0; +} + +.support-redemption-note-title { + margin: 0; + color: #171827; + font-size: 13px; + font-weight: 600; + line-height: 1.35; +} + +.support-redemption-note-subtitle { + margin: 0; + color: rgba(23, 24, 39, 0.56); + font-size: 12px; + line-height: 1.4; +} + +.mbl-row.total { + font-size: 16px; + font-weight: 700; + color: var(--ion-color-dark); + border-top: 1px solid var(--color-border); + padding-top: 12px; + margin-top: 4px; +} + +.order-detail-card { + background: #ffffff; + border-radius: 24px; + padding: 20px; + margin: 0 20px 12px; + display: flex; + flex-direction: column; + gap: 16px; +} + +.order-detail-card-modern { + background: #ffffff; +} + +.order-detail-card-route { + background: #ffffff; +} + +.order-detail-section-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; +} + +.order-detail-section-header.modern { + align-items: center; +} + +.order-detail-section-header-summary { + margin-bottom: 4px; +} + +.order-detail-section-header.compact { + margin-bottom: -4px; +} + +.order-detail-section-kicker { + margin: 0 0 4px; + color: rgba(23, 24, 39, 0.56); + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.08em; +} + +.order-detail-section-title { + margin: 0; + color: #171827; + font-size: 18px; + font-weight: 700; + line-height: 1.25; +} + +.order-detail-section-subtitle { + margin: 6px 0 0; + color: rgba(23, 24, 39, 0.56); + font-size: 13px; + line-height: 1.45; +} + +.order-detail-total-chip { + min-height: 32px; + padding: 0 12px; + border-radius: 999px; + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; + display: inline-flex; + align-items: center; + font-size: 12px; + font-weight: 700; + flex-shrink: 0; +} + +.order-detail-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.order-detail-grid.compact { + gap: 10px; +} + +.order-detail-tile { + min-width: 0; + border-radius: 12px; + background: #fafafa; + padding: 14px; + display: flex; + align-items: flex-start; + gap: 12px; +} + +.order-detail-tile-wide { + grid-column: 1 / -1; +} + +.order-detail-tile-service { + background: linear-gradient( + 180deg, + rgba(109, 40, 217, 0.04) 0%, + #fafafa 100% + ); +} + +.order-detail-tile-service-compact { + align-items: center; +} + +.order-detail-tile-amount { + background: rgba(22, 163, 74, 0.06); +} + +.order-detail-tile-time { + background: rgba(245, 158, 11, 0.08); +} + +.order-detail-tile-payment { + background: rgba(37, 99, 235, 0.07); +} + +.order-detail-tile.order-service-card-grocery, +.order-detail-tile.order-service-card-medication, +.order-detail-tile.order-service-card-airtime, +.order-detail-tile.order-service-card-electricity { + color: inherit; +} + +.order-detail-tile-icon { + width: 44px; + height: 44px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.order-detail-tile-icon ion-icon { + font-size: 20px; +} + +.order-detail-tile-icon.order-service-card-grocery { + background: rgba(109, 40, 217, 0.12); + color: #6d28d9; +} + +.order-detail-tile-icon.order-service-card-medication { + background: rgba(22, 163, 74, 0.12); + color: #16a34a; +} + +.order-detail-tile-icon.order-service-card-airtime { + background: rgba(37, 99, 235, 0.12); + color: #2563eb; +} + +.order-detail-tile-icon.order-service-card-electricity { + background: rgba(245, 158, 11, 0.14); + color: #d97706; +} + +.order-detail-tile-icon.is-green-soft { + background: rgba(22, 163, 74, 0.12); + color: #16a34a; +} + +.order-detail-tile-icon.is-amber-soft { + background: rgba(245, 158, 11, 0.14); + color: #d97706; +} + +.order-detail-tile-icon.is-blue-soft { + background: rgba(37, 99, 235, 0.12); + color: #2563eb; +} + +.order-detail-basket-image { + width: 54px; + height: 54px; + object-fit: contain; +} + +.order-detail-tile-icon .order-detail-basket-image { + width: 24px; + height: 24px; +} + +.order-detail-tile-label { + margin: 0 0 4px; + color: rgba(23, 24, 39, 0.56); + font-size: 12px; + font-weight: 600; +} + +.order-detail-tile-value { + margin: 0; + color: #171827; + font-size: 14px; + font-weight: 700; + line-height: 1.35; +} + +.order-detail-tile-note { + margin: 6px 0 0; + color: rgba(23, 24, 39, 0.5); + font-size: 12px; + line-height: 1.4; +} + +.compact-metric { + align-items: center; +} + +.compact-metric .order-detail-tile-value { + font-size: 16px; +} + +.order-detail-voucher-shell { + border-radius: 20px; + background: linear-gradient( + 180deg, + var(--service-soft, rgba(109, 40, 217, 0.08)) 0%, + #fafafa 100% + ); + padding: 20px; + display: flex; + flex-direction: column; + align-items: center; + gap: 16px; +} + +.order-detail-voucher-qr-wrap { + width: 100%; + display: flex; + justify-content: center; +} + +.order-detail-voucher-qr-frame { + width: 208px; + height: 208px; + border-radius: 24px; + background: #ffffff; + display: flex; + align-items: center; + justify-content: center; + padding: 16px; +} + +.order-detail-voucher-missing { + background: #fdfdfd; + border: 1px dashed rgba(23, 24, 39, 0.12); + padding: 32px 20px; + text-align: center; + gap: 8px; +} + +.odv-missing-icon { + font-size: 32px; + color: rgba(23, 24, 39, 0.24); + margin-bottom: 4px; +} + +.odv-missing-title { + margin: 0; + color: #171827; + font-size: 16px; + font-weight: 600; +} + +.odv-missing-helper { + margin: 0; + color: rgba(23, 24, 39, 0.56); + font-size: 14px; + line-height: 1.5; + max-width: 280px; +} + +.order-detail-voucher-qr-frame svg { + display: block; + width: 176px; + height: 176px; +} + +.order-detail-voucher-copy { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + text-align: center; +} + +.order-detail-voucher-code-label { + margin: 0; + color: rgba(23, 24, 39, 0.54); + font-size: 11px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.order-detail-voucher-code { + margin: 0; + color: #171827; + font-size: 22px; + font-weight: 700; + letter-spacing: 0.04em; +} + +.order-detail-voucher-helper { + margin: 0; + color: rgba(23, 24, 39, 0.6); + font-size: 13px; + line-height: 1.45; + max-width: 260px; +} + +.order-detail-inline-voucher-slot { + position: relative; + border-radius: 24px; + background: linear-gradient( + 180deg, + var(--service-soft, rgba(109, 40, 217, 0.1)) 0%, + rgba(255, 255, 255, 0.72) 130% + ); + padding: 14px 16px 16px; + display: flex; + flex-direction: column; + gap: 8px; +} + +.order-detail-inline-voucher-body { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; +} + +.order-detail-inline-voucher-frame { + width: 280px; + height: 280px; + border-radius: 24px; + background: #ffffff; + display: flex; + align-items: center; + justify-content: center; + padding: 12px; +} + +.order-detail-inline-voucher-frame svg { + display: block; + width: 252px; + height: 252px; +} + +.order-detail-inline-voucher-copy { + display: flex; + flex-direction: column; + align-items: center; + gap: 3px; + text-align: center; +} + +.order-detail-inline-voucher-actions { + display: flex; + align-items: center; + gap: 10px; + margin-top: 10px; +} + +.order-detail-inline-voucher-action { + min-height: 42px; + border: none; + border-radius: 999px; + background: #ffffff; + color: #171827; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 0 14px; + cursor: pointer; + font: inherit; +} + +.order-detail-inline-voucher-action.is-copy { + background: #ffffff; + color: #171827; +} + +.order-detail-inline-voucher-action.is-share { + background: #ffffff; + color: #171827; +} + +.order-detail-inline-voucher-action-icon { + width: 18px; + height: 18px; + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.order-detail-inline-voucher-action-icon ion-icon { + font-size: 18px; + color: #171827; +} + +.order-detail-toast { + --background: #171827; + --color: #ffffff; + --border-radius: 999px; + --box-shadow: none; + font-weight: 700; +} + +.order-detail-inline-voucher-action-label { + font-size: 14px; + font-weight: 700; + line-height: 1; +} + +.order-detail-inline-voucher-code-label { + margin: 0; + color: rgba(23, 24, 39, 0.46); + font-size: 10px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.order-detail-inline-voucher-code { + margin: 0; + color: #171827; + font-size: 19px; + font-weight: 700; + letter-spacing: 0.05em; +} + +.order-detail-receipt-block { + border-radius: 20px; + background: #fafafa; + padding: 4px; + margin-top: 8px; +} + +.order-detail-breakdown { + background: #fafafa; + margin: 0; + padding: 16px; +} + +.order-detail-breakdown.modern { + box-shadow: none; +} + +.order-detail-list { + display: flex; + flex-direction: column; + gap: 14px; +} + +.modern-route-list { + gap: 0; + border-radius: 20px; + background: #fafafa; + padding: 4px 0; +} + +.order-detail-list-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; + font-size: 14px; + padding: 12px 16px; +} + +.order-detail-list-row + .order-detail-list-row { + border-top: 1px solid rgba(23, 24, 39, 0.06); +} + +.order-detail-list-row span { + color: rgba(23, 24, 39, 0.56); +} + +.order-detail-list-row strong { + color: #171827; + font-weight: 700; + text-align: right; +} + +.order-detail-activity-card { + gap: 12px; +} + +.order-detail-activity-list { + margin: 0; + padding: 0; +} + +.voucher-preview-card { + background: #ffffff; + border-radius: 24px; + padding: 20px; + margin: 0 20px 12px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.vpc-info { + display: flex; + flex-direction: column; + gap: 4px; + min-width: 0; +} + +.vpc-label { + font-size: 13px; + font-weight: 600; + color: var(--ion-color-medium); + margin: 0; +} + +.vpc-code { + font-size: 16px; + font-weight: 700; + color: var(--ion-color-primary); + margin: 0; + letter-spacing: 1px; +} + +.vpc-helper { + margin: 0; + color: rgba(23, 24, 39, 0.56); + font-size: 12px; + line-height: 1.4; +} + +.vpc-btn { + --background: rgba(109, 40, 217, 0.1); + --color: var(--ion-color-primary); + --border-radius: 12px; + --box-shadow: none; + font-weight: 600; + margin: 0; +} + +/* Voucher Detail Hero */ +.voucher-hero-card { + background: #ffffff; + border-radius: 24px; + padding: 24px; + margin: 20px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + gap: 20px; +} + +.vhc-code-pill { + background: rgba(109, 40, 217, 0.1); + color: var(--ion-color-primary); + padding: 8px 16px; + border-radius: 999px; + font-size: 16px; + font-weight: 700; + letter-spacing: 1px; +} + +.vhc-qr-placeholder { + width: 220px; + height: 220px; + border-radius: 24px; + background: #fafafa; + display: flex; + align-items: center; + justify-content: center; +} + +.vhc-qr-placeholder ion-icon { + font-size: 64px; + color: var(--ion-color-medium); + opacity: 0.5; +} + +.vhc-expiry { + font-size: 14px; + font-weight: 600; + color: var(--ion-color-dark); + margin: 0; +} + +.vhc-merchant { + font-size: 13px; + font-weight: 400; + color: var(--ion-color-medium); + margin: 0; +} + +.voucher-balance-card { + margin: 0 20px 16px; + padding: 18px; + border-radius: 24px; + background: rgba(255, 255, 255, 0.94); + display: flex; + flex-direction: column; + gap: 14px; +} + +.voucher-balance-head { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; +} + +.voucher-balance-title { + margin: 0 0 4px; + color: #171827; + font-size: 16px; + font-weight: 700; +} + +.voucher-balance-subtitle { + margin: 0; + color: rgba(23, 24, 39, 0.56); + font-size: 12px; + line-height: 1.4; +} + +.voucher-balance-total { + color: #171827; + font-size: 20px; + font-weight: 400; + font-variant-numeric: tabular-nums; +} + +.voucher-balance-pills { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.voucher-balance-pill { + min-height: 28px; + border-radius: 999px; + padding: 0 12px; + display: inline-flex; + align-items: center; + font-size: 12px; + font-weight: 700; +} + +.voucher-balance-pill.is-redeemed { + background: rgba(22, 163, 74, 0.1); + color: #16a34a; +} + +.voucher-balance-pill.is-remaining { + background: rgba(245, 158, 11, 0.12); + color: #d97706; +} + +.voucher-redemption-history { + display: flex; + flex-direction: column; + gap: 10px; +} + +.voucher-redemption-history-title { + margin: 0; + color: #171827; + font-size: 13px; + font-weight: 700; +} + +.voucher-redemption-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 12px; + padding: 12px 0; +} + +.voucher-redemption-row + .voucher-redemption-row { + border-top: 1px solid rgba(23, 24, 39, 0.06); +} + +.voucher-redemption-merchant, +.voucher-redemption-amount { + margin: 0; + color: #171827; + font-size: 14px; + font-weight: 700; +} + +.voucher-redemption-date { + margin: 3px 0 0; + color: rgba(23, 24, 39, 0.54); + font-size: 11px; + line-height: 1.3; +} + +.voucher-redemption-right { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 5px; + flex-shrink: 0; +} + +.voucher-redemption-status { + min-height: 22px; + border-radius: 999px; + padding: 0 8px; + background: rgba(109, 40, 217, 0.1); + color: #6d28d9; + display: inline-flex; + align-items: center; + font-size: 10px; + font-weight: 700; + text-transform: capitalize; +} + +.security-note-card { + background: rgba(22, 163, 74, 0.08); + border-radius: 16px; + padding: 16px; + margin: 0 20px; + display: flex; + align-items: flex-start; + gap: 12px; +} + +.oss-title { + margin: 0; + font-size: 24px; + font-weight: 700; + color: #171827; + line-height: 1.1; + letter-spacing: -0.01em; +} + +.oss-subtitle { + margin: 8px 0 0; + padding-left: 0; + font-size: 13px; + font-weight: 500; + color: rgba(23, 24, 39, 0.56); + line-height: 1.45; +} + +.snc-icon { + font-size: 20px; + color: var(--ion-color-success); +} + +.snc-text { + font-size: 13px; + font-weight: 400; + color: var(--ion-color-dark); + line-height: 1.4; + margin: 0; +} + +.order-detail-send-again-button { + text-transform: none; + letter-spacing: -0.01em; +} + +.order-detail-send-again-button::part(native) { + font-size: 16px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 12px; + padding: 0 22px; +} + +.order-detail-send-again-button__label { + color: #ffffff; + font-size: 16px; + font-weight: 800; + line-height: 1; + letter-spacing: -0.01em; +} + +.order-detail-send-again-button.order-tone-grocery { + --background: #6d28d9; + --background-activated: #5b21b6; + --color: #ffffff; +} + +.order-detail-send-again-button.order-tone-medication { + --background: #16a34a; + --background-activated: #15803d; + --color: #ffffff; +} + +.order-detail-send-again-button.order-tone-airtime { + --background: #2563eb; + --background-activated: #1d4ed8; + --color: #ffffff; +} + +.order-detail-send-again-button.order-tone-electricity { + --background: #d97706; + --background-activated: #b45309; + --color: #ffffff; +} + +.order-detail-send-again-button__icon { + width: 28px; + height: 28px; + border-radius: 999px; + background: #ffffff; + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin-right: 4px; +} + +.order-detail-send-again-button__icon ion-icon { + font-size: 18px; + --ionicon-stroke-width: 42px; +} + +.order-detail-send-again-button.order-tone-grocery + .order-detail-send-again-button__icon { + color: #6d28d9; +} + +.order-detail-send-again-button.order-tone-medication + .order-detail-send-again-button__icon { + color: #16a34a; +} + +.order-detail-send-again-button.order-tone-airtime + .order-detail-send-again-button__icon { + color: #2563eb; +} + +.order-detail-send-again-button.order-tone-electricity + .order-detail-send-again-button__icon { + color: #d97706; +} + +.order-detail-send-again-button__icon .home-custom-icon.is-basket { + width: 40px; + height: 40px; +} diff --git a/src/supabase.ts b/src/supabase.ts new file mode 100644 index 0000000..48a0919 --- /dev/null +++ b/src/supabase.ts @@ -0,0 +1,7 @@ +import { createClient } from '@supabase/supabase-js'; +import type { Database } from './database.types'; + +export const supabase = createClient( + 'https://pdtnuymihtxnhmzaybif.supabase.co', + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBkdG51eW1paHR4bmhtemF5YmlmIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODE5NTQwOTYsImV4cCI6MjA5NzUzMDA5Nn0.k-3YKruldYrh88JSt4E-Q8veUbnAE6hrsxlrWmwjzeM', +); diff --git a/src/test-globals.d.ts b/src/test-globals.d.ts new file mode 100644 index 0000000..c9172aa --- /dev/null +++ b/src/test-globals.d.ts @@ -0,0 +1,51 @@ +// Ambient test globals for optional *.test.* files in the editor / tsc. +// No test runner is installed in the template; stubs avoid spurious TS errors. + +interface Matchers { + toBeDefined(): R; + toBe(expected: unknown): R; + toEqual(expected: unknown): R; + toBeTruthy(): R; + toBeFalsy(): R; + toBeNull(): R; + toContain(item: unknown): R; + toHaveLength(length: number): R; + toMatch(expected: string | RegExp): R; + toThrow(expected?: string | RegExp | Error): R; + not: Matchers; +} + +interface Expect { + (actual: T): Matchers; +} + +declare const expect: Expect; + +type TestCaseFn = ( + name: string, + fn?: () => void | Promise, + timeout?: number, +) => void; + +declare const test: TestCaseFn; +declare const it: TestCaseFn; +declare const describe: TestCaseFn; + +declare function beforeEach(fn: () => void | Promise): void; +declare function afterEach(fn: () => void | Promise): void; +declare function beforeAll(fn: () => void | Promise): void; +declare function afterAll(fn: () => void | Promise): void; + +declare module "@testing-library/react" { + export function render( + ui: unknown, + options?: object, + ): { + baseElement: Element; + container: Element; + unmount(): void; + rerender(ui: unknown): void; + }; + export const screen: Record Element>; + export function cleanup(): void; +} diff --git a/src/theme/variables.css b/src/theme/variables.css new file mode 100644 index 0000000..a7b0545 --- /dev/null +++ b/src/theme/variables.css @@ -0,0 +1,277 @@ +/* Ionic Variables and Color Palette */ + +:root { + /* Core brand colors */ + --ion-color-primary: #6d28d9; + --ion-color-primary-rgb: 109, 40, 217; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255, 255, 255; + --ion-color-primary-shade: #6023bf; + --ion-color-primary-tint: #7b3de1; + + --ion-color-success: #16a34a; + --ion-color-success-rgb: 22, 163, 74; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255, 255, 255; + --ion-color-success-shade: #138f41; + --ion-color-success-tint: #2dac5b; + + --ion-color-warning: #f59e0b; + --ion-color-warning-rgb: 245, 158, 11; + --ion-color-warning-contrast: #ffffff; + --ion-color-warning-contrast-rgb: 255, 255, 255; + --ion-color-warning-shade: #d88b0a; + --ion-color-warning-tint: #f6a823; + + --ion-color-danger: #dc2626; + --ion-color-danger-rgb: 220, 38, 38; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255, 255, 255; + --ion-color-danger-shade: #c22121; + --ion-color-danger-tint: #e03c3c; + + --ion-color-dark: #111827; + --ion-color-dark-rgb: 17, 24, 39; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255, 255, 255; + --ion-color-dark-shade: #0f1522; + --ion-color-dark-tint: #292f3d; + + --ion-color-medium: #6b7280; + --ion-color-medium-rgb: 107, 114, 128; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255, 255, 255; + --ion-color-medium-shade: #5e6470; + --ion-color-medium-tint: #7a808d; + + --ion-color-light: #fafafa; + --ion-color-light-rgb: 250, 250, 250; + --ion-color-light-contrast: #111827; + --ion-color-light-contrast-rgb: 17, 24, 39; + --ion-color-light-shade: #dcdcdc; + --ion-color-light-tint: #fbfbfb; + + /* Typography */ + --ion-font-family: + -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, + sans-serif; + + /* App generic background */ + --ion-background-color: #fafafa; + + /* Utilities */ + --color-brand: #6d28d9; + --color-success: #16a34a; + --color-warning: #f59e0b; + --color-info: #3b82f6; + --color-bg: #fafafa; + --color-surface: #ffffff; + --color-surface-raised: #f4f1fb; + --color-text-primary: #111827; + --color-text-secondary: rgba(17, 24, 39, 0.62); + --color-text-tertiary: rgba(17, 24, 39, 0.38); + --color-border: #e5e7eb; +} + +/* Force light mode globally (no dark mode overrides) */ +@media (prefers-color-scheme: dark) { + :root { + /* We map dark mode vars back to light to enforce light theme for MVP */ + --ion-background-color: #fafafa; + --ion-background-color-rgb: 250, 250, 250; + --ion-text-color: #111827; + --ion-text-color-rgb: 17, 24, 39; + --ion-color-step-50: #f4f5f5; + --ion-color-step-100: #eef0f1; + --ion-color-step-150: #e8eaec; + --ion-color-step-200: #e1e5e8; + --ion-color-step-250: #dbdfe3; + --ion-color-step-300: #d5d9df; + --ion-color-step-350: #cfd4da; + --ion-color-step-400: #c9ced6; + --ion-color-step-450: #c2c9d1; + --ion-color-step-500: #bcc3cc; + --ion-color-step-550: #b6bec8; + --ion-color-step-600: #b0b8c3; + --ion-color-step-650: #a9b3bf; + --ion-color-step-700: #a3adba; + --ion-color-step-750: #9da8b6; + --ion-color-step-800: #97a2b1; + --ion-color-step-850: #919dad; + --ion-color-step-900: #8a97a8; + --ion-color-step-950: #8492a4; + } +} + +/* Custom Tab Bar */ +.app-tab-bar { + --background: rgba(255, 255, 255, 0.98); + --border: none; + border-top: none; + box-shadow: 0 -10px 34px rgba(82, 53, 121, 0.06); + padding: 6px 12px calc(6px + var(--ion-safe-area-bottom, 0px)); +} + +.app-tab-bar ion-tab-button { + --color: rgba(21, 22, 36, 0.5); + --color-selected: #6d28d9; + min-height: 56px; + gap: 3px; +} + +.app-tab-bar ion-tab-button ion-icon { + font-size: 28px; +} + +.app-tab-bar ion-tab-button ion-label { + font-size: 15px; + font-weight: 600; + margin-top: 2px; +} + +.app-send-support-fab { + position: fixed; + left: 50%; + bottom: calc(var(--ion-safe-area-bottom, 0px) + 38px); + z-index: 10000; + width: 64px; + height: 64px; + border: 6px solid #fafafa; + border-radius: 999px; + background: #6d28d9; + color: #ffffff; + transform: translateX(-50%); + display: flex; + align-items: center; + justify-content: center; + box-shadow: + 0 16px 28px rgba(109, 40, 217, 0.24), + 0 6px 14px rgba(109, 40, 217, 0.12); +} + +.app-send-support-fab ion-icon { + font-size: 28px; + flex-shrink: 0; +} + +.app-send-support-fab:active { + transform: translateX(-50%) translateY(1px); +} + +.kumusha-share-sheet { + --border-radius: 24px 24px 0 0; +} + +.kumusha-share-sheet::part(content) { + border-radius: 24px 24px 0 0; +} + +.kumusha-share-sheet-content { + --padding-bottom: calc(28px + var(--ion-safe-area-bottom, 0px)); +} + +.kumusha-share-sheet-shell { + padding: 14px 20px calc(28px + var(--ion-safe-area-bottom, 0px)); +} + +.kumusha-share-sheet-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 18px; +} + +.kumusha-share-sheet-kicker { + margin: 0 0 4px; + font-size: 11px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: rgba(17, 24, 39, 0.45); +} + +.kumusha-share-sheet-title { + margin: 0; + font-size: 20px; + font-weight: 700; + color: #111827; +} + +.kumusha-share-sheet-close { + width: 40px; + height: 40px; + border: none; + border-radius: 12px; + background: #f4f1fb; + color: #6d28d9; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.kumusha-share-sheet-close ion-icon { + font-size: 20px; +} + +.kumusha-share-sheet-options { + display: flex; + flex-direction: column; + gap: 12px; +} + +.kumusha-share-sheet-option { + width: 100%; + border: none; + border-radius: 24px; + background: #fafafa; + padding: 16px; + display: flex; + align-items: center; + gap: 14px; + text-align: left; +} + +.kumusha-share-sheet-option-icon { + width: 48px; + height: 48px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.kumusha-share-sheet-option-icon ion-icon { + font-size: 22px; +} + +.kumusha-share-sheet-option-icon.is-brand { + background: rgba(109, 40, 217, 0.12); + color: #6d28d9; +} + +.kumusha-share-sheet-option-icon.is-soft { + background: rgba(22, 163, 74, 0.12); + color: #16a34a; +} + +.kumusha-share-sheet-option-copy { + min-width: 0; + display: flex; + flex-direction: column; + gap: 4px; +} + +.kumusha-share-sheet-option-title { + font-size: 15px; + font-weight: 700; + color: #111827; +} + +.kumusha-share-sheet-option-subtitle { + font-size: 13px; + line-height: 1.4; + color: rgba(17, 24, 39, 0.6); +} diff --git a/src/utils/formatMoney.ts b/src/utils/formatMoney.ts new file mode 100644 index 0000000..9fd5770 --- /dev/null +++ b/src/utils/formatMoney.ts @@ -0,0 +1,11 @@ +export const formatMoney = (amount: number, currency = 'USD') => { + const safeCurrency = currency || 'USD'; + const formatted = new Intl.NumberFormat(undefined, { + style: 'currency', + currency: safeCurrency, + }).format(amount); + + return safeCurrency.toUpperCase() === 'USD' + ? formatted.replace(/US\$/g, '$') + : formatted; +}; diff --git a/src/utils/localCache.ts b/src/utils/localCache.ts new file mode 100644 index 0000000..10d0d76 --- /dev/null +++ b/src/utils/localCache.ts @@ -0,0 +1,48 @@ +import { Preferences } from '@capacitor/preferences'; + +export const buildCacheKey = (userId: string, key: string): string => { + return `cache_${userId}_${key}`; +}; + +export const writeCache = async (key: string, data: any): Promise => { + try { + const value = JSON.stringify(data); + await Preferences.set({ key, value }); + } catch (error) { + console.error(`[Cache] Failed to write cache for key: ${key}`, error); + } +}; + +export const readCache = async (key: string): Promise => { + try { + const { value } = await Preferences.get({ key }); + if (!value) return null; + return JSON.parse(value) as T; + } catch (error) { + console.error(`[Cache] Failed to read cache for key: ${key}`, error); + return null; + } +}; + +export const removeCache = async (key: string): Promise => { + try { + await Preferences.remove({ key }); + } catch (error) { + console.error(`[Cache] Failed to remove cache for key: ${key}`, error); + } +}; + +export const clearUserCache = async (userId: string): Promise => { + try { + const { keys } = await Preferences.keys(); + const userKeys = keys.filter((k) => k.startsWith(`cache_${userId}_`)); + for (const key of userKeys) { + await Preferences.remove({ key }); + } + } catch (error) { + console.error( + `[Cache] Failed to clear user cache for user: ${userId}`, + error + ); + } +}; diff --git a/src/utils/statusBar.ts b/src/utils/statusBar.ts new file mode 100644 index 0000000..6e2db3f --- /dev/null +++ b/src/utils/statusBar.ts @@ -0,0 +1,32 @@ +import { StatusBar, Style } from '@capacitor/status-bar'; +export { Style }; + +const _origin = (() => { + try { + if (document.referrer) return new URL(document.referrer).origin; + } catch {} + return window.location.origin; +})(); + +/** Set status bar icon/text colour. Use instead of StatusBar.setStyle directly. */ +export async function setStatusBarStyle(style: Style): Promise { + try { + await StatusBar.setStyle({ style }); + } catch {} + if (window.parent !== window) { + window.parent.postMessage({ type: '__apsuite_statusbar', style }, _origin); + } +} + +/** Set status bar background colour (Android). Use instead of StatusBar.setBackgroundColor directly. */ +export async function setStatusBarBackground(color: string): Promise { + try { + await (StatusBar as any).setBackgroundColor({ color }); + } catch {} + if (window.parent !== window) { + window.parent.postMessage( + { type: '__apsuite_statusbar_bg', color }, + _origin + ); + } +} diff --git a/supabase/functions/mark-notification-read/index.ts b/supabase/functions/mark-notification-read/index.ts new file mode 100644 index 0000000..9988c8b --- /dev/null +++ b/supabase/functions/mark-notification-read/index.ts @@ -0,0 +1,77 @@ +import { serve } from 'https://deno.land/std@0.177.0/http/server.ts'; +import { createClient } from 'npm:@supabase/supabase-js@2'; + +const corsHeaders = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Headers': + 'authorization, x-client-info, apikey, content-type', +}; + +serve(async (req) => { + if (req.method === 'OPTIONS') { + return new Response('ok', { headers: corsHeaders }); + } + + try { + const supabaseUrl = Deno.env.get('SUPABASE_URL')!; + const supabaseAnonKey = Deno.env.get('SUPABASE_ANON_KEY')!; + + const authHeader = req.headers.get('Authorization'); + if (!authHeader) { + return new Response(JSON.stringify({ error: 'Missing auth headers' }), { + status: 401, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } + + const supabase = createClient(supabaseUrl, supabaseAnonKey, { + global: { headers: { Authorization: authHeader } }, + }); + + const body = await req.json(); + const { notificationId } = body; + + if (!notificationId) { + return new Response(JSON.stringify({ error: 'Missing notificationId' }), { + status: 400, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } + + // Auth validation check: ensure user token resolves + const { + data: { user }, + error: authError, + } = await supabase.auth.getUser(); + if (authError || !user) { + return new Response(JSON.stringify({ error: 'Unauthorized' }), { + status: 401, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } + + const readAt = new Date().toISOString(); + + const { error: updateError } = await supabase + .from('notifications') + .update({ read_at: readAt }) + .eq('id', notificationId) + .eq('user_id', user.id); // RLS also enforces this, but explicit is good + + if (updateError) { + return new Response(JSON.stringify({ error: updateError.message }), { + status: 500, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } + + return new Response(JSON.stringify({ ok: true, readAt }), { + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } catch (err: any) { + return new Response(JSON.stringify({ error: err.message }), { + status: 500, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } +}); diff --git a/supabase/functions/send-notification/index.ts b/supabase/functions/send-notification/index.ts new file mode 100644 index 0000000..30848ea --- /dev/null +++ b/supabase/functions/send-notification/index.ts @@ -0,0 +1,164 @@ +import { serve } from 'https://deno.land/std@0.177.0/http/server.ts'; +import { createClient } from 'npm:@supabase/supabase-js@2'; +import { cert, getApps, initializeApp } from 'npm:firebase-admin@12.2.0/app'; +import { getMessaging } from 'npm:firebase-admin@12.2.0/messaging'; + +const corsHeaders = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Headers': + 'authorization, x-client-info, apikey, content-type', +}; + +// Singleton — Edge Functions can be warm-reused; avoid "app already exists" error +const app = + getApps()[0] ?? + initializeApp({ + credential: cert( + JSON.parse( + atob(Deno.env.get('FIREBASE_SERVICE_ACCOUNT')!.replace(/\s/g, '')) + ) + ), + }); +const messaging = getMessaging(app); + +serve(async (req) => { + if (req.method === 'OPTIONS') { + return new Response('ok', { headers: corsHeaders }); + } + + try { + const supabaseUrl = Deno.env.get('SUPABASE_URL')!; + const supabaseAnonKey = Deno.env.get('SUPABASE_ANON_KEY')!; + + const authHeader = req.headers.get('Authorization'); + if (!authHeader) { + return new Response(JSON.stringify({ error: 'Missing auth headers' }), { + status: 401, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } + + const supabase = createClient(supabaseUrl, supabaseAnonKey, { + global: { headers: { Authorization: authHeader } }, + }); + + const body = await req.json(); + const { + userId, + title, + body: messageBody, + type, + orderId, + voucherId, + priority = 'important', + persist = true, + } = body; + + if (!userId || !title || !messageBody || !type) { + return new Response( + JSON.stringify({ error: 'Missing required parameters' }), + { + status: 400, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + } + ); + } + + // Persist notification if needed (using service role key to insert securely if needed, but here auth is user) + // Wait, if an admin/webhook is calling this, they will use service_role. If a user is calling, they use their token. + // Let's create a service-role client just for DB updates to ensure it works even if sender is different from recipient + const serviceRoleKey = Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!; + const adminSupabase = createClient(supabaseUrl, serviceRoleKey); + + let notificationId: string | null = null; + let persisted = false; + + if (persist) { + const { data: notifData, error: notifError } = await adminSupabase + .from('notifications') + .insert({ + user_id: userId, + title, + body: messageBody, + type, + priority, + order_id: orderId || null, + voucher_id: voucherId || null, + }) + .select('id') + .single(); + + if (!notifError && notifData) { + notificationId = notifData.id; + persisted = true; + } + } + + // Get user's profile to find fcm_token and preferences + const { data: profile } = await adminSupabase + .from('profiles') + .select('fcm_token, notification_push_enabled') + .eq('id', userId) + .single(); + + let sent = false; + + if (profile && profile.notification_push_enabled && profile.fcm_token) { + const message = { + notification: { + title: title, + body: messageBody, + }, + data: { + orderId: orderId || '', + voucherId: voucherId || '', + type: type || '', + }, + apns: { + payload: { + aps: { + badge: 1, + sound: 'default', + }, + }, + }, + android: { + notification: { + sound: 'default', + notificationCount: 1, + }, + }, + token: profile.fcm_token, + }; + + try { + await messaging.send(message); + sent = true; + } catch (err: any) { + if ( + err.code === 'messaging/registration-token-not-registered' || + err.code === 'messaging/invalid-registration-token' + ) { + // Token is stale — remove it from the DB + await adminSupabase + .from('profiles') + .update({ fcm_token: null }) + .eq('id', userId); + } + console.error('FCM send error:', err); + } + } + + return new Response( + JSON.stringify({ ok: true, sent, persisted, notificationId }), + { + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + } + ); + } catch (err: any) { + return new Response(JSON.stringify({ error: err.message }), { + status: 500, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..29e1016 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "types": ["vite/client"] + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..9d31e2a --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..d6a1d11 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,41 @@ +// NOTE: @ionic/react and @ionic/react-router are pinned to 8.8.7 in package.json. +// 8.8.8 introduced a regression that breaks IonRouterOutlet page transition animations. +// Do not upgrade until the upstream fix is confirmed. +import { defineConfig, type Plugin } from 'vite'; +import react from '@vitejs/plugin-react'; + +const injectRouterBasename: Plugin = { + name: 'inject-router-basename', + enforce: 'pre', + transform(code, id) { + if (!/\.[jt]sx$/.test(id)) return null; + const next = code.replace( + /]*basename)([^>]*)>/g, + '', + ); + return next === code ? null : next; + }, +}; + +const hideScrollbars: Plugin = { + name: 'hide-scrollbars', + transformIndexHtml(html) { + return html.replace( + '', + '', + ); + }, +}; + +export default defineConfig({ + plugins: [injectRouterBasename, hideScrollbars, react()], + server: { + host: '0.0.0.0', + port: 8100, + allowedHosts: true, + hmr: { + clientPort: process.env.HMR_CLIENT_PORT ? parseInt(process.env.HMR_CLIENT_PORT) : undefined, + }, + }, + css: { devSourcemap: false }, +}); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..f44eba1 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3772 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/code-frame@npm:7.29.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.28.5" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.28.6": + version: 7.29.3 + resolution: "@babel/compat-data@npm:7.29.3" + checksum: 10c0/81bddd53ce1b1395576fbb7cb739631a976f6b421cd260e6cf2715a9691b9a0ec12ca5c4e1bb88088e60dc87875f6e4ef7fa8674f1dc96ae1bd7c357416605a7 + languageName: node + linkType: hard + +"@babel/core@npm:^7.28.0": + version: 7.29.0 + resolution: "@babel/core@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-compilation-targets": "npm:^7.28.6" + "@babel/helper-module-transforms": "npm:^7.28.6" + "@babel/helpers": "npm:^7.28.6" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/traverse": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/5127d2e8e842ae409e11bcbb5c2dff9874abf5415e8026925af7308e903f4f43397341467a130490d1a39884f461bc2b67f3063bce0be44340db89687fd852aa + languageName: node + linkType: hard + +"@babel/generator@npm:^7.29.0": + version: 7.29.1 + resolution: "@babel/generator@npm:7.29.1" + dependencies: + "@babel/parser": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10c0/349086e6876258ef3fb2823030fee0f6c0eb9c3ebe35fc572e16997f8c030d765f636ddc6299edae63e760ea6658f8ee9a2edfa6d6b24c9a80c917916b973551 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-compilation-targets@npm:7.28.6" + dependencies: + "@babel/compat-data": "npm:^7.28.6" + "@babel/helper-validator-option": "npm:^7.27.1" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50 + languageName: node + linkType: hard + +"@babel/helper-globals@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/helper-globals@npm:7.28.0" + checksum: 10c0/5a0cd0c0e8c764b5f27f2095e4243e8af6fa145daea2b41b53c0c1414fe6ff139e3640f4e2207ae2b3d2153a1abd346f901c26c290ee7cb3881dd922d4ee9232 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-imports@npm:7.28.6" + dependencies: + "@babel/traverse": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/b49d8d8f204d9dbfd5ac70c54e533e5269afb3cea966a9d976722b13e9922cc773a653405f53c89acb247d5aebdae4681d631a3ae3df77ec046b58da76eda2ac + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-transforms@npm:7.28.6" + dependencies: + "@babel/helper-module-imports": "npm:^7.28.6" + "@babel/helper-validator-identifier": "npm:^7.28.5" + "@babel/traverse": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6f03e14fc30b287ce0b839474b5f271e72837d0cafe6b172d759184d998fbee3903a035e81e07c2c596449e504f453463d58baa65b6f40a37ded5bec74620b2b + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.27.1": + version: 7.28.6 + resolution: "@babel/helper-plugin-utils@npm:7.28.6" + checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/helper-validator-identifier@npm:7.28.5" + checksum: 10c0/42aaebed91f739a41f3d80b72752d1f95fd7c72394e8e4bd7cdd88817e0774d80a432451bcba17c2c642c257c483bf1d409dd4548883429ea9493a3bc4ab0847 + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.28.6": + version: 7.29.2 + resolution: "@babel/helpers@npm:7.29.2" + dependencies: + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.29.0" + checksum: 10c0/dab0e65b9318b2502a62c58bc0913572318595eec0482c31f0ad416b72636e6698a1d7c57cd2791d4528eb8c548bca88d338dc4d2a55a108dc1f6702f9bc5512 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": + version: 7.29.3 + resolution: "@babel/parser@npm:7.29.3" + dependencies: + "@babel/types": "npm:^7.29.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/f06920c819550c0db689e4c5b626bf55ba3cebf80ebe9ccfa434e134036cf3de50951fe759f74abb2dae381989239860bde46d4600328578ad1f7114c3711a6d + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/00a4f917b70a608f9aca2fb39aabe04a60aa33165a7e0105fd44b3a8531630eb85bf5572e9f242f51e6ad2fa38c2e7e780902176c863556c58b5ba6f6e164031 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5e67b56c39c4d03e59e03ba80692b24c5a921472079b63af711b1d250fc37c1733a17069b63537f750f3e937ec44a42b1ee6a46cd23b1a0df5163b17f741f7f2 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.12.13": + version: 7.29.2 + resolution: "@babel/runtime@npm:7.29.2" + checksum: 10c0/30b80a0140d16467792e1bbeb06f655b0dab70407da38dfac7fedae9c859f9ae9d846ef14ad77bd3814c064295fe9b1bc551f1541ea14646ae9f22b71a8bc17a + languageName: node + linkType: hard + +"@babel/template@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/template@npm:7.28.6" + dependencies: + "@babel/code-frame": "npm:^7.28.6" + "@babel/parser": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/traverse@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.29.0" + debug: "npm:^4.3.1" + checksum: 10c0/f63ef6e58d02a9fbf3c0e2e5f1c877da3e0bc57f91a19d2223d53e356a76859cbaf51171c9211c71816d94a0e69efa2732fd27ffc0e1bbc84b636e60932333eb + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/types@npm:7.29.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.28.5" + checksum: 10c0/23cc3466e83bcbfab8b9bd0edaafdb5d4efdb88b82b3be6728bbade5ba2f0996f84f63b1c5f7a8c0d67efded28300898a5f930b171bb40b311bca2029c4e9b4f + languageName: node + linkType: hard + +"@capacitor-firebase/authentication@npm:^8.0.0": + version: 8.3.0 + resolution: "@capacitor-firebase/authentication@npm:8.3.0" + peerDependencies: + "@capacitor/core": ">=8.0.0" + firebase: ^12.6.0 + peerDependenciesMeta: + firebase: + optional: true + checksum: 10c0/a52f6ec85d18438ed616c78f29a8cea4a64621d13208a4d79d914344090630ce549f4e2d5d75da94b012e8799b4794e0af8d0e736edd97973b57205b62258ed9 + languageName: node + linkType: hard + +"@capacitor/android@npm:8.3.4": + version: 8.3.4 + resolution: "@capacitor/android@npm:8.3.4" + peerDependencies: + "@capacitor/core": ^8.3.0 + checksum: 10c0/c24c0ad18df8de1ef63bc22392cc8e3934acbff72a7cbd97eb1710f38617cc42728c410cd9e2f74c62d93da09d678ce2dac96a819005343c1c0a8ad8ee629cb1 + languageName: node + linkType: hard + +"@capacitor/app@npm:8.1.0": + version: 8.1.0 + resolution: "@capacitor/app@npm:8.1.0" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/670a5bc3f0c1706f9d09ad03873836ac9b56e1ca6c9853e283d43b4ff04c7295b30801d49f563206aadcf882245025be1ecdc12c22c7d479c636b34123e9a0d3 + languageName: node + linkType: hard + +"@capacitor/cli@npm:8.3.4": + version: 8.3.4 + resolution: "@capacitor/cli@npm:8.3.4" + dependencies: + "@ionic/cli-framework-output": "npm:^2.2.8" + "@ionic/utils-subprocess": "npm:^3.0.1" + "@ionic/utils-terminal": "npm:^2.3.5" + commander: "npm:^12.1.0" + debug: "npm:^4.4.0" + env-paths: "npm:^2.2.0" + fs-extra: "npm:^11.2.0" + kleur: "npm:^4.1.5" + native-run: "npm:^2.0.3" + open: "npm:^8.4.0" + plist: "npm:^3.1.0" + prompts: "npm:^2.4.2" + rimraf: "npm:^6.0.1" + semver: "npm:^7.6.3" + tar: "npm:^7.5.3" + tslib: "npm:^2.8.1" + xml2js: "npm:^0.6.2" + bin: + cap: bin/capacitor + capacitor: bin/capacitor + checksum: 10c0/e9f8f4bbd10f1eb4cd80b450cab75c12a78490fed2caa540f5fc7b7ba9cb61e309e0d214bc4b30085f686eda1de4da72ed0ea84902a9129d257deffff65797c7 + languageName: node + linkType: hard + +"@capacitor/core@npm:8.3.4": + version: 8.3.4 + resolution: "@capacitor/core@npm:8.3.4" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/12341743e5d4c532cdfe1f3a145ac0f278f9006a46cd9a31f79c9169cfce6d86b77c60082230975bf265882a84e7dce7a4d5b137a5841a5b86d1b9d230f67995 + languageName: node + linkType: hard + +"@capacitor/google-maps@npm:^8.0.0": + version: 8.0.1 + resolution: "@capacitor/google-maps@npm:8.0.1" + dependencies: + "@googlemaps/js-api-loader": "npm:^2.0.2" + "@googlemaps/markerclusterer": "npm:^2.6.2" + "@types/google.maps": "npm:^3.58.1" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/3b947ef116ac2efcc6611cd2b713adc3466e1dca8ea3cdd9e8e73c8d20265d216dc3c2ee62c273305c68f04eecf1190e54016449f9adbf16ce5b48f4519473f1 + languageName: node + linkType: hard + +"@capacitor/haptics@npm:8.0.2": + version: 8.0.2 + resolution: "@capacitor/haptics@npm:8.0.2" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/cf6c9c0c6035dc66cf6e483aa513d69a147cafde70d9c3bf8792704322478eb0cc7cee6a4179ebea7c5b6effce85a4753ab10a7f0007375527676bf4e2827c6b + languageName: node + linkType: hard + +"@capacitor/ios@npm:8.3.4": + version: 8.3.4 + resolution: "@capacitor/ios@npm:8.3.4" + peerDependencies: + "@capacitor/core": ^8.3.0 + checksum: 10c0/1725f5d38ef762c0bba6368fcf13be62758e0159041d83e7570b0163e99db6e6be4fab5f2863c32c2bd4d05e1dbea70bbe55def635a07862e850fae35ae83563 + languageName: node + linkType: hard + +"@capacitor/keyboard@npm:8.0.3": + version: 8.0.3 + resolution: "@capacitor/keyboard@npm:8.0.3" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/502c7ff5b88367df92ab4c0a51f04d70a6bd2b7ce03ead881035e63286282bc4abfb35d9fe55c8ebed538fe8b665e632050810e89ac6014a70fc98afaf8bbf23 + languageName: node + linkType: hard + +"@capacitor/preferences@npm:^8.0.1": + version: 8.0.1 + resolution: "@capacitor/preferences@npm:8.0.1" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/cbed0229a685f484c396fd043354688fdeec69264f322180b62c5adb0322561b288a63eb38ee9b38cf78ea7dbc3b9dc8dd8c2e52b54a7f752a1b2f07bfd29f0d + languageName: node + linkType: hard + +"@capacitor/push-notifications@npm:^8.1.1": + version: 8.1.1 + resolution: "@capacitor/push-notifications@npm:8.1.1" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/4641fd997e03385676c12848c9ba3bb36a180450926614efb1769d8e6579c60641365e1018f8d846979c5c411f9152b50be4bac7c2e4d06dbf7c1954c07e181c + languageName: node + linkType: hard + +"@capacitor/share@npm:^8.0.1": + version: 8.0.1 + resolution: "@capacitor/share@npm:8.0.1" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/a615b85c79bbd3bfeb5e2ee2ac119e7ba8b8184ebcaad3b019467103e4ffc24130e1c1af42910498342fb495e0e297edf72169fa801963e34883d8bd4a42e514 + languageName: node + linkType: hard + +"@capacitor/status-bar@npm:8.0.2": + version: 8.0.2 + resolution: "@capacitor/status-bar@npm:8.0.2" + peerDependencies: + "@capacitor/core": ">=8.0.0" + checksum: 10c0/2e27cf6629666b9e3078ac26e68a13d211a442b24ce64e40510ca9741666abe72c64c0be05b2645ebfcd297413a2f5238812218649e74b906d11893378a15231 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@firebase/ai@npm:1.4.1": + version: 1.4.1 + resolution: "@firebase/ai@npm:1.4.1" + dependencies: + "@firebase/app-check-interop-types": "npm:0.3.3" + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + "@firebase/app-types": 0.x + checksum: 10c0/81b0913877438c080e7c22ef2aef207ce4aec921d34a82c0bb58b2cd829612ca2acc726fab389484489374af7b1e0270b7c9d9f98b9dc5c32f658e90b69af6c2 + languageName: node + linkType: hard + +"@firebase/analytics-compat@npm:0.2.23": + version: 0.2.23 + resolution: "@firebase/analytics-compat@npm:0.2.23" + dependencies: + "@firebase/analytics": "npm:0.10.17" + "@firebase/analytics-types": "npm:0.8.3" + "@firebase/component": "npm:0.6.18" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/61ca904bcd8eafe91f2db09c592ff0da911ae1f50f6ec95cc2eefbbe1dd5b537cc8838d3b03ab8dca9e06c42c4092a447dc69c61a1b8a1ffcd0fac1047eac71d + languageName: node + linkType: hard + +"@firebase/analytics-types@npm:0.8.3": + version: 0.8.3 + resolution: "@firebase/analytics-types@npm:0.8.3" + checksum: 10c0/2cbc5fe8425bc01c7ba03579cdc5ca6b23de51b08edb62927be610a33bbc961bae97aa48ee12dcdb039b752c158d095f234ed20f1f4d2bd7a5c39f44d82cdf22 + languageName: node + linkType: hard + +"@firebase/analytics@npm:0.10.17": + version: 0.10.17 + resolution: "@firebase/analytics@npm:0.10.17" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/installations": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/c6669c3d090a52c1e8fa0071f541237b811dbbbf5a4dd497e3ee4175fd2c25e55da272dec5e73801d7ac4688862e1719b391daa445bf1e2dfadc8c2b153ef73b + languageName: node + linkType: hard + +"@firebase/app-check-compat@npm:0.3.26": + version: 0.3.26 + resolution: "@firebase/app-check-compat@npm:0.3.26" + dependencies: + "@firebase/app-check": "npm:0.10.1" + "@firebase/app-check-types": "npm:0.5.3" + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/1ef896356eb6656a836f68bb860dcac0b9af2021a3651e26064d9d936180b3e6d0b8b2adbc834a0353b68cca249ed707e01519a14f9514e1b38fa9c911260c01 + languageName: node + linkType: hard + +"@firebase/app-check-interop-types@npm:0.3.3": + version: 0.3.3 + resolution: "@firebase/app-check-interop-types@npm:0.3.3" + checksum: 10c0/4a887ef5e30ee1a407b569603c433a9f21244d50a19d97a5f1f17d8f5caea83096852b39e67d599f3238f1f7e2a369b02d184a184986a649ed1f8fed12fbd6be + languageName: node + linkType: hard + +"@firebase/app-check-types@npm:0.5.3": + version: 0.5.3 + resolution: "@firebase/app-check-types@npm:0.5.3" + checksum: 10c0/59af0ae698ff2172e84f504e3b5e778c2cc78fefdcceb917eb899a204ad130ad5497011ab94459f6f9dd0a9062a0455bbd745ad3e488b39dae4625c3fb0d0145 + languageName: node + linkType: hard + +"@firebase/app-check@npm:0.10.1": + version: 0.10.1 + resolution: "@firebase/app-check@npm:0.10.1" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/95504658f10b957b6c0080b7d48a7e3352dd23b342c81868bc17242f0812b315ed9db9a022a50f26a1ffd44d6760de5114cd3bf1f5176319a40706cfb2b0b5c9 + languageName: node + linkType: hard + +"@firebase/app-compat@npm:0.4.2": + version: 0.4.2 + resolution: "@firebase/app-compat@npm:0.4.2" + dependencies: + "@firebase/app": "npm:0.13.2" + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + checksum: 10c0/265b9b6a2284feb3a768a4a7506e336521549894f557016a77e05867a0d37daa9a496f275844cc007047b4248c930743cf0e89c874387a8c7888ca6a4aa1ff84 + languageName: node + linkType: hard + +"@firebase/app-types@npm:0.9.3": + version: 0.9.3 + resolution: "@firebase/app-types@npm:0.9.3" + checksum: 10c0/02ec9a26c10b9bbb2a1e5b9ae0552b5325b40066e3c23be089ceae53414a1505f2ab716ae1098652a0a0c9992ba322c05371a9b2a837cccfae309788372a72e0 + languageName: node + linkType: hard + +"@firebase/app@npm:0.13.2": + version: 0.13.2 + resolution: "@firebase/app@npm:0.13.2" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + idb: "npm:7.1.1" + tslib: "npm:^2.1.0" + checksum: 10c0/e6c315aceb8c5c415d536d4468fb8fab468a4e75ab292259256e3a1007293254f7394816637398ebef0c8e9cb192c60392b18d1367219f49bbac8048e34d789d + languageName: node + linkType: hard + +"@firebase/auth-compat@npm:0.5.28": + version: 0.5.28 + resolution: "@firebase/auth-compat@npm:0.5.28" + dependencies: + "@firebase/auth": "npm:1.10.8" + "@firebase/auth-types": "npm:0.13.0" + "@firebase/component": "npm:0.6.18" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/2e22d37054ee5dd2861ec2dea32fe39e7628c49bfd74cdf06f6959b24e94eeb4f7150f26bc35da2b6166f25772c90f241cd403d7ef8ed4ebad4b8c858ef260dd + languageName: node + linkType: hard + +"@firebase/auth-interop-types@npm:0.2.4": + version: 0.2.4 + resolution: "@firebase/auth-interop-types@npm:0.2.4" + checksum: 10c0/ff833bcbb472992c6061847309e338dac736c616522c5fd808526d6dc13b9788458a8c9677d91c33c1288ee38f42896c2b4b8fe10ee74f1569d11f3f3c4f53b5 + languageName: node + linkType: hard + +"@firebase/auth-types@npm:0.13.0": + version: 0.13.0 + resolution: "@firebase/auth-types@npm:0.13.0" + peerDependencies: + "@firebase/app-types": 0.x + "@firebase/util": 1.x + checksum: 10c0/a844c4a083ade9ae946337ec7d7fca8b0a384439be455d6d60d1ba01671c34b2b5162b7b8c1341a699fa70f78948c145c3bbe4723ca444f3b2f17cace40a4fd9 + languageName: node + linkType: hard + +"@firebase/auth@npm:1.10.8": + version: 1.10.8 + resolution: "@firebase/auth@npm:1.10.8" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + "@react-native-async-storage/async-storage": ^1.18.1 + peerDependenciesMeta: + "@react-native-async-storage/async-storage": + optional: true + checksum: 10c0/91cb05a743d61647d4f78a8bc8b31d1ee948d24f049f6a4d76012eb6f004ac1b8754ae85e79f9e0183fa8b8e75a246d3aca6f25d76f106a44b4e5d0983b67f6d + languageName: node + linkType: hard + +"@firebase/component@npm:0.6.18": + version: 0.6.18 + resolution: "@firebase/component@npm:0.6.18" + dependencies: + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + checksum: 10c0/8132696aed9092b9c9274a1191db0f4c93779a23a416427cf2c8bdfb13ce6ccea8f86a4b4e55638f54ee17aab9d8ad7b4068ffc866efb67ff9510da1de179b6b + languageName: node + linkType: hard + +"@firebase/data-connect@npm:0.3.10": + version: 0.3.10 + resolution: "@firebase/data-connect@npm:0.3.10" + dependencies: + "@firebase/auth-interop-types": "npm:0.2.4" + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/fb04aca45fc837daafb9dbe3d573dd86b208e57fed6cfbe8bdc0a41c56dca094ed2e1572bf69641d89a17cb785b945d412b635337170b7d05bee670f77d2b4bf + languageName: node + linkType: hard + +"@firebase/database-compat@npm:2.0.11": + version: 2.0.11 + resolution: "@firebase/database-compat@npm:2.0.11" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/database": "npm:1.0.20" + "@firebase/database-types": "npm:1.0.15" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + checksum: 10c0/908f6f0295505e1b4e112cbf898a518ef74d09a2511f8c451b49c93c7bab58ad707d1ff3e9db2b28a44d87ba06f8137f23f398c7302b89856ab56685d249e6f1 + languageName: node + linkType: hard + +"@firebase/database-types@npm:1.0.15": + version: 1.0.15 + resolution: "@firebase/database-types@npm:1.0.15" + dependencies: + "@firebase/app-types": "npm:0.9.3" + "@firebase/util": "npm:1.12.1" + checksum: 10c0/379e61eb1b7d949c499ea36b5937b496b59b56adb51f3967471bb96f93f29ca870df1bae006a68c59e94cfadc47e19db5a49a52f50338db71a445db9c44e3c78 + languageName: node + linkType: hard + +"@firebase/database@npm:1.0.20": + version: 1.0.20 + resolution: "@firebase/database@npm:1.0.20" + dependencies: + "@firebase/app-check-interop-types": "npm:0.3.3" + "@firebase/auth-interop-types": "npm:0.2.4" + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + faye-websocket: "npm:0.11.4" + tslib: "npm:^2.1.0" + checksum: 10c0/40ef1037b00baae94c6d32c48ca4eb2812c36bfb23cd15fd240cba9450860e73c216420989aef5886f0f0e5facd34a1bd7d2c0dc751a527f2f0a0c6f369d397c + languageName: node + linkType: hard + +"@firebase/firestore-compat@npm:0.3.53": + version: 0.3.53 + resolution: "@firebase/firestore-compat@npm:0.3.53" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/firestore": "npm:4.8.0" + "@firebase/firestore-types": "npm:3.0.3" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/a588fbd28c579a6c1d59225e3fbd6f6ec748a65b2bda4766e12d2b2cb843338568a883e5a170fe23333a7710060a1b714304a69a63b8282514be6fc72bb1c6e1 + languageName: node + linkType: hard + +"@firebase/firestore-types@npm:3.0.3": + version: 3.0.3 + resolution: "@firebase/firestore-types@npm:3.0.3" + peerDependencies: + "@firebase/app-types": 0.x + "@firebase/util": 1.x + checksum: 10c0/8196168a2de68bd60e0a9053a670d14d2917bf8e30829a4a2f8435fa2aceaaf97ce7438cd9525786a9bf8c5d6104ced3086acd792439371fea7b35497a53bdfa + languageName: node + linkType: hard + +"@firebase/firestore@npm:4.8.0": + version: 4.8.0 + resolution: "@firebase/firestore@npm:4.8.0" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + "@firebase/webchannel-wrapper": "npm:1.0.3" + "@grpc/grpc-js": "npm:~1.9.0" + "@grpc/proto-loader": "npm:^0.7.8" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/87e2a16fd432a1e6eeab537bf24ca8f3a5b01268d5ef0a7b4bae72032bdcb009159a6739383ff786087937c773493e67e8614f5835044d264dfc7954b1a6c209 + languageName: node + linkType: hard + +"@firebase/functions-compat@npm:0.3.26": + version: 0.3.26 + resolution: "@firebase/functions-compat@npm:0.3.26" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/functions": "npm:0.12.9" + "@firebase/functions-types": "npm:0.6.3" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/815e657273c4333177163b1e9fd1cc607189dd5be7b0766269d3c796baef800f3c65f61469d60c0214e36c1cc6b3ccfbf5294fca1d95c809f43ac7dea2b26ddf + languageName: node + linkType: hard + +"@firebase/functions-types@npm:0.6.3": + version: 0.6.3 + resolution: "@firebase/functions-types@npm:0.6.3" + checksum: 10c0/aabd7bdd8c479323a419bba9ad275d96cd44229bd2213c87be08a9978af5ff0c1306279229a358c77280ce54fa6f42c91a6fd6c947808b1103174db0261b86e1 + languageName: node + linkType: hard + +"@firebase/functions@npm:0.12.9": + version: 0.12.9 + resolution: "@firebase/functions@npm:0.12.9" + dependencies: + "@firebase/app-check-interop-types": "npm:0.3.3" + "@firebase/auth-interop-types": "npm:0.2.4" + "@firebase/component": "npm:0.6.18" + "@firebase/messaging-interop-types": "npm:0.2.3" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/99666f7500004b4073b8b617edbafe4efec758816f7ae980b9fdd149bf767edb65353c41534ef1e2bb988cd72c08d46e4f64a98b6d1cf961a81009ec81a7e7cd + languageName: node + linkType: hard + +"@firebase/installations-compat@npm:0.2.18": + version: 0.2.18 + resolution: "@firebase/installations-compat@npm:0.2.18" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/installations": "npm:0.6.18" + "@firebase/installations-types": "npm:0.5.3" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/22e1bc4b4da0bdee9881d8bb4c43794f8f5743b87f071afa6d4c30bbe6a2f99786c1864b9054429c8fdc35f68b5f9dbae825164e1c5c3272c2564c7e877836a2 + languageName: node + linkType: hard + +"@firebase/installations-types@npm:0.5.3": + version: 0.5.3 + resolution: "@firebase/installations-types@npm:0.5.3" + peerDependencies: + "@firebase/app-types": 0.x + checksum: 10c0/f8af07a17e9c0cd1738009b880579b57d112f991ac99e4a17f327d89ad9f8f633fd50757bfd97f470edcc62045526dc59432fb7fcb1f76daa3c72c975519af62 + languageName: node + linkType: hard + +"@firebase/installations@npm:0.6.18": + version: 0.6.18 + resolution: "@firebase/installations@npm:0.6.18" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/util": "npm:1.12.1" + idb: "npm:7.1.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/d7fbd65b89f59c57b05e82c3748b17c4fa973661809c0d97f0b57193609da4b0f4926b1bf63d03346330c5d194487c7c5e06433f4bf4987bad2e2ba884799304 + languageName: node + linkType: hard + +"@firebase/logger@npm:0.4.4": + version: 0.4.4 + resolution: "@firebase/logger@npm:0.4.4" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/0493468960c1243bad71ff932fbf89c17870b07cd3cb25b9565661689e52e93948e43cbd423f9903bdd80c40b98c28e4b2d85698e9ef09d4c59e23beb9140bda + languageName: node + linkType: hard + +"@firebase/messaging-compat@npm:0.2.22": + version: 0.2.22 + resolution: "@firebase/messaging-compat@npm:0.2.22" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/messaging": "npm:0.12.22" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/b91cd3faa6c3e8787143e5977821cb8e36e29311bfc8b84c099ecd4f32a70c5d9c6c4a2bec5ea07a8613ddc295facf1976a8bf8be0c886dd8fc1ae33dbb46216 + languageName: node + linkType: hard + +"@firebase/messaging-interop-types@npm:0.2.3": + version: 0.2.3 + resolution: "@firebase/messaging-interop-types@npm:0.2.3" + checksum: 10c0/a6fb8f02db6a93f277cb5bd530934509e49465f775f2b5ed159116d9ce30b6255213781639b98984ff8b424a8fc36a8e5779e0cc3f0cf5e1bdbd41ae938d6c39 + languageName: node + linkType: hard + +"@firebase/messaging@npm:0.12.22": + version: 0.12.22 + resolution: "@firebase/messaging@npm:0.12.22" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/installations": "npm:0.6.18" + "@firebase/messaging-interop-types": "npm:0.2.3" + "@firebase/util": "npm:1.12.1" + idb: "npm:7.1.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/8c9d9c9c6a5cf9c08ca790e3d60e54199e47c957312a9208c70c9b391e02cafef1588635327990f18269a8556fec0d48db6744e0c754ce2622e4f0a55453cd11 + languageName: node + linkType: hard + +"@firebase/performance-compat@npm:0.2.20": + version: 0.2.20 + resolution: "@firebase/performance-compat@npm:0.2.20" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/performance": "npm:0.7.7" + "@firebase/performance-types": "npm:0.2.3" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/bb85d8dfcaee63f30ecd188f8ed04a83c9f0ef0be61479e746dd82c3ef6b8b5f588e492c3022238e19817bb3186aab411b0b941202987213841c9551cf22b5a7 + languageName: node + linkType: hard + +"@firebase/performance-types@npm:0.2.3": + version: 0.2.3 + resolution: "@firebase/performance-types@npm:0.2.3" + checksum: 10c0/971d6bff448481dd5e8ff9d643e14b364ed4d619aca1d8d64105555c7f4566c9c05bca3cd0c027b3f879cccf8c7bc0e31579f7f0d7b8b1de182af804572b2374 + languageName: node + linkType: hard + +"@firebase/performance@npm:0.7.7": + version: 0.7.7 + resolution: "@firebase/performance@npm:0.7.7" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/installations": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + web-vitals: "npm:^4.2.4" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/4c9cf7607ebcbcc2a2a48b2a548bfe1738d1839c75fda37622aff9007e86618a20cde41ca1b81e39414e18fa409ff4c8695854306bb2ec5ba9f52c21bc95acf4 + languageName: node + linkType: hard + +"@firebase/remote-config-compat@npm:0.2.18": + version: 0.2.18 + resolution: "@firebase/remote-config-compat@npm:0.2.18" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/remote-config": "npm:0.6.5" + "@firebase/remote-config-types": "npm:0.4.0" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/e14035320c9ada6f0130440bdfffaf671614452c3743599800f89b5790de30407c88ef10e0b8ae9f38e05738553595d7c80bf792de96427a3f2589f7cd93df8b + languageName: node + linkType: hard + +"@firebase/remote-config-types@npm:0.4.0": + version: 0.4.0 + resolution: "@firebase/remote-config-types@npm:0.4.0" + checksum: 10c0/2b80a82559f8025ec2e16e98b2fc0bebc1aba6ad461895cd5544c7af964bba9faf6e351aeb356dcb28cd7fe75bc9f120f02ccacffa70f44b160a1b27fd00a5d2 + languageName: node + linkType: hard + +"@firebase/remote-config@npm:0.6.5": + version: 0.6.5 + resolution: "@firebase/remote-config@npm:0.6.5" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/installations": "npm:0.6.18" + "@firebase/logger": "npm:0.4.4" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/8f33384205c43ab65d0c725fd5be3fd949970eb755583baba11331192ed95d881928598d2dbc771aecf80f843617367bb4f6b3083107260a213344f1c043714e + languageName: node + linkType: hard + +"@firebase/storage-compat@npm:0.3.24": + version: 0.3.24 + resolution: "@firebase/storage-compat@npm:0.3.24" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/storage": "npm:0.13.14" + "@firebase/storage-types": "npm:0.8.3" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10c0/cfe0ec9ef4bccc96675334e5e89dcf7b150730834e5d188cb06c60d0e91241d5673e32c9779edd2e3f48bb23dc4f7d4bf3e6bbe3f4ec30a09fecabd866afd493 + languageName: node + linkType: hard + +"@firebase/storage-types@npm:0.8.3": + version: 0.8.3 + resolution: "@firebase/storage-types@npm:0.8.3" + peerDependencies: + "@firebase/app-types": 0.x + "@firebase/util": 1.x + checksum: 10c0/4b34edca4fcbf75ba6575b02d823f5f5b0680977488a2e8101116313903d75973623cf4440f1e0f8048158e0804d0f5a7730f15bbe5af4ceb35fae6ff532a696 + languageName: node + linkType: hard + +"@firebase/storage@npm:0.13.14": + version: 0.13.14 + resolution: "@firebase/storage@npm:0.13.14" + dependencies: + "@firebase/component": "npm:0.6.18" + "@firebase/util": "npm:1.12.1" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10c0/e6b40c7057783a390b89e6e52e9994763246777cd74ac1d25be98478a50639feedbac8097683aa288b90eda1cc4f9345dc682b8f416f13cbcf7f7394721194ad + languageName: node + linkType: hard + +"@firebase/util@npm:1.12.1": + version: 1.12.1 + resolution: "@firebase/util@npm:1.12.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/1ba735478eb06f718b971a39fc9b91dc1bab8a76e9a63f199be56c31fc0a46a9e062fc86d63c7be65dff791927ab964f0264ef0fb9bf01a4650890c6c6a08c59 + languageName: node + linkType: hard + +"@firebase/webchannel-wrapper@npm:1.0.3": + version: 1.0.3 + resolution: "@firebase/webchannel-wrapper@npm:1.0.3" + checksum: 10c0/faa1e53ea82ab6bda0b9dcc5f525101a301c74d1cffb924269de947a46511a633662dd6ee8ca571470e06642b35a596625228c766f37cc2d657321edfc560d28 + languageName: node + linkType: hard + +"@googlemaps/js-api-loader@npm:^2.0.2": + version: 2.1.1 + resolution: "@googlemaps/js-api-loader@npm:2.1.1" + dependencies: + "@types/google.maps": "npm:^3.53.1" + checksum: 10c0/06cb6eaf686b838be51efd8293010b7bee42e341e9ad41b42a0ee8909cf06cc5711ba6cfdbcd0c62ff05c8ba35d8622c34130e738bc5844011c8bc457d14de64 + languageName: node + linkType: hard + +"@googlemaps/markerclusterer@npm:^2.6.2": + version: 2.6.2 + resolution: "@googlemaps/markerclusterer@npm:2.6.2" + dependencies: + "@types/supercluster": "npm:^7.1.3" + fast-equals: "npm:^5.2.2" + supercluster: "npm:^8.0.1" + checksum: 10c0/bfe4ffef9dc9f635fca93968d71b2019c936b46480e38dbfb885c3bed1589c9a353e428880a018f8fbc50c2cb16257c4822742d2e49f963dd9ff5d7ffe12f9cb + languageName: node + linkType: hard + +"@grpc/grpc-js@npm:~1.9.0": + version: 1.9.16 + resolution: "@grpc/grpc-js@npm:1.9.16" + dependencies: + "@grpc/proto-loader": "npm:^0.7.8" + "@types/node": "npm:>=12.12.47" + checksum: 10c0/dfe2b1a670d650489fe82bb7afc1c0336313b0cde4a102623a1331267cbdeb1bde9409143fb1432db074bc1845b38d96b82a4277bdd99929aa8322cf97d305aa + languageName: node + linkType: hard + +"@grpc/proto-loader@npm:^0.7.8": + version: 0.7.15 + resolution: "@grpc/proto-loader@npm:0.7.15" + dependencies: + lodash.camelcase: "npm:^4.3.0" + long: "npm:^5.0.0" + protobufjs: "npm:^7.2.5" + yargs: "npm:^17.7.2" + bin: + proto-loader-gen-types: build/bin/proto-loader-gen-types.js + checksum: 10c0/514a134a724b56d73d0a202b7e02c84479da21e364547bacb2f4995ebc0d52412a1a21653add9f004ebd146c1e6eb4bcb0b8846fdfe1bfa8a98ed8f3d203da4a + languageName: node + linkType: hard + +"@hookform/resolvers@npm:^3.9.0": + version: 3.10.0 + resolution: "@hookform/resolvers@npm:3.10.0" + peerDependencies: + react-hook-form: ^7.0.0 + checksum: 10c0/7ee44533b4cdc28c4fa2a94894c735411e5a1f830f4a617c580533321a9b901df0cc8c1e2fad81ad8d55154ebc5cb844cf9c116a3148ffae2bc48758c33cbb8e + languageName: node + linkType: hard + +"@ionic/cli-framework-output@npm:^2.2.8": + version: 2.2.8 + resolution: "@ionic/cli-framework-output@npm:2.2.8" + dependencies: + "@ionic/utils-terminal": "npm:2.3.5" + debug: "npm:^4.0.0" + tslib: "npm:^2.0.1" + checksum: 10c0/a7bf9379201225f20dc3fe1ff93d8b811ef6f9437762785ca80d0c26bcb5aa6fe1661e9d8e1a41d6b193036d7c09a97215d6ec36f4692fa6ea860c1aebd5a97f + languageName: node + linkType: hard + +"@ionic/core@npm:8.8.7": + version: 8.8.7 + resolution: "@ionic/core@npm:8.8.7" + dependencies: + "@stencil/core": "npm:4.43.0" + ionicons: "npm:^8.0.13" + tslib: "npm:^2.1.0" + checksum: 10c0/46d442018b1c70ec6182e3b449dddc77c192df1f4da87078ab20f4740ce7eca852929d4987004a60bf5416fadb232a9cf5e492160179092c80b0fb7a252d62bf + languageName: node + linkType: hard + +"@ionic/pwa-elements@npm:^3.0.0": + version: 3.4.0 + resolution: "@ionic/pwa-elements@npm:3.4.0" + checksum: 10c0/4c4f9251d30e7f4551faeefcaa40846618e9567a5c091175b8502e9da931d0411ac8575a8128d9f3edac575d70f36514a29a8a733d7cf0189b91dc646e6e37ba + languageName: node + linkType: hard + +"@ionic/react-router@npm:8.8.7": + version: 8.8.7 + resolution: "@ionic/react-router@npm:8.8.7" + dependencies: + "@ionic/react": "npm:8.8.7" + tslib: "npm:*" + peerDependencies: + react: ">=16.8.6" + react-dom: ">=16.8.6" + react-router: ^5.0.1 + react-router-dom: ^5.0.1 + checksum: 10c0/302d6ad9c0d450cf6466ff18622aa7708af77c1c4a676d2ff39eca6add440fe96d36a157feae146c3da460c32e7799357320b3270740b050ab040a664b9f0ff2 + languageName: node + linkType: hard + +"@ionic/react@npm:8.8.7": + version: 8.8.7 + resolution: "@ionic/react@npm:8.8.7" + dependencies: + "@ionic/core": "npm:8.8.7" + ionicons: "npm:^8.0.13" + tslib: "npm:*" + peerDependencies: + react: ">=16.8.6" + react-dom: ">=16.8.6" + checksum: 10c0/f5b19ca029a56dcf218ae735b53dcafca3325f9faa62e0bf8aa80095fe3e28053b5884fda5eedfd1392b8ab2cec1f4b29baa28b321e1e421f0b5cd42438a2837 + languageName: node + linkType: hard + +"@ionic/utils-array@npm:2.1.6": + version: 2.1.6 + resolution: "@ionic/utils-array@npm:2.1.6" + dependencies: + debug: "npm:^4.0.0" + tslib: "npm:^2.0.1" + checksum: 10c0/07b9a1c77b34e0c4d0e3bd1f638d7f7ede9481e8903328f4d1ecce20a96e92d71faed7f1c7572bcc7099d14f5c26d815c38b15a7c0679d71ee0ab40c3fde3d20 + languageName: node + linkType: hard + +"@ionic/utils-fs@npm:3.1.7, @ionic/utils-fs@npm:^3.1.7": + version: 3.1.7 + resolution: "@ionic/utils-fs@npm:3.1.7" + dependencies: + "@types/fs-extra": "npm:^8.0.0" + debug: "npm:^4.0.0" + fs-extra: "npm:^9.0.0" + tslib: "npm:^2.0.1" + checksum: 10c0/e6d71395530ad7d60ee2a698ed5f3c1fc4df85083808a7847a639fc5dfd3cb701563e1652e7cc80b7915b19a62071138a8a40e47537dc750d1a262bdb43daf6e + languageName: node + linkType: hard + +"@ionic/utils-object@npm:2.1.6": + version: 2.1.6 + resolution: "@ionic/utils-object@npm:2.1.6" + dependencies: + debug: "npm:^4.0.0" + tslib: "npm:^2.0.1" + checksum: 10c0/17b55abb65008d6be72db8cd4d3fffd2fdf103de11b38f48b65c9f6f8fe0501ff19bb7dd972014852b19dce79cf4029d0a905628e041894be10f4d2fd19f601f + languageName: node + linkType: hard + +"@ionic/utils-process@npm:2.1.12": + version: 2.1.12 + resolution: "@ionic/utils-process@npm:2.1.12" + dependencies: + "@ionic/utils-object": "npm:2.1.6" + "@ionic/utils-terminal": "npm:2.3.5" + debug: "npm:^4.0.0" + signal-exit: "npm:^3.0.3" + tree-kill: "npm:^1.2.2" + tslib: "npm:^2.0.1" + checksum: 10c0/0ee9c9810080fcf77dd7bed457f65dd074009d799b7c4efa147f3c53049993d08c73409653bc402fa9c7bf67b691d3c8cce7cd6836db4fdb75334e179ae325fa + languageName: node + linkType: hard + +"@ionic/utils-stream@npm:3.1.7": + version: 3.1.7 + resolution: "@ionic/utils-stream@npm:3.1.7" + dependencies: + debug: "npm:^4.0.0" + tslib: "npm:^2.0.1" + checksum: 10c0/738715334237cbafe4c43f3620ffd6ccbef3a6148958d6d4642dba784acb55223c4c059d7593edddcc72fcab7b5fe7c5c51b74cfd54521dd91ff1a9de7d5d121 + languageName: node + linkType: hard + +"@ionic/utils-subprocess@npm:^3.0.1": + version: 3.0.1 + resolution: "@ionic/utils-subprocess@npm:3.0.1" + dependencies: + "@ionic/utils-array": "npm:2.1.6" + "@ionic/utils-fs": "npm:3.1.7" + "@ionic/utils-process": "npm:2.1.12" + "@ionic/utils-stream": "npm:3.1.7" + "@ionic/utils-terminal": "npm:2.3.5" + cross-spawn: "npm:^7.0.3" + debug: "npm:^4.0.0" + tslib: "npm:^2.0.1" + checksum: 10c0/b4f4b02c3ebd7dcc587c5db077ddade5d938f7693fc7aaba7e5356404f272dac8c9e032adfb496115ab3ca5ec7ec37949ce7925394f4a7574db81f30e3b27eed + languageName: node + linkType: hard + +"@ionic/utils-terminal@npm:2.3.5, @ionic/utils-terminal@npm:^2.3.4, @ionic/utils-terminal@npm:^2.3.5": + version: 2.3.5 + resolution: "@ionic/utils-terminal@npm:2.3.5" + dependencies: + "@types/slice-ansi": "npm:^4.0.0" + debug: "npm:^4.0.0" + signal-exit: "npm:^3.0.3" + slice-ansi: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + tslib: "npm:^2.0.1" + untildify: "npm:^4.0.0" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/a3fdd68f6913250f49a302e03f4c93c2abafed3064f982c10b69a2e05439df208d09cc25dfec062cbfd741d22ebf5473f72831aeba96e246f8e3d82d6caaa03a + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.13 + resolution: "@jridgewell/gen-mapping@npm:0.3.13" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/9a7d65fb13bd9aec1fbab74cda08496839b7e2ceb31f5ab922b323e94d7c481ce0fc4fd7e12e2610915ed8af51178bdc61e168e92a8c8b8303b030b03489b13b + languageName: node + linkType: hard + +"@jridgewell/remapping@npm:^2.3.5": + version: 2.3.5 + resolution: "@jridgewell/remapping@npm:2.3.5" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/3de494219ffeb2c5c38711d0d7bb128097edf91893090a2dbc8ee0b55d092bb7347b1fd0f478486c5eab010e855c73927b1666f2107516d472d24a73017d1194 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.11 + resolution: "@jridgewell/source-map@npm:0.3.11" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + checksum: 10c0/50a4fdafe0b8f655cb2877e59fe81320272eaa4ccdbe6b9b87f10614b2220399ae3e05c16137a59db1f189523b42c7f88bd097ee991dbd7bc0e01113c583e844 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.5 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" + checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28": + version: 0.3.31 + resolution: "@jridgewell/trace-mapping@npm:0.3.31" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/4b30ec8cd56c5fd9a661f088230af01e0c1a3888d11ffb6b47639700f71225be21d1f7e168048d6d4f9449207b978a235c07c8f15c07705685d16dc06280e9d9 + languageName: node + linkType: hard + +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 10c0/a83343a468ff5b5ec6bff36fd788a64c839e48a07ff9f4f813564f58caf44d011cd6504ed2147bf34835bd7a7dd2107052af755961c6b098fd8902b4f6500d0f + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 10c0/eec925e681081af190b8ee231f9bad3101e189abbc182ff279da6b531e7dbd2a56f1f306f37a80b1be9e00aa2d271690d08dcc5f326f71c9eed8546675c8caf6 + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.5": + version: 2.0.5 + resolution: "@protobufjs/codegen@npm:2.0.5" + checksum: 10c0/1b8a2ae56ee60a56e9d205cd4b6072a1503c5069b8ebb905710f974ff0098a0d0700641c137e0a8d98dedf14423156a106a9433695cbf52574810f55000fdcab + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.1": + version: 1.1.1 + resolution: "@protobufjs/eventemitter@npm:1.1.1" + checksum: 10c0/8e06193d4629c5e7c09d4f8c2ddba8fc4dfa739f0149f33a1d901568d35bb7b8b5277a4e8452baf3bdd0b302fd599cf255d193267aa93a0a4747e23cd073c4ac + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.1": + version: 1.1.1 + resolution: "@protobufjs/fetch@npm:1.1.1" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.1" + checksum: 10c0/a497ff5433854e8577f0427983ea39b9113b49a8120f94515291d763327061d2c3013e60e24ea436d091dafae01a0f6eb1867e3b1616045d96a31d8b3c646ed4 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 10c0/18f2bdede76ffcf0170708af15c9c9db6259b771e6b84c51b06df34a9c339dbbeec267d14ce0bddd20acc142b1d980d983d31434398df7f98eb0c94a0eb79069 + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 10c0/cece0a938e7f5dfd2fa03f8c14f2f1cf8b0d6e13ac7326ff4c96ea311effd5fb7ae0bba754fbf505312af2e38500250c90e68506b97c02360a43793d88a0d8b4 + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: 10c0/eda2718b7f222ac6e6ad36f758a92ef90d26526026a19f4f17f668f45e0306a5bd734def3f48f51f8134ae0978b6262a5c517c08b115a551756d1a3aadfcf038 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.1": + version: 1.1.1 + resolution: "@protobufjs/utf8@npm:1.1.1" + checksum: 10c0/641fc145f00626405e8984b6e90b9edcbcc072ffc82d0647ca3176e09c730b2d022f988e65f011a7a17e2e4d77cde7733643aa10d8ac2bfa30f134dbcad553fd + languageName: node + linkType: hard + +"@rolldown/pluginutils@npm:1.0.0-beta.27": + version: 1.0.0-beta.27 + resolution: "@rolldown/pluginutils@npm:1.0.0-beta.27" + checksum: 10c0/9658f235b345201d4f6bfb1f32da9754ca164f892d1cb68154fe5f53c1df42bd675ecd409836dff46884a7847d6c00bdc38af870f7c81e05bba5c2645eb4ab9c + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.60.4" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-android-arm64@npm:4.60.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-darwin-arm64@npm:4.34.9" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.44.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.60.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-darwin-x64@npm:4.34.9" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.44.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.60.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.60.4" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-freebsd-x64@npm:4.60.4" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.4" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.60.4" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.9" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.44.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.60.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.9" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.44.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.60.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-gnu@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.60.4" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-musl@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.60.4" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-gnu@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.60.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-musl@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.60.4" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.60.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.60.4" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.60.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.9" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.44.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.60.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.9" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.44.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.60.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openbsd-x64@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-openbsd-x64@npm:4.60.4" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.60.4" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.9" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.44.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.60.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.60.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-gnu@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.60.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.9" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.44.0": + version: 4.44.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.44.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.60.4": + version: 4.60.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.60.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@stencil/core@npm:4.43.0": + version: 4.43.0 + resolution: "@stencil/core@npm:4.43.0" + dependencies: + "@rollup/rollup-darwin-arm64": "npm:4.34.9" + "@rollup/rollup-darwin-x64": "npm:4.34.9" + "@rollup/rollup-linux-arm64-gnu": "npm:4.34.9" + "@rollup/rollup-linux-arm64-musl": "npm:4.34.9" + "@rollup/rollup-linux-x64-gnu": "npm:4.34.9" + "@rollup/rollup-linux-x64-musl": "npm:4.34.9" + "@rollup/rollup-win32-arm64-msvc": "npm:4.34.9" + "@rollup/rollup-win32-x64-msvc": "npm:4.34.9" + dependenciesMeta: + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + bin: + stencil: bin/stencil + checksum: 10c0/e267b68a12f992ea4f0c9ca69499551d93f31ed9aa9f49a5c421618cc2e104edf56a50c63cf25f1fa2690d30c3c5f699957ee4e7abdf22abf06f5edbc6102641 + languageName: node + linkType: hard + +"@stencil/core@npm:^4.0.3, @stencil/core@npm:^4.35.3": + version: 4.43.4 + resolution: "@stencil/core@npm:4.43.4" + dependencies: + "@rollup/rollup-darwin-arm64": "npm:4.44.0" + "@rollup/rollup-darwin-x64": "npm:4.44.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.44.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.44.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.44.0" + "@rollup/rollup-linux-x64-musl": "npm:4.44.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.44.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.44.0" + dependenciesMeta: + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + bin: + stencil: bin/stencil + checksum: 10c0/02a4ae50986a83110dcf4c5bdfca6013e6952df2678cbc905a9c0eef915a98f6c3e8f2295c3bb72ee2e1bd167ad8f599405296665b15a59516b44b310138c474 + languageName: node + linkType: hard + +"@supabase/auth-js@npm:2.108.2": + version: 2.108.2 + resolution: "@supabase/auth-js@npm:2.108.2" + dependencies: + tslib: "npm:2.8.1" + checksum: 10c0/31617770accb5910c1e7d19f230e3f1e5e1fd3e78912ea5ae342dddb7e032f58fb1d277560eae9a7892ef2d20b03c4989118a9ff17cb48aa5e7dd99eb566fb02 + languageName: node + linkType: hard + +"@supabase/functions-js@npm:2.108.2": + version: 2.108.2 + resolution: "@supabase/functions-js@npm:2.108.2" + dependencies: + tslib: "npm:2.8.1" + checksum: 10c0/06e899cd3445f519f8f595c648b8fa38f174f01335b18cf1ebcc87efc7cede997896e6b06c74747b4275c7b2514accee26d5ee0d4bb2bf5fc757c82070435624 + languageName: node + linkType: hard + +"@supabase/phoenix@npm:^0.4.2": + version: 0.4.4 + resolution: "@supabase/phoenix@npm:0.4.4" + checksum: 10c0/b4ba930c82b20d412358826aa87ce0735147fd168efb817bfc34e31d78605220947dc7c5844726268ac6bf338f0cd081f9908a7bab87aaff4058cb80bf71ab5b + languageName: node + linkType: hard + +"@supabase/postgrest-js@npm:2.108.2": + version: 2.108.2 + resolution: "@supabase/postgrest-js@npm:2.108.2" + dependencies: + tslib: "npm:2.8.1" + checksum: 10c0/eafb794763943f1c72683157785e325647e5cc8eb17904b6922b896b5c25f0be75c11376cb7a518b6f6ee983ad7d94a509e75950533f3da4fcf8f910f1e11433 + languageName: node + linkType: hard + +"@supabase/realtime-js@npm:2.108.2": + version: 2.108.2 + resolution: "@supabase/realtime-js@npm:2.108.2" + dependencies: + "@supabase/phoenix": "npm:^0.4.2" + tslib: "npm:2.8.1" + checksum: 10c0/3a5c19c4283b64cf22e91d264580905de0a724376314acf6a9f9e53ae74ba05bad679eaf57fe5c31e95213608c1bd065485127824bed377500b021d01cec0454 + languageName: node + linkType: hard + +"@supabase/storage-js@npm:2.108.2": + version: 2.108.2 + resolution: "@supabase/storage-js@npm:2.108.2" + dependencies: + iceberg-js: "npm:^0.8.1" + tslib: "npm:2.8.1" + checksum: 10c0/9e7ed4560150012ea8fa45c12b180533f166d6900b4a61e1a2bbf7f12e872ea42f85670db3dc781b7e76f983f5c9d320d84574775969d18804c6a0ca4aa44e7d + languageName: node + linkType: hard + +"@supabase/supabase-js@npm:^2.108.1": + version: 2.108.2 + resolution: "@supabase/supabase-js@npm:2.108.2" + dependencies: + "@supabase/auth-js": "npm:2.108.2" + "@supabase/functions-js": "npm:2.108.2" + "@supabase/postgrest-js": "npm:2.108.2" + "@supabase/realtime-js": "npm:2.108.2" + "@supabase/storage-js": "npm:2.108.2" + checksum: 10c0/1e627189af3d8088329fdbdfbff754285dd757f30d7d4e0415881d75b684143b6c1fe519449b69d4b30b52f732a7f4510566718640826a966e124c8331becbfb + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.20.5": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.27.0 + resolution: "@types/babel__generator@npm:7.27.0" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10c0/9f9e959a8792df208a9d048092fda7e1858bddc95c6314857a8211a99e20e6830bdeb572e3587ae8be5429e37f2a96fcf222a9f53ad232f5537764c9e13a2bbd + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*": + version: 7.28.0 + resolution: "@types/babel__traverse@npm:7.28.0" + dependencies: + "@babel/types": "npm:^7.28.2" + checksum: 10c0/b52d7d4e8fc6a9018fe7361c4062c1c190f5778cf2466817cb9ed19d69fbbb54f9a85ffedeb748ed8062d2cf7d4cc088ee739848f47c57740de1c48cbf0d0994 + languageName: node + linkType: hard + +"@types/estree@npm:1.0.8": + version: 1.0.8 + resolution: "@types/estree@npm:1.0.8" + checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 + languageName: node + linkType: hard + +"@types/fs-extra@npm:^8.0.0": + version: 8.1.5 + resolution: "@types/fs-extra@npm:8.1.5" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/c9f7965bc499a6cc1cadb37a4e9002c0f33810867a0a47a132c4165cbe3b49c6ea52e26c3c38f07720540dd5c470619254c0ef00a2e14a8bf4971ec5d478ba69 + languageName: node + linkType: hard + +"@types/geojson@npm:*": + version: 7946.0.16 + resolution: "@types/geojson@npm:7946.0.16" + checksum: 10c0/1ff24a288bd5860b766b073ead337d31d73bdc715e5b50a2cee5cb0af57a1ed02cc04ef295f5fa68dc40fe3e4f104dd31282b2b818a5ba3231bc1001ba084e3c + languageName: node + linkType: hard + +"@types/google.maps@npm:^3.53.1, @types/google.maps@npm:^3.58.1": + version: 3.65.2 + resolution: "@types/google.maps@npm:3.65.2" + checksum: 10c0/790aed74128385bfa6c8b41c6bf18b8f1901e6c7b7c806615e904e9093703a8238f8b2504027ebe714e95f9cd5b2a94fd63306f8b71907a23ba24673754843ea + languageName: node + linkType: hard + +"@types/history@npm:^4.7.11": + version: 4.7.11 + resolution: "@types/history@npm:4.7.11" + checksum: 10c0/3facf37c2493d1f92b2e93a22cac7ea70b06351c2ab9aaceaa3c56aa6099fb63516f6c4ec1616deb5c56b4093c026a043ea2d3373e6c0644d55710364d02c934 + languageName: node + linkType: hard + +"@types/katex@npm:^0.16.0": + version: 0.16.8 + resolution: "@types/katex@npm:0.16.8" + checksum: 10c0/0661609353f4f5e62bd2dc78da99e842761c6474b19f2268b195bbe9dbf20e6f766a31155d79eec2e7c3eff4e7eba4b30f4f519e9c6a11c75bb45e257a2ddb69 + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 25.9.1 + resolution: "@types/node@npm:25.9.1" + dependencies: + undici-types: "npm:>=7.24.0 <7.24.7" + checksum: 10c0/9a04682842bebbcf21a1779dfeab9aa733d7bd7bbc0a0edb641ab3a9a3d43eac543225acf669c334f458f1956443ebc072bc3c72840c543b8b356cab5c82d456 + languageName: node + linkType: hard + +"@types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": + version: 26.0.0 + resolution: "@types/node@npm:26.0.0" + dependencies: + undici-types: "npm:~8.3.0" + checksum: 10c0/f36e21634fd8e8ded162ca486508bd8bb229d398a8d5541f6d8c1255968d4464e53327a77f403b216ef98e3b6f6956882eef83e4857d4bc2be9569dd55d37aae + languageName: node + linkType: hard + +"@types/react-dom@npm:^19.0.0": + version: 19.2.3 + resolution: "@types/react-dom@npm:19.2.3" + peerDependencies: + "@types/react": ^19.2.0 + checksum: 10c0/b486ebe0f4e2fb35e2e108df1d8fc0927ca5d6002d5771e8a739de11239fe62d0e207c50886185253c99eb9dedfeeb956ea7429e5ba17f6693c7acb4c02f8cd1 + languageName: node + linkType: hard + +"@types/react-router-dom@npm:^5.3.3": + version: 5.3.3 + resolution: "@types/react-router-dom@npm:5.3.3" + dependencies: + "@types/history": "npm:^4.7.11" + "@types/react": "npm:*" + "@types/react-router": "npm:*" + checksum: 10c0/a9231a16afb9ed5142678147eafec9d48582809295754fb60946e29fcd3757a4c7a3180fa94b45763e4c7f6e3f02379e2fcb8dd986db479dcab40eff5fc62a91 + languageName: node + linkType: hard + +"@types/react-router@npm:*, @types/react-router@npm:^5.1.20": + version: 5.1.20 + resolution: "@types/react-router@npm:5.1.20" + dependencies: + "@types/history": "npm:^4.7.11" + "@types/react": "npm:*" + checksum: 10c0/1f7eee61981d2f807fa01a34a0ef98ebc0774023832b6611a69c7f28fdff01de5a38cabf399f32e376bf8099dcb7afaf724775bea9d38870224492bea4cb5737 + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^19.0.0": + version: 19.2.15 + resolution: "@types/react@npm:19.2.15" + dependencies: + csstype: "npm:^3.2.2" + checksum: 10c0/b554eab715bb14e581f0ae60e5cefe91e1a5e06c31022b543a9806cf224aa056f21e4fb46208e46eb934d86ca0b247ebc82377192a0dead303cb28b8764c6e67 + languageName: node + linkType: hard + +"@types/slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "@types/slice-ansi@npm:4.0.0" + checksum: 10c0/5ea517c6739652029ac13810fe8b3b360e7cca4b2fcf99fc879964c2a4f12f8e6b559dacda5b9f016415f0c14017fd9e2b614ecfe0eb056d68e16b3a04cc48bf + languageName: node + linkType: hard + +"@types/supercluster@npm:^7.1.3": + version: 7.1.3 + resolution: "@types/supercluster@npm:7.1.3" + dependencies: + "@types/geojson": "npm:*" + checksum: 10c0/0d55dad98df0990fc38a7bb64dc23dda46014187c0d7638e6f2b6717ba8931b13e5b1d394789833a2ac822014c977ef64623dffd81a0bbf39e52c53c8183741f + languageName: node + linkType: hard + +"@vitejs/plugin-react@npm:^4.0.1": + version: 4.7.0 + resolution: "@vitejs/plugin-react@npm:4.7.0" + dependencies: + "@babel/core": "npm:^7.28.0" + "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" + "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1" + "@rolldown/pluginutils": "npm:1.0.0-beta.27" + "@types/babel__core": "npm:^7.20.5" + react-refresh: "npm:^0.17.0" + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + checksum: 10c0/692f23960972879485d647713663ec299c478222c96567d60285acf7c7dc5c178e71abfe9d2eefddef1eeb01514dacbc2ed68aad84628debf9c7116134734253 + languageName: node + linkType: hard + +"@xmldom/xmldom@npm:^0.9.10": + version: 0.9.10 + resolution: "@xmldom/xmldom@npm:0.9.10" + checksum: 10c0/38a9c9b95450d7fccebc61371c8e0b90ceaae992886484108333d29ccbd2640e3555b6af012f15ce1beb5067aeb40486659b6183fad38af179e82d28028bfc5d + languageName: node + linkType: hard + +"abbrev@npm:^4.0.0": + version: 4.0.0 + resolution: "abbrev@npm:4.0.0" + checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5 + languageName: node + linkType: hard + +"acorn@npm:^8.15.0": + version: 8.16.0 + resolution: "acorn@npm:8.16.0" + bin: + acorn: bin/acorn + checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"app@workspace:.": + version: 0.0.0-use.local + resolution: "app@workspace:." + dependencies: + "@capacitor-firebase/authentication": "npm:^8.0.0" + "@capacitor/android": "npm:8.3.4" + "@capacitor/app": "npm:8.1.0" + "@capacitor/cli": "npm:8.3.4" + "@capacitor/core": "npm:8.3.4" + "@capacitor/google-maps": "npm:^8.0.0" + "@capacitor/haptics": "npm:8.0.2" + "@capacitor/ios": "npm:8.3.4" + "@capacitor/keyboard": "npm:8.0.3" + "@capacitor/preferences": "npm:^8.0.1" + "@capacitor/push-notifications": "npm:^8.1.1" + "@capacitor/share": "npm:^8.0.1" + "@capacitor/status-bar": "npm:8.0.2" + "@hookform/resolvers": "npm:^3.9.0" + "@ionic/pwa-elements": "npm:^3.0.0" + "@ionic/react": "npm:8.8.7" + "@ionic/react-router": "npm:8.8.7" + "@supabase/supabase-js": "npm:^2.108.1" + "@types/katex": "npm:^0.16.0" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" + "@types/react-router": "npm:^5.1.20" + "@types/react-router-dom": "npm:^5.3.3" + "@vitejs/plugin-react": "npm:^4.0.1" + firebase: "npm:^11.0.0" + ionicons: "npm:^7.4.0" + katex: "npm:^0.16.0" + qrcode.react: "npm:^4.2.0" + react: "npm:18.2.0" + react-dom: "npm:18.2.0" + react-hook-form: "npm:^7.54.0" + react-katex: "npm:^3.0.1" + react-router: "npm:^5.3.4" + react-router-dom: "npm:^5.3.4" + terser: "npm:^5.4.0" + typescript: "npm:~5.9.0" + vite: "npm:^5.0.0" + zod: "npm:^3.24.0" + zustand: "npm:^5.0.0" + languageName: unknown + linkType: soft + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 10c0/f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 10c0/4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef + languageName: node + linkType: hard + +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b + languageName: node + linkType: hard + +"base64-js@npm:^1.5.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"baseline-browser-mapping@npm:^2.10.12": + version: 2.10.31 + resolution: "baseline-browser-mapping@npm:2.10.31" + bin: + baseline-browser-mapping: dist/cli.cjs + checksum: 10c0/ecb6a10b4bb62d8660e3a4c525acdae2b1c7f68e4ec1e03f473b2050781b7131fbd562a200489ae987d11eb8ae85ec95d3ac77d9d84b4afe6548dfdfdceb6734 + languageName: node + linkType: hard + +"big-integer@npm:1.6.x": + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 10c0/9604224b4c2ab3c43c075d92da15863077a9f59e5d4205f4e7e76acd0cd47e8d469ec5e5dba8d9b32aa233951893b29329ca56ac80c20ce094b4a647a66abae0 + languageName: node + linkType: hard + +"bplist-parser@npm:^0.3.2": + version: 0.3.2 + resolution: "bplist-parser@npm:0.3.2" + dependencies: + big-integer: "npm:1.6.x" + checksum: 10c0/4dc307c11d2511a01255e87e370d4ab6f1962b35fdc27605fd4ce9a557a259c2dc9f87822617ddb1f7aa062a71e30ef20d6103329ac7ce235628f637fb0ed763 + languageName: node + linkType: hard + +"brace-expansion@npm:^5.0.5": + version: 5.0.6 + resolution: "brace-expansion@npm:5.0.6" + dependencies: + balanced-match: "npm:^4.0.2" + checksum: 10c0/8c919869b90f61d533b341d3340be5ee4413232ea89b8246cbc2f38eb014f1d8182785c98a006eaf6111d02dc9eeffefdc240d5ac158625b2ed084dccd4bbf9b + languageName: node + linkType: hard + +"browserslist@npm:^4.24.0": + version: 4.28.2 + resolution: "browserslist@npm:4.28.2" + dependencies: + baseline-browser-mapping: "npm:^2.10.12" + caniuse-lite: "npm:^1.0.30001782" + electron-to-chromium: "npm:^1.5.328" + node-releases: "npm:^2.0.36" + update-browserslist-db: "npm:^1.2.3" + bin: + browserslist: cli.js + checksum: 10c0/c0228b6330f785b7fa59d2d360124ec6d9322f96ed9f3ee1f873e33ecc9503a6f0ffc3b71191a28c4ff6e930b753b30043da1c33844a9548f3018d491f09ce60 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001782": + version: 1.0.30001793 + resolution: "caniuse-lite@npm:1.0.30001793" + checksum: 10c0/bee8f8b55d1ccdb2076b7355c06fd01916952eadd76b828e4d5fb9ac62d17ec7db0e2b7c326b923478b93526ad1ff74f189cf40c06de0e4a5edbc677009b97fe + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"commander@npm:^12.1.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 10c0/6e1996680c083b3b897bfc1cfe1c58dfbcd9842fd43e1aaf8a795fbc237f65efcc860a3ef457b318e73f29a4f4a28f6403c3d653d021d960e4632dd45bde54a9 + languageName: node + linkType: hard + +"commander@npm:^2.20.0": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 + languageName: node + linkType: hard + +"commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.3": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 + languageName: node + linkType: hard + +"csstype@npm:^3.2.2": + version: 3.2.3 + resolution: "csstype@npm:3.2.3" + checksum: 10c0/cd29c51e70fa822f1cecd8641a1445bed7063697469d35633b516e60fe8c1bde04b08f6c5b6022136bb669b64c63d4173af54864510fbb4ee23281801841a3ce + languageName: node + linkType: hard + +"debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:^4.4.0": + version: 4.4.3 + resolution: "debug@npm:4.4.3" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 + languageName: node + linkType: hard + +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 10c0/db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.328": + version: 1.5.360 + resolution: "electron-to-chromium@npm:1.5.360" + checksum: 10c0/2f5936e5f3c1483c7fb2f741b109ef7eb4e1761b0fc944bf2898b0835aae235c7b257790edde4679ad780fbcb8be8734caa720a4644526110c77f7216b678233 + languageName: node + linkType: hard + +"elementtree@npm:^0.1.7": + version: 0.1.7 + resolution: "elementtree@npm:0.1.7" + dependencies: + sax: "npm:1.1.4" + checksum: 10c0/669e56d5092382ceaaa2022f3c391b0f6702e47876095b0e00a790181b7f6b5f49fe6e67ebe8339fd6b1b1b66ffe53c87dd47f1e550661ea55722279bf24cad3 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de + languageName: node + linkType: hard + +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.3 + resolution: "exponential-backoff@npm:3.1.3" + checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267 + languageName: node + linkType: hard + +"fast-equals@npm:^5.2.2": + version: 5.4.0 + resolution: "fast-equals@npm:5.4.0" + checksum: 10c0/4fdce3a8f814e78af7296ca4ebe82f4765074a6dfe557ee98c18f5d2958c3de59025fbff7556d65f250165ccef424d37f9952ee159400f8ebe5f2edb704ec80e + languageName: node + linkType: hard + +"faye-websocket@npm:0.11.4": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: "npm:>=0.5.1" + checksum: 10c0/c6052a0bb322778ce9f89af92890f6f4ce00d5ec92418a35e5f4c6864a4fe736fec0bcebd47eac7c0f0e979b01530746b1c85c83cb04bae789271abf19737420 + languageName: node + linkType: hard + +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + languageName: node + linkType: hard + +"fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f + languageName: node + linkType: hard + +"firebase@npm:^11.0.0": + version: 11.10.0 + resolution: "firebase@npm:11.10.0" + dependencies: + "@firebase/ai": "npm:1.4.1" + "@firebase/analytics": "npm:0.10.17" + "@firebase/analytics-compat": "npm:0.2.23" + "@firebase/app": "npm:0.13.2" + "@firebase/app-check": "npm:0.10.1" + "@firebase/app-check-compat": "npm:0.3.26" + "@firebase/app-compat": "npm:0.4.2" + "@firebase/app-types": "npm:0.9.3" + "@firebase/auth": "npm:1.10.8" + "@firebase/auth-compat": "npm:0.5.28" + "@firebase/data-connect": "npm:0.3.10" + "@firebase/database": "npm:1.0.20" + "@firebase/database-compat": "npm:2.0.11" + "@firebase/firestore": "npm:4.8.0" + "@firebase/firestore-compat": "npm:0.3.53" + "@firebase/functions": "npm:0.12.9" + "@firebase/functions-compat": "npm:0.3.26" + "@firebase/installations": "npm:0.6.18" + "@firebase/installations-compat": "npm:0.2.18" + "@firebase/messaging": "npm:0.12.22" + "@firebase/messaging-compat": "npm:0.2.22" + "@firebase/performance": "npm:0.7.7" + "@firebase/performance-compat": "npm:0.2.20" + "@firebase/remote-config": "npm:0.6.5" + "@firebase/remote-config-compat": "npm:0.2.18" + "@firebase/storage": "npm:0.13.14" + "@firebase/storage-compat": "npm:0.3.24" + "@firebase/util": "npm:1.12.1" + checksum: 10c0/4a24f5e6e3b557aa0ded1ca208135ef8e733adef7df2c69f9be264203f82a1260e05fe7b9ff508852a9c50c1069b560004dd59dd375f30ae5e41035403777675 + languageName: node + linkType: hard + +"fs-extra@npm:^11.2.0": + version: 11.3.5 + resolution: "fs-extra@npm:11.3.5" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/33e80bad6b5d17308faa197e5ede99ecba4b6f6cb4aa4645d52745476c75afc57665bdf39ec75b2ebb38b97b7110f634a8dcc0a546e248eb4de059275cf5ac90 + languageName: node + linkType: hard + +"fs-extra@npm:^9.0.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde + languageName: node + linkType: hard + +"glob@npm:^13.0.3": + version: 13.0.6 + resolution: "glob@npm:13.0.6" + dependencies: + minimatch: "npm:^10.2.2" + minipass: "npm:^7.1.3" + path-scurry: "npm:^2.0.2" + checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"history@npm:^4.9.0": + version: 4.10.1 + resolution: "history@npm:4.10.1" + dependencies: + "@babel/runtime": "npm:^7.1.2" + loose-envify: "npm:^1.2.0" + resolve-pathname: "npm:^3.0.0" + tiny-invariant: "npm:^1.0.2" + tiny-warning: "npm:^1.0.0" + value-equal: "npm:^1.0.1" + checksum: 10c0/35377694e4f10f2cf056a9cb1a8ee083e04e4b4717a63baeee4afd565658a62c7e73700bf9e82aa53dbe1ec94e0a25a83c080d63bad8ee6b274a98d2fbc5ed4c + languageName: node + linkType: hard + +"hoist-non-react-statics@npm:^3.1.0": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: "npm:^16.7.0" + checksum: 10c0/fe0889169e845d738b59b64badf5e55fa3cf20454f9203d1eb088df322d49d4318df774828e789898dcb280e8a5521bb59b3203385662ca5e9218a6ca5820e74 + languageName: node + linkType: hard + +"http-parser-js@npm:>=0.5.1": + version: 0.5.10 + resolution: "http-parser-js@npm:0.5.10" + checksum: 10c0/8bbcf1832a8d70b2bd515270112116333add88738a2cc05bfb94ba6bde3be4b33efee5611584113818d2bcf654fdc335b652503be5a6b4c0b95e46f214187d93 + languageName: node + linkType: hard + +"iceberg-js@npm:^0.8.1": + version: 0.8.1 + resolution: "iceberg-js@npm:0.8.1" + checksum: 10c0/e504da64cc26e8ad7c5344353a7203c671a740c14eb6086f20505f5e9739cab774493e616032530c962df97f2a855115cc2e89a47dd81581df5917b21a69ec48 + languageName: node + linkType: hard + +"idb@npm:7.1.1": + version: 7.1.1 + resolution: "idb@npm:7.1.1" + checksum: 10c0/72418e4397638797ee2089f97b45fc29f937b830bc0eb4126f4a9889ecf10320ceacf3a177fe5d7ffaf6b4fe38b20bbd210151549bfdc881db8081eed41c870d + languageName: node + linkType: hard + +"inherits@npm:^2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ini@npm:^4.1.1": + version: 4.1.3 + resolution: "ini@npm:4.1.3" + checksum: 10c0/0d27eff094d5f3899dd7c00d0c04ea733ca03a8eb6f9406ce15daac1a81de022cb417d6eaff7e4342451ffa663389c565ffc68d6825eaf686bf003280b945764 + languageName: node + linkType: hard + +"ionicons@npm:^7.4.0": + version: 7.4.0 + resolution: "ionicons@npm:7.4.0" + dependencies: + "@stencil/core": "npm:^4.0.3" + checksum: 10c0/0f0e9b5a390514e864f098fbc6b69823fa2cde1758d0e43ca6a9a3b19d3a15b595c913e5a4445945bbbf779454c710fd101edb00f5f1a658dafd9073cc10b0b6 + languageName: node + linkType: hard + +"ionicons@npm:^8.0.13": + version: 8.0.13 + resolution: "ionicons@npm:8.0.13" + dependencies: + "@stencil/core": "npm:^4.35.3" + checksum: 10c0/4f12586359ed5d68dafff0440ff7ca4c195bdea5fff1f9fa4626add1e4fcea78a862db87c20930199f93817737695425b319aede65ef2111cf0191cdc346ce80 + languageName: node + linkType: hard + +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: "npm:^2.0.0" + checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e + languageName: node + linkType: hard + +"isarray@npm:0.0.1": + version: 0.0.1 + resolution: "isarray@npm:0.0.1" + checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^4.0.0": + version: 4.0.0 + resolution: "isexe@npm:4.0.0" + checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" + bin: + jsesc: bin/jsesc + checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 + languageName: node + linkType: hard + +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.2.1 + resolution: "jsonfile@npm:6.2.1" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/e1abf000ecee9942d4d028a8e02dc752617face227d72afd1cfb2187e2433079e625bf82b807a313689db71b6472c6b2b389a2340d2798737b1199a39631c28a + languageName: node + linkType: hard + +"katex@npm:^0.16.0": + version: 0.16.47 + resolution: "katex@npm:0.16.47" + dependencies: + commander: "npm:^8.3.0" + bin: + katex: cli.js + checksum: 10c0/b10f4d0651c60771a48444879e4227255e26e2b2ec061b1ee4b08934863ad2324ba8dbb772455f7768aeb14dfcc13bcd309174a0ddd5ef954a607f644a197710 + languageName: node + linkType: hard + +"kdbush@npm:^4.0.2": + version: 4.1.0 + resolution: "kdbush@npm:4.1.0" + checksum: 10c0/b47c8a27de438df1e60080f73e3793217b4542a62bed7f07c8c29b0bf53359bbdba1e97305e396f7f4d28f98e31ce3fd21500dc3de03a44d8cda71a3d70ff7bb + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: 10c0/cd3a0b8878e7d6d3799e54340efe3591ca787d9f95f109f28129bdd2915e37807bf8918bb295ab86afb8c82196beec5a1adcaf29042ce3f2bd932b038fe3aa4b + languageName: node + linkType: hard + +"kleur@npm:^4.1.5": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a + languageName: node + linkType: hard + +"lodash.camelcase@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: 10c0/fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432 + languageName: node + linkType: hard + +"long@npm:^5.0.0, long@npm:^5.3.2": + version: 5.3.2 + resolution: "long@npm:5.3.2" + checksum: 10c0/7130fe1cbce2dca06734b35b70d380ca3f70271c7f8852c922a7c62c86c4e35f0c39290565eca7133c625908d40e126ac57c02b1b1a4636b9457d77e1e60b981 + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e + languageName: node + linkType: hard + +"lru-cache@npm:^11.0.0": + version: 11.5.0 + resolution: "lru-cache@npm:11.5.0" + checksum: 10c0/b92c2a7518128dec6b244bf3eb9fd79964d316cdeb12865ebfc2cebb4dfe9b24e3767a3923d71e6eb735f56b557fc55f08f150a53097d7805afb628c90158df4 + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 + languageName: node + linkType: hard + +"minimatch@npm:^10.2.2": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" + dependencies: + brace-expansion: "npm:^5.0.5" + checksum: 10c0/6bb058bd6324104b9ec2f763476a35386d05079c1f5fe4fbf1f324a25237cd4534d6813ecd71f48208f4e635c1221899bef94c3c89f7df55698fe373aaae20fd + languageName: node + linkType: hard + +"minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb + languageName: node + linkType: hard + +"minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec + languageName: node + linkType: hard + +"ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.12": + version: 3.3.12 + resolution: "nanoid@npm:3.3.12" + bin: + nanoid: bin/nanoid.cjs + checksum: 10c0/ba142b7b39e11e80c16dd74b0365d407880c87c1cf7e1480956981ae940ee36060fa5b6f092cd1e315184dd19244c657bd017d03327bd3c62247d691c5e8edfb + languageName: node + linkType: hard + +"native-run@npm:^2.0.3": + version: 2.0.3 + resolution: "native-run@npm:2.0.3" + dependencies: + "@ionic/utils-fs": "npm:^3.1.7" + "@ionic/utils-terminal": "npm:^2.3.4" + bplist-parser: "npm:^0.3.2" + debug: "npm:^4.3.4" + elementtree: "npm:^0.1.7" + ini: "npm:^4.1.1" + plist: "npm:^3.1.0" + split2: "npm:^4.2.0" + through2: "npm:^4.0.2" + tslib: "npm:^2.6.2" + yauzl: "npm:^2.10.0" + bin: + native-run: bin/native-run + checksum: 10c0/ce7e4fccca1f3dce3a4c5c8ceca5ad84dde66eda5c912311990c7c4cf8bfade607d8ea4707349cbe309bba151e779dc1a1f8428b7ebbc114ada4e8f08d717d6b + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 12.3.0 + resolution: "node-gyp@npm:12.3.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + nopt: "npm:^9.0.0" + proc-log: "npm:^6.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.5.4" + tinyglobby: "npm:^0.2.12" + undici: "npm:^6.25.0" + which: "npm:^6.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/9d9032b405cbe42f72a105259d9eb679376470c102df4a2dbaa51e07d59bf741dcffb85897087ea9d8318b9cabb824a8978af51508ae142f0239ae1e6a3c2329 + languageName: node + linkType: hard + +"node-releases@npm:^2.0.36": + version: 2.0.44 + resolution: "node-releases@npm:2.0.44" + checksum: 10c0/004337ee9c0c455e81fdfc85cc8a585e89932d28338cd35a4ddba21ef2b68ff20cf06097544e7859c1868579d8529ed230802b127be5357c153e267079e8d851 + languageName: node + linkType: hard + +"nopt@npm:^9.0.0": + version: 9.0.0 + resolution: "nopt@npm:9.0.0" + dependencies: + abbrev: "npm:^4.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"open@npm:^8.4.0": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: "npm:^2.0.0" + is-docker: "npm:^2.1.1" + is-wsl: "npm:^2.2.0" + checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.1": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-scurry@npm:^2.0.2": + version: 2.0.2 + resolution: "path-scurry@npm:2.0.2" + dependencies: + lru-cache: "npm:^11.0.0" + minipass: "npm:^7.1.2" + checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482 + languageName: node + linkType: hard + +"path-to-regexp@npm:^1.7.0": + version: 1.9.0 + resolution: "path-to-regexp@npm:1.9.0" + dependencies: + isarray: "npm:0.0.1" + checksum: 10c0/de9ddb01b84d9c2c8e2bed18630d8d039e2d6f60a6538595750fa08c7a6482512257464c8da50616f266ab2cdd2428387e85f3b089e4c3f25d0c537e898a0751 + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 + languageName: node + linkType: hard + +"picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + +"picomatch@npm:^4.0.4": + version: 4.0.4 + resolution: "picomatch@npm:4.0.4" + checksum: 10c0/e2c6023372cc7b5764719a5ffb9da0f8e781212fa7ca4bd0562db929df8e117460f00dff3cb7509dacfc06b86de924b247f504d0ce1806a37fac4633081466b0 + languageName: node + linkType: hard + +"plist@npm:^3.1.0": + version: 3.1.1 + resolution: "plist@npm:3.1.1" + dependencies: + "@xmldom/xmldom": "npm:^0.9.10" + base64-js: "npm:^1.5.1" + xmlbuilder: "npm:^15.1.1" + checksum: 10c0/af681277c2e541c6aab0ddee57f59459c43beeea1ee7aa2d4218aa39595fb41c068e2d2be3e4abb17e3252eaf2c1b806ecfb1d402fa5a3f4a6e1a7a32c880c9a + languageName: node + linkType: hard + +"postcss@npm:^8.4.43": + version: 8.5.15 + resolution: "postcss@npm:8.5.15" + dependencies: + nanoid: "npm:^3.3.12" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/7f2e63ae22fbe43aace1bf652bd99da4e90737c64194d49e51ddc9cd0f9e51ff2861a7d734379b494deffa03a880a5c65eec70bc29ee9ebaa7136dde3eee8f31 + languageName: node + linkType: hard + +"proc-log@npm:^6.0.0": + version: 6.1.0 + resolution: "proc-log@npm:6.1.0" + checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82 + languageName: node + linkType: hard + +"prompts@npm:^2.4.2": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: "npm:^3.0.3" + sisteransi: "npm:^1.0.5" + checksum: 10c0/16f1ac2977b19fe2cf53f8411cc98db7a3c8b115c479b2ca5c82b5527cd937aa405fa04f9a5960abeb9daef53191b53b4d13e35c1f5d50e8718c76917c5f1ea4 + languageName: node + linkType: hard + +"prop-types@npm:^15.6.2": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077 + languageName: node + linkType: hard + +"protobufjs@npm:^7.2.5": + version: 7.6.4 + resolution: "protobufjs@npm:7.6.4" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.5" + "@protobufjs/eventemitter": "npm:^1.1.1" + "@protobufjs/fetch": "npm:^1.1.1" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.1" + "@types/node": "npm:>=13.7.0" + long: "npm:^5.3.2" + checksum: 10c0/6403eaa9c5a72cc6450c11f38fefafdde243fd806e7ac606ac8d591bc3fdaec45ae764febf83181a2d9aac51aca624e0f46dec368ceea191f7e85e2d6ccaaf93 + languageName: node + linkType: hard + +"qrcode.react@npm:^4.2.0": + version: 4.2.0 + resolution: "qrcode.react@npm:4.2.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/68c691d130e5fda2f57cee505ed7aea840e7d02033100687b764601f9595e1116e34c13876628a93e1a5c2b85e4efc27d30b2fda72e2050c02f3e1c4e998d248 + languageName: node + linkType: hard + +"react-dom@npm:18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.0" + peerDependencies: + react: ^18.2.0 + checksum: 10c0/66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a + languageName: node + linkType: hard + +"react-hook-form@npm:^7.54.0": + version: 7.76.1 + resolution: "react-hook-form@npm:7.76.1" + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + checksum: 10c0/77b502ffc76a99527093cc67205baf3462ac4b4d8699ba3f45f2efa53f0678dfe8c19aea284a6bdb25f4c598464615e6b9567fc8c194e220313aa9f3e48c6da7 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 + languageName: node + linkType: hard + +"react-katex@npm:^3.0.1": + version: 3.1.0 + resolution: "react-katex@npm:3.1.0" + dependencies: + katex: "npm:^0.16.0" + peerDependencies: + prop-types: ^15.8.1 + react: ">=15.3.2 <20" + checksum: 10c0/a61eb2c19a2dc384ad5864a27af66f40c504643f984150f4e270373df88293c2586779b53b2ee7ee4e75076f3c5284b36f425bbc1021d164ccb2997d11d8678f + languageName: node + linkType: hard + +"react-refresh@npm:^0.17.0": + version: 0.17.0 + resolution: "react-refresh@npm:0.17.0" + checksum: 10c0/002cba940384c9930008c0bce26cac97a9d5682bc623112c2268ba0c155127d9c178a9a5cc2212d560088d60dfd503edd808669a25f9b377f316a32361d0b23c + languageName: node + linkType: hard + +"react-router-dom@npm:^5.3.4": + version: 5.3.4 + resolution: "react-router-dom@npm:5.3.4" + dependencies: + "@babel/runtime": "npm:^7.12.13" + history: "npm:^4.9.0" + loose-envify: "npm:^1.3.1" + prop-types: "npm:^15.6.2" + react-router: "npm:5.3.4" + tiny-invariant: "npm:^1.0.2" + tiny-warning: "npm:^1.0.0" + peerDependencies: + react: ">=15" + checksum: 10c0/f04f727e2ed2e9d1d3830af02cc61690ff67b1524c0d18690582bfba0f4d14142ccc88fb6da6befad644fddf086f5ae4c2eb7048c67da8a0b0929c19426421b0 + languageName: node + linkType: hard + +"react-router@npm:5.3.4, react-router@npm:^5.3.4": + version: 5.3.4 + resolution: "react-router@npm:5.3.4" + dependencies: + "@babel/runtime": "npm:^7.12.13" + history: "npm:^4.9.0" + hoist-non-react-statics: "npm:^3.1.0" + loose-envify: "npm:^1.3.1" + path-to-regexp: "npm:^1.7.0" + prop-types: "npm:^15.6.2" + react-is: "npm:^16.6.0" + tiny-invariant: "npm:^1.0.2" + tiny-warning: "npm:^1.0.0" + peerDependencies: + react: ">=15" + checksum: 10c0/e15c00dfef199249b4c6e6d98e5e76cc352ce66f3270f13df37cc069ddf7c05e43281e8c308fc407e4435d72924373baef1d2890e0f6b0b1eb423cf47315a053 + languageName: node + linkType: hard + +"react@npm:18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8 + languageName: node + linkType: hard + +"readable-stream@npm:3": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 + languageName: node + linkType: hard + +"resolve-pathname@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-pathname@npm:3.0.0" + checksum: 10c0/c6ec49b670dc35b9a303c47fa83ba9348a71e92d64a4c4bb85e1b659a29b407aa1ac1cb14a9b5b502982132ca77482bd80534bca147439d66880d35a137fe723 + languageName: node + linkType: hard + +"rimraf@npm:^6.0.1": + version: 6.1.3 + resolution: "rimraf@npm:6.1.3" + dependencies: + glob: "npm:^13.0.3" + package-json-from-dist: "npm:^1.0.1" + bin: + rimraf: dist/esm/bin.mjs + checksum: 10c0/4a56537850102e20ba5d5eb49f366b4b7b2435389734b4b8480cf0e0eb0f6f5d0c44120a171aeb0d8f9ab40312a10d2262f3f50acbad803e32caef61b6cf86fc + languageName: node + linkType: hard + +"rollup@npm:^4.20.0": + version: 4.60.4 + resolution: "rollup@npm:4.60.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.60.4" + "@rollup/rollup-android-arm64": "npm:4.60.4" + "@rollup/rollup-darwin-arm64": "npm:4.60.4" + "@rollup/rollup-darwin-x64": "npm:4.60.4" + "@rollup/rollup-freebsd-arm64": "npm:4.60.4" + "@rollup/rollup-freebsd-x64": "npm:4.60.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.60.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.60.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.60.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.60.4" + "@rollup/rollup-linux-loong64-gnu": "npm:4.60.4" + "@rollup/rollup-linux-loong64-musl": "npm:4.60.4" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.60.4" + "@rollup/rollup-linux-ppc64-musl": "npm:4.60.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.60.4" + "@rollup/rollup-linux-riscv64-musl": "npm:4.60.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.60.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.60.4" + "@rollup/rollup-linux-x64-musl": "npm:4.60.4" + "@rollup/rollup-openbsd-x64": "npm:4.60.4" + "@rollup/rollup-openharmony-arm64": "npm:4.60.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.60.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.60.4" + "@rollup/rollup-win32-x64-gnu": "npm:4.60.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.60.4" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openbsd-x64": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/2734511579da220408eefb877b51281767d790652cee25da8fcd4936c947e3db14882b5edb1d0d5d5bf60f2a71a58ae7d5f7f46c11e3fdf33182538953886243 + languageName: node + linkType: hard + +"safe-buffer@npm:>=5.1.0, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"sax@npm:1.1.4": + version: 1.1.4 + resolution: "sax@npm:1.1.4" + checksum: 10c0/805371d5c326f48e6b180e059315d9e97be8e38620538bc7d5debb05c1b2f6ffc14c5f26a50688d5e61a79949e2c8ff2781410de6718d3323137ae7e7a32cbe5 + languageName: node + linkType: hard + +"sax@npm:>=0.6.0": + version: 1.6.0 + resolution: "sax@npm:1.6.0" + checksum: 10c0/e5593f4a91eb25761a688c4d96902e4e95a0dd6017bc65146b6f21236e3d715cf893333b76bc758923c9574c2fb5a7a76c3a81e96ea15432f2624f906c027c1e + languageName: node + linkType: hard + +"scheduler@npm:^0.23.0": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78 + languageName: node + linkType: hard + +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + +"semver@npm:^7.3.5, semver@npm:^7.6.3": + version: 7.8.0 + resolution: "semver@npm:7.8.0" + bin: + semver: bin/semver.js + checksum: 10c0/8f096ca9b80ffd47b308d03f9ce8c873e27e2983f36023c559cdc92c51e8433fc23ebbfe57ec9623fc155636a6961ee989501099841ae4bb1babc8d2b3f048cd + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.3": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: 10c0/230ac975cca485b7f6fe2b96a711aa62a6a26ead3e6fb8ba17c5a00d61b8bed0d7adc21f5626b70d7c33c62ff4e63933017a6462942c719d1980bb0b1207ad46 + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10c0/6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 + languageName: node + linkType: hard + +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + +"source-map-support@npm:~0.5.20": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10c0/9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d + languageName: node + linkType: hard + +"source-map@npm:^0.6.0": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 + languageName: node + linkType: hard + +"split2@npm:^4.2.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 + languageName: node + linkType: hard + +"string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + +"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"supercluster@npm:^8.0.1": + version: 8.0.1 + resolution: "supercluster@npm:8.0.1" + dependencies: + kdbush: "npm:^4.0.2" + checksum: 10c0/79121e6dbff67b3036ea6651f3baddb942478830ba3ecbc27455715ab5bd269de8381dc04618c0c15963346ea2ed0f81cd5f767c2978a63e2841807c73445d57 + languageName: node + linkType: hard + +"tar@npm:^7.5.3, tar@npm:^7.5.4": + version: 7.5.15 + resolution: "tar@npm:7.5.15" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10c0/8f039edb1d12fdd7df6c6f9877d125afe9f3da3f5f9317df326fdd090d48793d6998cede1506a1471f3e3a250db270a89dace28005eb5e99c5a9132d704ac956 + languageName: node + linkType: hard + +"terser@npm:^5.4.0": + version: 5.47.1 + resolution: "terser@npm:5.47.1" + dependencies: + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.15.0" + commander: "npm:^2.20.0" + source-map-support: "npm:~0.5.20" + bin: + terser: bin/terser + checksum: 10c0/e7017001aff657b8eb444edb4c4ad2425b90c141c5329f06b1939161f38884622972ec7b12d197207229c8079d24d20bf44be93852f735fe3bb4b32d80775775 + languageName: node + linkType: hard + +"through2@npm:^4.0.2": + version: 4.0.2 + resolution: "through2@npm:4.0.2" + dependencies: + readable-stream: "npm:3" + checksum: 10c0/3741564ae99990a4a79097fe7a4152c22348adc4faf2df9199a07a66c81ed2011da39f631e479fdc56483996a9d34a037ad64e76d79f18c782ab178ea9b6778c + languageName: node + linkType: hard + +"tiny-invariant@npm:^1.0.2": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a + languageName: node + linkType: hard + +"tiny-warning@npm:^1.0.0": + version: 1.0.3 + resolution: "tiny-warning@npm:1.0.3" + checksum: 10c0/ef8531f581b30342f29670cb41ca248001c6fd7975ce22122bd59b8d62b4fc84ad4207ee7faa95cde982fa3357cd8f4be650142abc22805538c3b1392d7084fa + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12": + version: 0.2.16 + resolution: "tinyglobby@npm:0.2.16" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.4" + checksum: 10c0/f2e09fd93dd95c41e522113b686ff6f7c13020962f8698a864a257f3d7737599afc47722b7ab726e12f8a813f779906187911ff8ee6701ede65072671a7e934b + languageName: node + linkType: hard + +"tree-kill@npm:^1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10c0/7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 + languageName: node + linkType: hard + +"tslib@npm:*, tslib@npm:2.8.1, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.6.2, tslib@npm:^2.8.1": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"typescript@npm:~5.9.0": + version: 5.9.3 + resolution: "typescript@npm:5.9.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A~5.9.0#optional!builtin": + version: 5.9.3 + resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 + languageName: node + linkType: hard + +"undici-types@npm:>=7.24.0 <7.24.7": + version: 7.24.6 + resolution: "undici-types@npm:7.24.6" + checksum: 10c0/d9cd8befb643ac904615c280a095ba4240531f6bb4a5e75a22a7483630ca8d3f1016d2ab6ace6ceda1f63b3a2db2fe037fafe121d6917a0187573aa548ff78ca + languageName: node + linkType: hard + +"undici-types@npm:~8.3.0": + version: 8.3.0 + resolution: "undici-types@npm:8.3.0" + checksum: 10c0/c8aa7e2fbebfce519654dafadc0ece59be888d2ccaf180fb4495da875e7b536d2456345c384069c7e6f3e9c9ab7435f074957da306f142343eee86ff8048855a + languageName: node + linkType: hard + +"undici@npm:^6.25.0": + version: 6.25.0 + resolution: "undici@npm:6.25.0" + checksum: 10c0/2597cc6689bdb02c210c557b1f85febbfda65becae6e6fc1061508e2f33734d25207f81cd8af56ada9956329eb3a7bd7431e87dcfeceba20ee87059b57dcf985 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a + languageName: node + linkType: hard + +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 10c0/d758e624c707d49f76f7511d75d09a8eda7f2020d231ec52b67ff4896bcf7013be3f9522d8375f57e586e9a2e827f5641c7e06ee46ab9c435fc2b2b2e9de517a + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.2.3": + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"value-equal@npm:^1.0.1": + version: 1.0.1 + resolution: "value-equal@npm:1.0.1" + checksum: 10c0/79068098355483ef29f4d3753999ad880875b87625d7e9055cad9346ea4b7662aad3a66f87976801b0dd7a6f828ba973d28b1669ebcd37eaf88cc5f687c1a691 + languageName: node + linkType: hard + +"vite@npm:^5.0.0": + version: 5.4.21 + resolution: "vite@npm:5.4.21" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/468336a1409f728b464160cbf02672e72271fb688d0e605e776b74a89d27e1029509eef3a3a6c755928d8011e474dbf234824d054d07960be5f23cd176bc72de + languageName: node + linkType: hard + +"web-vitals@npm:^4.2.4": + version: 4.2.4 + resolution: "web-vitals@npm:4.2.4" + checksum: 10c0/383c9281d5b556bcd190fde3c823aeb005bb8cf82e62c75b47beb411014a4ed13fa5c5e0489ed0f1b8d501cd66b0bebcb8624c1a75750bd5df13e2a3b1b2d194 + languageName: node + linkType: hard + +"websocket-driver@npm:>=0.5.1": + version: 0.7.5 + resolution: "websocket-driver@npm:0.7.5" + dependencies: + http-parser-js: "npm:>=0.5.1" + safe-buffer: "npm:>=5.1.0" + websocket-extensions: "npm:>=0.1.1" + checksum: 10c0/843a3c9f529ce07f2721829f70f62986247525ab22625e857b69da13dc90967bacfe57b85e196801b565cd797e309ddd5b06fa8435732e34e8a8ab6201d7abed + languageName: node + linkType: hard + +"websocket-extensions@npm:>=0.1.1": + version: 0.1.4 + resolution: "websocket-extensions@npm:0.1.4" + checksum: 10c0/bbc8c233388a0eb8a40786ee2e30d35935cacbfe26ab188b3e020987e85d519c2009fe07cfc37b7f718b85afdba7e54654c9153e6697301f72561bfe429177e0 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^6.0.0": + version: 6.0.1 + resolution: "which@npm:6.0.1" + dependencies: + isexe: "npm:^4.0.0" + bin: + node-which: bin/which.js + checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5 + languageName: node + linkType: hard + +"wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"xml2js@npm:^0.6.2": + version: 0.6.2 + resolution: "xml2js@npm:0.6.2" + dependencies: + sax: "npm:>=0.6.0" + xmlbuilder: "npm:~11.0.0" + checksum: 10c0/e98a84e9c172c556ee2c5afa0fc7161b46919e8b53ab20de140eedea19903ed82f7cd5b1576fb345c84f0a18da1982ddf65908129b58fc3d7cbc658ae232108f + languageName: node + linkType: hard + +"xmlbuilder@npm:^15.1.1": + version: 15.1.1 + resolution: "xmlbuilder@npm:15.1.1" + checksum: 10c0/665266a8916498ff8d82b3d46d3993913477a254b98149ff7cff060d9b7cc0db7cf5a3dae99aed92355254a808c0e2e3ec74ad1b04aa1061bdb8dfbea26c18b8 + languageName: node + linkType: hard + +"xmlbuilder@npm:~11.0.0": + version: 11.0.1 + resolution: "xmlbuilder@npm:11.0.1" + checksum: 10c0/74b979f89a0a129926bc786b913459bdbcefa809afaa551c5ab83f89b1915bdaea14c11c759284bb9b931e3b53004dbc2181e21d3ca9553eeb0b2a7b4e40c35b + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 + languageName: node + linkType: hard + +"yargs@npm:^17.7.2": + version: 17.7.3 + resolution: "yargs@npm:17.7.3" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10c0/7a28572f7e785a57886e34fdbddb9b28756dec552e1453d5f6e7cdd00ad8721a4e8c4321d33683f5e61cacb36ad43258adbb48396b71ec4ed14abee0fc0d0c1f + languageName: node + linkType: hard + +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 + languageName: node + linkType: hard + +"zod@npm:^3.24.0": + version: 3.25.76 + resolution: "zod@npm:3.25.76" + checksum: 10c0/5718ec35e3c40b600316c5b4c5e4976f7fee68151bc8f8d90ec18a469be9571f072e1bbaace10f1e85cf8892ea12d90821b200e980ab46916a6166a4260a983c + languageName: node + linkType: hard + +"zustand@npm:^5.0.0": + version: 5.0.13 + resolution: "zustand@npm:5.0.13" + peerDependencies: + "@types/react": ">=18.0.0" + immer: ">=9.0.6" + react: ">=18.0.0" + use-sync-external-store: ">=1.2.0" + peerDependenciesMeta: + "@types/react": + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + checksum: 10c0/e4e76af1c324c797e3cc6ef094cb15c5884ca6713697140c2be292b2c612f5445fa21d222671b97797a4376154cac14a140f05728f0ac17b4b9e10f45e0ff29e + languageName: node + linkType: hard

GCbwU7x<;8172x%hRO4S-!d|D> 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