# أذان ليبيا
تطبيق ويب عربي RTL، مبني بـ React + Vite + TypeScript وTailwind CSS، لمواقيت الصلاة في المدن الليبية والقرآن الكريم والقبلة والأذكار والسبحة.
## التشغيل
```bash
npm install --cache .npm-cache
npm run dev
```
لإنشاء نسخة إنتاجية وتشغيل الاختبارات:
```bash
npm run build
npm test
```
تستخدم الأوامر `--configLoader runner` لتبقى صالحة في بيئات Windows المقيّدة التي لا تسمح لـ esbuild بقراءة مجلدات أعلى المشروع.
## دقة مواقيت الصلاة
- التوقيت المدني المرجعي هو `Africa/Tripoli`، وليس المنطقة الزمنية لجهاز المستخدم.
- يوجد موفّر رسمي معزول في `src/services/prayerService.ts`. لا يكون مفعلاً إلا عند تعيين `VITE_OFFICIAL_PRAYER_URL` إلى خدمة/وكيل موثّق يعيد صيغة `.env.example`.
- عند عدم توافر المصدر الرسمي، يستخدم التطبيق الحساب الفلكي ويعرض بوضوح عبارة **مواقيت محسوبة**.
- إعدادات البديل الافتراضي موثقة مركزياً في `src/lib/prayerConfig.ts`: Muslim World League، عصر شافعي، قاعدة Twilight Angle، إزاحات صفرية، وتقريب لأقرب دقيقة.
- لا توجد أي مواقيت رسمية ثابتة أو واجهة مصدر رسمي مفبركة داخل المشروع.
## القرآن والصوت
- يستعمل التطبيق واجهة Al Quran Cloud الموثقة لفهرس السور والنص العثماني والبحث والصوت آية بآية. تُتحقق الاستجابات قبل العرض، وتُخزّن البيانات التي سبق تحميلها تدريجياً في IndexedDB.
- تُتحقق إصدارات القرّاء من واجهة الإصدارات الصوتية قبل إتاحتها في الواجهة.
- سجل مصادر الأذان موجود في `src/data/adhan-sources.json`، لكنه يتعمد إبقاء الروابط غير الموثقة معطّلة. لا يعلن التطبيق عن ملف صوتي أو ترخيص غير متحقق منه.
## التنبيهات والعمل دون اتصال
- يتضمن التطبيق manifest وservice worker لقشرة التطبيق وتخزين المحتوى الذي سبق فتحه. تنزيل القرآن كاملاً أو ادعاء التوافر الدائم دون اتصال ليس جزءاً من التطبيق.
- إعدادات التنبيهات تتعامل مع الإذن والاختبار والحالات غير المدعومة. توقيت التنبيهات الخلفية ليس مضموناً من المتصفح أو نظام التشغيل، ولهذا تنص الواجهة على ذلك صراحة.
## البنية
```text
src/
app/ # التطبيق والحالة المشتركة
components/ # الواجهة القابلة لإعادة الاستخدام
data/ # المدن وسجل الأذان والأذكار
hooks/ # مؤقتات …