@moneybar.online/moneybar 3.2.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +123 -93
- package/dist/index.browser.js +82 -37
- package/dist/index.browser.js.map +1 -1
- package/dist/index.bundle.js +1 -1
- package/dist/index.bundle.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +82 -37
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +82 -37
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +11 -7
- package/dist/types.d.ts.map +1 -1
- package/example-template.html +113 -57
- package/moneybar-config-template.js +227 -33
- package/package.json +3 -4
- package/src/index.ts +80 -37
- package/src/types.ts +11 -7
- package/dist/index.cjs.js +0 -3058
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.umd.js +0 -2
- package/dist/index.umd.js.map +0 -1
package/dist/index.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["createClient"],"mappings":"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"}
|
package/dist/index.umd.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@supabase/supabase-js")):"function"==typeof define&&define.amd?define(["exports","@supabase/supabase-js"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).MoneyBar={},n.Supabase)}(this,function(n,t){"use strict";n.MoneyBar=class{mergeConfigs(n){const t="undefined"!=typeof window?window.APP_CONFIG:null;if(!n&&!t)throw new Error("MoneyBar: No configuration provided. Either pass config to constructor or set window.APP_CONFIG");return n?t?{...t,...n}:n:t}constructor(n){this.currentUser=null,this.userFingerprint=null,this.eventListeners=new Map,this.supabaseConnectionFailed=!1,this.paymentConnectionFailed=!1,this.cachedStatus=null,this.statusCacheTime=0,this.STATUS_CACHE_DURATION=5e3,this.initializationPromise=null,this.cachedPremiumStatus=null,this.premiumStatusCacheTime=0,this.config=this.mergeConfigs(n),this.config.options,this.validateConfig(),this.initializeSupabase(),this.initializePayment(),this.initializeFingerprint(),this.setupAuthListener(),this.checkPaymentStatus()}async handleDownload(){try{if(this.supabaseConnectionFailed)return void this.config.callbacks?.onError?.(new Error("Server connection required for download verification. Please check your configuration."));if(this.config.payment&&this.paymentConnectionFailed)return void this.config.callbacks?.onError?.(new Error("Payment configuration error. Please contact support."));if(this.currentUser){if(await this.checkPremiumStatus(this.currentUser.email))return void this.config.callbacks?.onPremiumDownload()}const n=await this.getDownloadStatus();if(n.currentCount>=n.limit)return void this.config.callbacks?.onLimitReached(n.currentCount,n.limit);await this.incrementDownloadCount(),this.config.callbacks?.onDownloadAllowed(),this.cachedStatus=null;const t=await this.getDownloadStatus();this.emit("countChanged",{count:t.currentCount,limit:t.limit}),t.currentCount>=t.limit&&setTimeout(()=>{this.config.callbacks?.onLimitReached(t.currentCount,t.limit)},100)}catch(n){this.handleError(n)}}async getDownloadStatus(n=!1){console.log(`🔍 [INIT] getDownloadStatus called (forceRefresh: ${n}) at ${(new Date).toISOString()}`);const t=this.cachedStatus?Date.now()-this.statusCacheTime:-1;if(!n&&this.cachedStatus&&t<this.STATUS_CACHE_DURATION)return console.log(`🔍 [INIT] Using cached status (age: ${t}ms)`),this.cachedStatus;if(!n&&this.initializationPromise)return console.log("🔍 [INIT] Waiting for existing initialization promise"),await this.initializationPromise;console.log(`🔍 [INIT] Starting new status fetch (cache age: ${t}ms)`),this.initializationPromise=this.fetchFreshStatus(n);try{const n=await this.initializationPromise;return console.log("🔍 [INIT] Status fetch completed successfully"),n}finally{this.initializationPromise=null}}async fetchFreshStatus(n){try{let t=0,e=!1;if(t=n||!this.cachedStatus?await this.getDownloadCount():this.cachedStatus.currentCount,this.currentUser){const t=null!==this.cachedPremiumStatus&&Date.now()-this.premiumStatusCacheTime<this.STATUS_CACHE_DURATION;n||!t?(console.log(`🔥 [SUPABASE API] About to call checkPremiumStatus from getDownloadStatus (forceRefresh: ${n}, cacheValid: ${t})`),e=await this.checkPremiumStatus(this.currentUser.email),this.cachedPremiumStatus=e,this.premiumStatusCacheTime=Date.now()):(e=this.cachedPremiumStatus,console.log(`🔍 [CACHE] Using cached premium status from getDownloadStatus: ${e}`))}else e=!1;const a={currentCount:t,limit:this.config.freeDownloadLimit,isPremium:e,isAuthenticated:!!this.currentUser,remaining:Math.max(0,this.config.freeDownloadLimit-t)};return this.cachedStatus=a,this.statusCacheTime=Date.now(),a}catch(n){this.handleError(n);const t={currentCount:0,limit:this.config.freeDownloadLimit,isPremium:!1,isAuthenticated:!1,remaining:this.config.freeDownloadLimit};return this.cachedStatus=t,this.statusCacheTime=Date.now(),t}}async getUserContext(){const n=await this.getDownloadStatus();return{isPremium:n.isPremium,isAuthenticated:n.isAuthenticated,email:this.currentUser?.email,name:this.currentUser?.user_metadata?.full_name||this.currentUser?.user_metadata?.name,currentCount:n.currentCount,remaining:n.remaining,limit:n.limit,user:this.currentUser}}async signIn(){try{const{error:n}=await this.supabase.auth.signInWithOAuth({provider:"google",options:{redirectTo:`${window.location.origin}${window.location.pathname}`}});if(n)throw n}catch(n){this.handleError(n)}}async signOut(){try{await this.supabase.auth.signOut(),this.currentUser=null,this.emit("authChanged",{user:null,isPremium:!1})}catch(n){this.handleError(n)}}async createPayment(){if(!this.currentUser)throw new Error("User must be signed in to create payment");if(!this.config.payment)throw new Error("Payment configuration not provided");const n={email:this.currentUser.email,product_id:this.config.payment.productId,mode:this.config.payment.mode||"test",app_id:this.config.appId,return_url:`${window.location.origin}${window.location.pathname}?payment=success`};console.log(`🔥 [SUPABASE API] createPayment called for email: ${this.currentUser.email} | Time: ${(new Date).toISOString()}`);try{const t=await fetch(`${this.config.supabase.url}/functions/v1/create-payment`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.config.supabase.anonKey}`},body:JSON.stringify(n)});if(console.log(`🔥 [SUPABASE API] createPayment response: ${t.status}`),this.config.options,!t.ok){const n=await t.text();let e;this.config.options?.debug&&console.error("🔍 DEBUG: createPayment error response:",n);try{e=JSON.parse(n)}catch{e={error:n}}throw(n.includes("404")||n.includes("could not be found"))&&(this.paymentConnectionFailed=!0,this.config.options?.debug&&console.warn("Invalid payment product ID detected, disabling downloads"),this.updateStatusDisplays()),new Error(e.error||"Payment creation failed")}const e=await t.json();return this.config.options,e}catch(n){return this.handleError(n),null}}attachToButton(n,t){const e=document.querySelector(n);if(!e)throw new Error(`Button not found: ${n}`);this.injectBaseStyles(),this.createTitleBar(),this.createPaywallModal(),this.createSuccessModal(),this.createAuthUI(),this.createStatusDisplay(),e.setAttribute("data-leadfast-attached","true"),e.onclick=async n=>{n.preventDefault(),await this.handleButtonClick(t)},this.setupUIUpdates()}attachToButtons(n){this.injectBaseStyles(),this.createTitleBar(),this.createPaywallModal(),this.createSuccessModal(),this.createAuthUI(),n.buttons.forEach(n=>{const t=document.querySelector(n.selector);t?(t.setAttribute("data-leadfast-attached","true"),t.onclick=async t=>{t.preventDefault(),await this.handleButtonClick(n.downloadCallback)},this.setupUIUpdates()):console.warn(`Button not found: ${n.selector}`)}),this.createGlobalStatusDisplay()}async handleButtonClick(n){const t=document.querySelector('[data-leadfast-attached="true"]');if(t&&t.disabled)console.log("⚠️ Button click ignored - operation already in progress");else{t&&(t.disabled=!0,t.style.opacity="0.6");try{await this.handleButtonClickInternal(n)}finally{t&&(t.disabled=!1,t.style.opacity="1")}}}async handleButtonClickInternal(n){if(this.supabaseConnectionFailed)return void this.showConnectionError();if(this.config.payment&&this.paymentConnectionFailed)return void this.showPaymentConfigError();const t=this.cachedStatus&&Date.now()-this.statusCacheTime<this.STATUS_CACHE_DURATION?this.cachedStatus:await this.getDownloadStatus();if(t.isPremium){const t=await this.getUserContext();return void(n.length>0?n(t):n())}if(t.currentCount>=t.limit)this.showPaywallInstant(t);else{try{if(n.length>0){const t=await this.getUserContext();t.isPremium||(t.currentCount+=1,t.remaining=Math.max(0,t.limit-t.currentCount)),n(t)}else n();const t=await this.getDownloadStatus(!0);if(t.currentCount>=t.limit)return console.warn(`⚠️ Limit reached during execution (${t.currentCount}/${t.limit}) - canceling increment`),void alert("⚠️ You reached the limit while this action was processing. No attempt was counted.");const e=await this.incrementDownloadCount();if(e>this.config.freeDownloadLimit)return void console.error(`⚠️ Server returned count (${e}) exceeding limit (${this.config.freeDownloadLimit})`);if(!0===this.config.successMessage?.enabled){const n=this.config.successMessage?.title||"Action Completed!",t=this.config.successMessage?.message||"Your action completed successfully!";this.showSuccess(n,t)}}catch(n){return console.error("User function failed:",n),void alert("Action failed. Please check the console for details. No attempt was counted.")}this.cachedStatus=null,this.updateStatusDisplays()}}injectBaseStyles(){if(document.getElementById("lead-fast-styles"))return;this.config.theme?.name&&this.injectDaisyUI();const n=document.createElement("style");n.id="lead-fast-styles";const t=this.config.theme?.primaryColor||"#3182ce";n.textContent=`\n /* User Profile Card - Top Right */\n .lead-fast-profile {\n position: fixed;\n top: 20px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n font-family: system-ui, -apple-system, sans-serif;\n width: 90%;\n max-width: 1200px;\n }\n\n .lead-fast-title-bar {\n background: rgba(250, 247, 245, 0.9) !important;\n border: 1px solid rgba(231, 226, 223, 0.6) !important;\n color: #291334 !important;\n border-radius: 16px;\n padding: 12px 24px;\n box-shadow: 0 8px 32px rgb(0 0 0 / 0.1), 0 2px 8px rgb(0 0 0 / 0.05);\n backdrop-filter: blur(20px);\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 60px;\n font-family: system-ui, -apple-system, sans-serif;\n }\n\n /* Theme variations for floating title bar */\n [data-theme="bumblebee"] .lead-fast-title-bar {\n background: rgba(255, 248, 220, 0.9) !important;\n border-color: rgba(254, 215, 170, 0.6) !important;\n color: #1c1917 !important;\n }\n\n [data-theme="garden"] .lead-fast-title-bar {\n background: rgba(240, 253, 244, 0.9) !important;\n border-color: rgba(134, 239, 172, 0.6) !important;\n color: #14532d !important;\n }\n\n [data-theme="emerald"] .lead-fast-title-bar {\n background: rgba(236, 253, 245, 0.9) !important;\n border-color: rgba(167, 243, 208, 0.6) !important;\n color: #065f46 !important;\n }\n\n [data-theme="corporate"] .lead-fast-title-bar {\n background: rgba(248, 250, 252, 0.9) !important;\n border-color: rgba(226, 232, 240, 0.6) !important;\n color: #1e293b !important;\n }\n\n [data-theme="dark"] .lead-fast-title-bar {\n background: rgba(31, 41, 55, 0.9) !important;\n border-color: rgba(55, 65, 81, 0.6) !important;\n color: #f9fafb !important;\n }\n\n [data-theme="cyberpunk"] .lead-fast-title-bar {\n background: rgba(0, 20, 36, 0.9) !important;\n border-color: rgba(7, 89, 133, 0.6) !important;\n color: #0ea5e9 !important;\n box-shadow: 0 8px 32px rgba(14, 165, 233, 0.2), 0 2px 8px rgba(14, 165, 233, 0.1);\n }\n\n [data-theme="valentine"] .lead-fast-title-bar {\n background: rgba(233, 30, 122, 0.15) !important;\n border-color: rgba(233, 30, 122, 0.6) !important;\n color: #831843 !important;\n }\n\n [data-theme="synthwave"] .lead-fast-title-bar {\n background: rgba(32, 20, 64, 0.9) !important;\n border-color: rgba(186, 85, 211, 0.6) !important;\n color: #ff00ff !important;\n box-shadow: 0 8px 32px rgba(255, 0, 255, 0.2), 0 2px 8px rgba(255, 0, 255, 0.1);\n }\n\n [data-theme="dracula"] .lead-fast-title-bar {\n background: rgba(40, 42, 54, 0.9) !important;\n border-color: rgba(98, 114, 164, 0.6) !important;\n color: #f8f8f2 !important;\n }\n\n [data-theme="halloween"] .lead-fast-title-bar {\n background: rgba(26, 26, 26, 0.9) !important;\n border-color: rgba(255, 165, 0, 0.6) !important;\n color: #ff6600 !important;\n }\n\n [data-theme="forest"] .lead-fast-title-bar {\n background: rgba(23, 46, 23, 0.9) !important;\n border-color: rgba(34, 197, 94, 0.6) !important;\n color: #22c55e !important;\n }\n\n [data-theme="luxury"] .lead-fast-title-bar {\n background: rgba(9, 9, 11, 0.9) !important;\n border-color: rgba(212, 175, 55, 0.6) !important;\n color: #d4af37 !important;\n }\n\n [data-theme="night"] .lead-fast-title-bar {\n background: rgba(15, 23, 42, 0.9) !important;\n border-color: rgba(30, 58, 138, 0.6) !important;\n color: #60a5fa !important;\n }\n\n [data-theme="light"] .lead-fast-title-bar {\n background: rgba(255, 255, 255, 0.9) !important;\n border-color: rgba(229, 231, 235, 0.6) !important;\n color: #1f2937 !important;\n }\n\n [data-theme="cupcake"] .lead-fast-title-bar {\n background: rgba(250, 235, 215, 0.9) !important;\n border-color: rgba(219, 185, 156, 0.6) !important;\n color: #8b4513 !important;\n }\n\n [data-theme="retro"] .lead-fast-title-bar {\n background: rgba(212, 165, 116, 0.9) !important;\n border-color: rgba(185, 144, 102, 0.6) !important;\n color: #5d4037 !important;\n }\n\n [data-theme="aqua"] .lead-fast-title-bar {\n background: rgba(240, 253, 250, 0.9) !important;\n border-color: rgba(125, 211, 252, 0.6) !important;\n color: #155e75 !important;\n }\n\n [data-theme="lofi"] .lead-fast-title-bar {\n background: rgba(248, 248, 248, 0.9) !important;\n border-color: rgba(68, 68, 68, 0.6) !important;\n color: #1a1a1a !important;\n }\n\n [data-theme="pastel"] .lead-fast-title-bar {\n background: rgba(254, 251, 255, 0.9) !important;\n border-color: rgba(209, 196, 233, 0.6) !important;\n color: #7c3aed !important;\n }\n\n [data-theme="fantasy"] .lead-fast-title-bar {\n background: rgba(255, 247, 237, 0.9) !important;\n border-color: rgba(249, 168, 212, 0.6) !important;\n color: #be185d !important;\n }\n\n [data-theme="wireframe"] .lead-fast-title-bar {\n background: rgba(223, 223, 223, 0.9) !important;\n border-color: rgba(0, 0, 0, 0.3) !important;\n color: #000000 !important;\n }\n\n [data-theme="black"] .lead-fast-title-bar {\n background: rgba(0, 0, 0, 0.9) !important;\n border-color: rgba(55, 55, 55, 0.6) !important;\n color: #ffffff !important;\n }\n\n [data-theme="cmyk"] .lead-fast-title-bar {\n background: rgba(0, 255, 255, 0.9) !important;\n border-color: rgba(255, 0, 255, 0.6) !important;\n color: #000000 !important;\n }\n\n [data-theme="autumn"] .lead-fast-title-bar {\n background: rgba(139, 69, 19, 0.9) !important;\n border-color: rgba(255, 140, 0, 0.6) !important;\n color: #ff8c00 !important;\n }\n\n [data-theme="business"] .lead-fast-title-bar {\n background: rgba(29, 78, 216, 0.9) !important;\n border-color: rgba(59, 130, 246, 0.6) !important;\n color: #3b82f6 !important;\n }\n\n [data-theme="acid"] .lead-fast-title-bar {\n background: rgba(255, 255, 0, 0.9) !important;\n border-color: rgba(255, 0, 255, 0.6) !important;\n color: #000000 !important;\n }\n\n [data-theme="lemonade"] .lead-fast-title-bar {\n background: rgba(255, 255, 224, 0.9) !important;\n border-color: rgba(34, 197, 94, 0.6) !important;\n color: #15803d !important;\n }\n\n [data-theme="coffee"] .lead-fast-title-bar {\n background: rgba(101, 67, 33, 0.9) !important;\n border-color: rgba(160, 82, 45, 0.6) !important;\n color: #d2b48c !important;\n }\n\n [data-theme="winter"] .lead-fast-title-bar {\n background: rgba(248, 250, 252, 0.9) !important;\n border-color: rgba(59, 130, 246, 0.6) !important;\n color: #1e40af !important;\n }\n\n .lead-fast-title-section {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .lead-fast-logo {\n font-size: 20px;\n font-weight: 700;\n display: flex;\n align-items: center;\n gap: 8px;\n color: inherit;\n text-decoration: none;\n }\n\n .lead-fast-logo img {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n }\n\n .lead-fast-nav {\n display: flex;\n align-items: center;\n gap: 32px;\n margin-left: 24px;\n }\n\n .lead-fast-nav-link {\n color: inherit;\n text-decoration: none;\n font-weight: 500;\n font-size: 14px;\n opacity: 0.8;\n transition: all 0.2s;\n }\n\n .lead-fast-nav-link:hover {\n opacity: 1;\n text-decoration: none;\n }\n\n .lead-fast-user-section {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .lead-fast-avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: linear-gradient(135deg, ${t}, #4f46e5);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-weight: 600;\n font-size: 14px;\n }\n\n .lead-fast-user-info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n }\n\n .lead-fast-user-email {\n color: inherit !important;\n font-size: 13px;\n font-weight: 500;\n line-height: 1;\n }\n\n .lead-fast-user-status {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .lead-fast-badge {\n padding: 2px 6px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n line-height: 1;\n }\n\n .lead-fast-badge.premium {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n .lead-fast-badge.free {\n background: #65c3c8 !important;\n color: #291334 !important;\n }\n\n [data-theme="dark"] .lead-fast-badge.premium {\n background: #059669 !important;\n color: #ffffff !important;\n }\n\n [data-theme="dark"] .lead-fast-badge.free {\n background: #374151 !important;\n color: #f9fafb !important;\n }\n\n .lead-fast-count {\n font-size: 10px;\n color: inherit !important;\n opacity: 0.7;\n line-height: 1;\n }\n\n .lead-fast-signout {\n background: rgba(0, 0, 0, 0.1) !important;\n border: none;\n color: inherit !important;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 8px;\n transition: all 0.2s;\n font-size: 11px;\n font-weight: 500;\n margin-left: 8px;\n }\n\n [data-theme="dark"] .lead-fast-signout {\n background: rgba(255, 255, 255, 0.1) !important;\n }\n\n [data-theme="cyberpunk"] .lead-fast-signout {\n background: rgba(14, 165, 233, 0.2) !important;\n }\n\n .lead-fast-signout:hover {\n background: rgba(0, 0, 0, 0.2) !important;\n transform: translateY(-1px);\n }\n\n [data-theme="dark"] .lead-fast-signout:hover {\n background: rgba(255, 255, 255, 0.2) !important;\n }\n\n [data-theme="cyberpunk"] .lead-fast-signout:hover {\n background: rgba(14, 165, 233, 0.3) !important;\n }\n\n .lead-fast-branding {\n position: absolute;\n bottom: -20px;\n left: 24px;\n font-size: 9px;\n color: inherit !important;\n opacity: 0.4;\n font-weight: 500;\n letter-spacing: 0.05em;\n text-transform: lowercase;\n background: rgba(255, 255, 255, 0.8);\n padding: 2px 6px;\n border-radius: 4px;\n backdrop-filter: blur(8px);\n }\n\n [data-theme="dark"] .lead-fast-branding {\n background: rgba(0, 0, 0, 0.6);\n }\n\n [data-theme="cyberpunk"] .lead-fast-branding {\n background: rgba(0, 20, 36, 0.8);\n }\n\n /* Modal Theming */\n .download-limiter-modal {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.5);\n z-index: 9999;\n align-items: center;\n justify-content: center;\n }\n .download-limiter-modal.show { display: flex; }\n\n .download-limiter-content {\n background: #faf7f5 !important;\n color: #291334 !important;\n padding: 2rem;\n border-radius: 12px;\n max-width: 400px;\n text-align: center;\n box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n border: 1px solid #e7e2df !important;\n font-family: system-ui, -apple-system, sans-serif;\n }\n\n [data-theme="dark"] .download-limiter-content {\n background: #1f2937 !important;\n color: #f9fafb !important;\n border-color: #374151 !important;\n }\n\n [data-theme="cyberpunk"] .download-limiter-content {\n background: #001424 !important;\n color: #0ea5e9 !important;\n border-color: #075985 !important;\n }\n\n [data-theme="valentine"] .download-limiter-content {\n background: rgba(233, 30, 122, 0.05) !important;\n color: #831843 !important;\n border-color: #e91e7a !important;\n }\n\n [data-theme="bumblebee"] .download-limiter-content {\n background: rgba(255, 248, 220, 0.95) !important;\n color: #1c1917 !important;\n border-color: rgba(254, 215, 170, 0.8) !important;\n }\n\n [data-theme="garden"] .download-limiter-content {\n background: rgba(240, 253, 244, 0.95) !important;\n color: #14532d !important;\n border-color: rgba(134, 239, 172, 0.8) !important;\n }\n\n [data-theme="emerald"] .download-limiter-content {\n background: rgba(236, 253, 245, 0.95) !important;\n color: #065f46 !important;\n border-color: rgba(167, 243, 208, 0.8) !important;\n }\n\n [data-theme="corporate"] .download-limiter-content {\n background: rgba(248, 250, 252, 0.95) !important;\n color: #1e293b !important;\n border-color: rgba(226, 232, 240, 0.8) !important;\n }\n\n [data-theme="forest"] .download-limiter-content {\n background: rgba(23, 46, 23, 0.95) !important;\n color: #22c55e !important;\n border-color: rgba(34, 197, 94, 0.8) !important;\n }\n\n [data-theme="halloween"] .download-limiter-content {\n background: rgba(26, 26, 26, 0.95) !important;\n color: #ff6500 !important;\n border-color: rgba(255, 165, 0, 0.3) !important;\n }\n\n [data-theme="synthwave"] .download-limiter-content {\n background: rgba(32, 20, 64, 0.95) !important;\n color: #ba55d3 !important;\n border-color: rgba(186, 85, 211, 0.3) !important;\n }\n\n [data-theme="dracula"] .download-limiter-content {\n background: rgba(40, 42, 54, 0.95) !important;\n color: #f8f8f2 !important;\n border-color: rgba(98, 114, 164, 0.3) !important;\n }\n\n [data-theme="luxury"] .download-limiter-content {\n background: rgba(9, 9, 11, 0.95) !important;\n color: #d4af37 !important;\n border-color: rgba(212, 175, 55, 0.3) !important;\n }\n\n [data-theme="night"] .download-limiter-content {\n background: rgba(15, 23, 42, 0.95) !important;\n color: #1e40af !important;\n border-color: rgba(30, 58, 138, 0.3) !important;\n }\n\n [data-theme="light"] .download-limiter-content {\n background: rgba(255, 255, 255, 0.95) !important;\n color: #1f2937 !important;\n border-color: rgba(229, 231, 235, 0.8) !important;\n }\n\n [data-theme="cupcake"] .download-limiter-content {\n background: rgba(250, 235, 215, 0.95) !important;\n color: #8b4513 !important;\n border-color: rgba(219, 185, 156, 0.8) !important;\n }\n\n [data-theme="retro"] .download-limiter-content {\n background: rgba(212, 165, 116, 0.95) !important;\n color: #5d4037 !important;\n border-color: rgba(185, 144, 102, 0.8) !important;\n }\n\n [data-theme="aqua"] .download-limiter-content {\n background: rgba(240, 253, 250, 0.95) !important;\n color: #155e75 !important;\n border-color: rgba(125, 211, 252, 0.8) !important;\n }\n\n [data-theme="lofi"] .download-limiter-content {\n background: rgba(248, 248, 248, 0.95) !important;\n color: #1a1a1a !important;\n border-color: rgba(68, 68, 68, 0.8) !important;\n }\n\n [data-theme="pastel"] .download-limiter-content {\n background: rgba(254, 251, 255, 0.95) !important;\n color: #7c3aed !important;\n border-color: rgba(209, 196, 233, 0.8) !important;\n }\n\n [data-theme="fantasy"] .download-limiter-content {\n background: rgba(255, 247, 237, 0.95) !important;\n color: #be185d !important;\n border-color: rgba(249, 168, 212, 0.8) !important;\n }\n\n [data-theme="wireframe"] .download-limiter-content {\n background: rgba(255, 255, 255, 0.95) !important;\n color: #000000 !important;\n border-color: rgba(0, 0, 0, 0.3) !important;\n }\n\n [data-theme="black"] .download-limiter-content {\n background: rgba(0, 0, 0, 0.95) !important;\n color: #ffffff !important;\n border-color: rgba(55, 55, 55, 0.8) !important;\n }\n\n [data-theme="cmyk"] .download-limiter-content {\n background: rgba(0, 255, 255, 0.95) !important;\n color: #000000 !important;\n border-color: rgba(255, 0, 255, 0.8) !important;\n }\n\n [data-theme="autumn"] .download-limiter-content {\n background: rgba(139, 69, 19, 0.95) !important;\n color: #ff8c00 !important;\n border-color: rgba(255, 140, 0, 0.8) !important;\n }\n\n [data-theme="business"] .download-limiter-content {\n background: rgba(29, 78, 216, 0.95) !important;\n color: #3b82f6 !important;\n border-color: rgba(59, 130, 246, 0.8) !important;\n }\n\n [data-theme="acid"] .download-limiter-content {\n background: rgba(255, 255, 0, 0.95) !important;\n color: #000000 !important;\n border-color: rgba(255, 0, 255, 0.8) !important;\n }\n\n [data-theme="lemonade"] .download-limiter-content {\n background: rgba(255, 255, 224, 0.95) !important;\n color: #15803d !important;\n border-color: rgba(34, 197, 94, 0.8) !important;\n }\n\n [data-theme="coffee"] .download-limiter-content {\n background: rgba(101, 67, 33, 0.95) !important;\n color: #d2b48c !important;\n border-color: rgba(160, 82, 45, 0.8) !important;\n }\n\n [data-theme="winter"] .download-limiter-content {\n background: rgba(248, 250, 252, 0.95) !important;\n color: #1e40af !important;\n border-color: rgba(59, 130, 246, 0.8) !important;\n }\n\n .download-limiter-content h2 {\n color: inherit !important;\n margin: 0 0 1rem 0;\n font-size: 1.5rem;\n font-weight: 600;\n }\n .download-limiter-content p {\n color: inherit !important;\n margin: 0 0 1.5rem 0;\n line-height: 1.6;\n }\n .download-limiter-signin-btn {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n background: #65c3c8 !important;\n color: #291334 !important;\n border: none;\n padding: 12px 20px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n transition: all 0.2s;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n }\n\n [data-theme="dark"] .download-limiter-signin-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cyberpunk"] .download-limiter-signin-btn {\n background: #f59e0b !important;\n color: #000000 !important;\n }\n\n [data-theme="valentine"] .download-limiter-signin-btn {\n background: #e91e7a !important;\n color: #ffffff !important;\n }\n\n [data-theme="bumblebee"] .download-limiter-signin-btn {\n background: #fbbf24 !important;\n color: #1c1917 !important;\n }\n\n [data-theme="garden"] .download-limiter-signin-btn {\n background: #22c55e !important;\n color: #ffffff !important;\n }\n\n [data-theme="emerald"] .download-limiter-signin-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="corporate"] .download-limiter-signin-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="forest"] .download-limiter-signin-btn {\n background: #22c55e !important;\n color: #1a1a1a !important;\n }\n\n [data-theme="halloween"] .download-limiter-signin-btn {\n background: #ff6500 !important;\n color: #1a1a1a !important;\n }\n\n [data-theme="synthwave"] .download-limiter-signin-btn {\n background: #ba55d3 !important;\n color: #201040 !important;\n }\n\n [data-theme="dracula"] .download-limiter-signin-btn {\n background: #8be9fd !important;\n color: #282a36 !important;\n }\n\n [data-theme="luxury"] .download-limiter-signin-btn {\n background: #d4af37 !important;\n color: #09090b !important;\n }\n\n [data-theme="night"] .download-limiter-signin-btn {\n background: #1e40af !important;\n color: #ffffff !important;\n }\n\n [data-theme="light"] .download-limiter-signin-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cupcake"] .download-limiter-signin-btn {\n background: #8b4513 !important;\n color: #ffffff !important;\n }\n\n [data-theme="retro"] .download-limiter-signin-btn {\n background: #d4a574 !important;\n color: #ffffff !important;\n }\n\n [data-theme="aqua"] .download-limiter-signin-btn {\n background: #0891b2 !important;\n color: #ffffff !important;\n }\n\n [data-theme="lofi"] .download-limiter-signin-btn {\n background: #1a1a1a !important;\n color: #ffffff !important;\n }\n\n [data-theme="pastel"] .download-limiter-signin-btn {\n background: #7c3aed !important;\n color: #ffffff !important;\n }\n\n [data-theme="fantasy"] .download-limiter-signin-btn {\n background: #be185d !important;\n color: #ffffff !important;\n }\n\n [data-theme="wireframe"] .download-limiter-signin-btn {\n background: #dfdfdf !important;\n color: #000000 !important;\n border: 1px solid #000000 !important;\n }\n\n [data-theme="black"] .download-limiter-signin-btn {\n background: #ffffff !important;\n color: #000000 !important;\n }\n\n [data-theme="cmyk"] .download-limiter-signin-btn {\n background: #ff00ff !important;\n color: #000000 !important;\n }\n\n [data-theme="autumn"] .download-limiter-signin-btn {\n background: #ff8c00 !important;\n color: #ffffff !important;\n }\n\n [data-theme="business"] .download-limiter-signin-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="acid"] .download-limiter-signin-btn {\n background: #ff00ff !important;\n color: #000000 !important;\n }\n\n [data-theme="lemonade"] .download-limiter-signin-btn {\n background: #22c55e !important;\n color: #ffffff !important;\n }\n\n [data-theme="coffee"] .download-limiter-signin-btn {\n background: #a0522d !important;\n color: #ffffff !important;\n }\n\n [data-theme="winter"] .download-limiter-signin-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n .download-limiter-signin-btn:hover {\n opacity: 0.9;\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0,0,0,0.15);\n }\n\n /* Upgrade Button Styles for All Themes */\n [data-theme="dark"] .upgrade-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cyberpunk"] .upgrade-btn {\n background: #ff073a !important;\n color: #ffffff !important;\n }\n\n [data-theme="valentine"] .upgrade-btn {\n background: #e91e7a !important;\n color: #ffffff !important;\n }\n\n [data-theme="bumblebee"] .upgrade-btn {\n background: #f59e0b !important;\n color: #ffffff !important;\n }\n\n [data-theme="garden"] .upgrade-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="emerald"] .upgrade-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="corporate"] .upgrade-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="forest"] .upgrade-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="halloween"] .upgrade-btn {\n background: #ff7b00 !important;\n color: #000000 !important;\n }\n\n [data-theme="synthwave"] .upgrade-btn {\n background: #e879f9 !important;\n color: #ffffff !important;\n }\n\n [data-theme="dracula"] .upgrade-btn {\n background: #bd93f9 !important;\n color: #ffffff !important;\n }\n\n [data-theme="luxury"] .upgrade-btn {\n background: #d4af37 !important;\n color: #000000 !important;\n }\n\n [data-theme="night"] .upgrade-btn {\n background: #38bdf8 !important;\n color: #ffffff !important;\n }\n\n [data-theme="light"] .upgrade-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cupcake"] .upgrade-btn {\n background: #f472b6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="retro"] .upgrade-btn {\n background: #d4a574 !important;\n color: #ffffff !important;\n }\n\n [data-theme="aqua"] .upgrade-btn {\n background: #06b6d4 !important;\n color: #ffffff !important;\n }\n\n [data-theme="lofi"] .upgrade-btn {\n background: #a3a3a3 !important;\n color: #000000 !important;\n }\n\n [data-theme="pastel"] .upgrade-btn {\n background: #a78bfa !important;\n color: #ffffff !important;\n }\n\n [data-theme="fantasy"] .upgrade-btn {\n background: #f472b6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="wireframe"] .upgrade-btn {\n background: #dfdfdf !important;\n color: #000000 !important;\n border: 1px solid #000000 !important;\n }\n\n [data-theme="black"] .upgrade-btn {\n background: #ffffff !important;\n color: #000000 !important;\n }\n\n [data-theme="cmyk"] .upgrade-btn {\n background: #0891b2 !important;\n color: #ffffff !important;\n }\n\n [data-theme="autumn"] .upgrade-btn {\n background: #d97706 !important;\n color: #ffffff !important;\n }\n\n [data-theme="business"] .upgrade-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="acid"] .upgrade-btn {\n background: #84cc16 !important;\n color: #000000 !important;\n }\n\n [data-theme="lemonade"] .upgrade-btn {\n background: #22c55e !important;\n color: #ffffff !important;\n }\n\n [data-theme="coffee"] .upgrade-btn {\n background: #a0522d !important;\n color: #ffffff !important;\n }\n\n [data-theme="winter"] .upgrade-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n\n /* Cancel Button Styles for All Themes */\n [data-theme="dark"] .cancel-btn {\n background: #4b5563 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cyberpunk"] .cancel-btn {\n background: #7e22ce !important;\n color: #ffffff !important;\n }\n\n [data-theme="valentine"] .cancel-btn {\n background: #c11560 !important;\n color: #ffffff !important;\n }\n\n [data-theme="bumblebee"] .cancel-btn {\n background: #d97706 !important;\n color: #ffffff !important;\n }\n\n [data-theme="garden"] .cancel-btn {\n background: #059669 !important;\n color: #ffffff !important;\n }\n\n [data-theme="emerald"] .cancel-btn {\n background: #059669 !important;\n color: #ffffff !important;\n }\n\n [data-theme="corporate"] .cancel-btn {\n background: #6b7280 !important;\n color: #ffffff !important;\n }\n\n [data-theme="forest"] .cancel-btn {\n background: #059669 !important;\n color: #ffffff !important;\n }\n\n [data-theme="halloween"] .cancel-btn {\n background: #7c3aed !important;\n color: #ffffff !important;\n }\n\n [data-theme="synthwave"] .cancel-btn {\n background: #7e22ce !important;\n color: #ffffff !important;\n }\n\n [data-theme="dracula"] .cancel-btn {\n background: #6272a4 !important;\n color: #ffffff !important;\n }\n\n [data-theme="luxury"] .cancel-btn {\n background: #8b5cf6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="night"] .cancel-btn {\n background: #0284c7 !important;\n color: #ffffff !important;\n }\n\n [data-theme="light"] .cancel-btn {\n background: #6b7280 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cupcake"] .cancel-btn {\n background: #ec4899 !important;\n color: #ffffff !important;\n }\n\n [data-theme="retro"] .cancel-btn {\n background: #b8925c !important;\n color: #ffffff !important;\n }\n\n [data-theme="aqua"] .cancel-btn {\n background: #0891b2 !important;\n color: #ffffff !important;\n }\n\n [data-theme="lofi"] .cancel-btn {\n background: #6b7280 !important;\n color: #ffffff !important;\n }\n\n [data-theme="pastel"] .cancel-btn {\n background: #8b5cf6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="fantasy"] .cancel-btn {\n background: #ec4899 !important;\n color: #ffffff !important;\n }\n\n [data-theme="wireframe"] .cancel-btn {\n background: #f5f5f5 !important;\n color: #000000 !important;\n border: 1px solid #000000 !important;\n }\n\n [data-theme="black"] .cancel-btn {\n background: #6b7280 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cmyk"] .cancel-btn {\n background: #0369a1 !important;\n color: #ffffff !important;\n }\n\n [data-theme="autumn"] .cancel-btn {\n background: #c2410c !important;\n color: #ffffff !important;\n }\n\n [data-theme="business"] .cancel-btn {\n background: #6b7280 !important;\n color: #ffffff !important;\n }\n\n [data-theme="acid"] .cancel-btn {\n background: #65a30d !important;\n color: #ffffff !important;\n }\n\n [data-theme="lemonade"] .cancel-btn {\n background: #16a34a !important;\n color: #ffffff !important;\n }\n\n [data-theme="coffee"] .cancel-btn {\n background: #8b4513 !important;\n color: #ffffff !important;\n }\n\n [data-theme="winter"] .cancel-btn {\n background: #1e40af !important;\n color: #ffffff !important;\n }\n\n /* Success Button Styles for All Themes */\n [data-theme="dark"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cyberpunk"] .success-btn {\n background: #00ff41 !important;\n color: #000000 !important;\n }\n\n [data-theme="valentine"] .success-btn {\n background: #e91e7a !important;\n color: #ffffff !important;\n }\n\n [data-theme="bumblebee"] .success-btn {\n background: #f59e0b !important;\n color: #ffffff !important;\n }\n\n [data-theme="garden"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="emerald"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="corporate"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="forest"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="halloween"] .success-btn {\n background: #ff7b00 !important;\n color: #000000 !important;\n }\n\n [data-theme="synthwave"] .success-btn {\n background: #00ff41 !important;\n color: #000000 !important;\n }\n\n [data-theme="dracula"] .success-btn {\n background: #50fa7b !important;\n color: #000000 !important;\n }\n\n [data-theme="luxury"] .success-btn {\n background: #d4af37 !important;\n color: #000000 !important;\n }\n\n [data-theme="night"] .success-btn {\n background: #22d3ee !important;\n color: #ffffff !important;\n }\n\n [data-theme="light"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cupcake"] .success-btn {\n background: #f472b6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="retro"] .success-btn {\n background: #d4a574 !important;\n color: #ffffff !important;\n }\n\n [data-theme="aqua"] .success-btn {\n background: #06b6d4 !important;\n color: #ffffff !important;\n }\n\n [data-theme="lofi"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="pastel"] .success-btn {\n background: #34d399 !important;\n color: #ffffff !important;\n }\n\n [data-theme="fantasy"] .success-btn {\n background: #f472b6 !important;\n color: #ffffff !important;\n }\n\n [data-theme="wireframe"] .success-btn {\n background: #dfdfdf !important;\n color: #000000 !important;\n border: 1px solid #000000 !important;\n }\n\n [data-theme="black"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="cmyk"] .success-btn {\n background: #06b6d4 !important;\n color: #ffffff !important;\n }\n\n [data-theme="autumn"] .success-btn {\n background: #d97706 !important;\n color: #ffffff !important;\n }\n\n [data-theme="business"] .success-btn {\n background: #10b981 !important;\n color: #ffffff !important;\n }\n\n [data-theme="acid"] .success-btn {\n background: #84cc16 !important;\n color: #000000 !important;\n }\n\n [data-theme="lemonade"] .success-btn {\n background: #22c55e !important;\n color: #ffffff !important;\n }\n\n [data-theme="coffee"] .success-btn {\n background: #a0522d !important;\n color: #ffffff !important;\n }\n\n [data-theme="winter"] .success-btn {\n background: #3b82f6 !important;\n color: #ffffff !important;\n }\n .download-limiter-signout-btn {\n background: #dc3545;\n color: white;\n border: none;\n padding: 6px 12px;\n border-radius: 4px;\n font-size: 12px;\n cursor: pointer;\n margin-left: 8px;\n }\n .download-limiter-premium-badge {\n background: linear-gradient(45deg, #f39c12, #e74c3c);\n color: white;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n margin-left: 8px;\n font-weight: bold;\n }\n .download-limiter-btn-premium {\n opacity: 0.7;\n }\n .download-limiter-success-modal {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.5);\n z-index: 10000;\n align-items: center;\n justify-content: center;\n }\n .download-limiter-success-modal.show { display: flex; }\n .download-limiter-success-content {\n background: white;\n padding: 2rem;\n border-radius: 8px;\n max-width: 400px;\n text-align: center;\n box-shadow: 0 4px 20px rgba(0,0,0,0.15);\n border-left: 4px solid #38a169;\n }\n\n /* Single upgrade flow styles */\n .single-upgrade-container {\n margin: 20px 0;\n text-align: center;\n }\n\n .single-upgrade-content .upgrade-btn {\n background: linear-gradient(135deg, #059669, #0d9488) !important;\n color: white !important;\n border: none !important;\n padding: 16px 32px !important;\n border-radius: 12px !important;\n font-size: 18px !important;\n font-weight: 600 !important;\n cursor: pointer !important;\n transition: all 0.3s ease !important;\n box-shadow: 0 4px 12px rgba(5, 150, 105, 0.3) !important;\n margin-bottom: 16px !important;\n min-width: 200px !important;\n }\n\n .single-upgrade-content .upgrade-btn:hover {\n background: linear-gradient(135deg, #047857, #0f766e) !important;\n transform: translateY(-2px) !important;\n box-shadow: 0 6px 20px rgba(5, 150, 105, 0.4) !important;\n }\n\n .single-upgrade-content .upgrade-description {\n font-size: 14px !important;\n color: #6b7280 !important;\n margin: 12px 0 0 0 !important;\n line-height: 1.5 !important;\n max-width: 300px !important;\n margin-left: auto !important;\n margin-right: auto !important;\n }\n\n /* Anonymous user usage count styles */\n .lead-fast-anonymous-status {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .lead-fast-anonymous-status .lead-fast-count {\n background: rgba(59, 130, 246, 0.1);\n color: #1d4ed8;\n padding: 6px 12px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n border: 1px solid rgba(59, 130, 246, 0.2);\n }\n\n /* Success button theming */\n .download-limiter-btn.success-btn {\n background: #059669 !important;\n color: white !important;\n border: none !important;\n padding: 12px 24px !important;\n border-radius: 8px !important;\n cursor: pointer !important;\n margin-top: 20px !important;\n font-size: 16px !important;\n font-weight: 500 !important;\n transition: all 0.2s ease !important;\n }\n\n .download-limiter-btn.success-btn:hover {\n background: #047857 !important;\n transform: translateY(-1px) !important;\n }\n\n /* Theme-specific success button colors */\n [data-theme="cyberpunk"] .download-limiter-btn.success-btn {\n background: #0ea5e9 !important;\n box-shadow: 0 4px 12px rgba(14, 165, 233, 0.3) !important;\n }\n\n [data-theme="cyberpunk"] .download-limiter-btn.success-btn:hover {\n background: #0284c7 !important;\n }\n\n [data-theme="valentine"] .download-limiter-btn.success-btn {\n background: #be185d !important;\n }\n\n [data-theme="valentine"] .download-limiter-btn.success-btn:hover {\n background: #9d174d !important;\n }\n\n [data-theme="bumblebee"] .download-limiter-btn.success-btn {\n background: #f59e0b !important;\n }\n\n [data-theme="bumblebee"] .download-limiter-btn.success-btn:hover {\n background: #d97706 !important;\n }\n\n [data-theme="garden"] .download-limiter-btn.success-btn {\n background: #16a34a !important;\n }\n\n [data-theme="garden"] .download-limiter-btn.success-btn:hover {\n background: #15803d !important;\n }\n\n /* Google Sign-in button theming */\n .download-limiter-btn.google-signin-btn {\n background: #4285f4 !important;\n color: white !important;\n border: none !important;\n padding: 12px 24px !important;\n border-radius: 8px !important;\n cursor: pointer !important;\n margin-right: 10px !important;\n display: inline-flex !important;\n align-items: center !important;\n gap: 8px !important;\n font-size: 14px !important;\n font-weight: 500 !important;\n transition: all 0.2s ease !important;\n }\n\n .download-limiter-btn.google-signin-btn:hover {\n background: #3367d6 !important;\n transform: translateY(-1px) !important;\n }\n\n /* Upgrade button theming */\n .download-limiter-btn.upgrade-btn {\n background: #059669 !important;\n color: white !important;\n border: none !important;\n padding: 12px 24px !important;\n border-radius: 8px !important;\n cursor: pointer !important;\n margin-right: 10px !important;\n font-size: 16px !important;\n font-weight: 500 !important;\n transition: all 0.2s ease !important;\n }\n\n .download-limiter-btn.upgrade-btn:hover {\n background: #047857 !important;\n transform: translateY(-1px) !important;\n }\n\n /* Theme-specific button colors */\n [data-theme="cyberpunk"] .download-limiter-btn.upgrade-btn {\n background: #0ea5e9 !important;\n box-shadow: 0 4px 12px rgba(14, 165, 233, 0.3) !important;\n }\n\n [data-theme="valentine"] .download-limiter-btn.upgrade-btn {\n background: #be185d !important;\n }\n\n [data-theme="bumblebee"] .download-limiter-btn.upgrade-btn {\n background: #f59e0b !important;\n }\n\n [data-theme="garden"] .download-limiter-btn.upgrade-btn {\n background: #16a34a !important;\n }\n\n /* Cancel button container and styling - positioned at very bottom */\n .download-limiter-cancel-container {\n margin-top: 30px !important;\n padding-top: 20px !important;\n border-top: 1px solid rgba(0, 0, 0, 0.1) !important;\n text-align: center !important;\n position: relative !important;\n bottom: 0 !important;\n }\n\n .download-limiter-btn.cancel-btn {\n background: transparent !important;\n color: #6b7280 !important;\n border: none !important;\n padding: 8px 16px !important;\n border-radius: 6px !important;\n cursor: pointer !important;\n font-size: 13px !important;\n font-weight: 400 !important;\n transition: all 0.2s ease !important;\n text-decoration: underline !important;\n margin: 0 auto !important;\n display: block !important;\n }\n\n .download-limiter-btn.cancel-btn:hover {\n color: #374151 !important;\n background: rgba(107, 114, 128, 0.1) !important;\n text-decoration: none !important;\n }\n\n /* Theme-specific cancel button border */\n [data-theme="dark"] .download-limiter-cancel-container {\n border-top-color: rgba(255, 255, 255, 0.1) !important;\n }\n\n [data-theme="dark"] .download-limiter-btn.cancel-btn {\n color: #9ca3af !important;\n }\n\n [data-theme="dark"] .download-limiter-btn.cancel-btn:hover {\n color: #d1d5db !important;\n background: rgba(156, 163, 175, 0.1) !important;\n }\n\n [data-theme="cyberpunk"] .download-limiter-cancel-container {\n border-top-color: rgba(14, 165, 233, 0.2) !important;\n }\n\n [data-theme="cyberpunk"] .download-limiter-btn.cancel-btn {\n color: #0ea5e9 !important;\n }\n\n [data-theme="cyberpunk"] .download-limiter-btn.cancel-btn:hover {\n color: #38bdf8 !important;\n background: rgba(14, 165, 233, 0.1) !important;\n }\n `,document.head.appendChild(n)}injectDaisyUI(){if(document.querySelector('link[href*="daisyui"]')){if(this.config.theme?.name){const n=this.config.theme.name.toLowerCase();document.documentElement.setAttribute("data-theme",n)}}else if(this.config.theme?.name){const n=this.config.theme.name.toLowerCase();document.documentElement.setAttribute("data-theme",n),this.updateStatusDisplays()}}createPaywallModal(){if(document.getElementById("download-limiter-paywall"))return;const n=document.createElement("div");n.id="download-limiter-paywall",n.className="download-limiter-modal",n.innerHTML='\n <div class="download-limiter-content">\n <h3 id="download-limiter-paywall-title">Usage Limit Reached</h3>\n <p id="download-limiter-paywall-subtitle">You\'ve used all your free attempts. Upgrade to premium for unlimited usage!</p>\n\n \x3c!-- Auth Section (shows when not signed in) --\x3e\n <div id="download-limiter-auth-section" style="margin: 20px 0;">\n <p>Sign in to continue or upgrade to premium</p>\n <button id="download-limiter-signin-btn" class="download-limiter-btn google-signin-btn">\n <svg width="18" height="18" viewBox="0 0 18 18" fill="none">\n <path d="M16.51 8H8.98v3h4.3c-.18 1-.74 1.48-1.6 2.04v2.01h2.6a8.8 8.8 0 0 0 2.38-5.88c0-.57-.05-.66-.15-1.18z" fill="white"/>\n <path d="M8.98 17c2.16 0 3.97-.72 5.3-1.94l-2.6-2.04a4.8 4.8 0 0 1-2.7.75 4.8 4.8 0 0 1-4.52-3.4H1.83v2.07A8 8 0 0 0 8.98 17z" fill="white"/>\n <path d="M4.46 10.37a4.8 4.8 0 0 1-.25-1.37c0-.48.09-.94.25-1.37V5.56H1.83a8 8 0 0 0 0 6.88l2.63-2.07z" fill="white"/>\n <path d="M8.98 3.77c1.32 0 2.5.45 3.44 1.35l2.58-2.58C13.94.64 11.66 0 8.98 0A8 8 0 0 0 1.83 5.56l2.63 2.07c.61-1.8 2.26-3.86 4.52-3.86z" fill="white"/>\n </svg>\n Sign in with Google\n </button>\n </div>\n\n \x3c!-- Payment Section (shows when signed in) --\x3e\n <div id="download-limiter-payment-section" style="margin: 20px 0; display: none;">\n <button id="download-limiter-upgrade-btn" class="download-limiter-btn upgrade-btn">\n Upgrade to Premium\n </button>\n </div>\n\n <div class="download-limiter-cancel-container">\n <button id="download-limiter-close-btn" class="download-limiter-btn cancel-btn">\n Cancel\n </button>\n </div>\n </div>\n ',document.body.appendChild(n),n.querySelector("#download-limiter-signin-btn").addEventListener("click",async()=>{await this.signIn()}),n.querySelector("#download-limiter-upgrade-btn").addEventListener("click",async()=>{const n=await this.createPayment();n?.checkout_url&&(window.location.href=n.checkout_url)}),n.querySelector("#download-limiter-close-btn").addEventListener("click",()=>{this.config.options?.debug&&(console.log("🔍 DEBUG: Cancel button clicked"),console.log("🔍 DEBUG: this.config.feedback:",this.config.feedback),console.log("🔍 DEBUG: this.config.email:",this.config.email),console.log("🔍 DEBUG: Feedback config exists:",!(!this.config.feedback&&!this.config.email))),this.config.feedback||this.config.email?(this.config.options?.debug&&console.log("🔍 DEBUG: Showing feedback form"),this.showFeedbackForm()):(this.config.options?.debug&&console.log("🔍 DEBUG: No email config, just closing modal"),n.classList.remove("show"))})}createSuccessModal(){if(document.getElementById("download-limiter-success"))return;const n=document.createElement("div");n.id="download-limiter-success",n.className="download-limiter-modal",n.innerHTML='\n <div class="download-limiter-content"> \x3c!-- Use same content class as paywall for theming --\x3e\n <h3 id="download-limiter-success-title">Action Started!</h3>\n <p id="download-limiter-success-message">Your action completed successfully!</p>\n <button id="download-limiter-success-close" class="download-limiter-btn success-btn">\n OK\n </button>\n </div>\n ',document.body.appendChild(n),n.querySelector("#download-limiter-success-close").addEventListener("click",()=>{n.classList.remove("show")}),n.addEventListener("click",t=>{t.target===n&&n.classList.remove("show")})}showFeedbackForm(){const n=document.getElementById("download-limiter-paywall");n&&n.classList.remove("show"),this.createFeedbackModal();const t=document.getElementById("download-limiter-feedback");t&&t.classList.add("show")}createFeedbackModal(){if(document.getElementById("download-limiter-feedback"))return void(this.config.options?.debug&&console.log("🔍 DEBUG: Feedback modal already exists"));const n=this.config.feedback||(this.config.email?{form:{title:"Quick Feedback",description:"Why didn't you upgrade?",option1:"Not useful for my needs",option2:"Didn't find what I was looking for",option3:"Just trying it out"},email:this.config.email}:null);if(this.config.options?.debug&&(console.log("🔍 DEBUG: Feedback config:",n),console.log("🔍 DEBUG: this.config.feedback:",this.config.feedback),console.log("🔍 DEBUG: this.config.email:",this.config.email)),!n)return void(this.config.options?.debug&&console.log("🔍 DEBUG: No feedback config found, not creating modal"));const t=document.createElement("div");t.id="download-limiter-feedback",t.className="download-limiter-modal",t.innerHTML=`\n <div class="download-limiter-content">\n <h3>${n.form.title}</h3>\n <p style="margin-bottom: 20px;">${n.form.description}</p>\n\n <form id="feedback-form" style="text-align: left;">\n <div style="margin-bottom: 15px;">\n <label style="display: block; margin-bottom: 8px;">\n <input type="radio" name="reason" value="option1" style="margin-right: 8px;">\n ${n.form.option1}\n </label>\n <label style="display: block; margin-bottom: 8px;">\n <input type="radio" name="reason" value="option2" style="margin-right: 8px;">\n ${n.form.option2}\n </label>\n <label style="display: block; margin-bottom: 8px;">\n <input type="radio" name="reason" value="option3" style="margin-right: 8px;">\n ${n.form.option3}\n </label>\n </div>\n\n <div style="margin-bottom: 15px;">\n <label for="feedback-details" style="display: block; margin-bottom: 5px;">Tell us more:</label>\n <textarea\n id="feedback-details"\n name="details"\n rows="3"\n style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;"\n placeholder="Your feedback helps us improve..." maxlength="200"></textarea>\n </div>\n\n <div style="margin-bottom: 20px;">\n <label for="feedback-email" style="display: block; margin-bottom: 5px;">\n Email (optional):\n </label>\n <input\n type="email"\n id="feedback-email"\n name="email"\n style="width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px;"\n placeholder="your@email.com">\n <small style="color: #666; display: block; margin-top: 4px;">\n Only if you want us to reach out about what you mentioned above. We don't follow up unless you want us to\n </small>\n </div>\n\n \n <div style="text-align: center;">\n <button type="submit" class="download-limiter-btn success-btn" style="margin-right: 10px;">\n Submit Feedback\n </button>\n <button type="button" id="feedback-skip-btn" class="download-limiter-btn cancel-btn">\n Skip\n </button>\n </div>\n </form>\n </div>\n `,document.body.appendChild(t),this.config.options?.debug&&console.log("🔍 DEBUG: Feedback modal created and added to DOM");const e=t.querySelector("#feedback-form");e.addEventListener("submit",n=>{n.preventDefault(),this.submitFeedback(e)}),t.querySelector("#feedback-skip-btn").addEventListener("click",()=>{t.classList.remove("show")}),t.addEventListener("click",n=>{n.target===t&&t.classList.remove("show")})}async submitFeedback(n){const t=new FormData(n),e=t.get("reason"),a=t.get("details"),o=t.get("email");if(!e)return void alert("Please select a reason");const r={reason:e,details:a,email:o||void 0,timestamp:(new Date).toISOString(),userAgent:navigator.userAgent,appId:this.config.appId};try{await this.sendFeedbackEmail(r);const n=document.getElementById("download-limiter-feedback");n&&n.classList.remove("show"),alert("Thank you for your feedback!")}catch(n){console.error("Failed to send feedback:",n),alert("Failed to send feedback. Please try again.")}}async sendFeedbackEmail(n){const t=this.config.feedback?.email||this.config.email;if(!t)throw new Error("Email configuration not available");const e=`\nNew Feedback from ${this.config.appId}\n\nReason: ${n.reason}\nDetails: ${n.details}\nUser Email: ${n.email||"Not provided"}\nTimestamp: ${n.timestamp}\nUser Agent: ${n.userAgent}\n `.trim(),a=await fetch("https://api.resend.com/emails",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t.resendApiKey}`},body:JSON.stringify({from:t.fromEmail,to:[t.fromEmail],subject:`Feedback from ${this.config.appId}`,text:e})});if(!a.ok)throw new Error(`Email API error: ${a.status}`)}createAuthUI(){if(document.getElementById("lead-fast-profile"))return;const n=document.createElement("div");n.id="lead-fast-profile",n.className="lead-fast-profile",document.body.appendChild(n)}createStatusDisplay(){if(document.getElementById("download-limiter-status"))return;const n=document.createElement("div");n.id="download-limiter-status",n.className="download-limiter-status",document.body.appendChild(n)}createGlobalStatusDisplay(){this.createStatusDisplay()}showPaywallInstant(n){this.createPaywallModal();const t=document.getElementById("download-limiter-paywall");if(t){const e=t.querySelector("#download-limiter-paywall-title");e&&(e.textContent=`You've used ${n.limit} free attempts`);const a=t.querySelector("#download-limiter-auth-section"),o=t.querySelector("#download-limiter-payment-section");if(this.currentUser)a.style.display="none",o.style.display="block";else{const n=t.querySelector("#download-limiter-paywall-subtitle");n&&(n.textContent="Sign in to continue. If you're already premium, you'll get unlimited access. New users can upgrade after signing in."),a.style.display="none",o.style.display="none",this.showSingleUpgradeFlow(t)}t.classList.add("show")}}async showPaywall(){const n=await this.getDownloadStatus();this.showPaywallInstant(n)}showSingleUpgradeFlow(n){let t=n.querySelector(".single-upgrade-container");if(!t){t=document.createElement("div"),t.className="single-upgrade-container",t.innerHTML='\n <div class="single-upgrade-content">\n <button class="download-limiter-btn upgrade-btn" id="single-upgrade-btn">\n Continue with Google\n </button>\n \x3c!--<p class="upgrade-description">\n Sign in to restore access. Premium members get unlimited usage immediately.\n </p>--\x3e\n </div>\n ';const e=n.querySelector(".download-limiter-cancel-container");e?n.querySelector(".download-limiter-content")?.insertBefore(t,e):n.querySelector(".download-limiter-content")?.appendChild(t)}t.style.display="block";const e=n.querySelector("#single-upgrade-btn");if(e){e.replaceWith(e.cloneNode(!0));const t=n.querySelector("#single-upgrade-btn");t?.addEventListener("click",async()=>{try{const{error:n}=await this.supabase.auth.signInWithOAuth({provider:"google",options:{redirectTo:`${window.location.origin}${window.location.pathname}?upgrade=true`}});n&&(console.error("Sign in error:",n),this.showError("Sign In Failed","Failed to sign in with Google. Please try again."))}catch(n){console.error("Upgrade flow error:",n),this.showError("Upgrade Failed","Failed to start upgrade process. Please try again.")}})}}showSuccess(n,t){const e=document.getElementById("download-limiter-success");if(e){const a=e.querySelector("#download-limiter-success-title"),o=e.querySelector("#download-limiter-success-message");a&&(a.textContent=n),o&&(o.textContent=t),e.classList.add("show")}}showError(n,t){const e=document.createElement("div");e.style.cssText="\n position: fixed;\n top: 20px;\n right: 20px;\n background: #fee2e2;\n border: 1px solid #fecaca;\n color: #dc2626;\n padding: 12px 16px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n max-width: 300px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n z-index: 10000;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n ",e.innerHTML=`\n <div style="font-weight: 600; margin-bottom: 4px;">${n}</div>\n <div style="font-size: 13px; opacity: 0.9;">${t}</div>\n `,document.body.appendChild(e),setTimeout(()=>{e.parentNode&&e.parentNode.removeChild(e)},5e3),e.addEventListener("click",()=>{e.parentNode&&e.parentNode.removeChild(e)})}showConnectionError(){this.showError("Connection Error","Server connection required for download verification. Please check your configuration and try again.")}showPaymentConfigError(){this.showError("Payment Configuration Error","Payment system is not properly configured. Please contact support.")}disableDownloadButtons(n){const t=document.querySelectorAll("[data-leadfast-attached]"),e={connection:"Download disabled: Server connection required",payment:"Download disabled: Payment configuration error"},a={connection:"⚠️ Connection Error - Downloads Disabled",payment:"⚠️ Payment Config Error - Downloads Disabled"};t.forEach(t=>{const a=t;a.disabled=!0,a.style.opacity="0.5",a.style.cursor="not-allowed",a.title=e[n]});const o=document.querySelector(".lead-fast-user-section");o&&(o.innerHTML=`\n <div style="\n color: #ef4444;\n padding: 6px 8px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1.2;\n border-radius: 4px;\n background: rgba(239, 68, 68, 0.05);\n border: 1px solid rgba(239, 68, 68, 0.2);\n max-width: 200px;\n text-align: center;\n ">\n ${a[n]}\n </div>\n `)}async updateStatusDisplays(){if(this.supabaseConnectionFailed)return void this.disableDownloadButtons("connection");if(this.config.payment&&this.paymentConnectionFailed)return void this.disableDownloadButtons("payment");const n=await this.getDownloadStatus();this.updateUserSection(n)}createTitleBar(){let n=document.getElementById("lead-fast-profile");n||(n=document.createElement("div"),n.id="lead-fast-profile",n.className="lead-fast-profile",document.body.appendChild(n));const t=this.config.titleBar||{},e=t.title||"My App",a=t.titleImage,o=t.links||[];n.innerHTML=`\n <div class="lead-fast-title-bar">\n <div class="lead-fast-title-section">\n <a href="#" class="lead-fast-logo">\n ${a?`<img src="${a}" alt="${e}">`:""}\n <span>${e}</span>\n </a>\n <nav class="lead-fast-nav">\n ${o.map(n=>`\n <a href="${n.url}" class="lead-fast-nav-link" ${n.target?`target="${n.target}"`:""}>\n ${n.text}\n </a>\n `).join("")}\n </nav>\n </div>\n\n <div class="lead-fast-user-section" id="lead-fast-user-section">\n \x3c!-- User section will be populated when logged in --\x3e\n </div>\n\n \x3c!-- <a href="https://www.moneyfast.bar" target="_blank" class="lead-fast-branding" style="text-decoration: none; color: inherit;">moneyfast.bar</a>--\x3e\n </div>\n `}updateUserSection(n){const t=document.getElementById("lead-fast-user-section");if(t)if(this.currentUser){const e=this.currentUser.email.charAt(0).toUpperCase(),a=this.currentUser.email,o=n.isPremium?"premium":"free",r=n.isPremium?"Premium":"Free",i=n.isPremium?"Unlimited":`${n.currentCount}/${n.limit}`;t.innerHTML=`\n <div class="lead-fast-avatar">${e}</div>\n <div class="lead-fast-user-info">\n <div class="lead-fast-user-email">${a}</div>\n <div class="lead-fast-user-status">\n <span class="lead-fast-badge ${o}">${r}</span>\n <span class="lead-fast-count">${i}</span>\n </div>\n </div>\n <button class="lead-fast-signout">signout</button>\n `;const s=document.querySelector(".lead-fast-title-bar");s&&getComputedStyle(s);const d=t.querySelector(".lead-fast-signout");d&&d.addEventListener("click",()=>{this.signOut()})}else{const e=`Attempts: ${n.currentCount}/${n.limit}`;t.innerHTML=`\n <div class="lead-fast-anonymous-status">\n <span class="lead-fast-count">${e}</span>\n </div>\n `}}setupUIUpdates(){this.on("authChanged",async()=>{this.cachedStatus=null,this.updateStatusDisplays();const n=document.getElementById("download-limiter-paywall");n&&n.classList.contains("show")&&(this.updatePaywallDisplay(),this.currentUser&&this.config.payment&&setTimeout(async()=>{if(await this.checkPremiumStatus(this.currentUser.email))n.classList.remove("show");else{const n=await this.createPayment();n?.checkout_url&&(window.location.href=n.checkout_url)}},1e3))}),this.on("countChanged",()=>{this.updateStatusDisplays()}),this.updateStatusDisplays()}updatePaywallDisplay(){const n=document.getElementById("download-limiter-paywall");if(!n)return;const t=n.querySelector("#download-limiter-auth-section"),e=n.querySelector("#download-limiter-payment-section");this.currentUser?(t.style.display="none",e.style.display="block"):(t.style.display="block",e.style.display="none")}on(n,t){this.eventListeners.has(n)||this.eventListeners.set(n,[]),this.eventListeners.get(n).push(t)}off(n,t){const e=this.eventListeners.get(n);if(e){const n=e.indexOf(t);n>-1&&e.splice(n,1)}}emit(n,t){const e=this.eventListeners.get(n);e&&e.forEach(e=>{try{e(t)}catch(t){console.error(`Error in ${n} listener:`,t)}})}validateConfig(){if(!this.config.appId)throw new Error("appId is required");if(!this.config.supabase?.url)throw new Error("supabase.url is required");if(!this.config.supabase?.anonKey)throw new Error("supabase.anonKey is required");if("number"!=typeof this.config.freeDownloadLimit||this.config.freeDownloadLimit<0)throw new Error("freeDownloadLimit must be a non-negative number")}async initializeSupabase(){try{this.supabase=t.createClient(this.config.supabase.url,this.config.supabase.anonKey),this.supabaseConnectionFailed=!1}catch(n){console.error("Failed to initialize Supabase:",n),this.supabaseConnectionFailed=!0}}async initializePayment(){if(!this.config.payment)return;const n=this.config.payment.productId;if(!n||!n.startsWith("pdt_")||n.length<10)return this.paymentConnectionFailed=!0,void(this.config.options?.debug&&console.warn("Invalid payment product ID format:",n));this.paymentConnectionFailed=!1}async initializeFingerprint(){try{this.userFingerprint=await this.generateFingerprint()}catch(n){this.userFingerprint=crypto.randomUUID?crypto.randomUUID():String(Date.now()),this.config.options?.debug&&console.warn("Fingerprint generation failed, using fallback:",n)}}async generateFingerprint(){const n=`${navigator.userAgent||""}||${Intl.DateTimeFormat().resolvedOptions().timeZone||""}||${`${screen.width}x${screen.height}`}||${navigator.language||""}`,t=(new TextEncoder).encode(n),e=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(e)).map(n=>n.toString(16).padStart(2,"0")).join("")}async setupAuthListener(){this.supabase.auth.onAuthStateChange(async(n,t)=>{const e=this.currentUser;this.currentUser=t?.user||null;let a=!1;if(this.currentUser){const n=!e||e.email!==this.currentUser.email,t=!this.cachedPremiumStatus||Date.now()-this.premiumStatusCacheTime>this.STATUS_CACHE_DURATION;n||t?(console.log(`🔥 [SUPABASE API] About to call checkPremiumStatus from setupAuthListener (userChanged: ${n}, cacheExpired: ${t})`),a=await this.checkPremiumStatus(this.currentUser.email),this.cachedPremiumStatus=a,this.premiumStatusCacheTime=Date.now()):(a=this.cachedPremiumStatus,console.log(`🔍 [CACHE] Using cached premium status from auth listener: ${a}`))}else this.cachedPremiumStatus=null,this.premiumStatusCacheTime=0;const o="true"===new URLSearchParams(window.location.search).get("upgrade");if("SIGNED_IN"===n&&!e&&this.currentUser&&this.config.payment&&o)if(a){window.history.replaceState({},document.title,window.location.pathname);const n=document.getElementById("download-limiter-paywall");n&&n.classList.remove("show")}else{const n=await this.createPayment();n?.checkout_url&&(window.history.replaceState({},document.title,window.location.pathname),window.location.href=n.checkout_url)}this.emit("authChanged",{user:this.currentUser,isPremium:a})});const{data:{user:n}}=await this.supabase.auth.getUser();this.currentUser=n}async getDownloadCount(){if(!this.userFingerprint)return 0;console.log(`🔥 [SUPABASE API] getDownloadCount called | Time: ${(new Date).toISOString()}`);try{const n=await fetch(`${this.config.supabase.url}/functions/v1/check-download-limit`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.config.supabase.anonKey}`},body:JSON.stringify({fingerprint:this.userFingerprint,app_id:this.config.appId,action:"check"})});if(console.log(`🔥 [SUPABASE API] getDownloadCount response: ${n.status}`),n.ok){const t=await n.json();return this.supabaseConnectionFailed=!1,t.current_count||0}401!==n.status&&403!==n.status||(console.warn(`Supabase authentication failed: ${n.status} - Invalid anon key`),this.supabaseConnectionFailed=!0)}catch(n){this.supabaseConnectionFailed=!0,this.config.options?.debug&&console.warn("Failed to get server usage count, connection failed:",n)}return 0}async incrementDownloadCount(){if(!this.userFingerprint)return 0;const n={fingerprint:this.userFingerprint,app_id:this.config.appId,action:"increment"};console.log(`🔥 [SUPABASE API] incrementDownloadCount called | Time: ${(new Date).toISOString()}`);try{const t=await fetch(`${this.config.supabase.url}/functions/v1/check-download-limit`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.config.supabase.anonKey}`},body:JSON.stringify(n)});if(console.log(`🔥 [SUPABASE API] incrementDownloadCount response: ${t.status}`),this.config.options?.debug&&!t.ok){const n=await t.text();console.error("🔍 DEBUG: Error response:",n)}if(t.ok){const n=await t.json();return this.supabaseConnectionFailed=!1,n.new_count||0}401!==t.status&&403!==t.status||(console.warn(`Supabase authentication failed: ${t.status} - Invalid anon key`),this.supabaseConnectionFailed=!0)}catch(n){this.supabaseConnectionFailed=!0,this.config.options?.debug&&console.warn("Failed to increment server count, connection failed:",n)}return 0}async checkPremiumStatus(n){console.log(`🔥 [SUPABASE API] checkPremiumStatus called for email: ${n} | Time: ${(new Date).toISOString()}`);try{const t=await fetch(`${this.config.supabase.url}/functions/v1/check-payment-status`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.config.supabase.anonKey}`},body:JSON.stringify({email:n,app_id:this.config.appId})});if(console.log(`🔥 [SUPABASE API] checkPremiumStatus response: ${t.status}`),t.ok){return"completed"===(await t.json()).status}}catch(n){this.config.options?.debug&&console.warn("Failed to check premium status:",n)}return!1}getLocalDownloadCount(){const n=`download_count_${this.config.appId}`,t=parseInt(localStorage.getItem(n)||"0",10);return isNaN(t)?0:t}incrementLocalDownloadCount(){const n=`download_count_${this.config.appId}`,t=this.getLocalDownloadCount()+1;return localStorage.setItem(n,String(t)),t}handleError(n){this.config.options?.debug&&console.error("Lead Fast Error:",n),this.config.callbacks?.onError?this.config.callbacks.onError(n):console.error("Lead Fast:",n.message),this.emit("error",n)}async checkPaymentStatus(){"success"===new URLSearchParams(window.location.search).get("payment")&&setTimeout(async()=>{if(this.currentUser){await this.checkPremiumStatus(this.currentUser.email)?this.showSuccess("Payment Successful!","Welcome to premium! You now have unlimited usage."):this.showSuccess("Processing Payment","Payment is being processed. Please refresh in a few moments.")}else this.showSuccess("Processing Payment","Please wait while we verify your payment...");const n=window.location.href.split("?")[0];window.history.replaceState({},document.title,n)},2e3)}},Object.defineProperty(n,"__esModule",{value:!0})});
|
|
2
|
-
//# sourceMappingURL=index.umd.js.map
|
package/dist/index.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["mergeConfigs","config","windowConfig","window","APP_CONFIG","Error","constructor","this","currentUser","userFingerprint","eventListeners","Map","supabaseConnectionFailed","paymentConnectionFailed","cachedStatus","statusCacheTime","STATUS_CACHE_DURATION","initializationPromise","cachedPremiumStatus","premiumStatusCacheTime","options","validateConfig","initializeSupabase","initializePayment","initializeFingerprint","setupAuthListener","checkPaymentStatus","handleDownload","callbacks","onError","payment","checkPremiumStatus","email","onPremiumDownload","status","getDownloadStatus","currentCount","limit","onLimitReached","incrementDownloadCount","onDownloadAllowed","newStatus","emit","count","setTimeout","error","handleError","forceRefresh","console","log","Date","toISOString","cacheAge","now","fetchFreshStatus","result","isPremium","getDownloadCount","premiumCacheValid","freeDownloadLimit","isAuthenticated","remaining","Math","max","errorStatus","getUserContext","name","user_metadata","full_name","user","signIn","supabase","auth","signInWithOAuth","provider","redirectTo","location","origin","pathname","signOut","createPayment","requestBody","product_id","productId","mode","app_id","appId","return_url","response","fetch","url","method","headers","Authorization","anonKey","body","JSON","stringify","ok","errorText","text","errorData","debug","parse","includes","warn","updateStatusDisplays","json","attachToButton","selector","downloadCallback","button","document","querySelector","injectBaseStyles","createTitleBar","createPaywallModal","createSuccessModal","createAuthUI","createStatusDisplay","setAttribute","onclick","async","e","preventDefault","handleButtonClick","setupUIUpdates","attachToButtons","buttons","forEach","buttonConfig","createGlobalStatusDisplay","disabled","style","opacity","handleButtonClickInternal","showConnectionError","showPaymentConfigError","userContext","length","showPaywallInstant","freshStatus","alert","newCount","successMessage","enabled","title","message","showSuccess","getElementById","theme","injectDaisyUI","styles","createElement","id","primaryColor","textContent","head","appendChild","themeName","toLowerCase","documentElement","modal","className","innerHTML","addEventListener","checkout_url","href","feedback","showFeedbackForm","classList","remove","target","paywall","createFeedbackModal","add","feedbackConfig","form","description","option1","option2","option3","submitFeedback","formData","FormData","reason","get","details","feedbackData","undefined","timestamp","userAgent","navigator","sendFeedbackEmail","emailConfig","emailBody","trim","resendApiKey","from","fromEmail","to","subject","profileContainer","statusDiv","titleEl","authSection","paymentSection","display","subtitleEl","showSingleUpgradeFlow","showPaywall","upgradeContainer","cancelContainer","insertBefore","upgradeBtn","replaceWith","cloneNode","newUpgradeBtn","showError","messageEl","toast","cssText","parentNode","removeChild","disableDownloadButtons","errorType","querySelectorAll","errorMessages","connection","statusMessages","btnElement","cursor","userSection","updateUserSection","profileDiv","titleConfig","titleBar","titleImage","links","map","link","join","userInitial","charAt","toUpperCase","userEmail","badgeClass","badgeText","countText","getComputedStyle","signoutBtn","on","contains","updatePaywallDisplay","event","listener","has","set","push","off","listeners","index","indexOf","splice","data","createClient","startsWith","generateFingerprint","crypto","randomUUID","String","raw","Intl","DateTimeFormat","resolvedOptions","timeZone","screen","width","height","language","buf","TextEncoder","encode","hashBuffer","subtle","digest","Array","Uint8Array","b","toString","padStart","onAuthStateChange","session","previousUser","userChanged","cacheExpired","isUpgradeFlow","URLSearchParams","search","history","replaceState","getUser","fingerprint","action","current_count","new_count","getLocalDownloadCount","key","val","parseInt","localStorage","getItem","isNaN","incrementLocalDownloadCount","next","setItem","cleanUrl","split"],"mappings":"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"}
|