// ============================================================
// נקודת הכניסה של האפליקציה (Vite entry).
//
// אסטרטגיה: הקוד הקיים (33 קבצים) כתוב בסגנון "גלובלי" — כל רכיב
// נחשף כ-window.X ומשתמש ב-React מהגלובל. זה עבד עם Babel-CDN.
//
// במקום לשכתב 33 קבצים (סיכון גבוה לשבירה), הקובץ הזה משמש **גשר**:
//   1. מזריק את התלויות ל-window (React, Supabase, Leaflet)
//   2. מייבא את כל הקבצים בסדר הנכון (תלויות לפני תלויים)
//   3. מרנדר את האפליקציה
//
// התוצאה: כל יתרונות ה-build (JSX מתורגם מראש, minify, קובץ אחד,
// cache busting) בלי לגעת בקוד — טעינה מ-8 שניות לפחות משנייה.
//
// שלב הבא (אחרי שזה יציב): מעבר הדרגתי ל-ES Modules לקבלת code splitting.
// ============================================================

import React from 'react';
import ReactDOM from 'react-dom/client';
import { createClient } from '@supabase/supabase-js';
import L from 'leaflet';
import 'leaflet/dist/leaflet.css';

// --- 1. הזרקת התלויות לגלובל (הקוד הקיים מצפה להן שם) ---
window.React = React;
window.ReactDOM = ReactDOM;
window.L = L;
window.supabase = { createClient };

// --- 2. ייבוא הקוד בסדר תלויות נכון ---
// lib קודם (הרכיבים תלויים בו)
import './lib/i18n.js';
import './lib/supabaseClient.js';
import './lib/mockData.js';
import './lib/osmPlaces.js';

// components (המסכים תלויים בהם)
import './components/GlowOrb.js';
import './components/SceneEffects.js';
import './components/MapCanvas.js';
import './components/BottomNav.js';
import './components/XPBar.js';
import './components/CreatureIcon.js';
import './components/Switch.js';
import './components/AchievementIcon.js';

// screens
import './screens/HomeScreen.js';
import './screens/ChallengesScreen.js';
import './screens/ProfileScreen.js';
import './screens/PlaceScreen.js';
import './screens/ConquestScreen.js';
import './screens/RewardsScreen.js';
import './screens/AchievementsScreen.js';
import './screens/FollowsScreen.js';
import './screens/LeaderboardScreen.js';
import './screens/MoreScreen.js';
import './screens/AvatarScreen.js';
import './screens/BusinessPortalScreen.js';
import './screens/BusinessAnalyticsScreen.js';
import './screens/AdminDashboardScreen.js';
import './screens/NotificationsScreen.js';
import './screens/AuthGateScreen.js';
import './screens/OnboardingScreen.js';
import './screens/FeedScreen.js';
import './screens/HelpScreen.js';
import './screens/LegalScreen.js';

// App אחרון (תלוי בכל השאר)
import './App.js';

// --- 3. רינדור ---
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(React.createElement(window.App));
