@frak-labs/components 1.0.12 → 1.0.13-beta.7dd0a654

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 (53) hide show
  1. package/cdn/Banner.CkdY2dLE.js +183 -0
  2. package/cdn/ButtonShare.TML2w73z.js +1 -0
  3. package/cdn/ButtonWallet.B5dTOAAD.js +40 -0
  4. package/cdn/{GiftIcon.DT1i36Fm.js → GiftIcon.Cwj0ODQr.js} +1 -1
  5. package/cdn/OpenInAppButton.0v0WDxZL.js +1 -0
  6. package/cdn/PostPurchase.8Mm3PHA9.js +89 -0
  7. package/cdn/actions-CMPlZ7CH.CnK_0vla.js +1 -0
  8. package/cdn/clientReady.0RgyPOYT.js +1 -0
  9. package/cdn/components.js +1 -1
  10. package/cdn/defaults.euOM2Ohv.js +58 -0
  11. package/cdn/embeddedWallet.tIACkcKW.js +1 -0
  12. package/cdn/loader.js +1 -154
  13. package/cdn/replay-V6FXES7X.CgBxdfNp.js +1 -0
  14. package/cdn/rewards.CRzXPu4f.js +1 -0
  15. package/cdn/sharedBaseCss.css.BDzFcWnD.js +154 -0
  16. package/cdn/sharingPage.BCDR1vjG.js +1 -0
  17. package/cdn/sharingPageProducts.DfJLxzSf.js +1 -0
  18. package/cdn/styleManager.Cun1-fKi.js +1 -0
  19. package/cdn/useGlobalComponents.BokCTIp3.js +1 -0
  20. package/cdn/useLightDomStyles.DtTuCZg-.js +1 -0
  21. package/cdn/useReward.0RnHa3DJ.js +1 -0
  22. package/dist/{GiftIcon-BEzYdiux.js → GiftIcon-BhL0bhVu.js} +10 -4
  23. package/dist/banner.d.ts +1 -16
  24. package/dist/banner.js +24 -8
  25. package/dist/buttonShare.d.ts +3 -11
  26. package/dist/buttonShare.js +6 -6
  27. package/dist/buttonWallet.d.ts +1 -7
  28. package/dist/buttonWallet.js +3 -3
  29. package/dist/i18n/defaults.d.ts +3 -2
  30. package/dist/i18n/defaults.js +5 -5
  31. package/dist/openInApp.d.ts +1 -5
  32. package/dist/openInApp.js +2 -2
  33. package/dist/postPurchase.d.ts +1 -19
  34. package/dist/postPurchase.js +5 -5
  35. package/dist/{rewards-VoZGH2Ko.js → rewards-BtPHdGcI.js} +4 -3
  36. package/dist/{useGlobalComponents-CZ7Sh2tZ.js → useGlobalComponents-Da9LDlRy.js} +1 -1
  37. package/dist/{useLightDomStyles-DphuQhvx.js → useLightDomStyles-DRkTVy4s.js} +1 -1
  38. package/dist/{usePlacement-4PoDbn2X.js → usePlacement-NZOjZ6IR.js} +6 -14
  39. package/dist/{useReward-BGgymGoH.js → useReward-B-yZ7nhY.js} +1 -1
  40. package/package.json +8 -7
  41. package/cdn/Banner.CgCiMrqn.js +0 -167
  42. package/cdn/ButtonShare.BiOpzkRY.js +0 -1
  43. package/cdn/ButtonWallet.Mmrku6ws.js +0 -40
  44. package/cdn/OpenInAppButton.D1UzTuHx.js +0 -1
  45. package/cdn/PostPurchase.Cvx1TI64.js +0 -89
  46. package/cdn/defaults.kWEdCyGS.js +0 -58
  47. package/cdn/embeddedWallet.BS-9u4Be.js +0 -1
  48. package/cdn/replay-V6FXES7X.BoL9fAjx.js +0 -1
  49. package/cdn/rewards.CIu9qbmI.js +0 -1
  50. package/cdn/useGlobalComponents.BC6Jgzg5.js +0 -1
  51. package/cdn/useLightDomStyles.imPXuAtf.js +0 -1
  52. package/cdn/useReward.BAmvPaVu.js +0 -1
  53. /package/dist/{embeddedWallet-By3_p5Xc.js → embeddedWallet-CxgyuwtP.js} +0 -0
