// ═══════════════════════════════════════════════════════════════ // CONFIG // ═══════════════════════════════════════════════════════════════ const SUPABASE_URL = 'https://mesfubazfwomxiwgbhek.supabase.co'; const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im1lc2Z1YmF6ZndvbXhpd2diaGVrIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzQ4MTA2MDcsImV4cCI6MjA5MDM4NjYwN30.2BiptnPc3OzhJl-M21-HfPOKxurxUuSqZ5ogvgoaJi0'; // ⚠️ FILL THESE IN — I don't have literal values for any of these four // from tonight's work, only the env var names they map to in your app. const STRIPE_PUBLISHABLE_KEY = 'pk_live_51ToBRzL4btaUJvwOaPOdRIkPIByDmgf5Z7MP1onzoZQqLArZvyeiXOn8KMgqNHOpOfuuAAGzMJuuCBneZPo9dc1I00jpzi6wLT'; const GOOGLE_PLACES_API_KEY = 'AIzaSyCX-WD8Jm6YTr4Fn_iP21n5sZeCoE2k-xc'; // same key as EXPO_PUBLIC_GOOGLE_PLACES_API_KEY const CLOUDINARY_CLOUD_NAME = 'dw7kndjnv'; // same as EXPO_PUBLIC_CLOUDINARY_CLOUD_NAME const CLOUDINARY_UPLOAD_PRESET = 'aisle_match'; // same as EXPO_PUBLIC_CLOUDINARY_UPLOAD_PRESET // ABN Lookup needs a free GUID from https://abr.business.gov.au/Tools/WebServices // Takes ~2 minutes to register, arrives by email instantly. const ABN_LOOKUP_GUID = '913215cf-b204-4ba0-b9b4-dda32a6d015b'; let sb = null; let stripe = null; let cardElement = null; let currentUser = null; let vendorRow = null; let categories = []; let selectedPersonalityTags = []; let uploadedPhotoUrls = []; let coverPhotoUrl = null; let insuranceUrl = null; let tcUrl = null; let serviceAreas = []; const PERSONALITY_OPTIONS = ['fun','warm','relaxed','professional','quirky','creative','romantic','luxury','modern','traditional','bold','elegant','adventurous','laid-back','high-energy','experienced','calm','unconventional','storyteller','confident']; // Dynamic script loader, used for BOTH Supabase and Stripe — this is // the actual fix for "X is not defined" regardless of which library // it happens to. If this page is embedded via a Webflow Embed block, // static