fix(ios): PERMANENT native safe-area + keyboard via Capacitor 7 + safe-area plugin

Device screenshots proved the WebView reports env(safe-area-inset-*)=0, so no web/CSS/JS trick can
move content off the Dynamic Island — it must be fixed natively. Upgrade the Capacitor shell to v7 and
add @capacitor-community/safe-area (populates env() with real per-device insets, edge-to-edge) and
@capacitor/keyboard (resize:native so the composer sits directly on the keyboard, like Teams).

- mobile: Capacitor 6 -> 7 for all plugins; add safe-area + keyboard; SafeArea/Keyboard config.
- codemagic: npm ci -> npm install (dependency set changed); drop stale Cap6 lockfile.
- web: remove the temporary StatusBar/34px hacks (env() now works); keep var(--sat)/var(--sab) padding.
- share/connect: back link now respects env(safe-area-inset-top/left).
- add native-style slide in/out (push/pop) animation when opening/closing a chat on mobile.
Build marker -> 2026-07-17-batch92.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 17:36:14 +05:30
parent a609bfd2e0
commit 2ce7ec72fb
8 changed files with 49 additions and 4982 deletions
+3 -1
View File
@@ -36,7 +36,9 @@ workflows:
- name: Install JS dependencies
script: |
cd mobile
npm ci
# npm install (not ci): the dependency set changed to Capacitor 7 + the safe-area/keyboard
# plugins, so we let npm resolve a fresh tree rather than require a pre-synced lockfile.
npm install
- name: Generate the iOS project (Capacitor)
script: |