@encorekit/web-sdk 0.1.1 → 0.1.5

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.
Files changed (111) hide show
  1. package/README.md +16 -9
  2. package/dist/cjs/index.cjs +1 -1
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/esm/index.js +1 -1
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/umd/encore.min.js +1 -1
  7. package/dist/umd/encore.min.js.map +1 -1
  8. package/examples/README.md +149 -0
  9. package/examples/angular/README.md +210 -0
  10. package/examples/angular/angular.json +73 -0
  11. package/examples/angular/package.json +32 -0
  12. package/examples/angular/src/app/app.component.html +56 -0
  13. package/examples/angular/src/app/app.component.ts +114 -0
  14. package/examples/angular/src/app/encore.service.ts +83 -0
  15. package/examples/angular/src/index.html +13 -0
  16. package/examples/angular/src/main.ts +7 -0
  17. package/examples/angular/src/styles.css +225 -0
  18. package/examples/angular/tsconfig.json +33 -0
  19. package/examples/react/README.md +186 -0
  20. package/examples/react/index.html +13 -0
  21. package/examples/react/package.json +24 -0
  22. package/examples/react/src/App.tsx +173 -0
  23. package/examples/react/src/index.css +227 -0
  24. package/examples/react/src/main.tsx +11 -0
  25. package/examples/react/src/vite-env.d.ts +2 -0
  26. package/examples/react/tsconfig.json +25 -0
  27. package/examples/react/vite.config.ts +8 -0
  28. package/examples/svelte/README.md +233 -0
  29. package/examples/svelte/index.html +13 -0
  30. package/examples/svelte/package.json +25 -0
  31. package/examples/svelte/src/App.svelte +164 -0
  32. package/examples/svelte/src/app.css +224 -0
  33. package/examples/svelte/src/main.ts +9 -0
  34. package/examples/svelte/src/vite-env.d.ts +3 -0
  35. package/examples/svelte/svelte.config.js +8 -0
  36. package/examples/svelte/tsconfig.json +16 -0
  37. package/examples/svelte/tsconfig.node.json +11 -0
  38. package/examples/svelte/vite.config.ts +8 -0
  39. package/examples/vanilla-js/README.md +271 -0
  40. package/examples/vanilla-js/index.html +421 -0
  41. package/examples/vue/README.md +212 -0
  42. package/examples/vue/index.html +13 -0
  43. package/examples/vue/package.json +22 -0
  44. package/examples/vue/src/App.vue +170 -0
  45. package/examples/vue/src/main.ts +6 -0
  46. package/examples/vue/src/style.css +224 -0
  47. package/examples/vue/src/vite-env.d.ts +2 -0
  48. package/examples/vue/tsconfig.json +25 -0
  49. package/examples/vue/vite.config.ts +8 -0
  50. package/package.json +15 -2
  51. package/types/api/APIClient.d.ts.map +1 -1
  52. package/types/api/models.d.ts +6 -4
  53. package/types/api/models.d.ts.map +1 -1
  54. package/types/core/Encore.d.ts +12 -12
  55. package/types/core/Encore.d.ts.map +1 -1
  56. package/types/core/EntitlementManager.d.ts +9 -0
  57. package/types/core/EntitlementManager.d.ts.map +1 -1
  58. package/types/types.d.ts.map +1 -1
  59. package/types/ui/OfferCard.d.ts.map +1 -1
  60. package/types/ui/OfferCarousel.d.ts.map +1 -1
  61. package/types/ui/Tooltip.d.ts +22 -0
  62. package/types/ui/Tooltip.d.ts.map +1 -0
  63. package/types/ui/styles.d.ts.map +1 -1
  64. package/dist/cjs/index.js +0 -2
  65. package/dist/cjs/index.js.map +0 -1
  66. package/types/src/api/APIClient.d.ts +0 -63
  67. package/types/src/api/APIClient.d.ts.map +0 -1
  68. package/types/src/api/endpoints.d.ts +0 -35
  69. package/types/src/api/endpoints.d.ts.map +0 -1
  70. package/types/src/api/models.d.ts +0 -156
  71. package/types/src/api/models.d.ts.map +0 -1
  72. package/types/src/core/Configuration.d.ts +0 -42
  73. package/types/src/core/Configuration.d.ts.map +0 -1
  74. package/types/src/core/Encore.d.ts +0 -81
  75. package/types/src/core/Encore.d.ts.map +0 -1
  76. package/types/src/core/EntitlementManager.d.ts +0 -65
  77. package/types/src/core/EntitlementManager.d.ts.map +0 -1
  78. package/types/src/core/OfferManager.d.ts +0 -35
  79. package/types/src/core/OfferManager.d.ts.map +0 -1
  80. package/types/src/core/PlacementBuilder.d.ts +0 -27
  81. package/types/src/core/PlacementBuilder.d.ts.map +0 -1
  82. package/types/src/core/SignalManager.d.ts +0 -51
  83. package/types/src/core/SignalManager.d.ts.map +0 -1
  84. package/types/src/core/StorageManager.d.ts +0 -34
  85. package/types/src/core/StorageManager.d.ts.map +0 -1
  86. package/types/src/core/VerificationPoller.d.ts +0 -27
  87. package/types/src/core/VerificationPoller.d.ts.map +0 -1
  88. package/types/src/index.d.ts +0 -7
  89. package/types/src/index.d.ts.map +0 -1
  90. package/types/src/types.d.ts +0 -156
  91. package/types/src/types.d.ts.map +0 -1
  92. package/types/src/ui/OfferCard.d.ts +0 -29
  93. package/types/src/ui/OfferCard.d.ts.map +0 -1
  94. package/types/src/ui/OfferCarousel.d.ts +0 -55
  95. package/types/src/ui/OfferCarousel.d.ts.map +0 -1
  96. package/types/src/ui/OfferModal.d.ts +0 -41
  97. package/types/src/ui/OfferModal.d.ts.map +0 -1
  98. package/types/src/ui/SuccessScreen.d.ts +0 -33
  99. package/types/src/ui/SuccessScreen.d.ts.map +0 -1
  100. package/types/src/ui/styles.d.ts +0 -44
  101. package/types/src/ui/styles.d.ts.map +0 -1
  102. package/types/src/utils/eventEmitter.d.ts +0 -50
  103. package/types/src/utils/eventEmitter.d.ts.map +0 -1
  104. package/types/src/utils/focusDetection.d.ts +0 -21
  105. package/types/src/utils/focusDetection.d.ts.map +0 -1
  106. package/types/src/utils/logger.d.ts +0 -21
  107. package/types/src/utils/logger.d.ts.map +0 -1
  108. package/types/src/utils/network.d.ts +0 -57
  109. package/types/src/utils/network.d.ts.map +0 -1
  110. package/types/src/utils/uuid.d.ts +0 -10
  111. package/types/src/utils/uuid.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/types.ts","../../src/utils/logger.ts","../../src/core/Configuration.ts","../../src/core/StorageManager.ts","../../src/utils/eventEmitter.ts","../../src/core/EntitlementManager.ts","../../src/core/SignalManager.ts","../../src/utils/network.ts","../../src/core/OfferManager.ts","../../src/core/VerificationPoller.ts","../../src/core/PlacementBuilder.ts","../../src/api/endpoints.ts","../../src/api/APIClient.ts","../../src/ui/styles.ts","../../src/ui/OfferModal.ts","../../src/ui/OfferCard.ts","../../src/ui/OfferCarousel.ts","../../src/ui/SuccessScreen.ts","../../src/utils/focusDetection.ts","../../src/utils/uuid.ts","../../src/core/Encore.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ErrorCode","PREFIX","logger","logLevel","setLogLevel","level","this","getLogLevel","debug","args","console","info","warn","error","critical","Configuration","config","isConfigured","configure","validationError","validateConfig","environment","apiKey","userId","baseURL","getDefaultBaseURL","uiConfiguration","trim","includes","getConfig","getApiKey","getBaseURL","getEnvironment","getUIConfiguration","reset","KEY_PREFIX","StorageManager","storageType","memoryStorage","constructor","Map","detectAvailableStorage","isStorageAvailable","type","storage","localStorage","sessionStorage","testKey","setItem","removeItem","getStorage","prefixKey","key","set","value","undefined","prefixedKey","serialized","JSON","stringify","Error","name","get","getItem","remove","parse","delete","clear","keys","startsWith","keysToRemove","i","length","push","forEach","getStorageType","EventEmitter","listeners","on","event","handler","has","Set","handlers","String","add","off","size","emit","payload","listenerCount","removeAllListeners","hasListeners","ENTITLEMENTS_KEY","ENTITLEMENTS_TIMESTAMP_KEY","EntitlementManager","apiClient","cache","refreshPromise","eventEmitter","loadFromStorage","getEventEmitter","setUserId","userKey","timestampKey","entitlements","timestamp","count","age","Date","now","saveEntitlements","Array","isArray","oldEntitlements","loadEntitlements","emitChanges","newEntitlements","oldMap","ent","scope","newMap","newEnt","oldEnt","entitlementType","getEntitlementType","isActive","isEntitlementActive","entitlement","_","expiresAt","__","grantedAt","___","transactionId","____","rest","isCacheStale","getCacheAge","clearCache","item","itemType","entitlementTypesMatch","a","b","getActiveEntitlements","filter","refreshEntitlements","performRefresh","fetchEntitlements","SIGNAL_QUEUE_KEY","SignalManager","queue","isProcessing","cleanupNetworkListener","loadQueue","setupNetworkListener","processQueue","saveQueue","enqueue","grantType","exists","some","signal","toISOString","attempts","dequeue","index","findIndex","s","splice","getQueue","clearQueue","sendGrantSignal","processSignal","sleep","lastAttemptAt","lastAttempt","getTime","backoffDelay","Math","pow","timeSinceLastAttempt","remainingWait","attempt","callback","window","addEventListener","removeEventListener","onOnline","destroy","ms","Promise","resolve","setTimeout","OfferManager","cachedOffers","cachedUiConfiguration","cacheTimestamp","fetchOffers","userAttributes","useCache","offers","response","offerIds","map","o","id","logImpression","impressionId","offer","appBundleId","location","hostname","campaignId","creativeId","then","success","catch","err","startTransaction","VerificationPoller","timeout","startTime","interval","maxInterval","timeoutHandle","isPolling","options","poll","pollWithBackoff","stop","clearTimeout","elapsed","checkVerificationStatus","status","verifiedAt","min","PlacementBuilder","onGrantedCallback","onNotGrantedCallback","onLoadingStateChangeCallback","executor","onGranted","onNotGranted","onLoadingStateChange","show","result","granted","reason","errorReason","code","UNKNOWN_ERROR","message","replacePathParams","endpoint","params","Object","entries","replace","encodeURIComponent","APIClient","pendingRequests","setApiKey","setBaseURL","request","url","method","post","body","requestKey","getRequestKey","pendingRequest","requestPromise","executeRequest","maxRetries","retries","lastError","delay","fetchWithTimeout","isClientError","controller","AbortController","timeoutId","abort","headers","fetchOptions","fetch","ok","handleHTTPError","json","isNetworkError","errorCode","errorMessage","statusText","errorData","errorObj","API_ERROR","statusCode","errorInstance","assign","attributes","apiOffer","campaign","creative","creatives","title","description","quickInstructions","subtitle","imageUrl","primaryImageUrl","ctaText","advertiserUrl","destinationUrl","unit","merchantName","logoUrl","instructions","trackingParameters","getGrantSignalEndpoint","convertEntitlementType","apiType","letter","toUpperCase","provisional","data","typeObj","started_at","expires_at","verified","provisionalCount","verifiedCount","totalCount","getVerificationStatusEndpoint","STYLE_ID","CLASS_PREFIX","injectStyles","theme","document","getElementById","styleElement","createElement","textContent","themeVars","vars","primaryColor","backgroundColor","textColor","borderRadius","fontFamily","join","generateThemeVars","getBaseStyles","head","appendChild","cls","className","OfferModal","backdrop","modal","closeButton","modalBody","isVisible","previousActiveElement","focusableElements","boundHandleKeyDown","activeElement","createModal","classList","requestAnimationFrame","setupEventListeners","updateFocusableElements","focusFirstElement","hide","removeModal","HTMLElement","focus","setContent","content","innerHTML","setAttribute","handleKeyDown","bind","preventDefault","handleTabKey","shiftKey","currentIndex","el","nextIndex","focusableSelectors","from","querySelectorAll","OfferCard","container","render","imageBanner","createImageBanner","details","createDetails","footer","createFooter","banner","img","alt","src","complete","onload","onerror","createPlaceholderImage","infoButton","e","stopPropagation","btoa","heading","list","instruction","li","merchantInfo","logo","style","display","textInfo","desc","claimButton","OfferCarousel","cardsContainer","indicatorsContainer","offerCards","announceElement","boundHandleArrowKeys","preloadImages","position","width","height","padding","margin","overflow","clip","whiteSpace","border","header","createHeader","navigation","createNavigation","renderAllOffers","setupKeyboardNavigation","scrollToIndex","getCurrentIndex","getTotalOffers","next","updateNavigationButtons","announce","previous","card","cardElement","itemWrapper","toString","smooth","items","targetItem","scrollIntoView","behavior","block","inline","prevButton","nextButton","buttons","prev","disabled","toggle","handleArrowKeys","Image","offerId","SuccessScreen","autoDismissTimeout","icon","titleText","subtitleText","getDefaultSubtitle","renderEntitlementDetails","button","buttonText","handleContinue","autoDismissMs","setupAutoDismiss","displayValue","FocusDetector","focusCallback","visibilityCallback","start","visibilityState","generateUUID","crypto","randomUUID","c","r","getRandomValues","Uint8Array","SDK_VERSION","USER_ID_KEY","USER_ATTRIBUTES_KEY","Encore","configuration","entitlementManager","signalManager","offerManager","focusDetector","isPresentationInProgress","stylesInjected","initializeUserId","version","storedUserId","storedAttributes","ensureConfigured","identify","previousUserId","setUserAttributes","getCurrentUserId","newUserId","getVersion","custom","getUserAttributes","presentOffer","notInitializedError","INITIALIZATION_ERROR","onError","alreadyInProgressReason","executePresentationFlow","didGrant","access","waitForVerification","pollerOptions","poller","observeEntitlement","subscribe","currentState","eventScope","placement","async","_options","apiUiConfig","mergedUiConfig","impressionIds","loggedImpressions","carousel","openAdvertiserURL","showSuccessScreen","claimed","carouselElement","opened","open","onContinue","uiConfig","successConfig","creditClaimedTitleText","creditClaimedSubtitleText","applyCreditsButtonText","successScreen","successElement"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/types.ts","../../src/utils/logger.ts","../../src/core/Configuration.ts","../../src/core/StorageManager.ts","../../src/core/SignalManager.ts","../../src/utils/network.ts","../../src/core/OfferManager.ts","../../src/core/VerificationPoller.ts","../../src/core/PlacementBuilder.ts","../../src/api/endpoints.ts","../../src/api/APIClient.ts","../../src/utils/eventEmitter.ts","../../src/ui/styles.ts","../../src/ui/OfferModal.ts","../../src/ui/Tooltip.ts","../../src/ui/OfferCard.ts","../../src/ui/OfferCarousel.ts","../../src/ui/SuccessScreen.ts","../../src/utils/focusDetection.ts","../../src/utils/uuid.ts","../../src/core/Encore.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ErrorCode","PREFIX","logger","logLevel","setLogLevel","level","this","getLogLevel","debug","args","console","info","warn","error","critical","Configuration","config","isConfigured","configure","validationError","validateConfig","environment","apiKey","userId","baseURL","getDefaultBaseURL","uiConfiguration","trim","includes","getConfig","getApiKey","getBaseURL","getEnvironment","getUIConfiguration","reset","KEY_PREFIX","StorageManager","storageType","memoryStorage","constructor","Map","detectAvailableStorage","isStorageAvailable","type","storage","localStorage","sessionStorage","testKey","setItem","removeItem","getStorage","prefixKey","key","set","value","undefined","prefixedKey","serialized","JSON","stringify","Error","name","get","getItem","remove","parse","delete","clear","keys","startsWith","keysToRemove","i","length","push","forEach","getStorageType","SIGNAL_QUEUE_KEY","SignalManager","apiClient","queue","isProcessing","cleanupNetworkListener","loadQueue","setupNetworkListener","processQueue","setUserId","userKey","Array","isArray","count","saveQueue","enqueue","transactionId","grantType","exists","some","signal","timestamp","Date","toISOString","attempts","dequeue","index","findIndex","s","splice","getQueue","clearQueue","sendGrantSignal","processSignal","sleep","lastAttemptAt","lastAttempt","getTime","now","backoffDelay","Math","pow","timeSinceLastAttempt","remainingWait","attempt","callback","handler","window","addEventListener","removeEventListener","onOnline","destroy","ms","Promise","resolve","setTimeout","OfferManager","cachedOffers","cachedUiConfiguration","cacheTimestamp","fetchOffers","userAttributes","useCache","offers","response","offerIds","map","o","id","logImpression","impressionId","offer","appBundleId","location","hostname","campaignId","creativeId","then","success","catch","err","startTransaction","clearCache","VerificationPoller","timeout","startTime","interval","maxInterval","timeoutHandle","isPolling","options","poll","pollWithBackoff","stop","clearTimeout","elapsed","checkVerificationStatus","status","verifiedAt","min","PlacementBuilder","onGrantedCallback","onNotGrantedCallback","onLoadingStateChangeCallback","executor","onGranted","onNotGranted","onLoadingStateChange","show","result","granted","entitlement","reason","errorReason","code","UNKNOWN_ERROR","message","replacePathParams","endpoint","params","Object","entries","replace","encodeURIComponent","SDK_VERSION","APIClient","pendingRequests","setApiKey","setBaseURL","request","url","method","post","body","requestKey","getRequestKey","pendingRequest","requestPromise","executeRequest","maxRetries","retries","lastError","delay","fetchWithTimeout","isClientError","controller","AbortController","timeoutId","abort","headers","fetchOptions","fetch","ok","handleHTTPError","json","isNetworkError","String","errorCode","errorMessage","statusText","errorData","errorObj","API_ERROR","statusCode","errorInstance","assign","attributes","sdk_version","apiOffer","campaign","creative","creatives","title","description","quickInstructions","subtitle","imageUrl","primaryImageUrl","ctaText","advertiserUrl","destinationUrl","instructions","tooltipText","unit","merchantName","logoUrl","trackingParameters","getGrantSignalEndpoint","convertEntitlementType","apiType","_","letter","toUpperCase","fetchEntitlements","entitlements","provisional","entitlementType","data","typeObj","scope","grantedAt","started_at","expiresAt","expires_at","verified","provisionalCount","verifiedCount","totalCount","getVerificationStatusEndpoint","EventEmitter","listeners","on","event","has","Set","handlers","add","off","size","emit","payload","listenerCount","removeAllListeners","hasListeners","STYLE_ID","CLASS_PREFIX","injectStyles","theme","document","getElementById","styleElement","createElement","textContent","themeVars","vars","primaryColor","backgroundColor","textColor","borderRadius","fontFamily","join","generateThemeVars","getBaseStyles","head","appendChild","cls","className","OfferModal","eventEmitter","backdrop","modal","closeButton","modalBody","isVisible","previousActiveElement","focusableElements","boundHandleKeyDown","activeElement","createModal","classList","requestAnimationFrame","setupEventListeners","updateFocusableElements","focusFirstElement","hide","removeModal","HTMLElement","focus","setContent","content","innerHTML","setAttribute","handleKeyDown","bind","preventDefault","handleTabKey","shiftKey","currentIndex","el","nextIndex","focusableSelectors","from","querySelectorAll","Tooltip","tooltipElement","targetElement","showTimeout","hideTimeout","boundHandleMouseEnter","boundHandleMouseLeave","boundUpdatePosition","position","maxWidth","init","handleMouseEnter","handleMouseLeave","updatePosition","style","targetRect","getBoundingClientRect","top","left","parentNode","removeChild","tooltipRect","height","width","bottom","right","max","innerWidth","innerHeight","updateContent","OfferCard","container","tooltip","render","imageBanner","createImageBanner","details","createDetails","footer","createFooter","banner","img","alt","src","complete","onload","onerror","createPlaceholderImage","infoButton","e","stopPropagation","btoa","heading","list","instruction","li","merchantInfo","logo","display","textInfo","desc","claimButton","OfferCarousel","cardsContainer","indicatorsContainer","offerCards","announceElement","boundHandleArrowKeys","scrollTimeout","preloadImages","padding","margin","overflow","clip","whiteSpace","border","header","createHeader","navigation","createNavigation","renderAllOffers","setupKeyboardNavigation","setupScrollListener","scrollToIndex","getCurrentIndex","getTotalOffers","next","updateNavigationButtons","announce","previous","card","cardElement","itemWrapper","toString","smooth","items","targetItem","scrollIntoView","behavior","block","inline","item","prevButton","nextButton","buttons","prev","disabled","toggle","handleArrowKeys","handleScroll","containerRect","containerCenter","closestIndex","closestDistance","Infinity","itemRect","distance","abs","Image","offerId","SuccessScreen","autoDismissTimeout","icon","titleText","subtitleText","getDefaultSubtitle","renderEntitlementDetails","button","buttonText","handleContinue","autoDismissMs","setupAutoDismiss","displayValue","FocusDetector","focusCallback","visibilityCallback","isActive","start","visibilityState","generateUUID","crypto","randomUUID","c","r","getRandomValues","Uint8Array","USER_ID_KEY","USER_ATTRIBUTES_KEY","Encore","configuration","signalManager","offerManager","focusDetector","isPresentationInProgress","stylesInjected","initializeUserId","version","storedUserId","storedAttributes","ensureConfigured","identify","previousUserId","setUserAttributes","getCurrentUserId","newUserId","getVersion","custom","getUserAttributes","presentOffer","notInitializedError","INITIALIZATION_ERROR","onError","alreadyInProgressReason","executePresentationFlow","_entitlement","_scope","didGrant","access","waitForVerification","pollerOptions","poller","_event","_handler","observeEntitlement","subscribe","_callback","placement","async","_options","apiUiConfig","mergedUiConfig","impressionIds","loggedImpressions","carousel","openAdvertiserURL","showSuccessScreen","claimed","carouselElement","opened","open","onContinue","uiConfig","successConfig","creditClaimedTitleText","creditClaimedSubtitleText","applyCreditsButtonText","successScreen","successElement"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var e;!function(e){e.NETWORK_ERROR="NETWORK_ERROR",e.API_ERROR="API_ERROR",e.CONFIGURATION_ERROR="CONFIGURATION_ERROR",e.INITIALIZATION_ERROR="INITIALIZATION_ERROR",e.STORAGE_ERROR="STORAGE_ERROR",e.INVALID_REQUEST="INVALID_REQUEST",e.UNAUTHORIZED="UNAUTHORIZED",e.NOT_FOUND="NOT_FOUND",e.TIMEOUT="TIMEOUT",e.UNKNOWN_ERROR="UNKNOWN_ERROR"}(e||(e={}));const t="[Encore SDK]",n=new class{#e="none";setLogLevel(e){this.#e=e}getLogLevel(){return this.#e}debug(...e){"debug"===this.#e&&console.debug(t,...e)}info(...e){"debug"===this.#e&&console.info(t,...e)}warn(...e){"debug"===this.#e&&console.warn(t,...e)}error(...e){"debug"===this.#e&&console.error(t,...e)}critical(...e){console.error(t,"[CRITICAL]",...e)}};class i{#t=null;#n=!1;configure(e){if(this.#n)return n.warn("SDK already configured. Ignoring subsequent configure() call."),!1;const t=this.#i(e);if(t)return n.error("Invalid configuration:",t),!1;const i=e.logLevel??"none",r=e.environment??"production";return this.#t={apiKey:e.apiKey,userId:e.userId,environment:r,baseURL:this.#r(r),logLevel:i,uiConfiguration:e.uiConfiguration??{}},n.setLogLevel(i),this.#n=!0,n.debug("SDK configured successfully",this.#t),!0}#i(e){return e.apiKey&&"string"==typeof e.apiKey&&""!==e.apiKey.trim()?e.environment&&!["production","localhost"].includes(e.environment)?"environment must be 'production' or 'localhost'":e.logLevel&&!["none","debug"].includes(e.logLevel)?"logLevel must be 'none' or 'debug'":null:"apiKey is required and must be a non-empty string"}#r(e){return"localhost"===e?"http://localhost:8080/encore/v1":"https://svc.joinyaw.com/product/encore/v1"}getConfig(){return this.#t}isConfigured(){return this.#n}getApiKey(){return this.#t?.apiKey??null}getBaseURL(){return this.#t?.baseURL??null}getEnvironment(){return this.#t?.environment??null}getUIConfiguration(){return this.#t?.uiConfiguration??{}}reset(){this.#t=null,this.#n=!1,n.debug("Configuration reset")}}const r="encore_";class s{#s;#o;constructor(){this.#o=new Map,this.#s=this.#a(),n.debug(`StorageManager initialized with ${this.#s}`)}#a(){return this.#l("localStorage")?"localStorage":this.#l("sessionStorage")?"sessionStorage":(n.warn("Neither localStorage nor sessionStorage available, using in-memory storage"),"memory")}#l(e){try{const t="localStorage"===e?localStorage:sessionStorage,n="__encore_test__";return t.setItem(n,"test"),t.removeItem(n),!0}catch{return!1}}#c(){return"localStorage"===this.#s?localStorage:"sessionStorage"===this.#s?sessionStorage:this.#o}#d(e){return`${r}${e}`}set(e,t){if(void 0===t)return void n.warn(`Attempted to store undefined value for key: ${e}`);const i=this.#d(e),r=JSON.stringify(t);try{const t=this.#c();t instanceof Map?t.set(i,r):t.setItem(i,r),n.debug(`Stored ${e} in ${this.#s}`)}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?n.error("Storage quota exceeded:",e):n.error("Failed to store item:",e),"memory"!==this.#s&&(n.warn("Falling back to memory storage for this item"),this.#o.set(i,r))}}get(e){const t=this.#d(e);try{const i=this.#c();let r=null;return r=i instanceof Map?i.get(t)??null:i.getItem(t),null===r||"undefined"===r?("undefined"===r&&(n.warn(`Found corrupted value "undefined" for key: ${e}, cleaning up`),this.remove(e)),null):JSON.parse(r)}catch(t){return n.error(`Failed to retrieve ${e}:`,t),this.remove(e),null}}remove(e){const t=this.#d(e);try{const i=this.#c();i instanceof Map?i.delete(t):i.removeItem(t),n.debug(`Removed ${e} from ${this.#s}`)}catch(t){n.error(`Failed to remove ${e}:`,t)}}clear(){try{const e=this.#c();if(e instanceof Map)for(const t of e.keys())t.startsWith(r)&&e.delete(t);else{const t=[];for(let n=0;n<e.length;n++){const i=e.key(n);i?.startsWith(r)&&t.push(i)}t.forEach(t=>e.removeItem(t))}n.debug(`Cleared all Encore data from ${this.#s}`)}catch(e){n.error("Failed to clear storage:",e)}}getStorageType(){return this.#s}}class o{#u;constructor(){this.#u=new Map}on(e,t){this.#u.has(e)||this.#u.set(e,new Set);const i=this.#u.get(e);if(!i)throw new Error(`Failed to get handlers for event '${String(e)}'`);return i.add(t),n.debug(`Event listener added for '${String(e)}'`),()=>{this.off(e,t)}}off(e,t){const i=this.#u.get(e);i&&(i.delete(t),n.debug(`Event listener removed for '${String(e)}'`),0===i.size&&this.#u.delete(e))}emit(e,t){const i=this.#u.get(e);if(i&&0!==i.size){n.debug(`Emitting event '${String(e)}'`,{listenerCount:i.size});for(const r of i)try{r(t)}catch(t){n.error(`Error in event handler for '${String(e)}':`,t)}}}removeAllListeners(e){e?(this.#u.delete(e),n.debug(`All listeners removed for '${String(e)}'`)):(this.#u.clear(),n.debug("All event listeners removed"))}listenerCount(e){return this.#u.get(e)?.size??0}hasListeners(e){const t=this.#u.get(e);return void 0!==t&&t.size>0}}const a="entitlements",l="entitlements_timestamp";class c{#h;#g;#f;#m=null;#p=null;#b;constructor(e,t,n){this.#h=e,this.#g=t,this.#f=n,this.#b=new o,this.#v()}getEventEmitter(){return this.#b}setUserId(e){this.#f!==e&&(n.debug("EntitlementManager: User ID changed, clearing cache"),this.#f=e,this.#m=null,this.#v())}#v(){try{const e=`${this.#f}_${a}`,t=`${this.#f}_${l}`,i=this.#h.get(e),r=this.#h.get(t);i&&r&&(this.#m={entitlements:i,timestamp:r},n.debug("Loaded entitlements from storage",{count:i.length,age:Date.now()-r}))}catch(e){n.error("Failed to load entitlements from storage:",e)}}saveEntitlements(e){try{Array.isArray(e)||(n.warn("saveEntitlements called with non-array value, defaulting to empty array"),e=[]);const t=this.loadEntitlements(),i=Date.now(),r=`${this.#f}_${a}`,s=`${this.#f}_${l}`;this.#h.set(r,e),this.#h.set(s,i),this.#m={entitlements:e,timestamp:i},n.debug("Saved entitlements to storage",{count:e.length}),this.#y(t,e)}catch(e){n.error("Failed to save entitlements to storage:",e)}}#y(e,t){Array.isArray(e)||(e=[]),Array.isArray(t)||(t=[]);const n=new Map;for(const t of e){const e=`${String(t.type)}_${t.scope}`;n.set(e,t)}const i=new Map;for(const e of t){const t=`${String(e.type)}_${e.scope}`;i.set(t,e)}for(const[e,t]of i){const i=n.get(e);i&&JSON.stringify(i)===JSON.stringify(t)||this.#b.emit("entitlementChanged",{entitlementType:this.#x(t),scope:t.scope,isActive:this.#w(t),entitlement:t})}for(const[e,t]of n)i.has(e)||this.#b.emit("entitlementChanged",{entitlementType:this.#x(t),scope:t.scope,isActive:!1})}#x(e){const{scope:t,expiresAt:n,grantedAt:i,transactionId:r,...s}=e;return s}#w(e){return!e.expiresAt||new Date(e.expiresAt)>new Date}loadEntitlements(){return this.#m?.entitlements??[]}isCacheStale(){return!this.#m||Date.now()-this.#m.timestamp>3e5}getCacheAge(){return this.#m?Date.now()-this.#m.timestamp:null}clearCache(){this.#m=null,this.#b.removeAllListeners();const e=`${this.#f}_${a}`,t=`${this.#f}_${l}`;this.#h.remove(e),this.#h.remove(t),n.debug("Cleared entitlement cache")}isActive(e,t="all"){const n=this.loadEntitlements();for(const i of n){const n=this.#x(i);if(this.#I(n,e)&&("verified"!==t||"verified"===i.scope)){if(i.expiresAt&&new Date(i.expiresAt)<=new Date)continue;return!0}}return!1}#I(e,t){return JSON.stringify(e)===JSON.stringify(t)}getActiveEntitlements(e="all"){const t=this.loadEntitlements(),n=new Date;return t.filter(t=>("verified"!==e||"verified"===t.scope)&&!(t.expiresAt&&new Date(t.expiresAt)<=n))}async refreshEntitlements(){if(this.#p)return n.debug("Refresh already in progress, waiting..."),this.#p;this.#p=this.#E();try{await this.#p}finally{this.#p=null}}async#E(){try{n.debug("Refreshing entitlements from API");const e=await this.#g.fetchEntitlements(this.#f);if(!Array.isArray(e))return n.warn("Received non-array entitlements from API, defaulting to empty array"),void this.saveEntitlements([]);this.saveEntitlements(e),n.info("Entitlements refreshed successfully",{count:e.length})}catch(e){n.error("Failed to refresh entitlements, keeping cached version:",e)}}}const d="signal_queue";class u{#h;#g;#f;#C=[];#$=!1;#k;constructor(e,t,n){this.#h=e,this.#g=t,this.#f=n,this.#A(),this.#T(),this.processQueue()}setUserId(e){this.#f!==e&&(n.debug("SignalManager: User ID changed, clearing queue"),this.#f=e,this.#C=[],this.#A())}#A(){try{const e=`${this.#f}_${d}`,t=this.#h.get(e);t&&Array.isArray(t)&&(this.#C=t,n.debug("Loaded grant signal queue from storage",{count:t.length}))}catch(e){n.error("Failed to load grant signal queue from storage:",e)}}#N(){try{const e=`${this.#f}_${d}`;this.#h.set(e,this.#C),n.debug("Saved grant signal queue to storage",{count:this.#C.length})}catch(e){n.error("Failed to save grant signal queue to storage:",e)}}enqueue(e,t){const i=this.#C.some(n=>n.transactionId===e&&n.grantType===t);if(i)return void n.debug("Grant signal already in queue, skipping",{transactionId:e,grantType:t});const r={transactionId:e,grantType:t,timestamp:(new Date).toISOString(),attempts:0};this.#C.push(r),this.#N(),n.info("Grant signal added to queue",{transactionId:e,grantType:t})}dequeue(e){const t=this.#C.findIndex(t=>t.transactionId===e.transactionId&&t.grantType===e.grantType);-1!==t&&(this.#C.splice(t,1),this.#N(),n.debug("Grant signal removed from queue",{transactionId:e.transactionId,grantType:e.grantType}))}getQueue(){return[...this.#C]}clearQueue(){this.#C=[],this.#N(),n.debug("Grant signal queue cleared")}async sendGrantSignal(e,t){try{if(n.debug("Sending grant signal",{transactionId:e,grantType:t}),!await this.#g.sendGrantSignal(e,t))throw new Error("Grant signal failed (returned false)");n.info("Grant signal sent successfully",{transactionId:e,grantType:t})}catch{n.warn("Failed to send grant signal, adding to queue",{transactionId:e,grantType:t}),this.enqueue(e,t)}}async processQueue(){if(this.#$)n.debug("Queue processing already in progress, skipping");else if(0!==this.#C.length){this.#$=!0,n.info("Processing grant signal queue",{count:this.#C.length});try{for(const e of[...this.#C])await this.#S(e),this.#C.length>1&&await this.#R(100)}finally{this.#$=!1}}}async#S(e){if(e.attempts>=3)return n.error("Grant signal max attempts reached, removing from queue",{transactionId:e.transactionId,grantType:e.grantType,attempts:e.attempts}),void this.dequeue(e);if(e.lastAttemptAt){const t=new Date(e.lastAttemptAt).getTime(),i=Date.now(),r=1e3*Math.pow(2,e.attempts-1),s=i-t;if(s<r)return void n.debug("Skipping signal, waiting for backoff period",{transactionId:e.transactionId,remainingWait:r-s})}e.attempts++,e.lastAttemptAt=(new Date).toISOString(),this.#N();try{n.debug("Attempting to send queued grant signal",{transactionId:e.transactionId,grantType:e.grantType,attempt:e.attempts}),await this.#g.sendGrantSignal(e.transactionId,e.grantType)?(n.info("Queued grant signal sent successfully",{transactionId:e.transactionId,grantType:e.grantType}),this.dequeue(e)):n.warn("Grant signal failed, will retry",{transactionId:e.transactionId,attempt:e.attempts})}catch(t){n.warn("Failed to send queued grant signal, will retry",{transactionId:e.transactionId,attempt:e.attempts,error:t})}}#T(){this.#k=function(e){const t=()=>{n.debug("Network status: online"),e()};return window.addEventListener("online",t),()=>{window.removeEventListener("online",t)}}(()=>{n.debug("Network came online, processing grant signal queue"),this.processQueue()})}destroy(){this.#k&&(this.#k(),this.#k=void 0)}#R(e){return new Promise(t=>setTimeout(t,e))}}class h{#g;#f;#L=[];#M=null;#O=null;constructor(e,t){this.#g=e,this.#f=t}async fetchOffers(e,t=!0){if(t&&this.#L.length>0&&this.#O)return n.debug("Using cached offers",{count:this.#L.length}),{offers:[...this.#L],uiConfiguration:this.#M??void 0};try{n.debug("Fetching offers from API",{userId:this.#f});const t=await this.#g.fetchOffers(this.#f,e);return 0===t.offers?.length?(n.info("No offers available for user"),this.#L=[],this.#M=t.uiConfiguration??null,this.#O=Date.now(),{offers:[],uiConfiguration:t.uiConfiguration}):(this.#L=t.offers,this.#M=t.uiConfiguration??null,this.#O=Date.now(),n.info("Offers fetched successfully",{count:t.offers.length,offerIds:t.offers.map(e=>e.id)}),{offers:[...t.offers],uiConfiguration:t.uiConfiguration})}catch(e){throw n.error("Failed to fetch offers",e),e}}logImpression(e,t){try{const i=window.location.hostname;n.debug("Logging impression",{impressionId:e,campaignId:t.campaignId,creativeId:t.creativeId,appBundleId:i}),this.#g.logImpression(e,this.#f,t.campaignId,t.creativeId,i).then(t=>{t&&n.debug("Impression logged successfully",{impressionId:e})}).catch(t=>{n.error("Failed to log impression (non-blocking)",{impressionId:e,error:t})})}catch(t){n.error("Failed to log impression (non-blocking)",{impressionId:e,error:t})}}async startTransaction(e,t,i){try{n.debug("Starting transaction",{campaignId:e,creativeId:t,impressionId:i});const r=await this.#g.startTransaction(e,this.#f,t,i);return n.info("Transaction started",{transactionId:r,campaignId:e,creativeId:t}),r}catch(i){throw n.error("Failed to start transaction",{campaignId:e,creativeId:t,error:i}),i}}clearCache(){this.#L=[],this.#O=null,n.debug("Offer cache cleared")}setUserId(e){this.#f=e,this.clearCache(),n.debug("OfferManager user ID updated",{userId:e})}}class g{#g;#F;#U;#D=0;#B=1e3;#q=8e3;#K=null;#P=!1;constructor(e,t){this.#g=e,this.#F=t.transactionId,this.#U=t.timeout??3e4}async poll(){return this.#P?(n.warn("Verification polling already in progress",{transactionId:this.#F}),"pending"):(this.#P=!0,this.#D=Date.now(),n.debug("Starting verification polling",{transactionId:this.#F,timeout:this.#U}),this.#z())}stop(){this.#P=!1,null!==this.#K&&(clearTimeout(this.#K),this.#K=null),n.debug("Verification polling stopped",{transactionId:this.#F})}async#z(){for(;this.#P;){const e=Date.now()-this.#D;if(e>=this.#U)return n.warn("Verification polling timeout",{transactionId:this.#F,elapsed:e}),this.stop(),"pending";try{const e=await this.#g.checkVerificationStatus(this.#F);if(n.debug("Verification status checked",{transactionId:this.#F,status:e.status}),"verified"===e.status)return n.info("Transaction verified",{transactionId:this.#F,verifiedAt:e.verifiedAt}),this.stop(),"verified";if("failed"===e.status)return n.warn("Transaction failed verification",{transactionId:this.#F}),this.stop(),"failed";await this.#R(this.#B),this.#B=Math.min(2*this.#B,this.#q)}catch(e){n.error("Error checking verification status",{transactionId:this.#F,error:e}),await this.#R(this.#B)}}return"pending"}async#R(e){return new Promise(t=>{this.#K=window.setTimeout(()=>{this.#K=null,t()},e)})}}class f{#_=null;#G=null;#j=null;#H;constructor(e){this.#H=e}onGranted(e){return this.#_=e,this}onNotGranted(e){return this.#G=e,this}onLoadingStateChange(e){return this.#j=e,this}async show(){try{this.#j&&this.#j(!0),n.debug("PlacementBuilder: Executing presentation");const e=await this.#H();return this.#j&&this.#j(!1),e.granted&&e.entitlement&&this.#_?this.#_(e.entitlement):!e.granted&&this.#G&&e.reason&&this.#G(e.reason),e}catch(t){this.#j&&this.#j(!1),n.error("PlacementBuilder: Error during presentation",t);const i={type:"error",error:{code:e.UNKNOWN_ERROR,message:t instanceof Error?t.message:"Unknown error"}};return this.#G&&this.#G(i),{granted:!1,reason:i}}}}function m(e,t){let n=e;for(const[e,i]of Object.entries(t))n=n.replace(`:${e}`,encodeURIComponent(i));return n}class p{#V;#Q;#W;constructor(e,t){this.#V=e,this.#Q=t,this.#W=new Map}setApiKey(e){this.#V=e}setBaseURL(e){this.#Q=e}async get(e,t){return this.#J({url:`${this.#Q}${e}`,options:{method:"GET",...t},apiKey:this.#V})}async post(e,t,n){return this.#J({url:`${this.#Q}${e}`,options:{method:"POST",body:t,...n},apiKey:this.#V})}async#J(e){const{url:t,options:i,apiKey:r}=e,s=this.#Y(t,i),o=this.#W.get(s);if(o)return n.debug("Deduplicating request:",t),o;const a=this.#Z(t,i,r);this.#W.set(s,a);try{return await a}finally{this.#W.delete(s)}}async#Z(e,t,i){const r=t.retries??3;let s=null;for(let o=0;o<=r;o++)try{if(o>0){const e=1e3*Math.pow(2,o-1);n.debug(`Retrying request (attempt ${o}/${r}) after ${e}ms`),await this.#R(e)}return await this.#X(e,t,i)}catch(e){if(s=e,this.#ee(e))throw e;if(o===r)throw n.error(`Request failed after ${r} retries:`,e),e;n.warn("Request failed, will retry:",e)}throw s??new Error("Request failed")}async#X(e,t,i){const r=t.timeout??3e4,s=new AbortController,o=setTimeout(()=>s.abort(),r);try{const r={"X-API-Key":i,"Content-Type":"application/json","User-Agent":"Encore-Web-SDK/0.1.0",...t.headers},o={method:t.method,headers:r,signal:s.signal};t.body&&(o.body=JSON.stringify(t.body)),n.debug(`${t.method} ${e}`);const a=await fetch(e,o);return a.ok||await this.#te(a),await a.json()}catch(e){if(e instanceof Error){if("AbortError"===e.name)throw new Error("Request timeout");if(this.#ne(e))throw new Error(`Network error: ${e.message}`)}if(e instanceof Error)throw e;throw new Error(String(e))}finally{clearTimeout(o)}}async#te(t){let n,i=`HTTP ${t.status}: ${t.statusText}`;try{const e=await t.json();if("object"==typeof e&&null!==e&&"error"in e&&"object"==typeof e.error&&null!==e.error){const t=e.error;i=("string"==typeof t.message?t.message:void 0)??i,n="string"==typeof t.code?t.code:void 0}}catch{}const r=n?{code:n,message:i}:{code:e.API_ERROR,statusCode:t.status,message:i},s=new Error(i);throw Object.assign(s,r),s}#ee(e){if("object"==typeof e&&null!==e&&"statusCode"in e&&void 0!==e.statusCode){const t=e.statusCode;return t>=400&&t<500}return!1}#ne(e){return e.message.includes("fetch")||e.message.includes("network")||e.message.includes("ECONNREFUSED")||e.message.includes("ETIMEDOUT")}#Y(e,t){const n=t.body?JSON.stringify(t.body):"";return`${t.method}:${e}:${n}`}#R(e){return new Promise(t=>setTimeout(t,e))}async fetchOffers(e,t){try{const n=await this.post("/offers/show",{userId:e,attributes:t}),i=[];for(const e of n.offers){const t=e.campaign;for(const e of t.creatives){const n={id:e.id,title:e.title,description:e.quickInstructions||e.subtitle||e.description||"",imageUrl:e.primaryImageUrl,ctaText:e.ctaText,advertiserUrl:e.destinationUrl,campaignId:t.id,creativeId:e.id,entitlement:{type:"credit",value:100,unit:"dollars"},...t.merchantName&&{merchantName:t.merchantName},...e.logoUrl&&{logoUrl:e.logoUrl},...e.instructions&&{instructions:e.instructions},...e.quickInstructions&&{quickInstructions:e.quickInstructions},...e.trackingParameters&&{trackingParameters:e.trackingParameters}};i.push(n)}}return{offers:i,uiConfiguration:n.uiConfiguration}}catch(e){throw n.error("Failed to fetch offers:",e),e}}async startTransaction(e,t,i,r){try{return(await this.post("/transactions/start",{campaignId:e,userId:t,creativeId:i,...r&&{impressionId:r}})).transactionId}catch(e){throw n.error("Failed to start transaction:",e),e}}async sendGrantSignal(e,t){try{const n=function(e){return m("/transactions/:id/grant",{id:e})}(e);return(await this.post(n,{transactionId:e,grantType:t,timestamp:(new Date).toISOString()})).success}catch(e){throw n.error("Failed to send grant signal:",e),e}}#ie(e){switch(e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase())){case"freeTrial":return{type:"freeTrial"};case"discount":return{type:"discount"};case"credit":return{type:"credit"};default:return n.warn(`Unknown entitlement type: ${e}, treating as freeTrial`),{type:"freeTrial"}}}async fetchEntitlements(e){try{const t=await this.get(`/entitlements?userId=${encodeURIComponent(e)}`),i=[];if(t.provisional)for(const[e,n]of Object.entries(t.provisional)){const t=this.#ie(e);i.push({...t,transactionId:"",scope:"provisional",grantedAt:n.started_at,expiresAt:n.expires_at})}if(t.verified)for(const[e,n]of Object.entries(t.verified)){const t=this.#ie(e);i.push({...t,transactionId:"",scope:"verified",grantedAt:n.started_at,expiresAt:n.expires_at})}return n.debug("Transformed entitlements response",{provisionalCount:Object.keys(t.provisional||{}).length,verifiedCount:Object.keys(t.verified||{}).length,totalCount:i.length}),i}catch(e){throw n.error("Failed to fetch entitlements:",e),e}}async checkVerificationStatus(e){try{const t=function(e){return m("/verification/status/:id",{id:e})}(e);return await this.get(t)}catch(e){throw n.error("Failed to check verification status:",e),e}}async logImpression(e,t,i,r,s){try{return(await this.post("/impressions/log",{impressionId:e,userId:t,campaignId:i,creativeId:r,appBundleId:s})).success}catch(e){return n.warn("Failed to log impression (non-blocking):",e),!1}}}const b="encore-sdk-styles",v="encore-";function y(e={}){if(document.getElementById(b))n.debug("Encore styles already injected");else try{const t=document.createElement("style");t.id=b,t.textContent=function(e={}){const t=function(e){const t=[];return e.primaryColor&&t.push(`--encore-primary-color: ${e.primaryColor};`),e.backgroundColor&&t.push(`--encore-bg-color: ${e.backgroundColor};`),e.textColor&&t.push(`--encore-text-color: ${e.textColor};`),e.borderRadius&&t.push(`--encore-border-radius: ${e.borderRadius};`),e.fontFamily&&t.push(`--encore-font-family: ${e.fontFamily};`),t.join("\n ")}(e);return`\n /* CSS Custom Properties (Theme Variables) */\n :root {\n ${t||"/* No custom theme variables */"}\n --encore-primary-color: ${e.primaryColor??"#4F46E5"};\n --encore-bg-color: ${e.backgroundColor??"#ffffff"};\n --encore-text-color: ${e.textColor??"#1F2937"};\n --encore-border-radius: ${e.borderRadius??"12px"};\n --encore-font-family: ${e.fontFamily??'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'};\n }\n\n /* Backdrop */\n .${v}backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.55);\n backdrop-filter: blur(2px);\n z-index: 9998;\n opacity: 0;\n transition: opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .${v}backdrop.${v}visible {\n opacity: 1;\n }\n\n /* Modal Container */\n .${v}modal {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 9999;\n background-color: var(--encore-bg-color);\n border-radius: 20px;\n box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.18), 0 12px 24px -8px rgba(0, 0, 0, 0.08);\n max-width: 800px;\n max-height: 90vh;\n width: calc(100% - 32px);\n overflow-x: hidden;\n overflow-y: auto;\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.96);\n transition: opacity 250ms cubic-bezier(0.4, 0, 0.2, 1), transform 250ms cubic-bezier(0.4, 0, 0.2, 1);\n font-family: var(--encore-font-family);\n color: var(--encore-text-color);\n }\n\n .${v}modal.${v}visible {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n\n /* Close Button */\n .${v}close-button {\n position: absolute;\n top: 20px;\n right: 20px;\n width: 40px;\n height: 40px;\n border: none;\n background-color: rgba(255, 255, 255, 0.9);\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #9CA3AF;\n transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n padding: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n z-index: 10;\n }\n\n .${v}close-button:hover {\n background-color: #FFFFFF;\n color: #6B7280;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n transform: scale(1.05);\n }\n\n .${v}close-button:active {\n transform: scale(0.98);\n }\n\n .${v}close-button:focus {\n outline: 2px solid var(--encore-primary-color);\n outline-offset: 2px;\n }\n\n .${v}close-button svg {\n width: 18px;\n height: 18px;\n }\n\n /* Body scroll lock */\n body.${v}no-scroll {\n overflow: hidden;\n }\n\n /* Modal Header */\n .${v}modal-header {\n padding: 24px 24px 16px;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .${v}modal-title {\n margin: 0;\n font-size: 24px;\n font-weight: 700;\n line-height: 1.25;\n color: var(--encore-text-color);\n }\n\n .${v}modal-subtitle {\n margin: 8px 0 0;\n font-size: 14px;\n color: #6B7280;\n line-height: 1.5;\n }\n\n /* Modal Body */\n .${v}modal-body {\n padding: 0;\n position: relative;\n isolation: isolate;\n }\n\n /* Carousel Container */\n .${v}carousel {\n display: flex;\n flex-direction: column;\n overflow: visible;\n }\n\n /* Carousel Header */\n .${v}carousel-header {\n padding: 40px 68px 28px;\n text-align: center;\n }\n\n .${v}carousel-title {\n font-size: 32px;\n font-weight: 510;\n line-height: 1.1;\n color: #181417;\n margin: 0 0 8px 0;\n letter-spacing: -0.3px;\n }\n\n .${v}carousel-subtitle {\n font-size: 16px;\n line-height: 1.2;\n color: #181417;\n margin: 0;\n font-weight: 400;\n }\n\n /* Carousel Cards Container - Horizontal Scroll */\n .${v}carousel-cards {\n display: flex;\n flex-direction: row;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n gap: 24px;\n padding: 24px 78px;\n position: relative;\n }\n\n .${v}carousel-cards::-webkit-scrollbar {\n display: none;\n }\n\n /* Carousel Item Wrapper */\n .${v}carousel-item {\n flex: 0 0 426px;\n width: 426px;\n scroll-snap-align: center;\n scroll-snap-stop: always;\n opacity: 0.5;\n transition: all 400ms cubic-bezier(0.4, 0, 0.2, 1);\n pointer-events: auto;\n }\n\n /* Active carousel item */\n .${v}carousel-item.${v}active {\n opacity: 1;\n z-index: 1;\n }\n\n /* Offer Card */\n .${v}offer-card {\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 16px;\n box-shadow: 0 2px 12px rgba(116, 112, 133, 0.16);\n height: 370px;\n overflow: hidden;\n }\n\n /* Offer Banner */\n .${v}offer-banner {\n width: 100%;\n background-color: transparent;\n position: relative;\n padding: 0;\n height: 180px;\n overflow: hidden;\n border-radius: 16px 16px 0 0;\n }\n\n .${v}offer-banner-image {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: cover;\n background-color: #F9FAFB;\n opacity: 0;\n transition: opacity 200ms ease-out;\n }\n\n .${v}offer-banner-image.${v}loaded {\n opacity: 1;\n }\n\n /* Info button on banner */\n .${v}banner-info-button {\n position: absolute;\n top: 20px;\n right: 20px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: rgba(242, 242, 242, 0.95);\n backdrop-filter: blur(6px);\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 150ms ease;\n z-index: 3;\n padding: 0;\n }\n\n .${v}banner-info-button:hover {\n background-color: #F2F2F2;\n transform: scale(1.05);\n }\n\n .${v}banner-info-button:focus {\n outline: 2px solid #5671FF;\n outline-offset: 2px;\n }\n\n .${v}banner-info-button svg {\n width: 14px;\n height: 14px;\n color: #181417;\n stroke-width: 2;\n }\n\n /* Offer Details */\n .${v}offer-details {\n padding: 16px 20px;\n flex: 1;\n overflow-y: auto;\n }\n\n .${v}offer-details-heading {\n font-size: 14px;\n font-weight: 400;\n color: #6A6D81;\n margin: 0 0 8px 0;\n letter-spacing: -1px;\n line-height: 1.2;\n }\n\n .${v}offer-details-list {\n list-style: disc;\n margin: 0;\n padding: 0 0 0 21px;\n }\n\n .${v}offer-details-list li {\n font-size: 14px;\n line-height: 1.2;\n color: #181417;\n margin-bottom: 4px;\n padding-left: 0;\n letter-spacing: -1px;\n }\n\n .${v}offer-details-list li:last-child {\n margin-bottom: 0;\n }\n\n .${v}offer-details-list li::marker {\n color: #6A6D81;\n }\n\n /* Offer Footer */\n .${v}offer-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-top: 1px solid #F2F2F2;\n gap: 12px;\n min-height: 74px;\n }\n\n /* Offer Merchant */\n .${v}offer-merchant {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .${v}offer-logo {\n width: 42px;\n height: 42px;\n border-radius: 8px;\n object-fit: contain;\n background-color: #F3F4F6;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 200ms ease-out;\n }\n\n .${v}offer-logo.${v}loaded {\n opacity: 1;\n }\n\n .${v}offer-merchant-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .${v}offer-merchant-name {\n font-size: 16px;\n font-weight: 590;\n color: #181417;\n line-height: 1.1;\n letter-spacing: -1px;\n }\n\n .${v}offer-merchant-desc {\n font-size: 14px;\n color: #6A6D81;\n line-height: 1.2;\n letter-spacing: -1px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* Claim Button */\n .${v}button-claim {\n padding: 10px 16px;\n height: 34px;\n min-width: 78px;\n font-size: 14px;\n font-weight: 590;\n border-radius: 999px;\n border: none;\n background: #5671FF;\n color: white;\n cursor: pointer;\n transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n font-family: var(--encore-font-family);\n white-space: nowrap;\n line-height: 1.2;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .${v}button-claim:hover:not(:disabled) {\n background: #4560E6;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(86, 113, 255, 0.3);\n }\n\n .${v}button-claim:active {\n transform: translateY(0);\n background: #3A52CC;\n }\n\n .${v}button-claim:focus {\n outline: 2px solid #5671FF;\n outline-offset: 2px;\n }\n\n .${v}button-claim:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n }\n\n /* Carousel Navigation */\n .${v}carousel-navigation {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 40px;\n padding: 28px 32px 32px;\n }\n\n .${v}nav-button {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n border: 1px solid #BBBBBB;\n background-color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #BBBBBB;\n transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n padding: 0;\n }\n\n .${v}nav-button:hover:not(:disabled) {\n border-color: #5671FF;\n color: #5671FF;\n transform: scale(1.05);\n }\n\n .${v}nav-button:active:not(:disabled) {\n transform: scale(0.95);\n }\n\n .${v}nav-button:focus {\n outline: 2px solid #5671FF;\n outline-offset: 2px;\n }\n\n .${v}nav-button svg {\n width: 20px;\n height: 20px;\n stroke-width: 2;\n }\n\n .${v}nav-button:not(:disabled) {\n border-color: #5671FF;\n color: #5671FF;\n }\n\n .${v}nav-button:disabled,\n .${v}nav-button.${v}disabled {\n opacity: 1;\n cursor: not-allowed;\n border-color: #BBBBBB;\n color: #BBBBBB;\n }\n\n .${v}nav-button:disabled:hover,\n .${v}nav-button.${v}disabled:hover {\n border-color: #BBBBBB;\n color: #BBBBBB;\n transform: none;\n }\n\n /* Loading State */\n .${v}loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 48px;\n }\n\n .${v}spinner {\n width: 40px;\n height: 40px;\n border: 3px solid #E5E7EB;\n border-top-color: var(--encore-primary-color);\n border-radius: 50%;\n animation: ${v}spin 0.8s linear infinite;\n }\n\n @keyframes ${v}spin {\n to { transform: rotate(360deg); }\n }\n\n /* Responsive: Mobile (0-767px) */\n @media (max-width: 767px) {\n .${v}modal {\n width: calc(100% - 24px);\n max-width: 100%;\n margin: 12px;\n }\n\n .${v}carousel-header {\n padding: 24px 20px 20px;\n }\n\n .${v}carousel-title {\n font-size: 22px;\n }\n\n .${v}carousel-subtitle {\n font-size: 14px;\n }\n\n .${v}carousel-cards {\n padding: 20px 40px;\n }\n\n .${v}carousel-item {\n flex: 0 0 calc(100% - 80px);\n }\n\n .${v}offer-banner {\n padding: 16px 16px 0;\n }\n\n .${v}offer-details {\n padding: 20px 20px;\n }\n\n .${v}offer-footer {\n padding: 16px 20px 24px;\n flex-wrap: wrap;\n gap: 12px;\n }\n\n .${v}offer-merchant {\n flex: 1 1 100%;\n }\n\n .${v}button-claim {\n flex: 1 1 100%;\n }\n\n .${v}carousel-navigation {\n padding: 20px 20px 24px;\n }\n }\n\n /* Responsive: Tablet (768-1023px) */\n @media (min-width: 768px) and (max-width: 1023px) {\n .${v}modal {\n max-width: 600px;\n }\n }\n\n /* Responsive: Desktop (1024px+) */\n @media (min-width: 1024px) {\n .${v}modal {\n max-width: 600px;\n }\n }\n\n /* Accessibility: High Contrast Mode */\n @media (prefers-contrast: high) {\n .${v}button {\n border: 2px solid currentColor;\n }\n }\n\n /* Accessibility: Reduced Motion */\n @media (prefers-reduced-motion: reduce) {\n .${v}backdrop,\n .${v}modal,\n .${v}button,\n .${v}close-button {\n transition: none;\n }\n\n .${v}spinner {\n animation: none;\n }\n }\n\n /* Focus Visible (for keyboard navigation) */\n .${v}button:focus-visible,\n .${v}close-button:focus-visible {\n outline: 2px solid var(--encore-primary-color);\n outline-offset: 2px;\n }\n\n /* ===== Success Screen ===== */\n .${v}success-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 3rem 2rem;\n text-align: center;\n min-height: 400px;\n animation: ${v}fade-in 0.3s ease-out;\n }\n\n .${v}success-icon {\n width: 80px;\n height: 80px;\n background: linear-gradient(135deg, var(--encore-primary-color), #10b981);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 48px;\n color: white;\n margin-bottom: 1.5rem;\n animation: ${v}scale-in 0.5s ease-out;\n }\n\n .${v}success-title {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--encore-text-color);\n margin: 0 0 0.75rem 0;\n }\n\n .${v}success-subtitle {\n font-size: 1.125rem;\n color: var(--encore-text-muted);\n margin: 0 0 2rem 0;\n line-height: 1.6;\n }\n\n .${v}success-details {\n background: rgba(79, 70, 229, 0.05);\n border-radius: 12px;\n padding: 1.5rem;\n margin-bottom: 2rem;\n min-width: 280px;\n }\n\n .${v}success-detail {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.5rem 0;\n }\n\n .${v}success-detail:not(:last-child) {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n }\n\n .${v}success-detail-label {\n font-size: 0.875rem;\n color: var(--encore-text-muted);\n font-weight: 500;\n }\n\n .${v}success-detail-value {\n font-size: 1rem;\n color: var(--encore-text-color);\n font-weight: 600;\n }\n\n .${v}success-button {\n background: linear-gradient(135deg, var(--encore-primary-color), #10b981);\n color: white;\n border: none;\n border-radius: var(--encore-border-radius);\n padding: 0.875rem 2.5rem;\n font-size: 1rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n }\n\n .${v}success-button:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);\n }\n\n .${v}success-button:active {\n transform: translateY(0);\n }\n\n .${v}success-button:focus-visible {\n outline: 2px solid var(--encore-primary-color);\n outline-offset: 2px;\n }\n\n @keyframes ${v}scale-in {\n from {\n transform: scale(0);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n `}(e),document.head.appendChild(t),n.debug("Encore styles injected successfully")}catch(e){n.error("Failed to inject Encore styles:",e)}}function x(e){return`${v}${e}`}class w{#b;#re=null;#se=null;#oe=null;#ae=null;#le=!1;#ce=null;#de=[];#ue=null;constructor(e={}){this.#b=new o,y(e)}show(){this.#le?n.warn("Modal is already visible"):(this.#ce=document.activeElement,this.#he(),this.#re&&document.body.appendChild(this.#re),this.#se&&document.body.appendChild(this.#se),document.body.classList.add(x("no-scroll")),requestAnimationFrame(()=>{this.#re?.classList.add(x("visible")),this.#se?.classList.add(x("visible"))}),this.#ge(),this.#fe(),this.#me(),this.#le=!0,this.#b.emit("show",void 0),n.debug("Modal shown"))}hide(){this.#le&&(this.#re?.classList.remove(x("visible")),this.#se?.classList.remove(x("visible")),setTimeout(()=>{this.#pe(),document.body.classList.remove(x("no-scroll")),this.#ce instanceof HTMLElement&&this.#ce.focus(),this.#le=!1,this.#b.emit("hide",void 0),n.debug("Modal hidden")},200))}isVisible(){return this.#le}setContent(e){this.#ae?(this.#ae.innerHTML="",this.#ae.appendChild(e),this.#fe()):n.error("Modal body not initialized")}on(e,t){return this.#b.on(e,t)}#he(){this.#re=document.createElement("div"),this.#re.className=x("backdrop"),this.#re.setAttribute("aria-hidden","true"),this.#se=document.createElement("div"),this.#se.className=x("modal"),this.#se.setAttribute("role","dialog"),this.#se.setAttribute("aria-modal","true"),this.#se.setAttribute("aria-labelledby",x("modal-title")),this.#oe=document.createElement("button"),this.#oe.className=x("close-button"),this.#oe.setAttribute("aria-label","Close modal"),this.#oe.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">\n <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />\n </svg>\n ',this.#ae=document.createElement("div"),this.#ae.className=x("modal-body"),this.#se.appendChild(this.#oe),this.#se.appendChild(this.#ae)}#pe(){this.#re?.remove(),this.#se?.remove(),this.#re=null,this.#se=null,this.#oe=null,this.#ae=null}#ge(){this.#oe?.addEventListener("click",()=>{this.#b.emit("close",void 0),this.hide()}),this.#re?.addEventListener("click",()=>{this.#b.emit("backdropClick",void 0),this.hide()}),this.#ue=this.#be.bind(this),document.addEventListener("keydown",this.#ue)}#be(e){if(this.#le)switch(e.key){case"Escape":e.preventDefault(),this.#b.emit("close",void 0),this.hide();break;case"Tab":e.preventDefault(),this.#ve(e.shiftKey)}}#ve(e){if(0===this.#de.length)return;const t=this.#de.findIndex(e=>e===document.activeElement);let n;n=e?t<=0?this.#de.length-1:t-1:t>=this.#de.length-1?0:t+1,this.#de[n]?.focus()}#fe(){if(!this.#se)return;const e=["button:not([disabled])","a[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");this.#de=Array.from(this.#se.querySelectorAll(e))}#me(){this.#de.length>0&&this.#de[0]?.focus()}destroy(){this.#ue&&document.removeEventListener("keydown",this.#ue),this.#b.removeAllListeners(),this.hide()}}class I{#b;#ye=null;#xe=null;constructor(){this.#b=new o}render(e){this.#ye=e,this.#xe=document.createElement("div"),this.#xe.className=x("offer-card");const t=this.#we(e.imageUrl,e.title);this.#xe.appendChild(t);const n=this.#Ie(e);this.#xe.appendChild(n);const i=this.#Ee(e);return this.#xe.appendChild(i),this.#xe}on(e,t){return this.#b.on(e,t)}#we(e,t){const i=document.createElement("div");i.className=x("offer-banner");const r=document.createElement("img");r.className=x("offer-banner-image"),r.alt=t??"Offer image",e?(r.src=e,r.complete?r.classList.add(x("loaded")):r.onload=()=>{r.classList.add(x("loaded"))},r.onerror=()=>{n.warn("Failed to load offer image, using fallback"),r.src=this.#Ce(),r.classList.add(x("loaded"))}):(r.src=this.#Ce(),r.classList.add(x("loaded"))),i.appendChild(r);const s=document.createElement("button");return s.className=x("banner-info-button"),s.setAttribute("aria-label","More information"),s.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">\n <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />\n </svg>\n ',s.addEventListener("click",e=>{e.stopPropagation(),n.debug("Info button clicked for offer",{title:t})}),i.appendChild(s),i}#Ce(){return`data:image/svg+xml;base64,${btoa('\n <svg xmlns="http://www.w3.org/2000/svg" width="600" height="240" viewBox="0 0 600 240">\n <rect width="600" height="240" fill="#E5E7EB"/>\n <text x="50%" y="50%" text-anchor="middle" dy=".3em" fill="#9CA3AF" font-family="sans-serif" font-size="18">\n Offer Image\n </text>\n </svg>\n ')}`}#Ie(e){const t=document.createElement("div");t.className=x("offer-details");const n=document.createElement("h3");n.className=x("offer-details-heading"),n.textContent="Offer details";const i=document.createElement("ul");if(i.className=x("offer-details-list"),e.instructions&&e.instructions.length>0)e.instructions.forEach(e=>{const t=document.createElement("li");t.textContent=e.subtitle||e.title,i.appendChild(t)});else if(e.description){const t=document.createElement("li");t.textContent=e.description,i.appendChild(t)}return t.appendChild(n),t.appendChild(i),t}#Ee(e){const t=document.createElement("div");t.className=x("offer-footer");const i=document.createElement("div");if(i.className=x("offer-merchant"),e.logoUrl){const t=document.createElement("img");t.className=x("offer-logo"),t.src=e.logoUrl,t.alt=`${e.merchantName??"Merchant"} logo`,t.complete?t.classList.add(x("loaded")):t.onload=()=>{t.classList.add(x("loaded"))},t.onerror=()=>{n.warn("Failed to load merchant logo",{merchantName:e.merchantName}),t.style.display="none"},i.appendChild(t)}const r=document.createElement("div");if(r.className=x("offer-merchant-text"),e.merchantName){const t=document.createElement("div");t.className=x("offer-merchant-name"),t.textContent=e.merchantName,r.appendChild(t)}if(e.quickInstructions){const t=document.createElement("div");t.className=x("offer-merchant-desc"),t.textContent=e.quickInstructions,r.appendChild(t)}i.appendChild(r);const s=document.createElement("button");return s.className=`${x("button")} ${x("button-claim")}`,s.textContent=e.ctaText??"Claim",s.setAttribute("aria-label",`Claim offer: ${e.title??"offer"}`),s.addEventListener("click",()=>{this.#ye&&this.#b.emit("claim",{offer:this.#ye})}),t.appendChild(i),t.appendChild(s),t}destroy(){this.#b.removeAllListeners(),this.#xe=null,this.#ye=null}}class E{#b;#$e;#ke=0;#xe=null;#Ae=null;#Te=null;#Ne=[];#Se=null;#Re=null;constructor(e){if(this.#b=new o,this.#$e=e,0===e.length)throw new Error("OfferCarousel requires at least one offer");this.#Le()}render(){this.#xe=document.createElement("div"),this.#xe.className=x("carousel"),this.#Se=document.createElement("div"),this.#Se.setAttribute("role","status"),this.#Se.setAttribute("aria-live","polite"),this.#Se.setAttribute("aria-atomic","true"),this.#Se.className="sr-only",this.#Se.style.position="absolute",this.#Se.style.width="1px",this.#Se.style.height="1px",this.#Se.style.padding="0",this.#Se.style.margin="-1px",this.#Se.style.overflow="hidden",this.#Se.style.clip="rect(0, 0, 0, 0)",this.#Se.style.whiteSpace="nowrap",this.#Se.style.border="0";const e=this.#Me();if(this.#xe.appendChild(e),this.#Ae=document.createElement("div"),this.#Ae.className=x("carousel-cards"),this.#xe.appendChild(this.#Se),this.#xe.appendChild(this.#Ae),this.#$e.length>1){const e=this.#Oe();this.#xe.appendChild(e)}return this.#Fe(),this.#Ue(),this.#De(0,!1),this.#xe}on(e,t){return this.#b.on(e,t)}getCurrentIndex(){return this.#ke}getTotalOffers(){return this.#$e.length}next(){this.#ke<this.#$e.length-1&&(this.#ke++,this.#De(this.#ke),this.#Be(),this.#qe(`Showing offer ${this.#ke+1} of ${this.#$e.length}`),n.debug(`Navigated to offer ${this.#ke+1}`))}previous(){this.#ke>0&&(this.#ke--,this.#De(this.#ke),this.#Be(),this.#qe(`Showing offer ${this.#ke+1} of ${this.#$e.length}`),n.debug(`Navigated to offer ${this.#ke+1}`))}#Fe(){if(!this.#Ae)return;const e=this.#Ae;this.#$e.forEach((t,n)=>{const i=new I,r=i.render(t),s=document.createElement("div");s.className=x("carousel-item"),s.setAttribute("data-index",n.toString()),s.appendChild(r),i.on("claim",()=>{this.#b.emit("offerClaim",{offer:t,index:n})}),this.#Ne.push(i),e.appendChild(s)}),requestAnimationFrame(()=>{e.classList.add(x("cards-ready"))})}#De(e,t=!0){if(!this.#Ae)return;const n=this.#Ae.querySelectorAll(`.${x("carousel-item")}`),i=n[e];if(i){i.scrollIntoView({behavior:t?"smooth":"auto",block:"nearest",inline:"center"}),n.forEach((t,n)=>{n===e?t.classList.add(x("active")):t.classList.remove(x("active"))});const r=this.#$e[e];r&&this.#b.emit("offerView",{offer:r,index:e})}}#Me(){const e=document.createElement("div");e.className=x("carousel-header");const t=document.createElement("h2");t.className=x("carousel-title"),t.id=x("modal-title"),t.textContent="Unlock 10 free articles – choose an offer below";const n=document.createElement("p");return n.className=x("carousel-subtitle"),n.textContent="Activate one of these partner offers and get 10 free articles. No credit card required.",e.appendChild(t),e.appendChild(n),e}#Oe(){const e=document.createElement("div");e.className=x("carousel-navigation");const t=document.createElement("button");t.className=x("nav-button"),t.setAttribute("aria-label","Previous offer"),t.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="transform: rotate(90deg);">\n <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />\n </svg>\n ',t.addEventListener("click",()=>this.previous());const n=document.createElement("button");return n.className=x("nav-button"),n.setAttribute("aria-label","Next offer"),n.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="transform: rotate(270deg);">\n <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />\n </svg>\n ',n.addEventListener("click",()=>this.next()),e.appendChild(t),e.appendChild(n),this.#Te=e,this.#Be(t,n),e}#Be(e,t){if(!this.#Te)return;const n=this.#Te.querySelectorAll(`.${x("nav-button")}`),i=e??n[0],r=t??n[1];i&&(i.disabled=0===this.#ke,i.classList.toggle(x("disabled"),0===this.#ke)),r&&(r.disabled=this.#ke===this.#$e.length-1,r.classList.toggle(x("disabled"),this.#ke===this.#$e.length-1))}#Ue(){this.#Re=this.#Ke.bind(this),document.addEventListener("keydown",this.#Re)}#Ke(e){if(this.#xe)switch(e.key){case"ArrowLeft":e.preventDefault(),this.previous();break;case"ArrowRight":e.preventDefault(),this.next()}}#qe(e){this.#Se&&(this.#Se.textContent=e)}#Le(){this.#$e.forEach(e=>{e.imageUrl&&((new Image).src=e.imageUrl,n.debug("Preloading offer image",{offerId:e.id,url:e.imageUrl})),e.logoUrl&&((new Image).src=e.logoUrl,n.debug("Preloading merchant logo",{offerId:e.id,url:e.logoUrl}))})}destroy(){this.#Re&&document.removeEventListener("keydown",this.#Re),this.#Ne.forEach(e=>e.destroy()),this.#Ne=[],this.#b.removeAllListeners(),this.#xe=null,this.#Ae=null,this.#Te=null,this.#Se=null}}const C=e=>`encore-success-${e}`;class ${#xe=null;#b;#t;#Pe=null;constructor(e){this.#t=e,this.#b=new o}render(){this.#xe=document.createElement("div"),this.#xe.className=C("container");const e=document.createElement("div");e.className=C("icon"),e.innerHTML="✓";const t=document.createElement("h2");t.className=C("title"),t.textContent=this.#t.titleText??"Success!";const i=document.createElement("p");i.className=C("subtitle"),i.textContent=this.#t.subtitleText??this.#ze(this.#t.entitlement);const r=document.createElement("div");r.className=C("details"),r.innerHTML=this.#_e(this.#t.entitlement);const s=document.createElement("button");return s.className=C("button"),s.textContent=this.#t.buttonText??"Continue",s.setAttribute("type","button"),s.addEventListener("click",()=>this.#Ge()),this.#xe.appendChild(e),this.#xe.appendChild(t),this.#xe.appendChild(i),this.#xe.appendChild(r),this.#xe.appendChild(s),this.#t.autoDismissMs&&this.#t.autoDismissMs>0&&this.#je(this.#t.autoDismissMs),n.debug("Success screen rendered"),this.#xe}on(e,t){return this.#b.on(e,t)}destroy(){null!==this.#Pe&&(clearTimeout(this.#Pe),this.#Pe=null),this.#xe&&(this.#xe.remove(),this.#xe=null),this.#b.removeAllListeners(),n.debug("Success screen destroyed")}#Ge(){n.debug("User clicked continue on success screen"),this.#b.emit("continue",void 0)}#je(e){this.#Pe=window.setTimeout(()=>{n.debug("Success screen auto-dismissing"),this.#b.emit("continue",void 0)},e)}#ze(e){switch(e.type){case"freeTrial":return`You've unlocked a ${e.value??""} ${e.unit??"day"} free trial!`;case"discount":return`You've received a ${e.value??""}${"percent"===e.unit?"%":""} discount!`;case"credit":return`You've earned $${e.value??"0"} in credits!`;default:return"You've unlocked a special offer!"}}#_e(e){const t=[];if("freeTrial"===e.type)t.push(`<div class="${C("detail")}">\n <span class="${C("detail-label")}">Type:</span>\n <span class="${C("detail-value")}">Free Trial</span>\n </div>`),e.value&&e.unit&&t.push(`<div class="${C("detail")}">\n <span class="${C("detail-label")}">Duration:</span>\n <span class="${C("detail-value")}">${e.value} ${e.unit}</span>\n </div>`);else if("discount"===e.type){if(t.push(`<div class="${C("detail")}">\n <span class="${C("detail-label")}">Type:</span>\n <span class="${C("detail-value")}">Discount</span>\n </div>`),e.value&&e.unit){const n="percent"===e.unit?`${e.value}%`:`$${e.value}`;t.push(`<div class="${C("detail")}">\n <span class="${C("detail-label")}">Amount:</span>\n <span class="${C("detail-value")}">${n}</span>\n </div>`)}}else"credit"===e.type&&(t.push(`<div class="${C("detail")}">\n <span class="${C("detail-label")}">Type:</span>\n <span class="${C("detail-value")}">Credit</span>\n </div>`),e.value&&t.push(`<div class="${C("detail")}">\n <span class="${C("detail-label")}">Amount:</span>\n <span class="${C("detail-value")}}">$${e.value}</span>\n </div>`));return t.join("")}}class k{#He=null;#Ve=null;#Qe=!1;start(e){this.#Qe?n.warn("FocusDetector already active"):(this.#He=()=>{n.debug("Window focused"),e()},this.#Ve=()=>{"visible"===document.visibilityState&&(n.debug("Document became visible"),e())},window.addEventListener("focus",this.#He),document.addEventListener("visibilitychange",this.#Ve),this.#Qe=!0,n.debug("FocusDetector started"))}stop(){this.#Qe&&(this.#He&&(window.removeEventListener("focus",this.#He),this.#He=null),this.#Ve&&(document.removeEventListener("visibilitychange",this.#Ve),this.#Ve=null),this.#Qe=!1,n.debug("FocusDetector stopped"))}isActive(){return this.#Qe}}function A(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=15&(crypto.getRandomValues(new Uint8Array(1))[0]??0);return("x"===e?t:3&t|8).toString(16)})}const T="0.1.0",N="user_id",S="user_attributes",R=new class{#We;#h;#g=null;#Je=null;#Ye=null;#Ze=null;#Xe=null;#f=null;#et={};#tt=!1;#nt=!1;constructor(){this.#We=new i,this.#h=new s}configure(e){if(this.#We.configure(e)){this.#it();const e=this.#We.getBaseURL();e&&(this.#g=new p(this.#We.getApiKey()??"",e),this.#f&&(this.#Je=new c(this.#h,this.#g,this.#f),this.#Ye=new u(this.#h,this.#g,this.#f),this.#Ze=new h(this.#g,this.#f)),this.#Xe=new k),n.info("Encore SDK initialized successfully",{version:T})}}#it(){const e=this.#h.get(N);e?(this.#f=e,n.debug("Loaded existing user ID:",e)):(this.#f=A(),this.#h.set(N,this.#f),n.debug("Generated new user ID:",this.#f));const t=this.#h.get(S);t&&(this.#et=t,n.debug("Loaded user attributes"))}#rt(){return!!this.#We.isConfigured()||(n.error("SDK not configured. Call Encore.configure() first."),!1)}identify(e,t){if(!this.#rt())return;if(!e||"string"!=typeof e)return void n.error("identify() requires a valid user ID string");const i=this.#f;this.#f=e,this.#h.set(N,e),t&&this.setUserAttributes(t),i!==e&&(n.info("User identified:",e),this.#Je&&this.#Je.setUserId(e),this.#Ye&&this.#Ye.setUserId(e),this.#Ze&&this.#Ze.setUserId(e))}getCurrentUserId(){return this.#f}reset(){this.#rt()&&(n.info("Resetting SDK"),this.#h.clear(),this.#f=A(),this.#h.set(N,this.#f),this.#et={},this.#Je&&(this.#Je.clearCache(),this.#g&&this.#f&&(this.#Je=new c(this.#h,this.#g,this.#f))),this.#Ye&&(this.#Ye.clearQueue(),this.#Ye.destroy(),this.#g&&this.#f&&(this.#Ye=new u(this.#h,this.#g,this.#f))),this.#Ze&&(this.#Ze.clearCache(),this.#g&&this.#f&&(this.#Ze=new h(this.#g,this.#f))),this.#Xe?.isActive()&&this.#Xe.stop(),n.debug("SDK reset complete",{newUserId:this.#f}))}getVersion(){return T}setLogLevel(e){n.setLogLevel(e)}setUserAttributes(e){this.#rt()&&(e&&"object"==typeof e?(this.#et={...this.#et,...e,custom:{...this.#et.custom,...e.custom}},this.#h.set(S,this.#et),n.debug("User attributes updated",this.#et)):n.error("setUserAttributes() requires a valid UserAttributes object"))}getUserAttributes(){return{...this.#et}}async presentOffer(t){if(!this.#rt()){const n={type:"error",error:{code:e.INITIALIZATION_ERROR,message:"SDK not configured"}};return t?.onNotGranted&&t.onNotGranted(n),t?.onError&&t.onError({code:e.INITIALIZATION_ERROR,message:"SDK not configured"}),{granted:!1,reason:n}}if(this.#tt){n.warn("Presentation already in progress");const i={type:"error",error:{code:e.UNKNOWN_ERROR,message:"Presentation already in progress"}};return t?.onNotGranted&&t.onNotGranted(i),{granted:!1,reason:i}}this.#tt=!0;try{const e=await this.#st(t);return e.granted&&e.entitlement&&t?.onGranted?t.onGranted(e.entitlement):!e.granted&&e.reason&&t?.onNotGranted&&t.onNotGranted(e.reason),e}catch(i){n.error("Error during presentation",i);const r={type:"error",error:{code:e.UNKNOWN_ERROR,message:i instanceof Error?i.message:"Unknown error"}};return t?.onError&&"string"!=typeof r&&"error"===r.type&&t.onError(r.error),t?.onNotGranted&&t.onNotGranted(r),{granted:!1,reason:r}}finally{this.#tt=!1}}isActive(e,t){return!!this.#rt()&&(this.#Je?this.#Je.isActive(e,t):(n.error("EntitlementManager not initialized"),!1))}async refreshEntitlements(){this.#rt()&&(this.#Je?await this.#Je.refreshEntitlements():n.error("EntitlementManager not initialized"))}didGrant(e,t){this.#rt()&&(this.#Ye?t&&"string"==typeof t?this.#Ye.sendGrantSignal(t,e):n.error("didGrant() requires a valid transaction ID"):n.error("SignalManager not initialized"))}async waitForVerification(e,t){if(!this.#rt())return n.error("SDK not configured"),"failed";if(!this.#g)return n.error("API client not initialized"),"failed";if(!e)return n.error("waitForVerification() requires a transaction ID"),"failed";try{n.debug("Starting verification wait",{transactionId:e,timeout:t});const i={transactionId:e};void 0!==t&&(i.timeout=t);const r=new g(this.#g,i),s=await r.poll();return"verified"===s&&await this.refreshEntitlements(),s}catch(t){return n.error("Error during verification wait",{transactionId:e,error:t}),"failed"}}on(e,t){return this.#rt()?this.#Je?this.#Je.getEventEmitter().on(e,t):(n.error("EntitlementManager not initialized"),()=>{}):()=>{}}observeEntitlement(e,t){return{subscribe:i=>{if(!this.#rt())return()=>{};if(!this.#Je)return n.error("EntitlementManager not initialized"),()=>{};const r=this.#Je.isActive(e,t);return i(r),this.on("entitlementChanged",n=>{const r=n.scope;JSON.stringify(n.entitlementType)===JSON.stringify(e)&&("verified"===t&&"verified"!==r||i(n.isActive))})}}}placement(){return new f(async()=>this.presentOffer())}async#st(t){if(!this.#Ze||!this.#g)return n.error("Managers not initialized"),{granted:!1,reason:{type:"error",error:{code:e.INITIALIZATION_ERROR,message:"Managers not initialized"}}};try{this.#nt||(y({}),this.#nt=!0),n.debug("Fetching offers");const{offers:t,uiConfiguration:i}=await this.#Ze.fetchOffers(this.#et);if(0===t.length)return n.info("No offers available"),{granted:!1,reason:"noOffersAvailable"};const r={...this.#We.getUIConfiguration(),...i},s=new Map,o=new Set;t.forEach(e=>{s.set(e.id,A())});const a=new w,l=new E(t),c=await new Promise(t=>{l.on("offerClaim",i=>{const o=i.offer;n.debug("User claimed offer",{offerId:o.id}),(async()=>{try{if(!this.#Ze)throw new Error("OfferManager not initialized");const e=s.get(o.id),i=await this.#Ze.startTransaction(o.campaignId,o.creativeId,e);this.#ot(o.advertiserUrl)||n.warn("Failed to open advertiser URL (popup blocked?)"),this.didGrant("provisional",i),await this.refreshEntitlements(),this.#Xe&&!this.#Xe.isActive()&&this.#Xe.start(()=>{(async()=>{n.debug("User returned to app, refreshing entitlements"),await this.refreshEntitlements()})()}),this.#at(a,o.entitlement,()=>{a.hide(),t({granted:!0,entitlement:o.entitlement})},r)}catch(i){n.error("Error starting transaction",{offerId:o.id,error:i}),a.hide(),t({granted:!1,reason:{type:"error",error:{code:e.UNKNOWN_ERROR,message:i instanceof Error?i.message:"Transaction failed"}}})}})()}),l.on("complete",e=>{e.claimed||(n.debug("User declined last offer"),l.destroy(),a.hide(),t({granted:!1,reason:"userDeclinedLastOffer"}))}),a.on("close",()=>{n.debug("User closed modal"),l.destroy(),t({granted:!1,reason:"userClosedModal"})}),a.on("backdropClick",()=>{n.debug("User clicked outside modal"),l.destroy(),a.hide(),t({granted:!1,reason:"userClickedOutside"})}),l.on("offerView",e=>{const{offer:t}=e;if(o.has(t.id))return void n.debug("Impression already logged for this modal session",{offerId:t.id});const i=s.get(t.id);i&&this.#Ze&&(this.#Ze.logImpression(i,t),o.add(t.id))}),a.show();const i=l.render();a.setContent(i)});return a.destroy(),l.destroy(),c}catch(t){return n.error("Error in presentation flow",t),{granted:!1,reason:{type:"error",error:{code:e.UNKNOWN_ERROR,message:t instanceof Error?t.message:"Unknown error"}}}}}#ot(e){try{const t=window.open(e,"_blank","noopener,noreferrer");return!!t&&(t.focus(),!0)}catch(t){return n.error("Failed to open advertiser URL",{url:e,error:t}),!1}}#at(e,t,i,r){try{const s={entitlement:t,autoDismissMs:0};r?.creditClaimedTitleText&&(s.titleText=r.creditClaimedTitleText),r?.creditClaimedSubtitleText&&(s.subtitleText=r.creditClaimedSubtitleText),r?.applyCreditsButtonText&&(s.buttonText=r.applyCreditsButtonText);const o=new $(s);o.on("continue",()=>{o.destroy(),i()});const a=o.render();e.setContent(a),n.debug("Success screen displayed")}catch(e){n.error("Failed to show success screen",e),i()}}};export{R as Encore,R as default};
1
+ var e;!function(e){e.NETWORK_ERROR="NETWORK_ERROR",e.API_ERROR="API_ERROR",e.CONFIGURATION_ERROR="CONFIGURATION_ERROR",e.INITIALIZATION_ERROR="INITIALIZATION_ERROR",e.STORAGE_ERROR="STORAGE_ERROR",e.INVALID_REQUEST="INVALID_REQUEST",e.UNAUTHORIZED="UNAUTHORIZED",e.NOT_FOUND="NOT_FOUND",e.TIMEOUT="TIMEOUT",e.UNKNOWN_ERROR="UNKNOWN_ERROR"}(e||(e={}));const t="[Encore SDK]",n=new class{#e="none";setLogLevel(e){this.#e=e}getLogLevel(){return this.#e}debug(...e){"debug"===this.#e&&console.debug(t,...e)}info(...e){"debug"===this.#e&&console.info(t,...e)}warn(...e){"debug"===this.#e&&console.warn(t,...e)}error(...e){"debug"===this.#e&&console.error(t,...e)}critical(...e){console.error(t,"[CRITICAL]",...e)}};class i{#t=null;#n=!1;configure(e){if(this.#n)return n.warn("SDK already configured. Ignoring subsequent configure() call."),!1;const t=this.#i(e);if(t)return n.error("Invalid configuration:",t),!1;const i=e.logLevel??"none",r=e.environment??"production";return this.#t={apiKey:e.apiKey,userId:e.userId,environment:r,baseURL:this.#r(r),logLevel:i,uiConfiguration:e.uiConfiguration??{}},n.setLogLevel(i),this.#n=!0,n.debug("SDK configured successfully",this.#t),!0}#i(e){return e.apiKey&&"string"==typeof e.apiKey&&""!==e.apiKey.trim()?e.environment&&!["production","localhost"].includes(e.environment)?"environment must be 'production' or 'localhost'":e.logLevel&&!["none","debug"].includes(e.logLevel)?"logLevel must be 'none' or 'debug'":null:"apiKey is required and must be a non-empty string"}#r(e){return"localhost"===e?"http://localhost:8080/encore/v1":"https://svc.joinyaw.com/product/encore/v1"}getConfig(){return this.#t}isConfigured(){return this.#n}getApiKey(){return this.#t?.apiKey??null}getBaseURL(){return this.#t?.baseURL??null}getEnvironment(){return this.#t?.environment??null}getUIConfiguration(){return this.#t?.uiConfiguration??{}}reset(){this.#t=null,this.#n=!1,n.debug("Configuration reset")}}const r="encore_";class o{#o;#s;constructor(){this.#s=new Map,this.#o=this.#a(),n.debug(`StorageManager initialized with ${this.#o}`)}#a(){return this.#l("localStorage")?"localStorage":this.#l("sessionStorage")?"sessionStorage":(n.warn("Neither localStorage nor sessionStorage available, using in-memory storage"),"memory")}#l(e){try{const t="localStorage"===e?localStorage:sessionStorage,n="__encore_test__";return t.setItem(n,"test"),t.removeItem(n),!0}catch{return!1}}#c(){return"localStorage"===this.#o?localStorage:"sessionStorage"===this.#o?sessionStorage:this.#s}#d(e){return`${r}${e}`}set(e,t){if(void 0===t)return void n.warn(`Attempted to store undefined value for key: ${e}`);const i=this.#d(e),r=JSON.stringify(t);try{const t=this.#c();t instanceof Map?t.set(i,r):t.setItem(i,r),n.debug(`Stored ${e} in ${this.#o}`)}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?n.error("Storage quota exceeded:",e):n.error("Failed to store item:",e),"memory"!==this.#o&&(n.warn("Falling back to memory storage for this item"),this.#s.set(i,r))}}get(e){const t=this.#d(e);try{const i=this.#c();let r=null;return r=i instanceof Map?i.get(t)??null:i.getItem(t),null===r||"undefined"===r?("undefined"===r&&(n.warn(`Found corrupted value "undefined" for key: ${e}, cleaning up`),this.remove(e)),null):JSON.parse(r)}catch(t){return n.error(`Failed to retrieve ${e}:`,t),this.remove(e),null}}remove(e){const t=this.#d(e);try{const i=this.#c();i instanceof Map?i.delete(t):i.removeItem(t),n.debug(`Removed ${e} from ${this.#o}`)}catch(t){n.error(`Failed to remove ${e}:`,t)}}clear(){try{const e=this.#c();if(e instanceof Map)for(const t of e.keys())t.startsWith(r)&&e.delete(t);else{const t=[];for(let n=0;n<e.length;n++){const i=e.key(n);i?.startsWith(r)&&t.push(i)}t.forEach(t=>e.removeItem(t))}n.debug(`Cleared all Encore data from ${this.#o}`)}catch(e){n.error("Failed to clear storage:",e)}}getStorageType(){return this.#o}}const s="signal_queue";class a{#u;#h;#p;#f=[];#m=!1;#g;constructor(e,t,n){this.#u=e,this.#h=t,this.#p=n,this.#b(),this.#v(),this.processQueue()}setUserId(e){this.#p!==e&&(n.debug("SignalManager: User ID changed, clearing queue"),this.#p=e,this.#f=[],this.#b())}#b(){try{const e=`${this.#p}_${s}`,t=this.#u.get(e);t&&Array.isArray(t)&&(this.#f=t,n.debug("Loaded grant signal queue from storage",{count:t.length}))}catch(e){n.error("Failed to load grant signal queue from storage:",e)}}#y(){try{const e=`${this.#p}_${s}`;this.#u.set(e,this.#f),n.debug("Saved grant signal queue to storage",{count:this.#f.length})}catch(e){n.error("Failed to save grant signal queue to storage:",e)}}enqueue(e,t){const i=this.#f.some(n=>n.transactionId===e&&n.grantType===t);if(i)return void n.debug("Grant signal already in queue, skipping",{transactionId:e,grantType:t});const r={transactionId:e,grantType:t,timestamp:(new Date).toISOString(),attempts:0};this.#f.push(r),this.#y(),n.info("Grant signal added to queue",{transactionId:e,grantType:t})}dequeue(e){const t=this.#f.findIndex(t=>t.transactionId===e.transactionId&&t.grantType===e.grantType);-1!==t&&(this.#f.splice(t,1),this.#y(),n.debug("Grant signal removed from queue",{transactionId:e.transactionId,grantType:e.grantType}))}getQueue(){return[...this.#f]}clearQueue(){this.#f=[],this.#y(),n.debug("Grant signal queue cleared")}async sendGrantSignal(e,t){try{if(n.debug("Sending grant signal",{transactionId:e,grantType:t}),!await this.#h.sendGrantSignal(e,t))throw new Error("Grant signal failed (returned false)");n.info("Grant signal sent successfully",{transactionId:e,grantType:t})}catch{n.warn("Failed to send grant signal, adding to queue",{transactionId:e,grantType:t}),this.enqueue(e,t)}}async processQueue(){if(this.#m)n.debug("Queue processing already in progress, skipping");else if(0!==this.#f.length){this.#m=!0,n.info("Processing grant signal queue",{count:this.#f.length});try{for(const e of[...this.#f])await this.#x(e),this.#f.length>1&&await this.#w(100)}finally{this.#m=!1}}}async#x(e){if(e.attempts>=3)return n.error("Grant signal max attempts reached, removing from queue",{transactionId:e.transactionId,grantType:e.grantType,attempts:e.attempts}),void this.dequeue(e);if(e.lastAttemptAt){const t=new Date(e.lastAttemptAt).getTime(),i=Date.now(),r=1e3*Math.pow(2,e.attempts-1),o=i-t;if(o<r)return void n.debug("Skipping signal, waiting for backoff period",{transactionId:e.transactionId,remainingWait:r-o})}e.attempts++,e.lastAttemptAt=(new Date).toISOString(),this.#y();try{n.debug("Attempting to send queued grant signal",{transactionId:e.transactionId,grantType:e.grantType,attempt:e.attempts}),await this.#h.sendGrantSignal(e.transactionId,e.grantType)?(n.info("Queued grant signal sent successfully",{transactionId:e.transactionId,grantType:e.grantType}),this.dequeue(e)):n.warn("Grant signal failed, will retry",{transactionId:e.transactionId,attempt:e.attempts})}catch(t){n.warn("Failed to send queued grant signal, will retry",{transactionId:e.transactionId,attempt:e.attempts,error:t})}}#v(){this.#g=function(e){const t=()=>{n.debug("Network status: online"),e()};return window.addEventListener("online",t),()=>{window.removeEventListener("online",t)}}(()=>{n.debug("Network came online, processing grant signal queue"),this.processQueue()})}destroy(){this.#g&&(this.#g(),this.#g=void 0)}#w(e){return new Promise(t=>setTimeout(t,e))}}class l{#h;#p;#E=[];#I=null;#C=null;constructor(e,t){this.#h=e,this.#p=t}async fetchOffers(e,t=!0){if(t&&this.#E.length>0&&this.#C)return n.debug("Using cached offers",{count:this.#E.length}),{offers:[...this.#E],uiConfiguration:this.#I??void 0};try{n.debug("Fetching offers from API",{userId:this.#p});const t=await this.#h.fetchOffers(this.#p,e);return 0===t.offers?.length?(n.info("No offers available for user"),this.#E=[],this.#I=t.uiConfiguration??null,this.#C=Date.now(),{offers:[],uiConfiguration:t.uiConfiguration}):(this.#E=t.offers,this.#I=t.uiConfiguration??null,this.#C=Date.now(),n.info("Offers fetched successfully",{count:t.offers.length,offerIds:t.offers.map(e=>e.id)}),{offers:[...t.offers],uiConfiguration:t.uiConfiguration})}catch(e){throw n.error("Failed to fetch offers",e),e}}logImpression(e,t){try{const i=window.location.hostname;n.debug("Logging impression",{impressionId:e,campaignId:t.campaignId,creativeId:t.creativeId,appBundleId:i}),this.#h.logImpression(e,this.#p,t.campaignId,t.creativeId,i).then(t=>{t&&n.debug("Impression logged successfully",{impressionId:e})}).catch(t=>{n.error("Failed to log impression (non-blocking)",{impressionId:e,error:t})})}catch(t){n.error("Failed to log impression (non-blocking)",{impressionId:e,error:t})}}async startTransaction(e,t,i){try{n.debug("Starting transaction",{campaignId:e,creativeId:t,impressionId:i});const r=await this.#h.startTransaction(e,this.#p,t,i);return n.info("Transaction started",{transactionId:r,campaignId:e,creativeId:t}),r}catch(i){throw n.error("Failed to start transaction",{campaignId:e,creativeId:t,error:i}),i}}clearCache(){this.#E=[],this.#C=null,n.debug("Offer cache cleared")}setUserId(e){this.#p=e,this.clearCache(),n.debug("OfferManager user ID updated",{userId:e})}}class c{#h;#$;#T;#k=0;#A=1e3;#L=8e3;#N=null;#S=!1;constructor(e,t){this.#h=e,this.#$=t.transactionId,this.#T=t.timeout??3e4}async poll(){return this.#S?(n.warn("Verification polling already in progress",{transactionId:this.#$}),"pending"):(this.#S=!0,this.#k=Date.now(),n.debug("Starting verification polling",{transactionId:this.#$,timeout:this.#T}),this.#R())}stop(){this.#S=!1,null!==this.#N&&(clearTimeout(this.#N),this.#N=null),n.debug("Verification polling stopped",{transactionId:this.#$})}async#R(){for(;this.#S;){const e=Date.now()-this.#k;if(e>=this.#T)return n.warn("Verification polling timeout",{transactionId:this.#$,elapsed:e}),this.stop(),"pending";try{const e=await this.#h.checkVerificationStatus(this.#$);if(n.debug("Verification status checked",{transactionId:this.#$,status:e.status}),"verified"===e.status)return n.info("Transaction verified",{transactionId:this.#$,verifiedAt:e.verifiedAt}),this.stop(),"verified";if("failed"===e.status)return n.warn("Transaction failed verification",{transactionId:this.#$}),this.stop(),"failed";await this.#w(this.#A),this.#A=Math.min(2*this.#A,this.#L)}catch(e){n.error("Error checking verification status",{transactionId:this.#$,error:e}),await this.#w(this.#A)}}return"pending"}async#w(e){return new Promise(t=>{this.#N=window.setTimeout(()=>{this.#N=null,t()},e)})}}class d{#U=null;#M=null;#F=null;#O;constructor(e){this.#O=e}onGranted(e){return this.#U=e,this}onNotGranted(e){return this.#M=e,this}onLoadingStateChange(e){return this.#F=e,this}async show(){try{this.#F&&this.#F(!0),n.debug("PlacementBuilder: Executing presentation");const e=await this.#O();return this.#F&&this.#F(!1),e.granted&&e.entitlement&&this.#U?this.#U(e.entitlement):!e.granted&&this.#M&&e.reason&&this.#M(e.reason),e}catch(t){this.#F&&this.#F(!1),n.error("PlacementBuilder: Error during presentation",t);const i={type:"error",error:{code:e.UNKNOWN_ERROR,message:t instanceof Error?t.message:"Unknown error"}};return this.#M&&this.#M(i),{granted:!1,reason:i}}}}function u(e,t){let n=e;for(const[e,i]of Object.entries(t))n=n.replace(`:${e}`,encodeURIComponent(i));return n}const h="0.1.5";class p{#B;#D;#q;constructor(e,t){this.#B=e,this.#D=t,this.#q=new Map}setApiKey(e){this.#B=e}setBaseURL(e){this.#D=e}async get(e,t){return this.#K({url:`${this.#D}${e}`,options:{method:"GET",...t},apiKey:this.#B})}async post(e,t,n){return this.#K({url:`${this.#D}${e}`,options:{method:"POST",body:t,...n},apiKey:this.#B})}async#K(e){const{url:t,options:i,apiKey:r}=e,o=this.#P(t,i),s=this.#q.get(o);if(s)return n.debug("Deduplicating request:",t),s;const a=this.#z(t,i,r);this.#q.set(o,a);try{return await a}finally{this.#q.delete(o)}}async#z(e,t,i){const r=t.retries??3;let o=null;for(let s=0;s<=r;s++)try{if(s>0){const e=1e3*Math.pow(2,s-1);n.debug(`Retrying request (attempt ${s}/${r}) after ${e}ms`),await this.#w(e)}return await this.#H(e,t,i)}catch(e){if(o=e,this.#G(e))throw e;if(s===r)throw n.error(`Request failed after ${r} retries:`,e),e;n.warn("Request failed, will retry:",e)}throw o??new Error("Request failed")}async#H(e,t,i){const r=t.timeout??3e4,o=new AbortController,s=setTimeout(()=>o.abort(),r);try{const r={"X-API-Key":i,"Content-Type":"application/json","User-Agent":`Encore-Web-SDK/${h}`,...t.headers},s={method:t.method,headers:r,signal:o.signal};t.body&&(s.body=JSON.stringify(t.body)),n.debug(`${t.method} ${e}`);const a=await fetch(e,s);return a.ok||await this.#_(a),await a.json()}catch(e){if(e instanceof Error){if("AbortError"===e.name)throw new Error("Request timeout");if(this.#j(e))throw new Error(`Network error: ${e.message}`)}if(e instanceof Error)throw e;throw new Error(String(e))}finally{clearTimeout(s)}}async#_(t){let n,i=`HTTP ${t.status}: ${t.statusText}`;try{const e=await t.json();if("object"==typeof e&&null!==e&&"error"in e&&"object"==typeof e.error&&null!==e.error){const t=e.error;i=("string"==typeof t.message?t.message:void 0)??i,n="string"==typeof t.code?t.code:void 0}}catch{}const r=n?{code:n,message:i}:{code:e.API_ERROR,statusCode:t.status,message:i},o=new Error(i);throw Object.assign(o,r),o}#G(e){if("object"==typeof e&&null!==e&&"statusCode"in e&&void 0!==e.statusCode){const t=e.statusCode;return t>=400&&t<500}return!1}#j(e){return e.message.includes("fetch")||e.message.includes("network")||e.message.includes("ECONNREFUSED")||e.message.includes("ETIMEDOUT")}#P(e,t){const n=t.body?JSON.stringify(t.body):"";return`${t.method}:${e}:${n}`}#w(e){return new Promise(t=>setTimeout(t,e))}async fetchOffers(e,t){try{const n=await this.post("/offers/show",{userId:e,attributes:t,sdk_version:h}),i=[];for(const e of n.offers){const t=e.campaign;for(const e of t.creatives){const n={id:e.id,title:e.title,description:e.quickInstructions??e.subtitle??e.description??"",imageUrl:e.primaryImageUrl,ctaText:e.ctaText,advertiserUrl:e.destinationUrl,campaignId:t.id,creativeId:e.id,quickInstructions:e.quickInstructions??"",instructions:e.instructions??[],tooltipText:e.tooltipText??"",entitlement:{type:"credit",value:100,unit:"dollars"},...t.merchantName&&{merchantName:t.merchantName},...e.logoUrl&&{logoUrl:e.logoUrl},...e.instructions&&{instructions:e.instructions},...e.quickInstructions&&{quickInstructions:e.quickInstructions},...e.trackingParameters&&{trackingParameters:e.trackingParameters}};i.push(n)}}return{offers:i,uiConfiguration:n.uiConfiguration}}catch(e){throw n.error("Failed to fetch offers:",e),e}}async startTransaction(e,t,i,r){try{return(await this.post("/transactions/start",{campaignId:e,userId:t,creativeId:i,...r&&{impressionId:r}})).transactionId}catch(e){throw n.error("Failed to start transaction:",e),e}}async sendGrantSignal(e,t){try{const n=function(e){return u("/transactions/:id/grant",{id:e})}(e);return(await this.post(n,{transactionId:e,grantType:t,timestamp:(new Date).toISOString()})).success}catch(e){throw n.error("Failed to send grant signal:",e),e}}#V(e){switch(e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase())){case"freeTrial":return{type:"freeTrial"};case"discount":return{type:"discount"};case"credit":return{type:"credit"};default:return n.warn(`Unknown entitlement type: ${e}, treating as freeTrial`),{type:"freeTrial"}}}async fetchEntitlements(e){try{const t=await this.get(`/entitlements?userId=${encodeURIComponent(e)}`),i=[];if(t.provisional)for(const[e,n]of Object.entries(t.provisional)){const t=this.#V(e);i.push({...t,transactionId:"",scope:"provisional",grantedAt:n.started_at,expiresAt:n.expires_at})}if(t.verified)for(const[e,n]of Object.entries(t.verified)){const t=this.#V(e);i.push({...t,transactionId:"",scope:"verified",grantedAt:n.started_at,expiresAt:n.expires_at})}return n.debug("Transformed entitlements response",{provisionalCount:Object.keys(t.provisional||{}).length,verifiedCount:Object.keys(t.verified||{}).length,totalCount:i.length}),i}catch(e){throw n.error("Failed to fetch entitlements:",e),e}}async checkVerificationStatus(e){try{const t=function(e){return u("/verification/status/:id",{id:e})}(e);return await this.get(t)}catch(e){throw n.error("Failed to check verification status:",e),e}}async logImpression(e,t,i,r,o){try{return(await this.post("/impressions/log",{impressionId:e,userId:t,campaignId:i,creativeId:r,appBundleId:o})).success}catch(e){return n.warn("Failed to log impression (non-blocking):",e),!1}}}class f{#W;constructor(){this.#W=new Map}on(e,t){this.#W.has(e)||this.#W.set(e,new Set);const i=this.#W.get(e);if(!i)throw new Error(`Failed to get handlers for event '${String(e)}'`);return i.add(t),n.debug(`Event listener added for '${String(e)}'`),()=>{this.off(e,t)}}off(e,t){const i=this.#W.get(e);i&&(i.delete(t),n.debug(`Event listener removed for '${String(e)}'`),0===i.size&&this.#W.delete(e))}emit(e,t){const i=this.#W.get(e);if(i&&0!==i.size){n.debug(`Emitting event '${String(e)}'`,{listenerCount:i.size});for(const r of i)try{r(t)}catch(t){n.error(`Error in event handler for '${String(e)}':`,t)}}}removeAllListeners(e){e?(this.#W.delete(e),n.debug(`All listeners removed for '${String(e)}'`)):(this.#W.clear(),n.debug("All event listeners removed"))}listenerCount(e){return this.#W.get(e)?.size??0}hasListeners(e){const t=this.#W.get(e);return void 0!==t&&t.size>0}}const m="encore-sdk-styles",g="encore-";function b(e={}){if(document.getElementById(m))n.debug("Encore styles already injected");else try{const t=document.createElement("style");t.id=m,t.textContent=function(e={}){const t=function(e){const t=[];return e.primaryColor&&t.push(`--encore-primary-color: ${e.primaryColor};`),e.backgroundColor&&t.push(`--encore-bg-color: ${e.backgroundColor};`),e.textColor&&t.push(`--encore-text-color: ${e.textColor};`),e.borderRadius&&t.push(`--encore-border-radius: ${e.borderRadius};`),e.fontFamily&&t.push(`--encore-font-family: ${e.fontFamily};`),t.join("\n ")}(e);return`\n /* CSS Custom Properties (Theme Variables) */\n :root {\n ${t||"/* No custom theme variables */"}\n --encore-primary-color: ${e.primaryColor??"#4F46E5"};\n --encore-bg-color: ${e.backgroundColor??"#ffffff"};\n --encore-text-color: ${e.textColor??"#1F2937"};\n --encore-border-radius: ${e.borderRadius??"12px"};\n --encore-font-family: ${e.fontFamily??'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'};\n }\n\n /* Backdrop */\n .${g}backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.55);\n backdrop-filter: blur(2px);\n z-index: 9998;\n opacity: 0;\n transition: opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .${g}backdrop.${g}visible {\n opacity: 1;\n }\n\n /* Modal Container */\n .${g}modal {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 9999;\n background-color: var(--encore-bg-color);\n border-radius: 20px;\n box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.18), 0 12px 24px -8px rgba(0, 0, 0, 0.08);\n max-width: 800px;\n max-height: 90vh;\n width: calc(100% - 32px);\n overflow-x: hidden;\n overflow-y: auto;\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.96);\n transition: opacity 250ms cubic-bezier(0.4, 0, 0.2, 1), transform 250ms cubic-bezier(0.4, 0, 0.2, 1);\n font-family: var(--encore-font-family);\n color: var(--encore-text-color);\n }\n\n .${g}modal.${g}visible {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n\n /* Close Button */\n .${g}close-button {\n position: absolute;\n top: 20px;\n right: 20px;\n width: 40px;\n height: 40px;\n border: none;\n background-color: rgba(255, 255, 255, 0.9);\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #9CA3AF;\n transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n padding: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n z-index: 10;\n }\n\n .${g}close-button:hover {\n background-color: #FFFFFF;\n color: #6B7280;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n transform: scale(1.05);\n }\n\n .${g}close-button:active {\n transform: scale(0.98);\n }\n\n .${g}close-button:focus {\n outline: 2px solid var(--encore-primary-color);\n outline-offset: 2px;\n }\n\n .${g}close-button svg {\n width: 18px;\n height: 18px;\n }\n\n /* Body scroll lock */\n body.${g}no-scroll {\n overflow: hidden;\n }\n\n /* Modal Header */\n .${g}modal-header {\n padding: 24px 24px 16px;\n border-bottom: 1px solid #E5E7EB;\n }\n\n .${g}modal-title {\n margin: 0;\n font-size: 24px;\n font-weight: 700;\n line-height: 1.25;\n color: var(--encore-text-color);\n }\n\n .${g}modal-subtitle {\n margin: 8px 0 0;\n font-size: 14px;\n color: #6B7280;\n line-height: 1.5;\n }\n\n /* Modal Body */\n .${g}modal-body {\n padding: 0;\n position: relative;\n isolation: isolate;\n }\n\n /* Carousel Container */\n .${g}carousel {\n display: flex;\n flex-direction: column;\n overflow: visible;\n }\n\n /* Carousel Header */\n .${g}carousel-header {\n padding: 40px 68px 28px;\n text-align: center;\n }\n\n .${g}carousel-title {\n font-size: 32px;\n font-weight: 510;\n line-height: 1.1;\n color: #181417;\n margin: 0 0 8px 0;\n letter-spacing: -0.3px;\n }\n\n .${g}carousel-subtitle {\n font-size: 16px;\n line-height: 1.2;\n color: #181417;\n margin: 0;\n font-weight: 400;\n }\n\n /* Carousel Cards Container - Horizontal Scroll */\n .${g}carousel-cards {\n display: flex;\n flex-direction: row;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n gap: 24px;\n padding: 24px 78px;\n position: relative;\n }\n\n .${g}carousel-cards::-webkit-scrollbar {\n display: none;\n }\n\n /* Carousel Item Wrapper */\n .${g}carousel-item {\n flex: 0 0 426px;\n width: 426px;\n scroll-snap-align: center;\n scroll-snap-stop: always;\n opacity: 0.5;\n transition: all 400ms cubic-bezier(0.4, 0, 0.2, 1);\n pointer-events: auto;\n }\n\n /* Active carousel item */\n .${g}carousel-item.${g}active {\n opacity: 1;\n z-index: 1;\n }\n\n /* Offer Card */\n .${g}offer-card {\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 16px;\n box-shadow: 0 2px 12px rgba(116, 112, 133, 0.16);\n height: 370px;\n overflow: hidden;\n }\n\n /* Offer Banner */\n .${g}offer-banner {\n width: 100%;\n background-color: transparent;\n position: relative;\n padding: 0;\n height: 180px;\n overflow: hidden;\n border-radius: 16px 16px 0 0;\n }\n\n .${g}offer-banner-image {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: cover;\n background-color: #F9FAFB;\n opacity: 0;\n transition: opacity 200ms ease-out;\n }\n\n .${g}offer-banner-image.${g}loaded {\n opacity: 1;\n }\n\n /* Info button on banner */\n .${g}banner-info-button {\n position: absolute;\n top: 20px;\n right: 20px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: rgba(242, 242, 242, 0.95);\n backdrop-filter: blur(6px);\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 150ms ease;\n z-index: 3;\n padding: 0;\n }\n\n .${g}banner-info-button:hover {\n background-color: #F2F2F2;\n transform: scale(1.05);\n }\n\n .${g}banner-info-button:focus {\n outline: 2px solid #5671FF;\n outline-offset: 2px;\n }\n\n .${g}banner-info-button svg {\n width: 14px;\n height: 14px;\n color: #181417;\n stroke-width: 2;\n }\n\n /* Tooltip */\n .${g}tooltip {\n position: fixed;\n background-color: rgba(28, 28, 32, 0.95);\n color: #ffffff;\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 12px;\n line-height: 1.4;\n font-weight: 500;\n z-index: 10000;\n pointer-events: none;\n opacity: 0;\n transform: translateY(4px);\n transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n white-space: normal;\n word-wrap: break-word;\n }\n\n .${g}tooltip-visible {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Tooltip arrow (optional - using pseudo-element) */\n .${g}tooltip::after {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n }\n\n .${g}tooltip-top::after {\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%);\n border-width: 4px 4px 0 4px;\n border-color: rgba(28, 28, 32, 0.95) transparent transparent transparent;\n }\n\n .${g}tooltip-bottom::after {\n top: -4px;\n left: 50%;\n transform: translateX(-50%);\n border-width: 0 4px 4px 4px;\n border-color: transparent transparent rgba(28, 28, 32, 0.95) transparent;\n }\n\n .${g}tooltip-left::after {\n right: -4px;\n top: 50%;\n transform: translateY(-50%);\n border-width: 4px 0 4px 4px;\n border-color: transparent transparent transparent rgba(28, 28, 32, 0.95);\n }\n\n .${g}tooltip-right::after {\n left: -4px;\n top: 50%;\n transform: translateY(-50%);\n border-width: 4px 4px 4px 0;\n border-color: transparent rgba(28, 28, 32, 0.95) transparent transparent;\n }\n\n /* Offer Details */\n .${g}offer-details {\n padding: 16px 20px;\n flex: 1;\n overflow-y: auto;\n }\n\n .${g}offer-details-heading {\n font-size: 14px;\n font-weight: 400;\n color: #6A6D81;\n margin: 0 0 8px 0;\n letter-spacing: -1px;\n line-height: 1.2;\n }\n\n .${g}offer-details-list {\n list-style: disc;\n margin: 0;\n padding: 0 0 0 21px;\n }\n\n .${g}offer-details-list li {\n font-size: 14px;\n line-height: 1.2;\n color: #181417;\n margin-bottom: 4px;\n padding-left: 0;\n letter-spacing: -1px;\n }\n\n .${g}offer-details-list li:last-child {\n margin-bottom: 0;\n }\n\n .${g}offer-details-list li::marker {\n color: #6A6D81;\n }\n\n /* Offer Footer */\n .${g}offer-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-top: 1px solid #F2F2F2;\n gap: 12px;\n min-height: 74px;\n }\n\n /* Offer Merchant */\n .${g}offer-merchant {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .${g}offer-logo {\n width: 42px;\n height: 42px;\n border-radius: 8px;\n object-fit: contain;\n background-color: #F3F4F6;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 200ms ease-out;\n }\n\n .${g}offer-logo.${g}loaded {\n opacity: 1;\n }\n\n .${g}offer-merchant-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .${g}offer-merchant-name {\n font-size: 16px;\n font-weight: 590;\n color: #181417;\n line-height: 1.1;\n letter-spacing: -1px;\n }\n\n .${g}offer-merchant-desc {\n font-size: 14px;\n color: #6A6D81;\n line-height: 1.2;\n letter-spacing: -1px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* Claim Button */\n .${g}button-claim {\n padding: 10px 16px;\n height: 34px;\n min-width: 78px;\n font-size: 14px;\n font-weight: 590;\n border-radius: 999px;\n border: none;\n background: #5671FF;\n color: white;\n cursor: pointer;\n transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n font-family: var(--encore-font-family);\n white-space: nowrap;\n line-height: 1.2;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .${g}button-claim:hover:not(:disabled) {\n background: #4560E6;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(86, 113, 255, 0.3);\n }\n\n .${g}button-claim:active {\n transform: translateY(0);\n background: #3A52CC;\n }\n\n .${g}button-claim:focus {\n outline: 2px solid #5671FF;\n outline-offset: 2px;\n }\n\n .${g}button-claim:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n }\n\n /* Carousel Navigation */\n .${g}carousel-navigation {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 40px;\n padding: 28px 32px 32px;\n }\n\n .${g}nav-button {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n border: 1px solid #BBBBBB;\n background-color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #BBBBBB;\n transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n padding: 0;\n }\n\n .${g}nav-button:hover:not(:disabled) {\n border-color: #5671FF;\n color: #5671FF;\n transform: scale(1.05);\n }\n\n .${g}nav-button:active:not(:disabled) {\n transform: scale(0.95);\n }\n\n .${g}nav-button:focus {\n outline: 2px solid #5671FF;\n outline-offset: 2px;\n }\n\n .${g}nav-button svg {\n width: 20px;\n height: 20px;\n stroke-width: 2;\n }\n\n .${g}nav-button:not(:disabled) {\n border-color: #5671FF;\n color: #5671FF;\n }\n\n .${g}nav-button:disabled,\n .${g}nav-button.${g}disabled {\n opacity: 1;\n cursor: not-allowed;\n border-color: #BBBBBB;\n color: #BBBBBB;\n }\n\n .${g}nav-button:disabled:hover,\n .${g}nav-button.${g}disabled:hover {\n border-color: #BBBBBB;\n color: #BBBBBB;\n transform: none;\n }\n\n /* Loading State */\n .${g}loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 48px;\n }\n\n .${g}spinner {\n width: 40px;\n height: 40px;\n border: 3px solid #E5E7EB;\n border-top-color: var(--encore-primary-color);\n border-radius: 50%;\n animation: ${g}spin 0.8s linear infinite;\n }\n\n @keyframes ${g}spin {\n to { transform: rotate(360deg); }\n }\n\n /* Responsive: Mobile (0-767px) */\n @media (max-width: 767px) {\n .${g}modal {\n width: calc(100% - 24px);\n max-width: 100%;\n margin: 12px;\n }\n\n .${g}carousel-header {\n padding: 24px 20px 20px;\n }\n\n .${g}carousel-title {\n font-size: 22px;\n }\n\n .${g}carousel-subtitle {\n font-size: 14px;\n }\n\n .${g}carousel-cards {\n padding: 20px 40px;\n }\n\n .${g}carousel-item {\n flex: 0 0 calc(100% - 80px);\n }\n\n .${g}offer-banner {\n padding: 16px 16px 0;\n }\n\n .${g}offer-details {\n padding: 20px 20px;\n }\n\n .${g}offer-footer {\n padding: 16px 20px 24px;\n flex-wrap: wrap;\n gap: 12px;\n }\n\n .${g}offer-merchant {\n flex: 1 1 100%;\n }\n\n .${g}button-claim {\n flex: 1 1 100%;\n }\n\n .${g}carousel-navigation {\n padding: 20px 20px 24px;\n }\n }\n\n /* Responsive: Tablet (768-1023px) */\n @media (min-width: 768px) and (max-width: 1023px) {\n .${g}modal {\n max-width: 600px;\n }\n }\n\n /* Responsive: Desktop (1024px+) */\n @media (min-width: 1024px) {\n .${g}modal {\n max-width: 600px;\n }\n }\n\n /* Accessibility: High Contrast Mode */\n @media (prefers-contrast: high) {\n .${g}button {\n border: 2px solid currentColor;\n }\n }\n\n /* Accessibility: Reduced Motion */\n @media (prefers-reduced-motion: reduce) {\n .${g}backdrop,\n .${g}modal,\n .${g}button,\n .${g}close-button {\n transition: none;\n }\n\n .${g}spinner {\n animation: none;\n }\n }\n\n /* Focus Visible (for keyboard navigation) */\n .${g}button:focus-visible,\n .${g}close-button:focus-visible {\n outline: 2px solid var(--encore-primary-color);\n outline-offset: 2px;\n }\n\n /* ===== Success Screen ===== */\n .${g}success-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 3rem 2rem;\n text-align: center;\n min-height: 400px;\n animation: ${g}fade-in 0.3s ease-out;\n }\n\n .${g}success-icon {\n width: 80px;\n height: 80px;\n background: linear-gradient(135deg, var(--encore-primary-color), #10b981);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 48px;\n color: white;\n margin-bottom: 1.5rem;\n animation: ${g}scale-in 0.5s ease-out;\n }\n\n .${g}success-title {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--encore-text-color);\n margin: 0 0 0.75rem 0;\n }\n\n .${g}success-subtitle {\n font-size: 1.125rem;\n color: var(--encore-text-muted);\n margin: 0 0 2rem 0;\n line-height: 1.6;\n }\n\n .${g}success-details {\n background: rgba(79, 70, 229, 0.05);\n border-radius: 12px;\n padding: 1.5rem;\n margin-bottom: 2rem;\n min-width: 280px;\n }\n\n .${g}success-detail {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.5rem 0;\n }\n\n .${g}success-detail:not(:last-child) {\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n }\n\n .${g}success-detail-label {\n font-size: 0.875rem;\n color: var(--encore-text-muted);\n font-weight: 500;\n }\n\n .${g}success-detail-value {\n font-size: 1rem;\n color: var(--encore-text-color);\n font-weight: 600;\n }\n\n .${g}success-button {\n background: linear-gradient(135deg, var(--encore-primary-color), #10b981);\n color: white;\n border: none;\n border-radius: var(--encore-border-radius);\n padding: 0.875rem 2.5rem;\n font-size: 1rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n }\n\n .${g}success-button:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);\n }\n\n .${g}success-button:active {\n transform: translateY(0);\n }\n\n .${g}success-button:focus-visible {\n outline: 2px solid var(--encore-primary-color);\n outline-offset: 2px;\n }\n\n @keyframes ${g}scale-in {\n from {\n transform: scale(0);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n `}(e),document.head.appendChild(t),n.debug("Encore styles injected successfully")}catch(e){n.error("Failed to inject Encore styles:",e)}}function v(e){return`${g}${e}`}class y{#Q;#Y=null;#Z=null;#J=null;#X=null;#ee=!1;#te=null;#ne=[];#ie=null;constructor(e={}){this.#Q=new f,b(e)}show(){this.#ee?n.warn("Modal is already visible"):(this.#te=document.activeElement,this.#re(),this.#Y&&document.body.appendChild(this.#Y),this.#Z&&document.body.appendChild(this.#Z),document.body.classList.add(v("no-scroll")),requestAnimationFrame(()=>{this.#Y?.classList.add(v("visible")),this.#Z?.classList.add(v("visible"))}),this.#oe(),this.#se(),this.#ae(),this.#ee=!0,this.#Q.emit("show",void 0),n.debug("Modal shown"))}hide(){this.#ee&&(this.#Y?.classList.remove(v("visible")),this.#Z?.classList.remove(v("visible")),setTimeout(()=>{this.#le(),document.body.classList.remove(v("no-scroll")),this.#te instanceof HTMLElement&&this.#te.focus(),this.#ee=!1,this.#Q.emit("hide",void 0),n.debug("Modal hidden")},200))}isVisible(){return this.#ee}setContent(e){this.#X?(this.#X.innerHTML="",this.#X.appendChild(e),this.#se()):n.error("Modal body not initialized")}on(e,t){return this.#Q.on(e,t)}#re(){this.#Y=document.createElement("div"),this.#Y.className=v("backdrop"),this.#Y.setAttribute("aria-hidden","true"),this.#Z=document.createElement("div"),this.#Z.className=v("modal"),this.#Z.setAttribute("role","dialog"),this.#Z.setAttribute("aria-modal","true"),this.#Z.setAttribute("aria-labelledby",v("modal-title")),this.#J=document.createElement("button"),this.#J.className=v("close-button"),this.#J.setAttribute("aria-label","Close modal"),this.#J.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">\n <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />\n </svg>\n ',this.#X=document.createElement("div"),this.#X.className=v("modal-body"),this.#Z.appendChild(this.#J),this.#Z.appendChild(this.#X)}#le(){this.#Y?.remove(),this.#Z?.remove(),this.#Y=null,this.#Z=null,this.#J=null,this.#X=null}#oe(){this.#J?.addEventListener("click",()=>{this.#Q.emit("close",void 0),this.hide()}),this.#Y?.addEventListener("click",()=>{this.#Q.emit("backdropClick",void 0),this.hide()}),this.#ie=this.#ce.bind(this),document.addEventListener("keydown",this.#ie)}#ce(e){if(this.#ee)switch(e.key){case"Escape":e.preventDefault(),this.#Q.emit("close",void 0),this.hide();break;case"Tab":e.preventDefault(),this.#de(e.shiftKey)}}#de(e){if(0===this.#ne.length)return;const t=this.#ne.findIndex(e=>e===document.activeElement);let n;n=e?t<=0?this.#ne.length-1:t-1:t>=this.#ne.length-1?0:t+1,this.#ne[n]?.focus()}#se(){if(!this.#Z)return;const e=["button:not([disabled])","a[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");this.#ne=Array.from(this.#Z.querySelectorAll(e))}#ae(){this.#ne.length>0&&this.#ne[0]?.focus()}destroy(){this.#ie&&document.removeEventListener("keydown",this.#ie),this.#Q.removeAllListeners(),this.hide()}}class x{#ue=null;#he;#pe;#ee=!1;#fe=null;#me=null;#ge=null;#be=null;#ve=null;constructor(e,t){this.#he=e,this.#pe={position:"top",maxWidth:200,...t},this.#ye()}#ye(){this.#ge=this.#xe.bind(this),this.#be=this.#we.bind(this),this.#ve=this.#Ee.bind(this),this.#he.addEventListener("mouseenter",this.#ge),this.#he.addEventListener("mouseleave",this.#be)}#xe(){this.#me&&(clearTimeout(this.#me),this.#me=null),this.#fe=window.setTimeout(()=>{this.#Ie()},50)}#we(){this.#fe&&(clearTimeout(this.#fe),this.#fe=null),this.#me=window.setTimeout(()=>{this.#Ce()},100)}#Ie(){if(this.#ee)return;this.#ue=document.createElement("div"),this.#ue.className=v("tooltip"),this.#ue.setAttribute("role","tooltip"),this.#ue.textContent=this.#pe.content,this.#pe.maxWidth&&(this.#ue.style.maxWidth=`${this.#pe.maxWidth}px`),this.#pe.position&&this.#ue.classList.add(v(`tooltip-${this.#pe.position}`));const e=this.#he.getBoundingClientRect();this.#ue.style.top=`${e.top}px`,this.#ue.style.left=`${e.left}px`,document.body.appendChild(this.#ue),this.#ve&&(window.addEventListener("scroll",this.#ve,!0),window.addEventListener("resize",this.#ve)),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.#ue&&(this.#Ee(),this.#ue.classList.add(v("tooltip-visible")))})}),this.#ee=!0}#Ce(){this.#ee&&this.#ue&&(this.#ve&&(window.removeEventListener("scroll",this.#ve,!0),window.removeEventListener("resize",this.#ve)),this.#ue.classList.remove(v("tooltip-visible")),setTimeout(()=>{this.#ue&&this.#ue.parentNode&&this.#ue.parentNode.removeChild(this.#ue),this.#ue=null},200),this.#ee=!1)}#Ee(){if(!this.#ue||!this.#ee)return;const e=this.#he.getBoundingClientRect(),t=this.#ue.getBoundingClientRect();let n=0,i=0;switch(this.#pe.position??"top"){case"top":n=e.top-t.height-8,i=e.left+e.width/2-t.width/2;break;case"bottom":n=e.bottom+8,i=e.left+e.width/2-t.width/2;break;case"left":n=e.top+e.height/2-t.height/2,i=e.left-t.width-8;break;case"right":n=e.top+e.height/2-t.height/2,i=e.right+8}i=Math.max(8,Math.min(i,window.innerWidth-t.width-8)),n=Math.max(8,Math.min(n,window.innerHeight-t.height-8)),this.#ue.style.top=`${n}px`,this.#ue.style.left=`${i}px`}updateContent(e){this.#pe.content=e,this.#ue&&(this.#ue.textContent=e,this.#Ee())}destroy(){this.#fe&&(clearTimeout(this.#fe),this.#fe=null),this.#me&&(clearTimeout(this.#me),this.#me=null),this.#ee&&this.#Ce(),this.#ge&&this.#he.removeEventListener("mouseenter",this.#ge),this.#be&&this.#he.removeEventListener("mouseleave",this.#be),this.#ve&&(window.removeEventListener("scroll",this.#ve,!0),window.removeEventListener("resize",this.#ve))}}class w{#Q;#$e=null;#Te=null;#ke=null;constructor(){this.#Q=new f}render(e){this.#$e=e,this.#Te=document.createElement("div"),this.#Te.className=v("offer-card");const t=this.#Ae(e.imageUrl,e.title,e.tooltipText);this.#Te.appendChild(t);const n=this.#Le(e);this.#Te.appendChild(n);const i=this.#Ne(e);return this.#Te.appendChild(i),this.#Te}on(e,t){return this.#Q.on(e,t)}#Ae(e,t,i){const r=document.createElement("div");r.className=v("offer-banner");const o=document.createElement("img");o.className=v("offer-banner-image"),o.alt=t??"Offer image",e?(o.src=e,o.complete?o.classList.add(v("loaded")):o.onload=()=>{o.classList.add(v("loaded"))},o.onerror=()=>{n.warn("Failed to load offer image, using fallback"),o.src=this.#Se(),o.classList.add(v("loaded"))}):(o.src=this.#Se(),o.classList.add(v("loaded"))),r.appendChild(o);const s=document.createElement("button");return s.className=v("banner-info-button"),s.setAttribute("aria-label","More information"),s.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">\n <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />\n </svg>\n ',s.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),n.debug("Info button clicked for offer",{title:t,tooltipText:i})}),i&&(this.#ke=new x(s,{content:i,position:"bottom",maxWidth:200}),r.appendChild(s)),r}#Se(){return`data:image/svg+xml;base64,${btoa('\n <svg xmlns="http://www.w3.org/2000/svg" width="600" height="240" viewBox="0 0 600 240">\n <rect width="600" height="240" fill="#E5E7EB"/>\n <text x="50%" y="50%" text-anchor="middle" dy=".3em" fill="#9CA3AF" font-family="sans-serif" font-size="18">\n Offer Image\n </text>\n </svg>\n ')}`}#Le(e){const t=document.createElement("div");t.className=v("offer-details");const n=document.createElement("h3");n.className=v("offer-details-heading"),n.textContent="Offer details";const i=document.createElement("ul");if(i.className=v("offer-details-list"),e.instructions&&e.instructions.length>0)e.instructions.forEach(e=>{const t=document.createElement("li");t.textContent=e.subtitle||e.title,i.appendChild(t)});else if(e.description){const t=document.createElement("li");t.textContent=e.description,i.appendChild(t)}return t.appendChild(n),t.appendChild(i),t}#Ne(e){const t=document.createElement("div");t.className=v("offer-footer");const i=document.createElement("div");if(i.className=v("offer-merchant"),e.logoUrl){const t=document.createElement("img");t.className=v("offer-logo"),t.src=e.logoUrl,t.alt=`${e.merchantName??"Merchant"} logo`,t.complete?t.classList.add(v("loaded")):t.onload=()=>{t.classList.add(v("loaded"))},t.onerror=()=>{n.warn("Failed to load merchant logo",{merchantName:e.merchantName}),t.style.display="none"},i.appendChild(t)}const r=document.createElement("div");if(r.className=v("offer-merchant-text"),e.merchantName){const t=document.createElement("div");t.className=v("offer-merchant-name"),t.textContent=e.merchantName,r.appendChild(t)}if(e.quickInstructions){const t=document.createElement("div");t.className=v("offer-merchant-desc"),t.textContent=e.quickInstructions,r.appendChild(t)}i.appendChild(r);const o=document.createElement("button");return o.className=`${v("button")} ${v("button-claim")}`,o.textContent=e.ctaText??"Claim",o.setAttribute("aria-label",`Claim offer: ${e.title??"offer"}`),o.addEventListener("click",()=>{this.#$e&&this.#Q.emit("claim",{offer:this.#$e})}),t.appendChild(i),t.appendChild(o),t}destroy(){this.#ke&&(this.#ke.destroy(),this.#ke=null),this.#Q.removeAllListeners(),this.#Te=null,this.#$e=null}}class E{#Q;#Re;#Ue=0;#Te=null;#Me=null;#Fe=null;#Oe=[];#Be=null;#De=null;#qe=null;constructor(e){if(this.#Q=new f,this.#Re=e,0===e.length)throw new Error("OfferCarousel requires at least one offer");this.#Ke()}render(){this.#Te=document.createElement("div"),this.#Te.className=v("carousel"),this.#Be=document.createElement("div"),this.#Be.setAttribute("role","status"),this.#Be.setAttribute("aria-live","polite"),this.#Be.setAttribute("aria-atomic","true"),this.#Be.className="sr-only",this.#Be.style.position="absolute",this.#Be.style.width="1px",this.#Be.style.height="1px",this.#Be.style.padding="0",this.#Be.style.margin="-1px",this.#Be.style.overflow="hidden",this.#Be.style.clip="rect(0, 0, 0, 0)",this.#Be.style.whiteSpace="nowrap",this.#Be.style.border="0";const e=this.#Pe();if(this.#Te.appendChild(e),this.#Me=document.createElement("div"),this.#Me.className=v("carousel-cards"),this.#Te.appendChild(this.#Be),this.#Te.appendChild(this.#Me),this.#Re.length>1){const e=this.#ze();this.#Te.appendChild(e)}return this.#He(),this.#Ge(),this.#_e(),this.#je(0,!1),this.#Te}on(e,t){return this.#Q.on(e,t)}getCurrentIndex(){return this.#Ue}getTotalOffers(){return this.#Re.length}next(){this.#Ue<this.#Re.length-1&&(this.#Ue++,this.#je(this.#Ue),this.#Ve(),this.#We(`Showing offer ${this.#Ue+1} of ${this.#Re.length}`),n.debug(`Navigated to offer ${this.#Ue+1}`))}previous(){this.#Ue>0&&(this.#Ue--,this.#je(this.#Ue),this.#Ve(),this.#We(`Showing offer ${this.#Ue+1} of ${this.#Re.length}`),n.debug(`Navigated to offer ${this.#Ue+1}`))}#He(){if(!this.#Me)return;const e=this.#Me;this.#Re.forEach((t,n)=>{const i=new w,r=i.render(t),o=document.createElement("div");o.className=v("carousel-item"),o.setAttribute("data-index",n.toString()),o.appendChild(r),i.on("claim",()=>{this.#Q.emit("offerClaim",{offer:t,index:n})}),this.#Oe.push(i),e.appendChild(o)}),requestAnimationFrame(()=>{e.classList.add(v("cards-ready"))})}#je(e,t=!0){if(!this.#Me)return;const n=this.#Me.querySelectorAll(`.${v("carousel-item")}`),i=n[e];if(i){i.scrollIntoView({behavior:t?"smooth":"auto",block:"nearest",inline:"center"}),n.forEach((t,n)=>{n===e?t.classList.add(v("active")):t.classList.remove(v("active"))});const r=this.#Re[e];r&&this.#Q.emit("offerView",{offer:r,index:e})}}#Pe(){const e=document.createElement("div");e.className=v("carousel-header");const t=document.createElement("h2");t.className=v("carousel-title"),t.id=v("modal-title"),t.textContent="Unlock 10 free articles – choose an offer below";const n=document.createElement("p");return n.className=v("carousel-subtitle"),n.textContent="Activate one of these partner offers and get 10 free articles. No credit card required.",e.appendChild(t),e.appendChild(n),e}#ze(){const e=document.createElement("div");e.className=v("carousel-navigation");const t=document.createElement("button");t.className=v("nav-button"),t.setAttribute("aria-label","Previous offer"),t.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="transform: rotate(90deg);">\n <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />\n </svg>\n ',t.addEventListener("click",()=>this.previous());const n=document.createElement("button");return n.className=v("nav-button"),n.setAttribute("aria-label","Next offer"),n.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="transform: rotate(270deg);">\n <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />\n </svg>\n ',n.addEventListener("click",()=>this.next()),e.appendChild(t),e.appendChild(n),this.#Fe=e,this.#Ve(t,n),e}#Ve(e,t){if(!this.#Fe)return;const n=this.#Fe.querySelectorAll(`.${v("nav-button")}`),i=e??n[0],r=t??n[1];i&&(i.disabled=0===this.#Ue,i.classList.toggle(v("disabled"),0===this.#Ue)),r&&(r.disabled=this.#Ue===this.#Re.length-1,r.classList.toggle(v("disabled"),this.#Ue===this.#Re.length-1))}#Ge(){this.#De=this.#Qe.bind(this),document.addEventListener("keydown",this.#De)}#Qe(e){if(this.#Te)switch(e.key){case"ArrowLeft":e.preventDefault(),this.previous();break;case"ArrowRight":e.preventDefault(),this.next()}}#_e(){this.#Me&&this.#Me.addEventListener("scroll",()=>{this.#qe&&clearTimeout(this.#qe),this.#qe=window.setTimeout(()=>{this.#Ye()},100)})}#Ye(){if(!this.#Me)return;const e=this.#Me,t=e.querySelectorAll(`.${v("carousel-item")}`),i=e.getBoundingClientRect(),r=i.left+i.width/2;let o=0,s=1/0;if(t.forEach((e,t)=>{const n=e.getBoundingClientRect(),i=Math.abs(r-(n.left+n.width/2));i<s&&(s=i,o=t)}),o!==this.#Ue){this.#Ue=o,t.forEach((e,t)=>{t===o?e.classList.add(v("active")):e.classList.remove(v("active"))}),this.#Ve();const e=this.#Re[o];e&&this.#Q.emit("offerView",{offer:e,index:o}),n.debug(`Scrolled to offer ${o+1}`)}}#We(e){this.#Be&&(this.#Be.textContent=e)}#Ke(){this.#Re.forEach(e=>{e.imageUrl&&((new Image).src=e.imageUrl,n.debug("Preloading offer image",{offerId:e.id,url:e.imageUrl})),e.logoUrl&&((new Image).src=e.logoUrl,n.debug("Preloading merchant logo",{offerId:e.id,url:e.logoUrl}))})}destroy(){this.#De&&document.removeEventListener("keydown",this.#De),this.#qe&&(clearTimeout(this.#qe),this.#qe=null),this.#Oe.forEach(e=>e.destroy()),this.#Oe=[],this.#Q.removeAllListeners(),this.#Te=null,this.#Me=null,this.#Fe=null,this.#Be=null}}const I=e=>`encore-success-${e}`;class C{#Te=null;#Q;#t;#Ze=null;constructor(e){this.#t=e,this.#Q=new f}render(){this.#Te=document.createElement("div"),this.#Te.className=I("container");const e=document.createElement("div");e.className=I("icon"),e.innerHTML="✓";const t=document.createElement("h2");t.className=I("title"),t.textContent=this.#t.titleText??"Success!";const i=document.createElement("p");i.className=I("subtitle"),i.textContent=this.#t.subtitleText??this.#Je(this.#t.entitlement);const r=document.createElement("div");r.className=I("details"),r.innerHTML=this.#Xe(this.#t.entitlement);const o=document.createElement("button");return o.className=I("button"),o.textContent=this.#t.buttonText??"Continue",o.setAttribute("type","button"),o.addEventListener("click",()=>this.#et()),this.#Te.appendChild(e),this.#Te.appendChild(t),this.#Te.appendChild(i),this.#Te.appendChild(r),this.#Te.appendChild(o),this.#t.autoDismissMs&&this.#t.autoDismissMs>0&&this.#tt(this.#t.autoDismissMs),n.debug("Success screen rendered"),this.#Te}on(e,t){return this.#Q.on(e,t)}destroy(){null!==this.#Ze&&(clearTimeout(this.#Ze),this.#Ze=null),this.#Te&&(this.#Te.remove(),this.#Te=null),this.#Q.removeAllListeners(),n.debug("Success screen destroyed")}#et(){n.debug("User clicked continue on success screen"),this.#Q.emit("continue",void 0)}#tt(e){this.#Ze=window.setTimeout(()=>{n.debug("Success screen auto-dismissing"),this.#Q.emit("continue",void 0)},e)}#Je(e){switch(e.type){case"freeTrial":return`You've unlocked a ${e.value??""} ${e.unit??"day"} free trial!`;case"discount":return`You've received a ${e.value??""}${"percent"===e.unit?"%":""} discount!`;case"credit":return`You've earned $${e.value??"0"} in credits!`;default:return"You've unlocked a special offer!"}}#Xe(e){const t=[];if("freeTrial"===e.type)t.push(`<div class="${I("detail")}">\n <span class="${I("detail-label")}">Type:</span>\n <span class="${I("detail-value")}">Free Trial</span>\n </div>`),e.value&&e.unit&&t.push(`<div class="${I("detail")}">\n <span class="${I("detail-label")}">Duration:</span>\n <span class="${I("detail-value")}">${e.value} ${e.unit}</span>\n </div>`);else if("discount"===e.type){if(t.push(`<div class="${I("detail")}">\n <span class="${I("detail-label")}">Type:</span>\n <span class="${I("detail-value")}">Discount</span>\n </div>`),e.value&&e.unit){const n="percent"===e.unit?`${e.value}%`:`$${e.value}`;t.push(`<div class="${I("detail")}">\n <span class="${I("detail-label")}">Amount:</span>\n <span class="${I("detail-value")}">${n}</span>\n </div>`)}}else"credit"===e.type&&(t.push(`<div class="${I("detail")}">\n <span class="${I("detail-label")}">Type:</span>\n <span class="${I("detail-value")}">Credit</span>\n </div>`),e.value&&t.push(`<div class="${I("detail")}">\n <span class="${I("detail-label")}">Amount:</span>\n <span class="${I("detail-value")}}">$${e.value}</span>\n </div>`));return t.join("")}}class ${#nt=null;#it=null;#rt=!1;start(e){this.#rt?n.warn("FocusDetector already active"):(this.#nt=()=>{n.debug("Window focused"),e()},this.#it=()=>{"visible"===document.visibilityState&&(n.debug("Document became visible"),e())},window.addEventListener("focus",this.#nt),document.addEventListener("visibilitychange",this.#it),this.#rt=!0,n.debug("FocusDetector started"))}stop(){this.#rt&&(this.#nt&&(window.removeEventListener("focus",this.#nt),this.#nt=null),this.#it&&(document.removeEventListener("visibilitychange",this.#it),this.#it=null),this.#rt=!1,n.debug("FocusDetector stopped"))}isActive(){return this.#rt}}function T(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=15&(crypto.getRandomValues(new Uint8Array(1))[0]??0);return("x"===e?t:3&t|8).toString(16)})}const k="0.1.5",A="user_id",L="user_attributes",N=new class{#ot;#u;#h=null;#st=null;#at=null;#lt=null;#p=null;#ct={};#dt=!1;#ut=!1;constructor(){this.#ot=new i,this.#u=new o}configure(e){if(this.#ot.configure(e)){this.#ht();const e=this.#ot.getBaseURL();e&&(this.#h=new p(this.#ot.getApiKey()??"",e),this.#p&&(this.#st=new a(this.#u,this.#h,this.#p),this.#at=new l(this.#h,this.#p)),this.#lt=new $),n.info("Encore SDK initialized successfully",{version:k})}}#ht(){const e=this.#u.get(A);e?(this.#p=e,n.debug("Loaded existing user ID:",e)):(this.#p=T(),this.#u.set(A,this.#p),n.debug("Generated new user ID:",this.#p));const t=this.#u.get(L);t&&(this.#ct=t,n.debug("Loaded user attributes"))}#pt(){return!!this.#ot.isConfigured()||(n.error("SDK not configured. Call Encore.configure() first."),!1)}identify(e,t){if(!this.#pt())return;if(!e||"string"!=typeof e)return void n.error("identify() requires a valid user ID string");const i=this.#p;this.#p=e,this.#u.set(A,e),t&&this.setUserAttributes(t),i!==e&&(n.info("User identified:",e),this.#st&&this.#st.setUserId(e),this.#at&&this.#at.setUserId(e))}getCurrentUserId(){return this.#p}reset(){this.#pt()&&(n.info("Resetting SDK"),this.#u.clear(),this.#p=T(),this.#u.set(A,this.#p),this.#ct={},this.#st&&(this.#st.clearQueue(),this.#st.destroy(),this.#h&&this.#p&&(this.#st=new a(this.#u,this.#h,this.#p))),this.#at&&(this.#at.clearCache(),this.#h&&this.#p&&(this.#at=new l(this.#h,this.#p))),this.#lt?.isActive()&&this.#lt.stop(),n.debug("SDK reset complete",{newUserId:this.#p}))}getVersion(){return k}setLogLevel(e){n.setLogLevel(e)}setUserAttributes(e){this.#pt()&&(e&&"object"==typeof e?(this.#ct={...this.#ct,...e,custom:{...this.#ct.custom,...e.custom}},this.#u.set(L,this.#ct),n.debug("User attributes updated",this.#ct)):n.error("setUserAttributes() requires a valid UserAttributes object"))}getUserAttributes(){return{...this.#ct}}async presentOffer(t){if(!this.#pt()){const n={type:"error",error:{code:e.INITIALIZATION_ERROR,message:"SDK not configured"}};return t?.onNotGranted&&t.onNotGranted(n),t?.onError&&t.onError({code:e.INITIALIZATION_ERROR,message:"SDK not configured"}),{granted:!1,reason:n}}if(this.#dt){n.warn("Presentation already in progress");const i={type:"error",error:{code:e.UNKNOWN_ERROR,message:"Presentation already in progress"}};return t?.onNotGranted&&t.onNotGranted(i),{granted:!1,reason:i}}this.#dt=!0;try{const e=await this.#ft(t);return e.granted&&e.entitlement&&t?.onGranted?t.onGranted(e.entitlement):!e.granted&&e.reason&&t?.onNotGranted&&t.onNotGranted(e.reason),e}catch(i){n.error("Error during presentation",i);const r={type:"error",error:{code:e.UNKNOWN_ERROR,message:i instanceof Error?i.message:"Unknown error"}};return t?.onError&&"string"!=typeof r&&"error"===r.type&&t.onError(r.error),t?.onNotGranted&&t.onNotGranted(r),{granted:!1,reason:r}}finally{this.#dt=!1}}isActive(e,t){return n.error("isActive() has been removed. Entitlement validation must be done server-side. See: https://docs.encorekit.com/server-side-validation"),!1}didGrant(e,t){this.#pt()&&(this.#st?t&&"string"==typeof t?this.#st.sendGrantSignal(t,e):n.error("didGrant() requires a valid transaction ID"):n.error("SignalManager not initialized"))}async waitForVerification(e,t){if(!this.#pt())return n.error("SDK not configured"),"failed";if(!this.#h)return n.error("API client not initialized"),"failed";if(!e)return n.error("waitForVerification() requires a transaction ID"),"failed";try{n.debug("Starting verification wait",{transactionId:e,timeout:t});const i={transactionId:e};void 0!==t&&(i.timeout=t);const r=new c(this.#h,i);return await r.poll()}catch(t){return n.error("Error during verification wait",{transactionId:e,error:t}),"failed"}}on(e,t){return n.error("on() event listener has been removed. Entitlement validation must be done server-side. See: https://docs.encorekit.com/server-side-validation"),()=>{}}observeEntitlement(e,t){return n.error("observeEntitlement() has been removed. Entitlement validation must be done server-side. See: https://docs.encorekit.com/server-side-validation"),{subscribe:e=>()=>{}}}placement(){return new d(async()=>this.presentOffer())}async#ft(t){if(!this.#at||!this.#h)return n.error("Managers not initialized"),{granted:!1,reason:{type:"error",error:{code:e.INITIALIZATION_ERROR,message:"Managers not initialized"}}};try{this.#ut||(b({}),this.#ut=!0),n.debug("Fetching offers");const{offers:t,uiConfiguration:i}=await this.#at.fetchOffers(this.#ct);if(0===t.length)return n.info("No offers available"),{granted:!1,reason:"noOffersAvailable"};const r={...this.#ot.getUIConfiguration(),...i},o=new Map,s=new Set;t.forEach(e=>{o.set(e.id,T())});const a=new y,l=new E(t),c=await new Promise(t=>{l.on("offerClaim",i=>{const s=i.offer;n.debug("User claimed offer",{offerId:s.id}),(async()=>{try{if(!this.#at)throw new Error("OfferManager not initialized");const e=o.get(s.id),i=await this.#at.startTransaction(s.campaignId,s.creativeId,e);this.#mt(s.advertiserUrl)||n.warn("Failed to open advertiser URL (popup blocked?)"),this.didGrant("provisional",i),this.#gt(a,s.entitlement,()=>{a.hide(),t({granted:!0,entitlement:s.entitlement})},r)}catch(i){n.error("Error starting transaction",{offerId:s.id,error:i}),a.hide(),t({granted:!1,reason:{type:"error",error:{code:e.UNKNOWN_ERROR,message:i instanceof Error?i.message:"Transaction failed"}}})}})()}),l.on("complete",e=>{e.claimed||(n.debug("User declined last offer"),l.destroy(),a.hide(),t({granted:!1,reason:"userDeclinedLastOffer"}))}),a.on("close",()=>{n.debug("User closed modal"),l.destroy(),t({granted:!1,reason:"userClosedModal"})}),a.on("backdropClick",()=>{n.debug("User clicked outside modal"),l.destroy(),a.hide(),t({granted:!1,reason:"userClickedOutside"})}),l.on("offerView",e=>{const{offer:t}=e;if(s.has(t.id))return void n.debug("Impression already logged for this modal session",{offerId:t.id});const i=o.get(t.id);i&&this.#at&&(this.#at.logImpression(i,t),s.add(t.id))}),a.show();const i=l.render();a.setContent(i)});return a.destroy(),l.destroy(),c}catch(t){return n.error("Error in presentation flow",t),{granted:!1,reason:{type:"error",error:{code:e.UNKNOWN_ERROR,message:t instanceof Error?t.message:"Unknown error"}}}}}#mt(e){try{const t=window.open(e,"_blank","noopener,noreferrer");return!!t&&(t.focus(),!0)}catch(t){return n.error("Failed to open advertiser URL",{url:e,error:t}),!1}}#gt(e,t,i,r){try{const o={entitlement:t,autoDismissMs:0};r?.creditClaimedTitleText&&(o.titleText=r.creditClaimedTitleText),r?.creditClaimedSubtitleText&&(o.subtitleText=r.creditClaimedSubtitleText),r?.applyCreditsButtonText&&(o.buttonText=r.applyCreditsButtonText);const s=new C(o);s.on("continue",()=>{s.destroy(),i()});const a=s.render();e.setContent(a),n.debug("Success screen displayed")}catch(e){n.error("Failed to show success screen",e),i()}}};export{N as Encore,N as default};
2
2
  //# sourceMappingURL=index.js.map