package/cdn/loader.js CHANGED
@@ -1,154 +1 @@
1
- var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};const n=`.reset_base__1831jhd0 {
2
- margin: 0;
3
- padding: 0;
4
- border: 0;
5
- box-sizing: border-box;
6
- font-size: 100%;
7
- font: inherit;
8
- vertical-align: baseline;
9
- -webkit-tap-highlight-color: transparent;
10
- }
11
- .reset_focusRing__1831jhd1 {
12
- outline: 2px solid transparent;
13
- outline-offset: 2px;
14
- }
15
- .reset_focusRing__1831jhd1:focus-visible {
16
- outline-color: currentColor;
17
- }
18
- .reset_fieldAppearance__1831jhd2 {
19
- appearance: none;
20
- background-color: transparent;
21
- }
22
- .reset_visuallyHidden__1831jhd3 {
23
- position: absolute;
24
- width: 1px;
25
- height: 1px;
26
- padding: 0;
27
- margin: -1px;
28
- overflow: hidden;
29
- clip: rect(0, 0, 0, 0);
30
- white-space: nowrap;
31
- border-width: 0;
32
- }
33
- .reset_element_ul__1831jhd4 {
34
- list-style: none;
35
- }
36
- .reset_element_ol__1831jhd5 {
37
- list-style: none;
38
- }
39
- .reset_element_button__1831jhd6 {
40
- cursor: pointer;
41
- }
42
- .reset_element_a__1831jhd7 {
43
- text-decoration: none;
44
- color: inherit;
45
- }
46
- .reset_element_table__1831jhdb {
47
- border-collapse: collapse;
48
- border-spacing: 0;
49
- }
50
- .reset_element_img__1831jhdc {
51
- display: block;
52
- max-width: 100%;
53
- }:root {
54
- --text-primary__pbq4ak0: #000000;
55
- --text-secondary__pbq4ak1: #525252;
56
- --text-tertiary__pbq4ak2: #a3a3a3;
57
- --text-disabled__pbq4ak3: #a3a3a3;
58
- --text-action__pbq4ak4: #0043ef;
59
- --text-actionHover__pbq4ak5: #0036bf;
60
- --text-onAction__pbq4ak6: #ffffff;
61
- --text-error__pbq4ak7: #e31c31;
62
- --text-success__pbq4ak8: #09be67;
63
- --text-warning__pbq4ak9: #ec7e00;
64
- --surface-primary__pbq4aka: #0043ef;
65
- --surface-secondary__pbq4akb: #f2f6fe;
66
- --surface-background__pbq4akc: #ffffff;
67
- --surface-background2__pbq4akd: #f9fafb;
68
- --surface-elevated__pbq4ake: #ffffff;
69
- --surface-muted__pbq4akf: #f7f7f7;
70
- --surface-tertiary__pbq4akg: #f7f7f7;
71
- --surface-overlay__pbq4akh: #000000b2;
72
- --surface-disabled__pbq4aki: #e2e2e2;
73
- --surface-primaryHover__pbq4akj: #0036bf;
74
- --surface-primaryPressed__pbq4akk: #00288f;
75
- --surface-secondaryHover__pbq4akl: #e5ecfd;
76
- --surface-secondaryPressed__pbq4akm: #ccd9fc;
77
- --surface-error__pbq4akn: #fce8ea;
78
- --surface-success__pbq4ako: #f3fcf7;
79
- --surface-warning__pbq4akp: #fef9f2;
80
- --border-subtle__pbq4akq: #f5f5f5;
81
- --border-focus__pbq4akr: #a3a3a3;
82
- --border-error__pbq4aks: #e31c31;
83
- --border-success__pbq4akt: #09be67;
84
- --border-warning__pbq4aku: #ec7e00;
85
- --border-default__pbq4akv: #e2e2e2;
86
- --icon-primary__pbq4akw: #000000;
87
- --icon-secondary__pbq4akx: #525252;
88
- --icon-tertiary__pbq4aky: #a3a3a3;
89
- --icon-disabled__pbq4akz: #a3a3a3;
90
- --icon-action__pbq4ak10: #0043ef;
91
- --icon-actionHover__pbq4ak11: #0036bf;
92
- --icon-onAction__pbq4ak12: #ffffff;
93
- --icon-error__pbq4ak13: #e31c31;
94
- --icon-success__pbq4ak14: #09be67;
95
- --icon-warning__pbq4ak15: #ec7e00;
96
- }
97
- [data-theme='dark'] {
98
- --text-primary__pbq4ak0: #ffffff;
99
- --text-secondary__pbq4ak1: #f7f7f7;
100
- --text-tertiary__pbq4ak2: #f5f5f5;
101
- --text-disabled__pbq4ak3: #a3a3a3;
102
- --text-action__pbq4ak4: #668ef5;
103
- --text-actionHover__pbq4ak5: #0036bf;
104
- --text-onAction__pbq4ak6: #ffffff;
105
- --text-error__pbq4ak7: #e9495a;
106
- --text-success__pbq4ak8: #09be67;
107
- --text-warning__pbq4ak9: #ec7e00;
108
- --surface-primary__pbq4aka: #0043ef;
109
- --surface-secondary__pbq4akb: #00288f;
110
- --surface-background__pbq4akc: #000000;
111
- --surface-background2__pbq4akd: #000000;
112
- --surface-elevated__pbq4ake: #262626;
113
- --surface-muted__pbq4akf: #525252;
114
- --surface-tertiary__pbq4akg: #737373;
115
- --surface-overlay__pbq4akh: #000000b2;
116
- --surface-disabled__pbq4aki: #e2e2e2;
117
- --surface-primaryHover__pbq4akj: #0036bf;
118
- --surface-primaryPressed__pbq4akk: #00288f;
119
- --surface-secondaryHover__pbq4akl: #e5ecfd;
120
- --surface-secondaryPressed__pbq4akm: #ccd9fc;
121
- --surface-error__pbq4akn: #b61627;
122
- --surface-success__pbq4ako: #05723e;
123
- --surface-warning__pbq4akp: #8e4c00;
124
- --border-subtle__pbq4akq: #737373;
125
- --border-focus__pbq4akr: #a3a3a3;
126
- --border-error__pbq4aks: #e31c31;
127
- --border-success__pbq4akt: #09be67;
128
- --border-warning__pbq4aku: #ec7e00;
129
- --border-default__pbq4akv: #525252;
130
- --icon-primary__pbq4akw: #ffffff;
131
- --icon-secondary__pbq4akx: #f7f7f7;
132
- --icon-tertiary__pbq4aky: #f7f7f7;
133
- --icon-disabled__pbq4akz: #a3a3a3;
134
- --icon-action__pbq4ak10: #0043ef;
135
- --icon-actionHover__pbq4ak11: #0036bf;
136
- --icon-onAction__pbq4ak12: #ffffff;
137
- --icon-error__pbq4ak13: #e31c31;
138
- --icon-success__pbq4ak14: #09be67;
139
- --icon-warning__pbq4ak15: #ec7e00;
140
- }.sharedBaseCss_buttonReset__7cswil0 {
141
- margin: 0;
142
- border: 0;
143
- appearance: none;
144
- background-color: transparent;
145
- box-sizing: border-box;
146
- font-family: inherit;
147
- -webkit-tap-highlight-color: transparent;
148
- cursor: pointer;
149
- outline: 2px solid transparent;
150
- outline-offset: 2px;
151
- }
152
- .sharedBaseCss_buttonReset__7cswil0:focus-visible {
153
- outline-color: currentColor;
154
- }`;function r(e,t){let n=document.getElementById(e);if(n){n.textContent!==t&&(n.textContent=t);return}let r=document.createElement(`style`);r.id=e,r.textContent=t,document.head.appendChild(r)}function i(e,t){let n=`frak-base-${e}`;if(document.getElementById(n)||!t)return;let r=document.createElement(`style`);r.id=n,r.textContent=t,document.head.appendChild(r)}function a(e,t,n){r(`frak-placement-${e}-${t}`,n)}const o={injectBase:i,injectPlacement:a};function s(e){document.readyState===`complete`||document.readyState===`interactive`?setTimeout(e,1):document.addEventListener(`DOMContentLoaded`,e)}const c={parseError:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internalError:-32603,serverError:-32e3,clientNotConnected:-32001,configError:-32002,corruptedResponse:-32003,clientAborted:-32004,walletNotConnected:-32005,serverErrorForInteractionDelegation:-32006,userRejected:-32007};var l=class extends Error{code;data;constructor(e,t,n){super(t),this.code=e,this.data=n}toJSON(){return{code:this.code,message:this.message,data:this.data}}},u=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}get promise(){return this._promise}resolve=e=>{this._resolve?.(e)};reject=e=>{this._reject?.(e)}};function d(e){let{emittingTransport:t,listeningTransport:n,targetOrigin:r,middleware:i=[],lifecycleHandlers:a}=e,o=new Map;function s(e){return typeof e!=`object`||!e?!1:`clientLifecycle`in e||`iframeLifecycle`in e}function c(e){return typeof e!=`object`||!e?!1:`id`in e&&`topic`in e&&`data`in e}async function d(e){try{`clientLifecycle`in e&&a?.clientLifecycle?await a.clientLifecycle(e,{origin:r,source:null}):`iframeLifecycle`in e&&a?.iframeLifecycle&&await a.iframeLifecycle(e,{origin:r,source:null})}catch{}}async function f(e){let t={origin:r,source:null};for(let n of i)n.onRequest&&await n.onRequest(e,t);return e}async function p(e,t){let n={origin:r,source:null},a=t;for(let t of i)t.onResponse&&(a=await t.onResponse(e,a,n));return a}async function m(e){try{if(new URL(e.origin).origin.toLowerCase()!==new URL(r).origin.toLowerCase())return}catch{return}if(s(e.data)){await d(e.data);return}if(!c(e.data))return;let t;try{let n=e.data.data,r=n instanceof Uint8Array||ArrayBuffer.isView(n)?{result:n}:n;t=await p(e.data,r)}catch{return}let n=o.get(e.data.id);n&&n(t)}async function h(e){let n=e;try{n=await f(e)}catch(e){throw e}t.postMessage(n,r)}function g(e){t.postMessage(e,r)}function _(){return`${Date.now()}-${Math.random().toString(36).substring(2,9)}`}n.addEventListener(`message`,m);function v(e){let t=_(),n=new u;return o.set(t,e=>{e.error?n.reject(new l(e.error.code,e.error.message,e.error.data)):n.resolve(e.result),o.delete(t)}),h({id:t,topic:e.method,data:{method:e.method,params:e.params}}).catch(e=>{o.delete(t),n.reject(e)}),n.promise}function y(e,t){let n=_();return o.set(n,e=>{e.error?o.delete(n):t(e.result)}),h({id:n,topic:e.method,data:{method:e.method,params:e.params}}).catch(e=>{o.delete(n)}),()=>{o.delete(n)}}function b(){n.removeEventListener(`message`,m),o.clear()}return{request:v,listen:y,sendLifecycle:g,cleanup:b}}function f(e){return new TextEncoder().encode(JSON.stringify(e))}function p(e){try{return JSON.parse(new TextDecoder().decode(e))}catch{return null}}const m=`frak-client-id`;function h(){return typeof crypto<`u`&&crypto.randomUUID?crypto.randomUUID():`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}function g(){if(typeof window>`u`||!window.localStorage)return h();let e=localStorage.getItem(m);return e||(e=h(),localStorage.setItem(m,e)),e}var _=class extends Map{maxSize;constructor(e){super(),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&(super.delete(e),super.set(e,t)),t}set(e,t){if(super.has(e)&&super.delete(e),super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=super.keys().next().value;e!==void 0&&super.delete(e)}return this}};let v;function y(){return v||={promiseCache:new _(1024),responseCache:new _(1024),failureCache:new _(1024)},v}async function b(e,{cacheKey:t,cacheTime:n=3e4}){let{promiseCache:r,responseCache:i,failureCache:a}=y();if(n>0){let e=i.get(t);if(e&&Date.now()-e.created<n)return e.data}let o=a.get(t);if(o&&Date.now()-o<1e3)throw Error(`Cache: ${t} recently failed, backing off`);let s=r.get(t);s||(s=e(),r.set(t,s));try{let e=await s;return i.set(t,{data:e,created:Date.now()}),a.delete(t),e}catch(e){throw a.set(t,Date.now()),e}finally{r.delete(t)}}function x(){v&&(v.promiseCache.clear(),v.responseCache.clear(),v.failureCache.clear())}const ee=`https://backend.frak.id`;function te(e){return e.includes(`localhost:3000`)||e.includes(`localhost:3010`)}function ne(e){return te(e)?`https://localhost:3030`:e.includes(`wallet-dev.frak.id`)||e.includes(`wallet.gcp-dev.frak.id`)?`https://backend.gcp-dev.frak.id`:ee}function S(e){if(e)return ne(e);if(typeof window<`u`){let e=window.FrakSetup?.client?.config?.walletUrl;if(e)return ne(e)}return ee}const C=`__frakSdkConfig`,re=`frak-config-cache`,w=`frak-merchant-id`,T={key:re},E=typeof window<`u`;function D(){return{isResolved:!1,merchantId:``}}let O=null;function ie(){if(!E)return null;try{let e=localStorage.getItem(T.key);if(!e)return null;let t=JSON.parse(e);return t.config?.isResolved?(O=t,t):null}catch{return null}}function ae(){return(O??ie())?.config}function oe(){let e=O??ie();return e?Date.now()-e.timestamp<3e4:!1}function se(e){if(!(!E||!e.isResolved))try{let t={config:e,timestamp:Date.now()};localStorage.setItem(T.key,JSON.stringify(t)),O=t}catch{}}function ce(){if(E){O=null;try{localStorage.removeItem(T.key)}catch{}}}function le(){E&&(window[C]||(window[C]=ae()??D()))}function k(){return E?(le(),window[C]??D()):D()}function ue(e){E&&window.dispatchEvent(new CustomEvent(`frak:config`,{detail:e}))}function de(e){return e??(E?window.location.hostname:``)}async function fe(e,t,n){try{let r=S(t),i=n?`&lang=${encodeURIComponent(n)}`:``,a=await fetch(`${r}/user/merchant/resolve?domain=${encodeURIComponent(e)}${i}`);if(!a.ok)return;let o=await a.json();if(E)try{sessionStorage.setItem(w,o.merchantId)}catch{}return o}catch{return}}const A={getConfig:k,get isResolved(){return k().isResolved},get isCacheFresh(){return oe()},setCacheScope(e,t){T.key=`${re}:${`${e}:${t??``}`}`,O=null},setConfig(e){if(E&&(window[C]=e),se(e),ue(e),E&&e.merchantId)try{sessionStorage.setItem(w,e.merchantId)}catch{}},reset(){let e=ae()??D();E&&(window[C]=e),ue(e)},clearCache(){if(ce(),x(),E)try{sessionStorage.removeItem(w)}catch{}},resolve(e,t,n){let r=de(e);return r?b(async()=>{let e=await fe(r,t,n);if(!e)throw Error(`Config resolution returned empty`);return e},{cacheKey:`sdkConfig:${r}:${n??``}`,cacheTime:1/0}).catch(()=>void 0):Promise.resolve(void 0)},getMerchantId(){let e=k();if(e.isResolved&&e.merchantId)return e.merchantId;if(E)try{return sessionStorage.getItem(w)??void 0}catch{}},async resolveMerchantId(e,t){return A.getMerchantId()||(await A.resolve(e,t))?.merchantId}};function j(e){return btoa(Array.from(e,e=>String.fromCharCode(e)).join(``)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function M(e){let t=e.length%4;return Uint8Array.from(atob(e.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(e.length+(t===0?0:4-t),`=`)),e=>e.charCodeAt(0))}function pe(e){return j(f(e))}function me(e,t,n,r,i,a){let o=pe(he({redirectUrl:t.redirectUrl,directExit:t.directExit,lang:t.lang,merchantId:n,metadata:{name:r,css:a,logoUrl:t.metadata?.logoUrl,homepageLink:t.metadata?.homepageLink},clientId:i})),s=new URL(e);return s.pathname=`/sso`,s.searchParams.set(`p`,o),s.toString()}function he(e){return{r:e.redirectUrl,cId:e.clientId,d:e.directExit,l:e.lang,m:e.merchantId,md:{n:e.metadata?.name,css:e.metadata?.css,l:e.metadata?.logoUrl,h:e.metadata?.homepageLink}}}const ge=`menubar=no,status=no,scrollbars=no,fullscreen=no,width=500, height=800`,_e=`frak-sso`;async function ve(e,t){let{metadata:n,customizations:r,walletUrl:i}=e.config,a={...t,directExit:t.directExit??!t.redirectUrl};if(a.openInSameWindow??!!a.redirectUrl)return await e.request({method:`frak_openSso`,params:[a,n.name,r?.css]});let o=a.ssoPopupUrl??me(i??`https://wallet.frak.id`,a,await A.resolveMerchantId()??``,n.name,g(),r?.css),s=window.open(o,_e,ge);if(!s)throw Error(`Popup was blocked. Please allow popups for this site.`);return s.focus(),await e.request({method:`frak_openSso`,params:[a,n.name,r?.css]})??{}}function N(e,t,n){if(e)try{e.openPanel?.track(t,n)}catch{}}function P(e,t){let n=e.get(t);if(n!==null)return n;let r=t.toLowerCase();for(let[t,n]of e)if(t.toLowerCase()===r)return n;return null}function F(e,t){let n=t.toLowerCase(),r=[...e.keys()].filter(e=>e.toLowerCase()===n);for(let t of r)e.delete(t)}const ye=/^0x[a-fA-F0-9]{40}$/;function I(e){return typeof e==`string`&&ye.test(e)}function be(e,t){return e.toLowerCase()===t.toLowerCase()}function xe(e){let t=new Uint8Array(20);for(let n=0;n<20;n++){let r=Number.parseInt(e.substring(2+n*2,4+n*2),16);if(Number.isNaN(r))throw Error(`Invalid address: ${e}`);t[n]=r}return t}const Se=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Ce(e){let t=`0x`;for(let n=0;n<20;n++)t+=Se[e[n]];return t}function we(e){return`r`in e&&!(`v`in e)}function L(e){return`v`in e&&e.v===2}const Te=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ee(e){return typeof e==`string`&&Te.test(e)}function De(e){let t=e.replace(/-/g,``),n=new Uint8Array(16);for(let e=0;e<16;e++)n[e]=Number.parseInt(t.substring(e*2,e*2+2),16);return n}function Oe(e){let t=``;for(let n=0;n<16;n++)t+=e[n].toString(16).padStart(2,`0`);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20,32)}`}function ke(e){if(!Ee(e.m)||!Number.isInteger(e.t)||e.t<0||e.t>4294967295)return null;let t=typeof e.c==`string`&&e.c.length>0,n=typeof e.w==`string`&&I(e.w);if(!t&&!n||t&&!Ee(e.c))return null;let r=new Uint8Array(21+(t?16:0)+(n?20:0)),i=new DataView(r.buffer,r.byteOffset,r.byteLength),a=0;return r[a++]=2|(t?16:0)|(n?32:0),r.set(De(e.m),a),a+=16,i.setUint32(a,e.t,!1),a+=4,t&&(r.set(De(e.c),a),a+=16),n&&(r.set(xe(e.w),a),a+=20),r}function Ae(e){if(e.length<21)return null;let t=e[0];if((t&15)!=2||t&192)return null;let n=(t&16)!=0,r=(t&32)!=0;if(!n&&!r)return null;let i=21+(n?16:0)+(r?20:0);if(e.length!==i)return null;let a=1,o=Oe(e.subarray(a,a+16));a+=16;let s=new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(a,!1);a+=4;let c={v:2,m:o,t:s};if(n&&(c.c=Oe(e.subarray(a,a+16)),a+=16),r){let t=Ce(e.subarray(a,a+20));if(!I(t))return null;c.w=t,a+=20}return c}const R=`fCtx`;function je(e){if(e)try{if(L(e)){let t=ke(e);return t?j(t):void 0}return j(xe(e.r))}catch{}}function Me(e){if(!(!e||e.length===0))try{let t=M(e);if(t.length!==20)return Ae(t)||void 0;let n=Ce(t);if(I(n))return{r:n}}catch{}}function Ne({url:e}){if(!e)return null;let t=P(new URL(e).searchParams,R);return t?Me(t):null}function Pe(e){return{utm_source:e.utmSource??`frak`,utm_medium:e.utmMedium??void 0,utm_campaign:e.utmCampaign??void 0,utm_content:e.utmContent,utm_term:e.utmTerm,via:e.via??void 0,ref:e.ref??void 0}}function Fe(e,t){let n=Pe(t??{});for(let[t,r]of Object.entries(n))r===void 0||r===``||e.searchParams.has(t)||e.searchParams.set(t,r)}function Ie({url:e,context:t,attribution:n}){if(!e)return null;let r=je(t);if(!r)return null;let i=new URL(e);return F(i.searchParams,R),i.searchParams.set(R,r),Fe(i,n),i.toString()}function Le(e){let t=new URL(e);return F(t.searchParams,R),t.toString()}function Re({url:e,context:t}){if(!window.location?.href||typeof window>`u`)return;let n=e??window.location.href,r;r=t===null?Le(n):Ie({url:n,context:t}),r&&window.history.replaceState(null,``,r.toString())}const z={compress:je,decompress:Me,parse:Ne,update:Ie,remove:Le,replaceUrl:Re},B={eur:`fr-FR`,usd:`en-US`,gbp:`en-GB`};function V(e){return e&&e in B?e:`eur`}function ze(e){return e?B[e]??B.eur:B.eur}function Be(e,t){let n=ze(t),r=V(t);return e.toLocaleString(n,{style:`currency`,currency:r,minimumFractionDigits:0,maximumFractionDigits:2})}function Ve(e){return e?`${e}Amount`:`eurAmount`}var He=class{constructor(e){this.baseUrl=e.baseUrl,this.headers={"Content-Type":`application/json`,...e.defaultHeaders},this.maxRetries=e.maxRetries??3,this.initialRetryDelay=e.initialRetryDelay??500}async resolveHeaders(){let e={};for(let[t,n]of Object.entries(this.headers)){let r=await n;r!==null&&(e[t]=r)}return e}addHeader(e,t){this.headers[e]=t}async post(e,t,n,r){try{let r=await fetch(e,{method:`POST`,headers:await this.resolveHeaders(),body:t?JSON.stringify(t??{}):void 0,keepalive:!0,...n});if(r.status===401)return null;if(r.status!==200&&r.status!==202)throw Error(`HTTP error! status: ${r.status}`);let i=await r.text();return i?JSON.parse(i):null}catch{if(r<this.maxRetries){let i=this.initialRetryDelay*2**r;return await new Promise(e=>setTimeout(e,i)),this.post(e,t,n,r+1)}return null}}async fetch(e,t,n={}){let r=`${this.baseUrl}${e}`;return this.post(r,t,n,0)}},Ue=class{constructor(e){this.groups=[],this.queue=[],this.options=e;let t={"openpanel-client-id":e.clientId};e.clientSecret&&(t[`openpanel-client-secret`]=e.clientSecret),t[`openpanel-sdk-name`]=e.sdk||`node`,t[`openpanel-sdk-version`]=e.sdkVersion||`1.3.1`,this.api=new He({baseUrl:e.apiUrl||`https://api.openpanel.dev`,defaultHeaders:t})}init(){}ready(){this.options.disabled=!1,this.options.waitForProfile=!1,this.flush()}shouldQueue(e){return!!(this.options.disabled||this.options.waitForProfile&&!this.profileId||e.type===`replay`&&!this.sessionId)}addQueue(e){e.type===`track`&&(e.payload.properties={...e.payload.properties??{},__timestamp:new Date().toISOString()}),this.queue.push(e)}async send(e){if(this.options.filter&&!this.options.filter(e))return Promise.resolve();if(this.shouldQueue(e))return this.addQueue(e),Promise.resolve();let t=await this.api.fetch(`/track`,e,{keepalive:e.type!==`replay`});this.deviceId=t?.deviceId;let n=!!this.sessionId;return this.sessionId=t?.sessionId,!n&&this.sessionId&&this.flush(),t}setGlobalProperties(e){this.global={...this.global,...e}}track(e,t){this.log(`track event`,e,t);let{groups:n,profileId:r,...i}=t??{},a=[...new Set([...this.groups,...n??[]])];return this.send({type:`track`,payload:{name:e,profileId:r??this.profileId,groups:a.length>0?a:void 0,properties:{...this.global??{},...i}}})}identify(e){if(this.log(`identify user`,e),e.profileId&&(this.profileId=e.profileId,this.flush()),e.profileId&&Object.keys(e).length>1)return this.send({type:`identify`,payload:{...e,properties:{...this.global,...e.properties}}})}upsertGroup(e){return this.log(`upsert group`,e),this.send({type:`group`,payload:e})}setGroup(e){return this.log(`set group`,e),this.groups.includes(e)||(this.groups=[...this.groups,e]),this.send({type:`assign_group`,payload:{groupIds:[e],profileId:this.profileId}})}setGroups(e){return this.log(`set groups`,e),this.groups=[...new Set([...this.groups,...e])],this.send({type:`assign_group`,payload:{groupIds:e,profileId:this.profileId}})}alias(e){}increment(e){return this.send({type:`increment`,payload:e})}decrement(e){return this.send({type:`decrement`,payload:e})}revenue(e,t){let n=t?.deviceId;return delete t?.deviceId,this.track(`revenue`,{...t??{},...n?{__deviceId:n}:{},__revenue:e})}getDeviceId(){return this.deviceId??``}getSessionId(){return this.sessionId??``}fetchDeviceId(){return Promise.resolve(this.deviceId??``)}clear(){this.profileId=void 0,this.groups=[],this.deviceId=void 0,this.sessionId=void 0}buildFlushPayload(e){if(e.type===`replay`)return e.payload;if(e.type===`track`){let t=`groups`in e.payload?e.payload.groups??[]:[],n=[...new Set([...this.groups,...t])];return{...e.payload,profileId:e.payload.profileId??this.profileId,groups:n.length>0?n:void 0}}return e.type===`identify`||e.type===`increment`||e.type===`decrement`||e.type===`assign_group`?{...e.payload,profileId:e.payload.profileId??this.profileId}:e.payload}flush(){let e=[];for(let t of this.queue){if(this.shouldQueue(t)){e.push(t);continue}let n=this.buildFlushPayload(t);this.send({...t,payload:n})}this.queue=e}log(...e){this.options.debug}},We=typeof document<`u`?document.currentScript:null;function Ge(e){return e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace(`-`,``).replace(`_`,``))}var Ke=class extends Ue{constructor(e){if(super({sdk:`web`,sdkVersion:`1.4.1`,...e}),this.options=e,this.lastPath=``,this.pendingRevenues=[],!this.isServer()){try{let e=sessionStorage.getItem(`openpanel-pending-revenues`);if(e){let t=JSON.parse(e);Array.isArray(t)&&(this.pendingRevenues=t)}}catch{this.pendingRevenues=[]}if(this.setGlobalProperties({__referrer:document.referrer}),this.options.trackScreenViews&&(this.trackScreenViews(),setTimeout(()=>this.screenView(),0)),this.options.trackOutgoingLinks&&this.trackOutgoingLinks(),this.options.trackAttributes&&this.trackAttributes(),this.options.sessionReplay?.enabled){let e=this.options.sessionReplay.sampleRate??1;Math.random()<e&&this.loadReplayModule().then(e=>{e&&e.startReplayRecorder(this.options.sessionReplay,e=>{this.send({type:`replay`,payload:{...e}})})})}}}async loadReplayModule(){try{if(typeof __OPENPANEL_REPLAY_URL__<`u`){let e=We,t=this.options.sessionReplay?.scriptUrl||e?.src?.replace(`.js`,`-replay.js`)||`https://openpanel.dev/op1-replay.js`;return window.__openpanel_replay?window.__openpanel_replay:new Promise(e=>{let n=document.createElement(`script`);n.src=t,n.onload=()=>{e(window.__openpanel_replay??null)},n.onerror=()=>{e(null)},document.head.appendChild(n)})}return await import(`./replay-V6FXES7X.BoL9fAjx.js`)}catch{return null}}debounce(e,t){clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(e,t)}isServer(){return typeof document>`u`}trackOutgoingLinks(){this.isServer()||document.addEventListener(`click`,e=>{let t=e.target,n=t.closest(`a`);if(n&&t){let e=n.getAttribute(`href`);if(e?.startsWith(`http`))try{let r=new URL(e),i=window.location.hostname;r.hostname!==i&&super.track(`link_out`,{href:e,text:n.innerText||n.getAttribute(`title`)||t.getAttribute(`alt`)||t.getAttribute(`title`)})}catch{}}})}trackScreenViews(){if(this.isServer())return;let e=history.pushState;history.pushState=function(...t){let n=e.apply(this,t);return window.dispatchEvent(new Event(`pushstate`)),window.dispatchEvent(new Event(`locationchange`)),n};let t=history.replaceState;history.replaceState=function(...e){let n=t.apply(this,e);return window.dispatchEvent(new Event(`replacestate`)),window.dispatchEvent(new Event(`locationchange`)),n},window.addEventListener(`popstate`,()=>{window.dispatchEvent(new Event(`locationchange`))});let n=()=>this.debounce(()=>this.screenView(),50);this.options.trackHashChanges?window.addEventListener(`hashchange`,n):window.addEventListener(`locationchange`,n)}trackAttributes(){this.isServer()||document.addEventListener(`click`,e=>{let t=e.target,n=t.closest(`button`),r=t.closest(`a`),i=n?.getAttribute(`data-track`)?n:r?.getAttribute(`data-track`)?r:null;if(i){let e={};for(let t of i.attributes)t.name.startsWith(`data-`)&&t.name!==`data-track`&&(e[Ge(t.name.replace(/^data-/,``))]=t.value);let t=i.getAttribute(`data-track`);t&&super.track(t,e)}})}track(e,t){return super.track(e,{...t,__path:this.lastPath})}screenView(e,t){if(this.isServer())return;let n,r;typeof e==`string`?(n=e,r=t):(n=window.location.href,r=e),this.lastPath!==n&&(this.lastPath=n,super.track(`screen_view`,{...r??{},__path:n,__title:document.title}))}async flushRevenue(){let e=this.pendingRevenues.map(e=>super.revenue(e.amount,e.properties));await Promise.all(e),this.clearRevenue()}clearRevenue(){if(this.pendingRevenues=[],!this.isServer())try{sessionStorage.removeItem(`openpanel-pending-revenues`)}catch{}}pendingRevenue(e,t){if(this.pendingRevenues.push({amount:e,properties:t}),!this.isServer())try{sessionStorage.setItem(`openpanel-pending-revenues`,JSON.stringify(this.pendingRevenues))}catch{}}};const H=`nexus-wallet-backup`,U=`frakwallet://`;function qe(e,t){if(typeof window>`u`)return;let n=new URL(window.location.href),r=n.searchParams.get(`sso`);r&&(t.then(()=>{e.sendLifecycle({clientLifecycle:`sso-redirect-complete`,data:{compressed:r}})}).catch(e=>{}),n.searchParams.delete(`sso`),window.history.replaceState({},``,n.toString()))}function Je(){let e=navigator.userAgent;return/Android/i.test(e)&&/Chrome\/\d+/i.test(e)}const Ye=U.replace(`://`,``);function Xe(e){return`intent://${e.slice(13)}#Intent;scheme=${Ye};end`}function W(e,t){let n=t?.timeout??2500,r=!1,i=()=>{document.hidden&&(r=!0)};document.addEventListener(`visibilitychange`,i);let a=Je()&&Ze(e)?Xe(e):e;window.location.href=a,setTimeout(()=>{document.removeEventListener(`visibilitychange`,i),r||t?.onFallback?.()},n)}function Ze(e){return e.startsWith(U)}function Qe(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent;return!!(/iPhone|iPad|iPod/i.test(e)||/Macintosh/i.test(e)&&navigator.maxTouchPoints>1)}const G=Qe();function $e(){return typeof navigator>`u`?!1:G?!0:/Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function et(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent.toLowerCase();return e.includes(`instagram`)||e.includes(`fban`)||e.includes(`fbav`)||e.includes(`facebook`)}const K=et();function tt(e){G&&e.startsWith(`https://`)?window.location.href=`x-safari-https://${e.slice(8)}`:G&&e.startsWith(`http://`)?window.location.href=`x-safari-http://${e.slice(7)}`:window.location.href=`https://backend.frak.id/common/social?u=${encodeURIComponent(e)}`}const q={id:`frak-wallet`,name:`frak-wallet`,title:`Frak Wallet`,allow:`publickey-credentials-get *; clipboard-write; web-share *`,style:{width:`0`,height:`0`,border:`0`,position:`absolute`,zIndex:2000001,top:`-1000px`,left:`-1000px`,colorScheme:`auto`}};function nt({walletBaseUrl:e,config:t}){let n=document.querySelector(`#frak-wallet`);n&&n.remove();let r=document.createElement(`iframe`);r.id=q.id,r.name=q.name,r.allow=q.allow,r.style.zIndex=q.style.zIndex.toString(),it({iframe:r,isVisible:!1});let i=t?.walletUrl??e??`https://wallet.frak.id`,a=g();return ot(i),ot(S(i)),r.src=rt({walletUrl:i,clientId:a,preload:t?.preload}),new Promise(e=>{r.addEventListener(`load`,()=>e(r)),document.body.appendChild(r)})}function rt({walletUrl:e,clientId:t,preload:n}){let r=`${e}/listener?clientId=${encodeURIComponent(t)}`;return!n||n.length===0?r:`${r}#preload=${n.join(`,`)}`}function it({iframe:e,isVisible:t}){if(!t){e.style.width=`0`,e.style.height=`0`,e.style.border=`0`,e.style.position=`fixed`,e.style.top=`-1000px`,e.style.left=`-1000px`;return}e.style.position=`fixed`,e.style.top=`0`,e.style.left=`0`,e.style.width=`100%`,e.style.height=`100%`,e.style.pointerEvents=`auto`}function at(e=`/listener`){if(!window.opener)return null;let t=t=>{try{return t.location.origin===window.location.origin&&t.location.pathname===e}catch{return!1}};if(t(window.opener))return window.opener;try{let e=window.opener.frames;for(let n=0;n<e.length;n++)if(t(e[n]))return e[n];return null}catch{return null}}function ot(e){if(!(typeof document>`u`))try{let t=new URL(e).origin,n=`link[rel="preconnect"][data-frak-preconnect="${t}"]`;if(document.head.querySelector(n))return;let r=document.createElement(`link`);r.rel=`preconnect`,r.href=t,r.crossOrigin=``,r.dataset.frakPreconnect=t,document.head.appendChild(r)}catch{}}const st=G&&K;function ct(e){e?localStorage.setItem(H,e):localStorage.removeItem(H)}function J(e,t){try{let n=new URL(e);if(!n.searchParams.has(`u`))return e;let r=dt(window.location.href,t);return n.searchParams.delete(`u`),n.searchParams.append(`u`,r),n.toString()}catch{return e}}function lt(e){let t=new URL(window.location.href);e&&t.searchParams.set(`fmt`,e);let n=t.protocol===`http:`?`x-safari-http`:`x-safari-https`;window.location.href=`${n}://${t.host}${t.pathname}${t.search}${t.hash}`}function ut(e){return e.includes(`/common/social`)}function dt(e,t){if(!t)return e;try{let n=new URL(e);return n.searchParams.set(`fmt`,t),n.toString()}catch{return`${e}${e.includes(`?`)?`&`:`?`}fmt=${encodeURIComponent(t)}`}}function ft(e,t,n,r,i){if(i){let e=J(t,r);window.open(e,`_blank`);return}if(Ze(t)){let i=J(t,r);W(i,{onFallback:()=>{e.contentWindow?.postMessage({clientLifecycle:`deep-link-failed`,data:{originalUrl:i}},n)}})}else if(st&&ut(t))lt(r);else{let e=J(t,r);window.location.href=e}}function pt({iframe:e,targetOrigin:t}){let n=new u;return{handleEvent:r=>{if(!(`iframeLifecycle`in r))return;let{iframeLifecycle:i,data:a}=r;switch(i){case`connected`:n.resolve(!0);break;case`do-backup`:ct(a.backup);break;case`remove-backup`:localStorage.removeItem(H);break;case`show`:case`hide`:it({iframe:e,isVisible:i===`show`});break;case`redirect`:ft(e,a.baseRedirectUrl,t,a.mergeToken,a.openInNewTab);break}},isConnected:n.promise}}function mt({config:e,iframe:t}){let n=e?.walletUrl??`https://wallet.frak.id`,r=typeof navigator<`u`?navigator.language?.split(`-`)[0]:void 0,i=e.metadata.lang??(r===`en`||r===`fr`?r:void 0),a=e.domain??(typeof window<`u`?window.location.hostname:``);A.setCacheScope(a,i),A.reset();let o=A.isCacheFresh?void 0:A.resolve(e.domain,e.walletUrl,i),s=pt({iframe:t,targetOrigin:n}),f=new u,p=Date.now();if(!t.contentWindow)throw new l(c.configError,`The iframe does not have a content window`);let m=d({emittingTransport:t.contentWindow,listeningTransport:window,targetOrigin:n,middleware:[{async onRequest(e,t){if(!await s.isConnected)throw new l(c.clientNotConnected,`The iframe provider isn't connected yet`);return await f.promise,t}}],lifecycleHandlers:{iframeLifecycle:(e,t)=>{s.handleEvent(e)}}}),h=ht(m,s),_=async()=>{h(),m.cleanup(),t.remove(),x(),A.clearCache(),A.reset()},v;{v=new Ke({apiUrl:`https://op-api.gcp.frak.id`,clientId:`f305d11d-b93b-487c-80d4-92deb7903e98`,trackScreenViews:!0,trackOutgoingLinks:!0,trackAttributes:!1,filter:({type:e,payload:t})=>(e!==`track`||!t?.properties||`sdk_version`in t.properties||(t.properties={...t.properties,sdk_version:`1.2.0`,user_anonymous_client_id:g()}),!0)}),v.setGlobalProperties({sdk_version:`1.2.0`,user_anonymous_client_id:g()}),v.init(),v.track(`sdk_initialized`,{sdk_version:`1.2.0`});let e=!1,t=setTimeout(()=>{e||(e=!0,v?.track(`sdk_iframe_handshake_failed`,{reason:`timeout`}))},3e4);s.isConnected.then(()=>{e||(e=!0,clearTimeout(t),v?.track(`sdk_iframe_connected`,{handshake_duration_ms:Date.now()-p}))}).catch(()=>{e||(e=!0,clearTimeout(t),v?.track(`sdk_iframe_handshake_failed`,{reason:`unknown`}))})}let y=gt({config:e,rpcClient:m,lifecycleManager:s,configPromise:o,contextSent:f,openPanel:v}).then(()=>{}).catch(e=>{throw f.reject(e),e});return{config:e,waitForConnection:s.isConnected,waitForSetup:y,request:m.request,listenerRequest:m.listen,destroy:_,openPanel:v}}function ht(e,t){let n,r,i=()=>e.sendLifecycle({clientLifecycle:`heartbeat`});async function a(){i(),n=setInterval(i,250),r=setTimeout(()=>{o()},3e4),await t.isConnected,o()}function o(){n&&clearInterval(n),r&&clearTimeout(r)}return a(),o}async function gt({config:e,rpcClient:t,lifecycleManager:n,configPromise:r,contextSent:i,openPanel:a}){await n.isConnected,qe(t,n.isConnected);let o=new URL(window.location.href),s=o.searchParams.get(`fmt`)??void 0;s&&(o.searchParams.delete(`fmt`),window.history.replaceState({},``,o.toString()));let c=t=>{let n=t?.merchantId??e.metadata.merchantId??``,r=t?.domain??``,i=t?.allowedDomains??[],a=t?.sdkConfig,o=a?.attribution||e.attribution?{...e.attribution,...a?.attribution}:void 0;A.setConfig(a?{isResolved:!0,merchantId:n,domain:r,allowedDomains:i,hasRawSdkConfig:!0,name:a.name??e.metadata.name,logoUrl:a.logoUrl??e.metadata.logoUrl,homepageLink:a.homepageLink??e.metadata.homepageLink,lang:a.lang??e.metadata.lang,currency:a.currency??e.metadata.currency,hidden:a.hidden,css:a.css,translations:a.translations,placements:a.placements,components:a.components,attribution:o}:{isResolved:!0,merchantId:n,domain:r,allowedDomains:i,name:e.metadata.name,logoUrl:e.metadata.logoUrl,homepageLink:e.metadata.homepageLink,lang:e.metadata.lang,currency:e.metadata.currency,attribution:o})},l=!1,u=e=>{let n=l?void 0:s;l=!0;let r=e.hasRawSdkConfig?{name:e.name,logoUrl:e.logoUrl,homepageLink:e.homepageLink,lang:e.lang,currency:e.currency,hidden:e.hidden,css:e.css,translations:e.translations,placements:e.placements,attribution:e.attribution}:e.attribution?{attribution:e.attribution}:void 0,i=g();if(a){let t=a.global??{};a.setGlobalProperties({...t,merchant_id:e.merchantId,domain:e.domain??``})}t.sendLifecycle({clientLifecycle:`resolved-config`,data:{merchantId:e.merchantId,domain:e.domain??``,allowedDomains:e.allowedDomains??[],sourceUrl:window.location.href,...i&&{sdkAnonymousId:i},...n&&{pendingMergeToken:n},...r&&{sdkConfig:r}}})};A.isResolved&&(u(A.getConfig()),i.resolve()),r&&(c(await r),u(A.getConfig()),i.resolve());async function d(){let n=e.customizations?.css;n&&t.sendLifecycle({clientLifecycle:`modal-css`,data:{cssLink:n}})}async function f(){let n=e.customizations?.i18n;n&&t.sendLifecycle({clientLifecycle:`modal-i18n`,data:{i18n:n}})}async function p(){if(typeof window>`u`)return;let e=window.localStorage.getItem(H);e&&t.sendLifecycle({clientLifecycle:`restore-backup`,data:{backup:e}})}(await Promise.allSettled([d(),f(),p()])).some(e=>e.status===`rejected`)&&a?.track(`sdk_iframe_handshake_failed`,{reason:`asset_push`})}function _t(e){return p(M(e))}async function vt({config:e}){let t=yt(e),n=await nt({config:t});if(!n)return;let r=mt({config:t,iframe:n});if(await r.waitForSetup,await r.waitForConnection)return r}function yt(e){let t=V(e.metadata?.currency);return{...e,metadata:{...e.metadata,currency:t}}}function bt({perCall:e,defaults:t,productUtmContent:n}){if(e===null)return;let r=e!==void 0,i=t!==void 0&&Object.keys(t).length>0;if(!r&&!i&&!(n!==void 0&&n!==``))return;let a={...t,...e??{}},o=n??e?.utmContent;return o!==void 0&&o!==``?a.utmContent=o:delete a.utmContent,a}var xt=t({DEEP_LINK_SCHEME:()=>U,FrakContextManager:()=>z,base64urlDecode:()=>M,base64urlEncode:()=>j,baseIframeProps:()=>q,clearAllCache:()=>x,compressJsonToB64:()=>pe,createIFrameFrakClient:()=>mt,decompressJsonFromB64:()=>_t,deleteQueryParamCaseInsensitive:()=>F,findIframeInOpener:()=>at,formatAmount:()=>Be,generateSsoUrl:()=>me,getBackendUrl:()=>S,getClientId:()=>g,getCurrencyAmountKey:()=>Ve,getQueryParamCaseInsensitive:()=>P,getSupportedCurrency:()=>V,isIOS:()=>G,isInAppBrowser:()=>K,isMobile:()=>$e,mergeAttribution:()=>bt,redirectToExternalBrowser:()=>tt,sdkConfigStore:()=>A,setupClient:()=>vt,ssoPopupFeatures:()=>ge,ssoPopupName:()=>_e,trackEvent:()=>N,triggerDeepLinkWithFallback:()=>W,withCache:()=>b});async function St(e,t,n){return await e.request({method:`frak_displayEmbeddedWallet`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function Y(e,{steps:t,metadata:n},r){return await e.request({method:`frak_displayModal`,params:r?[t,n,e.config.metadata,r]:[t,n,e.config.metadata]})}async function Ct(e,t,n){return await e.request({method:`frak_displaySharingPage`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function wt(e){if(typeof window>`u`)return;let t=g();if(!t)return;let n=await A.resolveMerchantId();if(!n)return;let r=`frak-identity-ensured-${n}`;if(!window.sessionStorage.getItem(r))try{let i=S();(await fetch(`${i}/user/identity/ensure`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`,"x-wallet-sdk-auth":e,"x-frak-client-id":t},body:JSON.stringify({merchantId:n})})).ok&&window.sessionStorage.setItem(r,`1`)}catch{}}async function Tt(e,t){return b(()=>e.request({method:`frak_getMerchantInformation`}),{cacheKey:`frak_getMerchantInformation`,cacheTime:t?.cacheTime})}async function Et(e,t){return b(()=>e.request({method:`frak_getMergeToken`}),{cacheKey:`frak_getMergeToken`,cacheTime:t?.cacheTime})}async function Dt(e,t){return b(()=>e.request({method:`frak_getUserReferralStatus`}),{cacheKey:`frak_getUserReferralStatus`,cacheTime:t?.cacheTime})}async function Ot(e,t){let{metadata:n,customizations:r}=e.config;return await e.request({method:`frak_prepareSso`,params:[t,n.name,r?.css]})}async function X(e,t){try{await e.request({method:`frak_sendInteraction`,params:[t,{clientId:g()}]})}catch{}}function kt(e,t,n){return L(t)?(N(e,`user_referred_started`,{referrer_client_id:t.c,referrer_wallet:t.w,wallet_status:n?.key}),X(e,{type:`arrival`,referrerClientId:t.c,referrerMerchantId:t.m,referrerWallet:t.w,referralTimestamp:t.t}),!0):we(t)?(N(e,`user_referred_started`,{referrer:t.r,wallet_status:n?.key}),X(e,{type:`arrival`,referrerWallet:t.r}),!0):!1}function At(e,t){let n=g();return!n&&!t?null:{v:2,m:e,t:Math.floor(Date.now()/1e3),...n?{c:n}:{},...t?{w:t}:{}}}function jt(e,t){return L(e)?e.w&&t?.wallet?be(e.w,t.wallet):e.c?g()===e.c:!1:we(e)&&t?.wallet?be(e.r,t.wallet):!1}function Mt(e,{walletStatus:t,frakContext:n,options:r}){if(!n)return`no-referrer`;if(jt(n,t))return`self-referral`;if(!kt(e,n,t))return`no-referrer`;let i=L(n)?n.m:r?.merchantId,a=r?.alwaysAppendUrl&&i?At(i,t?.wallet):null;return z.replaceUrl({url:window.location?.href,context:a}),N(e,`user_referred_completed`,{status:`success`}),`success`}async function Z(e,{options:t}={}){let n=z.parse({url:window.location.href}),r=await Ft(e);try{return Mt(e,{walletStatus:r,frakContext:n,options:t})}catch{}}const Q=`frak:referral-success`;async function Nt(e){try{await Z(e)===`success`&&window.dispatchEvent(new Event(Q))}catch{}}async function Pt(e){if(typeof window>`u`)return;let t=window.sessionStorage.getItem(`frak-wallet-interaction-token`),n=g();if(!t&&!n)return;let r=e.merchantId??await A.resolveMerchantId();if(!r)return;let i={Accept:`application/json`,"Content-Type":`application/json`};t&&(i[`x-wallet-sdk-auth`]=t),n&&(i[`x-frak-client-id`]=n);let a=S();await fetch(`${a}/user/track/purchase`,{method:`POST`,headers:i,body:JSON.stringify({customerId:e.customerId,orderId:e.orderId,token:e.token,merchantId:r})})}function Ft(e,t){if(!t)return e.request({method:`frak_listenToWalletStatus`}).then(t=>(It(e,t),t));let n=new u,r=!1;return e.listenerRequest({method:`frak_listenToWalletStatus`},i=>{It(e,i),t(i),r||=(n.resolve(i),!0)}),n.promise}function It(e,t){typeof window>`u`||(e.openPanel?.setGlobalProperties({wallet:t.wallet??null}),t.interactionToken?(window.sessionStorage.setItem(`frak-wallet-interaction-token`,t.interactionToken),wt(t.interactionToken)):window.sessionStorage.removeItem(`frak-wallet-interaction-token`))}function Lt(e,{metadata:t,login:n}){return $(e,{steps:{login:n??{}},metadata:t})}function $(e,t){function n(n){return $(e,{...t,steps:{...t.steps,sendTransaction:n}})}function r(n){return $(e,{...t,steps:{...t.steps,final:{...n,action:{key:`reward`}}}})}function i(n,r){return $(e,{...t,steps:{...t.steps,final:{...r,action:{key:`sharing`,options:n}}}})}async function a(n,r){return n&&(t.metadata=n(t.metadata??{})),await Y(e,t,r)}return{params:t,sendTx:n,reward:r,sharing:i,display:a}}async function Rt(e,{tx:t,metadata:n}){return(await Y(e,{metadata:n,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}function zt(e=96){let t=Math.ceil(e/2),n=``;if(typeof crypto<`u`&&crypto.getRandomValues){let e=new Uint8Array(t);crypto.getRandomValues(e);for(let t=0;t<e.length;t++)n+=e[t].toString(16).padStart(2,`0`)}else for(let e=0;e<t;e++)n+=(Math.random()*256|0).toString(16).padStart(2,`0`);return n.substring(0,e)}async function Bt(e,{siwe:t,metadata:n}){let r=e.config?.domain??window.location.host,i=t?.statement??`I confirm that I want to use my Frak wallet on: ${e.config.metadata.name}`;return(await Y(e,{metadata:n,steps:{login:{},siweAuthenticate:{siwe:{...t,statement:i,nonce:t?.nonce??zt(),uri:t?.uri??`https://${r}`,version:t?.version??`1`,domain:r}}}})).siweAuthenticate}var Vt=t({REFERRAL_SUCCESS_EVENT:()=>Q,displayEmbeddedWallet:()=>St,displayModal:()=>Y,displaySharingPage:()=>Ct,ensureIdentity:()=>wt,getMerchantInformation:()=>Tt,getMergeToken:()=>Et,getUserReferralStatus:()=>Dt,modalBuilder:()=>Lt,openSso:()=>ve,prepareSso:()=>Ot,processReferral:()=>Mt,referralInteraction:()=>Z,sendInteraction:()=>X,sendTransaction:()=>Rt,setupReferral:()=>Nt,siweAuthenticate:()=>Bt,trackPurchaseStatus:()=>Pt,watchWalletStatus:()=>Ft});async function Ht(e,t,n){window.FrakSetup?.client&&await Ct(window.FrakSetup.client,{...n?.link&&{link:n.link},...n?.products?.length&&{products:n.products},...e&&{metadata:{targetInteraction:e}}},t)}const Ut=[`frak-button-share`,`frak-button-wallet`,`frak-open-in-app`,`frak-post-purchase`,`frak-banner`].join(`,`);function Wt(){return typeof document>`u`||document.querySelector(Ut)===null?[]:[`sharing`]}function Gt(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function Kt(e){if(!e)return null;if(Array.isArray(e))return e;if(typeof e!=`string`)return null;try{let t=JSON.parse(e);return Array.isArray(t)?t:null}catch{return null}}function qt(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.title==`string`?t.title.trim():``;if(n===``)return null;let r={title:n};return typeof t.imageUrl==`string`&&Gt(t.imageUrl)&&(r.imageUrl=t.imageUrl),typeof t.link==`string`&&Gt(t.link)&&(r.link=t.link),typeof t.utmContent==`string`&&t.utmContent!==``&&(r.utmContent=t.utmContent),r}function Jt(e){let t=Kt(e);if(!t)return;let n=[];for(let e of t){let t=qt(e);t&&n.push(t)}return n.length>0?n:void 0}function Yt(e){if(!e)return;let t;try{t=_t(e)}catch{return}if(t!==null)return Jt(t)}const Xt=`frak:client`;function Zt(){let e=new CustomEvent(Xt);window.dispatchEvent(e)}function Qt(e,t){if(window.FrakSetup?.client&&e===`add`){t();return}(e===`add`?window.addEventListener:window.removeEventListener)(Xt,t,!1)}function $t(){return window.FrakSetup.core={...xt,...Vt},window.FrakSetup?.client?Promise.resolve():b(()=>en(),{cacheKey:`frak-sdk-init`,cacheTime:1/0}).catch(e=>{N(window.FrakSetup?.client,`sdk_init_failed`,{reason:e instanceof Error?e.message:typeof e==`string`?e:`unknown`,config_missing:!window.FrakSetup?.config})})}async function en(){if(!window.FrakSetup?.config)throw Error(`[Frak SDK] Configuration not found. Please ensure window.FrakSetup.config is set.`);let e=await vt({config:tn(window.FrakSetup.config)});if(!e)throw Error(`[Frak SDK] Failed to create client`);window.FrakSetup.client=e,Zt(),Nt(e),nn()}function tn(e){return e.preload===void 0?{...e,preload:Wt()}:e}function nn(){let e=new URL(window.location.href);if(P(e.searchParams,`frakAction`)?.toLowerCase()!==`share`)return;let t=P(e.searchParams,`link`)??void 0,n=P(e.searchParams,`placement`)??void 0,r=Yt(P(e.searchParams,`products`));F(e.searchParams,`frakAction`),F(e.searchParams,`link`),F(e.searchParams,`placement`),F(e.searchParams,`products`),window.history.replaceState({},``,e.toString()),Ht(void 0,n,{link:t,products:r})}o.injectBase(`shared`,n),o.injectBase(`fouce`,`frak-button-share:not(:defined), frak-button-wallet:not(:defined), frak-open-in-app:not(:defined), frak-post-purchase:not(:defined), frak-banner:not(:defined) { display: none !important; }`),s($t);const rn={"button-share":()=>import(`./ButtonShare.BiOpzkRY.js`),"button-wallet":()=>import(`./ButtonWallet.Mmrku6ws.js`),"open-in-app":()=>import(`./OpenInAppButton.D1UzTuHx.js`),"post-purchase":()=>import(`./PostPurchase.Cvx1TI64.js`),banner:()=>import(`./Banner.CgCiMrqn.js`)},an=new MutationObserver(e=>{for(let{addedNodes:t}of e)for(let e of Array.from(t))e.nodeType===Node.ELEMENT_NODE&&on(e)});async function on(e){let t=e instanceof Element?e.tagName.toLowerCase():``,n=t?.startsWith(`frak-`),r=Array.from(e.querySelectorAll(`:not(:defined)`)).map(e=>e.tagName.toLowerCase()).filter(e=>e.startsWith(`frak-`));n&&!customElements.get(t)&&r.push(t);let i=[...new Set(r)];await Promise.allSettled(i.map(e=>sn(e)))}async function sn(e){if(customElements.get(e))return Promise.resolve();try{let t=e.replace(/^frak-/i,``);if(!(t in rn))throw Error(`Component ${e} is not supported.`);await rn[t]()}catch{}}on(document.body),an.observe(document.documentElement,{subtree:!0,childList:!0});export{s as C,l as S,n as T,Be as _,Pt as a,N as b,Tt as c,$e as d,tt as f,Ve as g,K as h,Ht as i,St as l,W as m,Qt as n,Dt as o,U as p,Jt as r,Et as s,$t as t,Q as u,V as v,o as w,c as x,A as y};
1
+ import{t as e}from"./sharedBaseCss.css.BDzFcWnD.js";import{t}from"./styleManager.Cun1-fKi.js";import{A as n,C as r,D as i,E as a,F as ee,I as o,L as s,M as c,N as te,P as ne,S as l,T as re,_ as ie,a as u,b as d,c as f,d as p,f as m,g as h,h as g,i as _,j as v,l as y,m as b,o as x,p as S,r as C,s as w,t as T,u as E,v as D,w as O,x as k,y as A}from"./clientReady.0RgyPOYT.js";import{_ as j,a as M,c as N,d as P,f as F,g as I,h as L,i as ae,l as R,m as z,n as B,o as V,p as H,r as U,s as W,t as G,u as K,v as q}from"./actions-CMPlZ7CH.CnK_0vla.js";import{t as J}from"./sharingPage.BCDR1vjG.js";import{t as oe}from"./sharingPageProducts.DfJLxzSf.js";var Y=Object.defineProperty,X=(e,t)=>{let n={};for(var r in e)Y(n,r,{get:e[r],enumerable:!0});return t||Y(n,Symbol.toStringTag,{value:`Module`}),n};function se(e){document.readyState===`complete`||document.readyState===`interactive`?setTimeout(e,1):document.addEventListener(`DOMContentLoaded`,e)}var ce=X({DEEP_LINK_SCHEME:()=>b,FrakContextManager:()=>v,areAddressesEqual:()=>te,base64urlDecode:()=>ee,base64urlEncode:()=>a,baseIframeProps:()=>p,clearAllCache:()=>n,compressJsonToB64:()=>A,createIFrameFrakClient:()=>w,decompressJsonFromB64:()=>x,deleteQueryParamCaseInsensitive:()=>r,detectPageLanguage:()=>S,findIframeInOpener:()=>E,formatAmount:()=>ie,generateSsoUrl:()=>ne,getBackendUrl:()=>c,getClientId:()=>o,getCurrencyAmountKey:()=>h,getQueryParamCaseInsensitive:()=>l,getSupportedCurrency:()=>D,isIOS:()=>C,isInAppBrowser:()=>u,isMobile:()=>g,mergeAttribution:()=>f,redirectToExternalBrowser:()=>_,sdkConfigStore:()=>d,setupClient:()=>y,ssoPopupFeatures:()=>O,ssoPopupName:()=>re,trackEvent:()=>k,triggerDeepLinkWithFallback:()=>m,withCache:()=>s}),le=X({REFERRAL_SUCCESS_EVENT:()=>q,displayEmbeddedWallet:()=>I,displayModal:()=>N,displaySharingPage:()=>R,ensureIdentity:()=>L,getMerchantInformation:()=>z,getMergeToken:()=>P,getUserReferralStatus:()=>K,modalBuilder:()=>H,openSso:()=>i,prepareSso:()=>W,processReferral:()=>M,referralInteraction:()=>G,sendInteraction:()=>j,sendTransaction:()=>F,setupReferral:()=>V,siweAuthenticate:()=>ae,trackPurchaseStatus:()=>U,watchWalletStatus:()=>B});const ue=[`frak-button-share`,`frak-button-wallet`,`frak-open-in-app`,`frak-post-purchase`,`frak-banner`].join(`,`);function de(){return typeof document>`u`||document.querySelector(ue)===null?[]:[`sharing`]}function Z(){return window.FrakSetup.core={...ce,...le},window.FrakSetup?.client?Promise.resolve():s(()=>fe(),{cacheKey:`frak-sdk-init`,cacheTime:1/0}).catch(e=>{k(window.FrakSetup?.client,`sdk_init_failed`,{reason:e instanceof Error?e.message:typeof e==`string`?e:`unknown`,config_missing:!window.FrakSetup?.config})})}async function fe(){if(!window.FrakSetup?.config)throw Error(`[Frak SDK] Configuration not found. Please ensure window.FrakSetup.config is set.`);console.log(`[Frak SDK] Starting initialization`);let e=await y({config:pe(window.FrakSetup.config)});if(!e)throw Error(`[Frak SDK] Failed to create client`);window.FrakSetup.client=e,console.log(`[Frak SDK] Client initialized successfully`),T(),V(e),me()}function pe(e){return e.preload===void 0?{...e,preload:de()}:e}function me(){let e=new URL(window.location.href);if(l(e.searchParams,`frakAction`)?.toLowerCase()!==`share`)return;console.log(`[Frak SDK] Auto open share via query param`);let t=l(e.searchParams,`link`)??void 0,n=l(e.searchParams,`placement`)??void 0,i=oe(l(e.searchParams,`products`));r(e.searchParams,`frakAction`),r(e.searchParams,`link`),r(e.searchParams,`placement`),r(e.searchParams,`products`),window.history.replaceState({},``,e.toString()),J(void 0,n,{link:t,products:i})}t.injectBase(`shared`,e),t.injectBase(`fouce`,`frak-button-share:not(:defined), frak-button-wallet:not(:defined), frak-open-in-app:not(:defined), frak-post-purchase:not(:defined), frak-banner:not(:defined) { display: none !important; }`),se(Z);const Q={"button-share":()=>import(`./ButtonShare.TML2w73z.js`),"button-wallet":()=>import(`./ButtonWallet.B5dTOAAD.js`),"open-in-app":()=>import(`./OpenInAppButton.0v0WDxZL.js`),"post-purchase":()=>import(`./PostPurchase.8Mm3PHA9.js`),banner:()=>import(`./Banner.CkdY2dLE.js`)},he=new MutationObserver(e=>{for(let{addedNodes:t}of e)for(let e of Array.from(t))e.nodeType===Node.ELEMENT_NODE&&$(e)});async function $(e){let t=e instanceof Element?e.tagName.toLowerCase():``,n=t?.startsWith(`frak-`),r=Array.from(e.querySelectorAll(`:not(:defined)`)).map(e=>e.tagName.toLowerCase()).filter(e=>e.startsWith(`frak-`));n&&!customElements.get(t)&&r.push(t);let i=[...new Set(r)];await Promise.allSettled(i.map(e=>ge(e)))}async function ge(e){if(customElements.get(e))return Promise.resolve();try{let t=e.replace(/^frak-/i,``);if(!(t in Q))throw Error(`Component ${e} is not supported.`);await Q[t]()}catch(e){console.error(e)}}$(document.body),he.observe(document.documentElement,{subtree:!0,childList:!0});
@@ -0,0 +1 @@
1
+ function e(){return()=>{}}var t=null;function n(n,r){if(typeof document>`u`||typeof window>`u`)return;t&&t();let i=n.maxEventsPerChunk??200,a=n.flushIntervalMs??1e4,o=n.maxPayloadBytes??1048576,s=[],c=0,l=null;function u(e){if(s.length===0)return;let t=JSON.stringify(s);if(new TextEncoder().encode(t).length>o){if(s.length>1){let t=Math.floor(s.length/2),n=s.slice(0,t),r=s.slice(t),i=e&&n.some(e=>e.type===2);s=n,u(i),s=r,u(!1);return}s=[];return}let n=s[0].timestamp,i=s[s.length-1].timestamp;try{r({chunk_index:c,events_count:s.length,is_full_snapshot:e,started_at:new Date(n).toISOString(),ended_at:new Date(i).toISOString(),payload:t}),c+=1,s=[]}catch(e){throw console.error(`[ReplayRecorder] sendChunk failed`,e),e}}function d(e){let t=e||s.some(e=>e.type===2);s.length>=i?u(t):e&&s.length>0&&u(!0)}let f=n.maskAllText!==!1,p=n.unmaskTextSelector,m=e({emit(e,t){s.push(e),d(!!t)},checkoutEveryNms:a,maskAllInputs:n.maskAllInputs??!0,maskTextSelector:f?`*`:`[data-openpanel-replay-mask]`,maskTextFn:f&&p?(e,t)=>t?.closest(p)?e:e.replace(/\S/g,`*`):void 0,blockSelector:n.blockSelector??`[data-openpanel-replay-block]`,blockClass:n.blockClass,ignoreSelector:n.ignoreSelector});l=setInterval(()=>{s.length>0&&u(s.some(e=>e.type===2))},a);function h(){document.visibilityState===`hidden`&&s.length>0&&u(s.some(e=>e.type===2))}function g(){s.length>0&&u(s.some(e=>e.type===2))}document.addEventListener(`visibilitychange`,h),window.addEventListener(`pagehide`,g),t=()=>{s.length>0&&u(s.some(e=>e.type===2)),l&&=(clearInterval(l),null),document.removeEventListener(`visibilitychange`,h),window.removeEventListener(`pagehide`,g),m?.(),t=null}}function r(){t&&t()}export{n as startReplayRecorder,r as stopReplayRecorder};
@@ -0,0 +1 @@
1
+ import{_ as e,g as t,v as n}from"./clientReady.0RgyPOYT.js";function r(e){return Array.isArray(e)?e:e.conditions}function i(e){if(typeof e==`number`)return e;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);return Number.isFinite(t)?t:void 0}}function a(e,t,n){let o=[];for(let s of r(e)){if(`logic`in s){o.push(...a(s,t,n));continue}if(s.field===t&&n.has(s.operator)){let e=i(s.value);e!=null&&o.push(e)}}return o}const o=new Set([`gt`,`gte`,`between`]),s=new Set([`gt`,`gte`]);function c(e){let t=a(e,`purchase.amount`,o);return t.length>0?Math.min(...t):void 0}function l(e){let t=a(e,`time.timestamp`,s);if(t.length!==0)return new Date(Math.min(...t)*1e3)}function u(e,t){switch(e.payoutType){case`fixed`:return e.amount[t];case`percentage`:return e.maxAmount?.[t]??0;case`tiered`:return e.tiers.reduce((e,n)=>`amount`in n?Math.max(e,n.amount[t]):e,0)}}function d(e){return e.payoutType===`percentage`?e.percent:e.payoutType===`tiered`?e.tiers.reduce((e,t)=>`percent`in t?Math.max(e,t.percent):e,0):0}function f(e,t){let n=u(e,t);return n>0?n:d(e)*1e-6}function p(r,i){let a=n(i),o=t(a);switch(r.payoutType){case`fixed`:return e(Math.round(r.amount[o]),a);case`percentage`:return`${r.percent} %`;case`tiered`:{let t=u(r,o);if(t>0)return e(Math.round(t),a);let n=d(r);return n>0?`${n} %`:e(0,a)}}}function m(e,r){if(e&&!(f(e,t(n(r)))<=0))return p(e,r)}function h(e,t){return t?e.replaceAll(`{REWARD}`,t):e.replaceAll(`{REWARD}`,``)}function g(e,t){return e.expiresAt!=null&&new Date(e.expiresAt).getTime()<=t}function _(e,t){let n=l(e.conditions);return n==null||n.getTime()<=t}function v(e,t){return t===`referee`?e.referee:e.referrer}function y(e,t,n){let r=v(e,n);return r?f(r,t):0}function b(e,r={}){let i=(r.now??new Date).getTime(),a=r.audience??`referrer`,o=t(n(r.currency)),s=(r.targetInteraction?e.filter(e=>e.interactionTypeKey===r.targetInteraction):e).filter(e=>!g(e,i)),c=s.filter(e=>_(e,i));if(c.length>0)return{campaign:c.reduce((e,t)=>y(t,o,a)>y(e,o,a)?t:e),status:`live`};let u=s.map(e=>({campaign:e,startsAt:l(e.conditions)})).filter(e=>e.startsAt!=null);if(u.length===0)return;let d=u.reduce((e,t)=>t.startsAt.getTime()<e.startsAt.getTime()?t:e);return{campaign:d.campaign,status:`upcoming`,startsAt:d.startsAt}}function x(t,n={}){let r=b(t,n);if(!r)return;let i=v(r.campaign,n.audience??`referrer`);if(!i)return;let a=m(i,n.currency);if(!a)return;let o=c(r.campaign.conditions),s=o==null?void 0:e(o,n.currency),l=r.campaign.defaultLockupSeconds,u=l&&l>0?Math.round(l/86400):void 0;return{formatted:a,payoutType:i.payoutType,minPurchaseAmount:s,lockupDurationDays:u,referrerReward:r.campaign.referrer,refereeReward:r.campaign.referee,minPurchaseValue:o??void 0}}export{m as i,b as n,h as r,x as t};
@@ -0,0 +1,154 @@
1
+ const e=`.reset_base__1831jhd0 {
2
+ margin: 0;
3
+ padding: 0;
4
+ border: 0;
5
+ box-sizing: border-box;
6
+ font-size: 100%;
7
+ font: inherit;
8
+ vertical-align: baseline;
9
+ -webkit-tap-highlight-color: transparent;
10
+ }
11
+ .reset_focusRing__1831jhd1 {
12
+ outline: 2px solid transparent;
13
+ outline-offset: 2px;
14
+ }
15
+ .reset_focusRing__1831jhd1:focus-visible {
16
+ outline-color: currentColor;
17
+ }
18
+ .reset_fieldAppearance__1831jhd2 {
19
+ appearance: none;
20
+ background-color: transparent;
21
+ }
22
+ .reset_visuallyHidden__1831jhd3 {
23
+ position: absolute;
24
+ width: 1px;
25
+ height: 1px;
26
+ padding: 0;
27
+ margin: -1px;
28
+ overflow: hidden;
29
+ clip: rect(0, 0, 0, 0);
30
+ white-space: nowrap;
31
+ border-width: 0;
32
+ }
33
+ .reset_element_ul__1831jhd4 {
34
+ list-style: none;
35
+ }
36
+ .reset_element_ol__1831jhd5 {
37
+ list-style: none;
38
+ }
39
+ .reset_element_button__1831jhd6 {
40
+ cursor: pointer;
41
+ }
42
+ .reset_element_a__1831jhd7 {
43
+ text-decoration: none;
44
+ color: inherit;
45
+ }
46
+ .reset_element_table__1831jhdb {
47
+ border-collapse: collapse;
48
+ border-spacing: 0;
49
+ }
50
+ .reset_element_img__1831jhdc {
51
+ display: block;
52
+ max-width: 100%;
53
+ }:root {
54
+ --text-primary__pbq4ak0: #000000;
55
+ --text-secondary__pbq4ak1: #525252;
56
+ --text-tertiary__pbq4ak2: #a3a3a3;
57
+ --text-disabled__pbq4ak3: #a3a3a3;
58
+ --text-action__pbq4ak4: #0043ef;
59
+ --text-actionHover__pbq4ak5: #0036bf;
60
+ --text-onAction__pbq4ak6: #ffffff;
61
+ --text-error__pbq4ak7: #e31c31;
62
+ --text-success__pbq4ak8: #09be67;
63
+ --text-warning__pbq4ak9: #ec7e00;
64
+ --surface-primary__pbq4aka: #0043ef;
65
+ --surface-secondary__pbq4akb: #f2f6fe;
66
+ --surface-background__pbq4akc: #ffffff;
67
+ --surface-background2__pbq4akd: #f9fafb;
68
+ --surface-elevated__pbq4ake: #ffffff;
69
+ --surface-muted__pbq4akf: #f7f7f7;
70
+ --surface-tertiary__pbq4akg: #f7f7f7;
71
+ --surface-overlay__pbq4akh: #000000b2;
72
+ --surface-disabled__pbq4aki: #e2e2e2;
73
+ --surface-primaryHover__pbq4akj: #0036bf;
74
+ --surface-primaryPressed__pbq4akk: #00288f;
75
+ --surface-secondaryHover__pbq4akl: #e5ecfd;
76
+ --surface-secondaryPressed__pbq4akm: #ccd9fc;
77
+ --surface-error__pbq4akn: #fce8ea;
78
+ --surface-success__pbq4ako: #f3fcf7;
79
+ --surface-warning__pbq4akp: #fef9f2;
80
+ --border-subtle__pbq4akq: #f5f5f5;
81
+ --border-focus__pbq4akr: #a3a3a3;
82
+ --border-error__pbq4aks: #e31c31;
83
+ --border-success__pbq4akt: #09be67;
84
+ --border-warning__pbq4aku: #ec7e00;
85
+ --border-default__pbq4akv: #e2e2e2;
86
+ --icon-primary__pbq4akw: #000000;
87
+ --icon-secondary__pbq4akx: #525252;
88
+ --icon-tertiary__pbq4aky: #a3a3a3;
89
+ --icon-disabled__pbq4akz: #a3a3a3;
90
+ --icon-action__pbq4ak10: #0043ef;
91
+ --icon-actionHover__pbq4ak11: #0036bf;
92
+ --icon-onAction__pbq4ak12: #ffffff;
93
+ --icon-error__pbq4ak13: #e31c31;
94
+ --icon-success__pbq4ak14: #09be67;
95
+ --icon-warning__pbq4ak15: #ec7e00;
96
+ }
97
+ [data-theme='dark'] {
98
+ --text-primary__pbq4ak0: #ffffff;
99
+ --text-secondary__pbq4ak1: #f7f7f7;
100
+ --text-tertiary__pbq4ak2: #f5f5f5;
101
+ --text-disabled__pbq4ak3: #a3a3a3;
102
+ --text-action__pbq4ak4: #668ef5;
103
+ --text-actionHover__pbq4ak5: #0036bf;
104
+ --text-onAction__pbq4ak6: #ffffff;
105
+ --text-error__pbq4ak7: #e9495a;
106
+ --text-success__pbq4ak8: #09be67;
107
+ --text-warning__pbq4ak9: #ec7e00;
108
+ --surface-primary__pbq4aka: #0043ef;
109
+ --surface-secondary__pbq4akb: #00288f;
110
+ --surface-background__pbq4akc: #000000;
111
+ --surface-background2__pbq4akd: #000000;
112
+ --surface-elevated__pbq4ake: #262626;
113
+ --surface-muted__pbq4akf: #525252;
114
+ --surface-tertiary__pbq4akg: #737373;
115
+ --surface-overlay__pbq4akh: #000000b2;
116
+ --surface-disabled__pbq4aki: #e2e2e2;
117
+ --surface-primaryHover__pbq4akj: #0036bf;
118
+ --surface-primaryPressed__pbq4akk: #00288f;
119
+ --surface-secondaryHover__pbq4akl: #e5ecfd;
120
+ --surface-secondaryPressed__pbq4akm: #ccd9fc;
121
+ --surface-error__pbq4akn: #b61627;
122
+ --surface-success__pbq4ako: #05723e;
123
+ --surface-warning__pbq4akp: #8e4c00;
124
+ --border-subtle__pbq4akq: #737373;
125
+ --border-focus__pbq4akr: #a3a3a3;
126
+ --border-error__pbq4aks: #e31c31;
127
+ --border-success__pbq4akt: #09be67;
128
+ --border-warning__pbq4aku: #ec7e00;
129
+ --border-default__pbq4akv: #525252;
130
+ --icon-primary__pbq4akw: #ffffff;
131
+ --icon-secondary__pbq4akx: #f7f7f7;
132
+ --icon-tertiary__pbq4aky: #f7f7f7;
133
+ --icon-disabled__pbq4akz: #a3a3a3;
134
+ --icon-action__pbq4ak10: #0043ef;
135
+ --icon-actionHover__pbq4ak11: #0036bf;
136
+ --icon-onAction__pbq4ak12: #ffffff;
137
+ --icon-error__pbq4ak13: #e31c31;
138
+ --icon-success__pbq4ak14: #09be67;
139
+ --icon-warning__pbq4ak15: #ec7e00;
140
+ }.sharedBaseCss_buttonReset__7cswil0 {
141
+ margin: 0;
142
+ border: 0;
143
+ appearance: none;
144
+ background-color: transparent;
145
+ box-sizing: border-box;
146
+ font-family: inherit;
147
+ -webkit-tap-highlight-color: transparent;
148
+ cursor: pointer;
149
+ outline: 2px solid transparent;
150
+ outline-offset: 2px;
151
+ }
152
+ .sharedBaseCss_buttonReset__7cswil0:focus-visible {
153
+ outline-color: currentColor;
154
+ }`;export{e as t};
@@ -0,0 +1 @@
1
+ import{l as e}from"./actions-CMPlZ7CH.CnK_0vla.js";async function t(t,n,r){if(!window.FrakSetup?.client){console.error(`Frak client not found`);return}await e(window.FrakSetup.client,{...r?.link&&{link:r.link},...r?.products?.length&&{products:r.products},...t&&{metadata:{targetInteraction:t}}},n)}export{t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./clientReady.0RgyPOYT.js";function t(e){try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function n(e){if(!e)return null;if(Array.isArray(e))return e;if(typeof e!=`string`)return null;try{let t=JSON.parse(e);return Array.isArray(t)?t:null}catch{return null}}function r(e){if(!e||typeof e!=`object`)return null;let n=e,r=typeof n.title==`string`?n.title.trim():``;if(r===``)return null;let i={title:r};return typeof n.imageUrl==`string`&&t(n.imageUrl)&&(i.imageUrl=n.imageUrl),typeof n.link==`string`&&t(n.link)&&(i.link=n.link),typeof n.utmContent==`string`&&n.utmContent!==``&&(i.utmContent=n.utmContent),i}function i(e){let t=n(e);if(!t)return;let i=[];for(let e of t){let t=r(e);t&&i.push(t)}return i.length>0?i:void 0}function a(t){if(!t)return;let n;try{n=e(t)}catch{return}if(n!==null)return i(n)}export{i as n,a as t};
@@ -0,0 +1 @@
1
+ function e(e,t){let n=document.getElementById(e);if(n){n.textContent!==t&&(n.textContent=t);return}let r=document.createElement(`style`);r.id=e,r.textContent=t,document.head.appendChild(r)}function t(e,t){let n=`frak-base-${e}`;if(document.getElementById(n)||!t)return;let r=document.createElement(`style`);r.id=n,r.textContent=t,document.head.appendChild(r)}function n(t,n,r){e(`frak-placement-${t}-${n}`,r)}const r={injectBase:t,injectPlacement:n};export{r as t};
@@ -0,0 +1 @@
1
+ import{b as e}from"./clientReady.0RgyPOYT.js";import{c as t,o as n}from"./defaults.euOM2Ohv.js";function r(){return t(n,()=>e.getConfig().components)}export{r as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./styleManager.Cun1-fKi.js";import{f as t,i as n}from"./defaults.euOM2Ohv.js";function r(r,i,a,o,s){t(()=>{s&&e.injectBase(`shared`,s),e.injectBase(r,o??n)},[r]),t(()=>{!i||!a||e.injectPlacement(r,i,a)},[r,i,a])}export{r as t};
@@ -0,0 +1 @@
1
+ import{m as e}from"./actions-CMPlZ7CH.CnK_0vla.js";import{d as t,f as n}from"./defaults.euOM2Ohv.js";import{t as r}from"./rewards.CRzXPu4f.js";function i(i,a,o){let[s,c]=t(void 0);return n(()=>{if(!i)return;let t=window.FrakSetup?.client;t&&e(t).then(e=>{let n=r(e.rewards,{currency:t.config.metadata?.currency,targetInteraction:a,audience:o});n&&n.payoutType!==`percentage`&&c(n.formatted)}).catch(()=>{})},[i,a,o]),{reward:s}}export{i as t};
@@ -1,7 +1,7 @@
1
1
  import "preact/hooks";
2
2
  import { jsx, jsxs } from "preact/jsx-runtime";
3
3
  import { Component, Fragment as Fragment$1, createElement, options, toChildArray } from "preact";
4
- //#region ../../node_modules/.bun/preact@10.29.2/node_modules/preact/compat/dist/compat.module.js
4
+ //#region ../../node_modules/.bun/preact@10.29.7/node_modules/preact/compat/dist/compat.module.js
5
5
  function g(n, t) {
6
6
  for (var e in t) n[e] = t[e];
7
7
  return n;
@@ -25,7 +25,7 @@ options.__b = function(n) {
25
25
  var O = options.__e;
26
26
  options.__e = function(n, t, e, r) {
27
27
  if (n.then) {
28
- for (var u, o = t; o = o.__;) if ((u = o.__c) && u.__c) return t.__e ?? (t.__e = e.__e, t.__k = e.__k), u.__c(n, t);
28
+ for (var u, o = t; o = o.__;) if ((u = o.__c) && u.__c) return t.__e ?? (t.__e = e.__e, t.__k = e.__k || []), u.__c(n, t);
29
29
  }
30
30
  O(n, t, e, r);
31
31
  };
@@ -119,7 +119,12 @@ var H = function(n, t, e) {
119
119
  H(n, e, t);
120
120
  });
121
121
  };
122
- var q = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103, G = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, J = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, K = /[A-Z0-9]/g, Q = "undefined" != typeof document, X = function(n) {
122
+ var q = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103;
123
+ var G = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;
124
+ var J = /^on(Ani|Tra|Tou|BeforeInp|Compo)/;
125
+ var K = /[A-Z0-9]/g;
126
+ var Q = "undefined" != typeof document;
127
+ var X = function(n) {
123
128
  return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(n);
124
129
  };
125
130
  Component.prototype.isReactComponent = !0, [
@@ -154,7 +159,8 @@ var un = {
154
159
  get: function() {
155
160
  return this.class;
156
161
  }
157
- }, on = options.vnode;
162
+ };
163
+ var on = options.vnode;
158
164
  options.vnode = function(n) {
159
165
  "string" == typeof n.type && function(n) {
160
166
  var t = n.props, e = n.type, u = {}, o = -1 == e.indexOf("-");
package/dist/banner.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { InteractionTypeKey } from "@frak-labs/core-sdk";
2
-
3
2
  //#region src/components/Banner/types.d.ts
4
3
  /**
5
4
  * The props type for {@link Banner}.
@@ -108,21 +107,7 @@ type BannerProps = {
108
107
  * <frak-banner classname="my-custom-banner"></frak-banner>
109
108
  * ```
110
109
  */
111
- declare function Banner({
112
- placement: placementId,
113
- classname,
114
- interaction,
115
- referralTitle: propReferralTitle,
116
- referralDescription: propReferralDescription,
117
- referralCta: propReferralCta,
118
- inappTitle: propInappTitle,
119
- inappDescription: propInappDescription,
120
- inappCta: propInappCta,
121
- imageUrl: propImageUrl,
122
- preview,
123
- previewMode,
124
- allowInappRedirect
125
- }: BannerProps): import("preact").JSX.Element | null;
110
+ declare function Banner({ placement: placementId, classname, interaction, referralTitle: propReferralTitle, referralDescription: propReferralDescription, referralCta: propReferralCta, inappTitle: propInappTitle, inappDescription: propInappDescription, inappCta: propInappCta, imageUrl: propImageUrl, preview, previewMode, allowInappRedirect }: BannerProps): import("preact").JSX.Element | null;
126
111
  //#endregion
127
112
  //#region src/components/Banner/index.d.ts
128
113
  /**
package/dist/banner.js CHANGED
@@ -1,16 +1,32 @@
1
- import { i as useLang, o as useClientReady, s as registerWebComponent, t as usePlacement } from "./usePlacement-4PoDbn2X.js";
2
- import { t as useGlobalComponents } from "./useGlobalComponents-CZ7Sh2tZ.js";
3
- import { t as useLightDomStyles } from "./useLightDomStyles-DphuQhvx.js";
4
- import { r as b } from "./rewards-VoZGH2Ko.js";
5
- import { t as useReward } from "./useReward-BGgymGoH.js";
1
+ import { i as useLang, o as useClientReady, s as registerWebComponent, t as usePlacement } from "./usePlacement-NZOjZ6IR.js";
2
+ import { t as useGlobalComponents } from "./useGlobalComponents-Da9LDlRy.js";
3
+ import { t as useLightDomStyles } from "./useLightDomStyles-DRkTVy4s.js";
4
+ import { r as b } from "./rewards-BtPHdGcI.js";
5
+ import { t as useReward } from "./useReward-B-yZ7nhY.js";
6
6
  import { componentDefaults } from "./i18n/defaults.js";
7
- import { a as ExternalLinkIcon, i as LogoFrakWithName, n as cssSource$5, o as CloseCircleIcon, r as WarningIcon, t as GiftIcon } from "./GiftIcon-BEzYdiux.js";
7
+ import { a as ExternalLinkIcon, i as LogoFrakWithName, n as cssSource$5, o as CloseCircleIcon, r as WarningIcon, t as GiftIcon } from "./GiftIcon-BhL0bhVu.js";
8
8
  import { isInAppBrowser, redirectToExternalBrowser, trackEvent } from "@frak-labs/core-sdk";
9
9
  import { REFERRAL_SUCCESS_EVENT, getMergeToken } from "@frak-labs/core-sdk/actions";
10
10
  import { useCallback, useEffect, useMemo, useRef, useState } from "preact/hooks";
11
11
  import { jsx, jsxs } from "preact/jsx-runtime";
12
12
  //#region \0ve-inline:../../packages/design-system/src/keyframes.css.ts.vanilla.js
13
13
  const cssSource$4 = `@keyframes keyframes_fadeIn__mnqmlt0 {
14
+ from {
15
+ opacity: 0;
16
+ }
17
+ to {
18
+ opacity: 1;
19
+ }
20
+ }
21
+ @keyframes keyframes_fadeOut__mnqmlt1 {
22
+ from {
23
+ opacity: 1;
24
+ }
25
+ to {
26
+ opacity: 0;
27
+ }
28
+ }
29
+ @keyframes keyframes_fadeInDown__mnqmlt2 {
14
30
  from {
15
31
  opacity: 0;
16
32
  transform: translateY(-4px);
@@ -38,7 +54,7 @@ const cssSource$3 = `.inAppBanner_container__1ibpiy70 {
38
54
  backdrop-filter: blur(12px);
39
55
  -webkit-backdrop-filter: blur(12px);
40
56
  color: var(--text-onAction__pbq4ak6);
41
- animation: keyframes_fadeIn__mnqmlt0 300ms ease-out;
57
+ animation: keyframes_fadeInDown__mnqmlt2 300ms ease-out;
42
58
  }
43
59
  .inAppBanner_header__1ibpiy71 {
44
60
  display: flex;
@@ -175,7 +191,7 @@ function InAppBanner({ title: title$1, description: description$1, cta: cta$1, d
175
191
  const cssSource$1 = `.Banner_rootBase__1gnumzi0 {
176
192
  position: relative;
177
193
  display: flex;
178
- animation: keyframes_fadeIn__mnqmlt0 300ms ease-out;
194
+ animation: keyframes_fadeInDown__mnqmlt2 300ms ease-out;
179
195
  }
180
196
  .Banner_iconSvg__1gnumzi1 {
181
197
  width: 100%;
@@ -1,5 +1,4 @@
1
1
  import { InteractionTypeKey } from "@frak-labs/core-sdk";
2
-
3
2
  //#region src/components/ButtonShare/types.d.ts
4
3
  /**
5
4
  * The props type for {@link ButtonShare}.
@@ -17,7 +16,8 @@ type ButtonShareProps = {
17
16
  * stripped if no fallback is provided).
18
17
  *
19
18
  * When omitted, a built-in localized default is used based on the
20
- * resolved language (`"Share and earn!"` / `"Partagez et gagnez !"`).
19
+ * resolved language (`"Share & earn {REWARD}!"` / `"Partagez et gagnez
20
+ * {REWARD} !"`) — mirroring the dashboard's first wording preset.
21
21
  */
22
22
  text?: string;
23
23
  /**
@@ -97,15 +97,7 @@ type ButtonShareProps = {
97
97
  * @see {@link @frak-labs/core-sdk!actions.displaySharingPage | `displaySharingPage()`} for more info about the sharing-page flow
98
98
  * @see {@link @frak-labs/core-sdk!actions.getMerchantInformation | `getMerchantInformation()`} for more info about the estimated reward fetching
99
99
  */
100
- declare function ButtonShare({
101
- placement: placementId,
102
- text,
103
- classname,
104
- noRewardText,
105
- targetInteraction,
106
- clickAction: rawClickAction,
107
- preview
108
- }: ButtonShareProps): import("preact").JSX.Element | null;
100
+ declare function ButtonShare({ placement: placementId, text, classname, noRewardText, targetInteraction, clickAction: rawClickAction, preview }: ButtonShareProps): import("preact").JSX.Element | null;
109
101
  //#endregion
110
102
  //#region src/components/ButtonShare/index.d.ts
111
103
  /**
@@ -1,9 +1,9 @@
1
- import { i as useLang, l as openSharingPage, o as useClientReady, s as registerWebComponent, t as usePlacement } from "./usePlacement-4PoDbn2X.js";
2
- import { t as openEmbeddedWallet } from "./embeddedWallet-By3_p5Xc.js";
3
- import { t as useGlobalComponents } from "./useGlobalComponents-CZ7Sh2tZ.js";
4
- import { t as useLightDomStyles } from "./useLightDomStyles-DphuQhvx.js";
5
- import { r as b } from "./rewards-VoZGH2Ko.js";
6
- import { t as useReward } from "./useReward-BGgymGoH.js";
1
+ import { i as useLang, l as openSharingPage, o as useClientReady, s as registerWebComponent, t as usePlacement } from "./usePlacement-NZOjZ6IR.js";
2
+ import { t as openEmbeddedWallet } from "./embeddedWallet-CxgyuwtP.js";
3
+ import { t as useGlobalComponents } from "./useGlobalComponents-Da9LDlRy.js";
4
+ import { t as useLightDomStyles } from "./useLightDomStyles-DRkTVy4s.js";
5
+ import { r as b } from "./rewards-BtPHdGcI.js";
6
+ import { t as useReward } from "./useReward-B-yZ7nhY.js";
7
7
  import { componentDefaults } from "./i18n/defaults.js";
8
8
  import { trackEvent } from "@frak-labs/core-sdk";
9
9
  import { useCallback, useMemo } from "preact/hooks";
@@ -1,5 +1,4 @@
1
1
  import { InteractionTypeKey } from "@frak-labs/core-sdk";
2
-
3
2
  //#region src/components/ButtonWallet/types.d.ts
4
3
  /**
5
4
  * The props type for {@link ButtonWallet}.
@@ -64,12 +63,7 @@ type ButtonWalletProps = {
64
63
  * @see {@link @frak-labs/core-sdk!actions.modalBuilder | `modalBuilder()`} for more info about the modal display
65
64
  * @see {@link @frak-labs/core-sdk!actions.getMerchantInformation | `getMerchantInformation()`} for more info about the estimated reward fetching
66
65
  */
67
- declare function ButtonWallet({
68
- placement: placementId,
69
- classname,
70
- useReward: rawUseReward,
71
- targetInteraction
72
- }: ButtonWalletProps): import("preact").JSX.Element | null;
66
+ declare function ButtonWallet({ placement: placementId, classname, useReward: rawUseReward, targetInteraction }: ButtonWalletProps): import("preact").JSX.Element | null;
73
67
  //#endregion
74
68
  //#region src/components/ButtonWallet/index.d.ts
75
69
  /**