1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-SfoTURaA.js","assets/ui-radix-Dy8lNabE.js","assets/react-vendor-CPuvF1Sp.js","assets/query-D9I7bAJW.js","assets/supabase-DkiBvCxn.js","assets/IndexFixed-3dX4hVs-.js","assets/Navbar-D8BJyWUU.js","assets/chevron-right-Dn0DGWws.js","assets/circle-EDU3EZjb.js","assets/Auth-CPLNMR3e.js","assets/input-D-qQnbzW.js","assets/label-CLLyozz1.js","assets/checkbox-CKrycUin.js","assets/logo-full-CZsmP7aa.js","assets/onboardingCompletion-CP-DS7ri.js","assets/animation-Bth2r7ZN.js","assets/lock-Dhab_LJ2.js","assets/eye-Tx7xzq_F.js","assets/circle-check-big-BOFLTqME.js","assets/types-BF6BoWq8.js","assets/Admin-DJ_wFcsq.js","assets/card-image-D3rQfndE.js","assets/textarea-B71Idpth.js","assets/switch-DyIvB09J.js","assets/select-BZ2-3UPz.js","assets/chevron-down-cXEnO7JV.js","assets/chevron-up-B3UpLDiM.js","assets/tabs-DC6kf57i.js","assets/send-CLMi0gMM.js","assets/plus-uUYgPoCs.js","assets/loader-circle-CX1gRznA.js","assets/circle-x-De3GqL_b.js","assets/trash-2-BTYgvhvl.js","assets/list-Bm1i_SXO.js","assets/minus-BjD8sIq0.js","assets/circle-alert-CQiiVjNV.js","assets/index-BR5X3Q0p.js","assets/percent-CobHK7cn.js","assets/save-BD1AjeVq.js","assets/search-Q4MfHI-s.js","assets/trending-down-CmbaiPbc.js","assets/calendar-C13Q2LJf.js","assets/tag-D1Esjkto.js","assets/format-BLr1KDwj.js","assets/fr-DzuD8fAI.js","assets/slider-BSWEIYge.js","assets/arrow-right-Cy3UpQ-v.js","assets/credit-card-B8eYiW2n.js","assets/AreaChart-CtAA4zat.js","assets/PieChart-Cw9DfM2G.js","assets/card-CO3H0y3_.js","assets/award-BedUyQic.js","assets/user-plus-DAEGKMVv.js","assets/rocket-BT34Fxj_.js","assets/heart-ASPJN7nh.js","assets/badge-zWr8C9Mr.js","assets/generatePerformancePDF-CVzjnPPB.js","assets/pdfDownload-BbSzsl8e.js","assets/alert-dialog-ktpTdStp.js","assets/triangle-alert-DkMNHZx2.js","assets/index-CEuuMq_g.js","assets/settings-2-DQHAoe6I.js","assets/chart-column-B_QotOJR.js","assets/useAIConfig-_VMpoKVs.js","assets/scroll-area-HNPAxFo5.js","assets/activity-CB2Bt8CR.js","assets/external-link-jiFlOFCj.js","assets/play-BQl1AVK7.js","assets/circle-check-Czl9sM5H.js","assets/dollar-sign-DTzmAfAT.js","assets/handshake-CMN8dZqA.js","assets/coins-BFvI5_OB.js","assets/shopping-cart-BoBnM48v.js","assets/chevron-left-DNnsz2hN.js","assets/formatDistanceToNow-C0vzOb2E.js","assets/swords-MCpe904g.js","assets/download-D-7dQkjU.js","assets/filter-cJ-ObXbw.js","assets/avatar-CQhBeYZk.js","assets/medal-BJknovbq.js","assets/copy-CC-PfNfY.js","assets/rotate-ccw-DFkg8LIg.js","assets/musicPlayer-CHde9KNg.js","assets/generateGDD-Dsz5KNfh.js","assets/generateGameRulesPDF-D_aXap80.js","assets/Dashboard-DVWZquum.js","assets/Footer-DBnYXBdy.js","assets/globe-B2btB0V3.js","assets/UserBadges-CncnmoUf.js","assets/progress-DV1J8_61.js","assets/useCardMarketData-C4B62AzD.js","assets/useUserBadges-CwaCzmra.js","assets/history-Dt2TDlve.js","assets/Marketplace-gb_rlYQq.js","assets/CardModal-B6eLQ04M.js","assets/pricing-B3pG-6_l.js","assets/LoginRequiredDialog-BtS98lem.js","assets/log-in-BIb6J4Pi.js","assets/CardStatsOverlay-By5U1o4K.js","assets/flame-nrPAAh5R.js","assets/FavoriteButton-Bn91zJZm.js","assets/useCards-0600K_-g.js","assets/useDebounce--nmfrohp.js","assets/PremiumBanner-CVBn3OpV.js","assets/card-filters-bar-C83frSLd.js","assets/arrow-up-down-Cx2i0u1Z.js","assets/Collection-cz6CQU-T.js","assets/ListCardModal-DhTa7wEc.js","assets/validations-CYyJGGNw.js","assets/useDecks-CtS0RhHJ.js","assets/Blog-Bl41u6nw.js","assets/mobile-page-header-vXWKLk9J.js","assets/use-mobile-DINd03Pq.js","assets/BlogPost-C3-7CqJa.js","assets/share-2-gnf9eOQM.js","assets/Terms-CM-VIP3F.js","assets/CGV-CDuzF7bz.js","assets/Privacy-DybG0hj3.js","assets/Help-BISWK0JS.js","assets/accordion-B40KxPn_.js","assets/shield-check-DggTbJ2R.js","assets/Contact-DVwJBxcd.js","assets/map-pin-Bn-OGGpl.js","assets/Trends-RXXWicvR.js","assets/NewCards-BgXi0Eys.js","assets/Guide-B5MH4GVU.js","assets/timer-p3yu2obb.js","assets/GuideB2B-GnH1tSgp.js","assets/GameArena-DHqnf8ag.js","assets/brain-PRL944P0.js","assets/GameModeSelect-BdKF2iaF.js","assets/SecondaryMarket-D8DEQgGX.js","assets/CardPerformanceChart-BZk8qkA4.js","assets/Partner-iVEsDMJ3.js","assets/Whitepaper-BAHmgY7X.js","assets/Boosters-0XyQtS9B.js","assets/BoosterCardReveal-Bio8SwkE.js","assets/Settings-D0f4wiwt.js","assets/monitor-BjGkcVDM.js","assets/WhyDigitalIcons-Dtec_6f_.js","assets/Discord-C5STIb3u.js","assets/PerformanceSystem-CXpb8Fqw.js","assets/Premium-BnKf_NAi.js","assets/Tarification-CeFVmHU6.js","assets/Missions-uJ6zBi-k.js","assets/skeleton-Dg22QBoO.js","assets/Leagues-_I9Nfe9-.js","assets/GamePlay-B48JnyjS.js","assets/GameBoard-SPVHJrLL.js","assets/MusicManager-Bmp8Ja8U.js","assets/FriendLobby-BTBVf-Zq.js","assets/OnlineGamePlay-SjM3xvfJ.js","assets/Traceability-BGRAIDhD.js","assets/QRRedeem-CgRLbjyA.js","assets/welcome-booster-DsteMH1m.js","assets/OnboardingPreview-h_wR1oa9.js","assets/WelcomeBoosterReveal-DAnejKJq.js","assets/NotFound-DrpcVfkJ.js","assets/ScrollToTop-DZX2L4Zs.js","assets/VisitorTypePopup-BoAHsNmn.js","assets/FloatingWidgets-CExlQSNC.js","assets/ChatWidget-CHMlM1k8.js","assets/UserWarningsAndSuspension-EMZ2lASL.js","assets/OnboardingManager-CZZSZLmd.js","assets/PWAInstallBanner
1-Cg2jnBEh.js","assets/LevelMilestonePopup-2yUy17XJ.js"])))=>i.map(i=>d[i]); 2var rs=Object.defineProperty;var ns=(e,t,r)=>t in e?rs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ge=(e,t,r)=>ns(e,typeof t!="symbol"?t+"":t,r);import{j as s,V as In,R as Nn,A as Rn,C as zn,T as Mn,D as qn,P as as,b as Vn,c as ss,d as os,e as is,S as ls,O as It,f as Nt,g as fr,h as Rt,i as zt,k as Ln,l as Dn,m as On}from"./ui-radix-Dy8lNabE.js";import{a as Bn,g as hr,R as w,r as f,b as cs,u as tt,L as gr,d as gt,B as us,e as ds,f as z}from"./react-vendor-CPuvF1Sp.js";import{u as Fn,a as ze,b as dt,Q as ms,c as ps}from"./query-D9I7bAJW.js";import{c as fs}from"./supabase-DkiBvCxn.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function r(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(a){if(a.ep)return;a.ep=!0;const o=r(a);fetch(a.href,o)}})();var $n,Ir=Bn;$n=Ir.createRoot,Ir.hydrateRoot;var hs=typeof Element<"u",gs=typeof Map=="function",bs=typeof Set=="function",ys=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function _t(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var r,n,a;if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(!_t(e[n],t[n]))return!1;return!0}var o;if(gs&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(o=e.entries();!(n=o.next()).done;)if(!t.has(n.value[0]))return!1;for(o=e.entries();!(n=o.next()).done;)if(!_t(n.value[1],t.get(n.value[0])))return!1;return!0}if(bs&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(o=e.entries();!(n=o.next()).done;)if(!t.has(n.value[0]))return!1;return!0}if(ys&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(e[n]!==t[n])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(a=Object.keys(e),r=a.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[n]))return!1;if(hs&&e instanceof Element)return!1;for(n=r;n--!==0;)if(!((a[n]==="_owner"||a[n]==="__v"||a[n]==="__o")&&e.$$typeof)&&!_t(e[a[n]],t[a[n]]))return!1;return!0}return e!==e&&t!==t}var vs=function(t,r){try{return _t(t,r)}catch(n){if((n.message||"").match(/stack|recursion/i))return!1;throw n}};const ws=hr(vs);var xs=function(e,t,r,n,a,o,l,i){if(!e){var u;if(t===void 0)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[r,n,a,o,l,i],m=0;u=new Error(t.replace(/%s/g,function(){return c[m++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}},ks=xs;const Nr=hr(ks);var _s=function(t,r,n,a){var o=n?n.call(a,t,r):void 0;if(o!==void 0)return!!o;if(t===r)return!0;if(typeof t!="object"||!t||typeof r!="object"||!r)return!1;var l=Object.keys(t),i=Object.keys(r);if(l.length!==i.length)return!1;for(var u=Object.prototype.hasOwnProperty.bind(r),c=0;c<l.length;c++){var m=l[c];if(!u(m))return!1;var p=t[m],h=r[m];if(o=n?n.call(a,p,h,m):void 0,o===!1||o===void 0&&p!==h)return!1}return!0};const Cs=hr(_s);var Hn=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(Hn||{}),Bt={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]}
2,meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},Rr=Object.values(Hn),br={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Ps=Object.entries(br).reduce((e,[t,r])=>(e[r]=t,e),{}),Ce="data-rh",Ke={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},Ye=(e,t)=>{for(let r=e.length-1;r>=0;r-=1){const n=e[r];if(Object.prototype.hasOwnProperty.call(n,t))return n[t]}return null},Ts=e=>{let t=Ye(e,"title");const r=Ye(e,Ke.TITLE_TEMPLATE);if(Array.isArray(t)&&(t=t.join("")),r&&t)return r.replace(/%s/g,()=>t);const n=Ye(e,Ke.DEFAULT_TITLE);return t||n||void 0},As=e=>Ye(e,Ke.ON_CHANGE_CLIENT_STATE)||(()=>{}),Ft=(e,t)=>t.filter(r=>typeof r[e]<"u").map(r=>r[e]).reduce((r,n)=>({...r,...n}),{}),js=(e,t)=>t.filter(r=>typeof r.base<"u").map(r=>r.base).reverse().reduce((r,n)=>{if(!r.length){const a=Object.keys(n);for(let o=0;o<a.length;o+=1){const i=a[o].toLowerCase();if(e.indexOf(i)!==-1&&n[i])return r.concat(n)}}return r},[]),Ss=e=>console&&typeof console.warn=="function"&&void 0,it=(e,t,r)=>{const n={};return r.filter(a=>Array.isArray(a[e])?!0:(typeof a[e]<"u"&&Ss(`Helmet: ${e} should be of type "Array". Instead found type "${typeof a[e]}"`),!1)).map(a=>a[e]).reverse().reduce((a,o)=>{const l={};o.filter(u=>{let c;const m=Object.keys(u);for(let h=0;h<m.length;h+=1){const d=m[h],T=d.toLowerCase();t.indexOf(T)!==-1&&!(c==="rel"&&u[c].toLowerCase()==="canonical")&&!(T==="rel"&&u[T].toLowerCase()==="stylesheet")&&(c=T),t.indexOf(d)!==-1&&(d==="innerHTML"||d==="cssText"||d==="itemprop")&&(c=d)}if(!c||!u[c])return!1;const p=u[c].toLowerCase();return n[c]||(n[c]={}),l[c]||(l[c]={}),n[c][p]?!1:(l[c][p]=!0,!0)}).reverse().forEach(u=>a.push(u));const i=Object.keys(l);for(let u=0;u<i.length;u+=1){const c=i[u],m={...n[c],...l[c]};n[c]=m}return a},[]).reverse()},Es=(e,t)=>{if(Array.isArray(e)&&e.length){for(let r=0;r<e.length;r+=1)if(e[r][t])return!0}return!1},Is=e=>({baseTag:js(["href"],e),bodyAttributes:Ft("bodyAttributes",e),defer:Ye(e,Ke.DEFER),encode:Ye(e,Ke.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Ft("htmlAttributes",e),linkTags:it("link",["rel","href"],e),metaTags:it("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:it("noscript",["innerHTML"],e),onChangeClientState:As(e),scriptTags:it("script",["src","innerHTML"],e),styleTags:it("style",["cssText"],e),title:Ts(e),titleAttributes:Ft("titleAttributes",e),prioritizeSeoTags:Es(e,Ke.PRIORITIZE_SEO_TAGS)}),Gn=e=>Array.isArray(e)?e.join(""):e,Ns=(e,t)=>{const r=Object.keys(e);for(let n=0;n<r.length;n+=1)if(t[r[n]]&&t[r[n]].includes(e[r[n]]))return!0;return!1},$t=(e,t)=>Array.isArray(e)?e.reduce((r,n)=>(Ns(n,t)?r.priority.push(n):r.default.push(n),r),{priority:[],default:[]}):{default:e,priority:[]},zr=(e,t)=>({...e,[t]:void 0}),Rs=["noscript","script","style"],Zt=(e,t=!0)=>t===!1?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),Un=e=>Object.keys(e).reduce((t,r)=>{const n=typeof e[r]<"u"?`${r}="${e[r]}"`:`${r}`;return t?`${t} ${n}`:n},""),zs=(e,t,r,n)=>{const a=Un(r),o=Gn(t);return a?`<${e} ${Ce}="true" ${a}>${Zt(o,n)}</${e}>`:`<${e} ${Ce}="true">${Zt(o,n)}</${e}>`},Ms=(e,t,r=!0)=>t.reduce((n,a)=>{const o=a,l=Object.keys(o).filter(c=>!(c==="innerHTML"||c==="cssText")).reduce((c,m)=>{const p=typeof o[m]>"u"?m:`${m}="${Zt(o[m],r)}"`;return c?`${c} ${p}`:p},""),i=o.innerHTML||o.cssText||"",u=Rs.indexOf(e)===-1;return`${n}<${e} ${Ce}="true" ${l}${u?"/>":`>${i}</${e}>`}`},""),Wn=(e,t={})=>Object.keys(e).reduce((r,n)=>{const a=br[n];return r[a||n]=e[n],r},t),qs=(e,t,r)=>{const n={key:t,[Ce]:!0},a=Wn(r,n);return[w.createElement("title",a,t)]},Ct=(e,t)=>
2t.map((r,n)=>{const a={key:n,[Ce]:!0};return Object.keys(r).forEach(o=>{const i=br[o]||o;if(i==="innerHTML"||i==="cssText"){const u=r.innerHTML||r.cssText;a.dangerouslySetInnerHTML={__html:u}}else a[i]=r[o]}),w.createElement(e,a)}),be=(e,t,r=!0)=>{switch(e){case"title":return{toComponent:()=>qs(e,t.title,t.titleAttributes),toString:()=>zs(e,t.title,t.titleAttributes,r)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>Wn(t),toString:()=>Un(t)};default:return{toComponent:()=>Ct(e,t),toString:()=>Ms(e,t,r)}}},Vs=({metaTags:e,linkTags:t,scriptTags:r,encode:n})=>{const a=$t(e,Bt.meta),o=$t(t,Bt.link),l=$t(r,Bt.script);return{priorityMethods:{toComponent:()=>[...Ct("meta",a.priority),...Ct("link",o.priority),...Ct("script",l.priority)],toString:()=>`${be("meta",a.priority,n)} ${be("link",o.priority,n)} ${be("script",l.priority,n)}`},metaTags:a.default,linkTags:o.default,scriptTags:l.default}},Ls=e=>{const{baseTag:t,bodyAttributes:r,encode:n=!0,htmlAttributes:a,noscriptTags:o,styleTags:l,title:i="",titleAttributes:u,prioritizeSeoTags:c}=e;let{linkTags:m,metaTags:p,scriptTags:h}=e,d={toComponent:()=>{},toString:()=>""};return c&&({priorityMethods:d,linkTags:m,metaTags:p,scriptTags:h}=Vs(e)),{priority:d,base:be("base",t,n),bodyAttributes:be("bodyAttributes",r,n),htmlAttributes:be("htmlAttributes",a,n),link:be("link",m,n),meta:be("meta",p,n),noscript:be("noscript",o,n),script:be("script",h,n),style:be("style",l,n),title:be("title",{title:i,titleAttributes:u},n)}},er=Ls,vt=[],Kn=!!(typeof window<"u"&&window.document&&window.document.createElement),tr=class{constructor(e,t){ge(this,"instances",[]);ge(this,"canUseDOM",Kn);ge(this,"context");ge(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?vt:this.instances,add:e=>{(this.canUseDOM?vt:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?vt:this.instances).indexOf(e);(this.canUseDOM?vt:this.instances).splice(t,1)}}});this.context=e,this.canUseDOM=t||!1,t||(e.helmet=er({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},Ds={},Yn=w.createContext(Ds),Le,Jn=(Le=class extends f.Component{constructor(r){super(r);ge(this,"helmetData");this.helmetData=new tr(this.props.context||{},Le.canUseDOM)}render(){return w.createElement(Yn.Provider,{value:this.helmetData.value},this.props.children)}},ge(Le,"canUseDOM",Kn),Le),Ge=(e,t)=>{const r=document.head||document.querySelector("head"),n=r.querySelectorAll(`${e}[${Ce}]`),a=[].slice.call(n),o=[];let l;return t&&t.length&&t.forEach(i=>{const u=document.createElement(e);for(const c in i)if(Object.prototype.hasOwnProperty.call(i,c))if(c==="innerHTML")u.innerHTML=i.innerHTML;else if(c==="cssText")u.styleSheet?u.styleSheet.cssText=i.cssText:u.appendChild(document.createTextNode(i.cssText));else{const m=c,p=typeof i[m]>"u"?"":i[m];u.setAttribute(c,p)}u.setAttribute(Ce,"true"),a.some((c,m)=>(l=m,u.isEqualNode(c)))?a.splice(l,1):o.push(u)}),a.forEach(i=>i.parentNode?.removeChild(i)),o.forEach(i=>r.appendChild(i)),{oldTags:a,newTags:o}},rr=(e,t)=>{const r=document.getElementsByTagName(e)[0];if(!r)return;const n=r.getAttribute(Ce),a=n?n.split(","):[],o=[...a],l=Object.keys(t);for(const i of l){const u=t[i]||"";r.getAttribute(i)!==u&&r.setAttribute(i,u),a.indexOf(i)===-1&&a.push(i);const c=o.indexOf(i);c!==-1&&o.splice(c,1)}for(let i=o.length-1;i>=0;i-=1)r.removeAttribute(o[i]);a.length===o.length?r.removeAttribute(Ce):r.getAttribute(Ce)!==l.join(",")&&r.setAttribute(Ce,l.join(","))}
2,Os=(e,t)=>{typeof e<"u"&&document.title!==e&&(document.title=Gn(e)),rr("title",t)},Mr=(e,t)=>{const{baseTag:r,bodyAttributes:n,htmlAttributes:a,linkTags:o,metaTags:l,noscriptTags:i,onChangeClientState:u,scriptTags:c,styleTags:m,title:p,titleAttributes:h}=e;rr("body",n),rr("html",a),Os(p,h);const d={baseTag:Ge("base",r),linkTags:Ge("link",o),metaTags:Ge("meta",l),noscriptTags:Ge("noscript",i),scriptTags:Ge("script",c),styleTags:Ge("style",m)},T={},x={};Object.keys(d).forEach(y=>{const{newTags:S,oldTags:R}=d[y];S.length&&(T[y]=S),R.length&&(x[y]=d[y].oldTags)}),t&&t(),u(e,T,x)},lt=null,Bs=e=>{lt&&cancelAnimationFrame(lt),e.defer?lt=requestAnimationFrame(()=>{Mr(e,()=>{lt=null})}):(Mr(e),lt=null)},Fs=Bs,qr=class extends f.Component{constructor(){super(...arguments);ge(this,"rendered",!1)}shouldComponentUpdate(t){return!Cs(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:r}=this.props.context;let n=null;const a=Is(t.get().map(o=>{const l={...o.props};return delete l.context,l}));Jn.canUseDOM?Fs(a):er&&(n=er(a)),r(n)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},Xt,Pu=(Xt=class extends f.Component{shouldComponentUpdate(e){return!ws(zr(this.props,"helmetData"),zr(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,t,r,n){return{...t,[e.type]:[...t[e.type]||[],{...r,...this.mapNestedChildrenToProps(e,n)}]}}mapObjectTypeChildren(e,t,r,n){switch(e.type){case"title":return{...t,[e.type]:n,titleAttributes:{...r}};case"body":return{...t,bodyAttributes:{...r}};case"html":return{...t,htmlAttributes:{...r}};default:return{...t,[e.type]:{...r}}}}mapArrayTypeChildrenToProps(e,t){let r={...t};return Object.keys(e).forEach(n=>{r={...r,[n]:e[n]}}),r}warnOnInvalidChildren(e,t){return Nr(Rr.some(r=>e.type===r),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${Rr.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),Nr(!t||typeof t=="string"||Array.isArray(t)&&!t.some(r=>typeof r!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,t){let r={};return w.Children.forEach(e,n=>{if(!n||!n.props)return;const{children:a,...o}=n.props,l=Object.keys(o).reduce((u,c)=>(u[Ps[c]||c]=o[c],u),{});let{type:i}=n;
2switch(typeof i=="symbol"?i=i.toString():this.warnOnInvalidChildren(n,a),i){case"Symbol(react.fragment)":t=this.mapChildrenToProps(a,t);break;case"link":case"meta":case"noscript":case"script":case"style":r=this.flattenArrayTypeChildren(n,r,l,a);break;default:t=this.mapObjectTypeChildren(n,t,l,a);break}}),this.mapArrayTypeChildrenToProps(r,t)}render(){const{children:e,...t}=this.props;let r={...t},{helmetData:n}=t;if(e&&(r=this.mapChildrenToProps(e,r)),n&&!(n instanceof tr)){const a=n;n=new tr(a.context,!0),delete r.helmetData}return n?w.createElement(qr,{...r,context:n.value}):w.createElement(Yn.Consumer,null,a=>w.createElement(qr,{...r,context:a}))}},ge(Xt,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),Xt),$s=e=>{switch(e){case"success":return Us;case"info":return Ks;case"warning":return Ws;case"error":return Ys;default:return null}},Hs=Array(12).fill(0),Gs=({visible:e,className:t})=>w.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},w.createElement("div",{className:"sonner-spinner"},Hs.map((r,n)=>w.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${n}`})))),Us=w.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},w.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Ws=w.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},w.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Ks=w.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},w.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Ys=w.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},w.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Js=w.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},w.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),w.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Qs=()=>{let[e,t]=w.useState(document.hidden);return w.useEffect(()=>{let r=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",r),()=>window.removeEventListener("visibilitychange",r)},[]),e},nr=1,Xs=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:r,...n}=e,a=typeof e?.id=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:nr++,o=this.toasts.find(i=>i.id===a),l=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(a)&&this.dismissedToasts.delete(a),o?this.toasts=this.toasts.map(i=>i.id===a?(this.publish({...i,...e,id:a,title:r}),{...i,...e,id:a,dismissible:l,title:r}):i):this.addToast({title:r,...n,dismissible:l,id:a}),a},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(r=>r({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>
2this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let r;t.loading!==void 0&&(r=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let n=e instanceof Promise?e:e(),a=r!==void 0,o,l=n.then(async u=>{if(o=["resolve",u],w.isValidElement(u))a=!1,this.create({id:r,type:"default",message:u});else if(eo(u)&&!u.ok){a=!1;let c=typeof t.error=="function"?await t.error(`HTTP error! status: ${u.status}`):t.error,m=typeof t.description=="function"?await t.description(`HTTP error! status: ${u.status}`):t.description;this.create({id:r,type:"error",message:c,description:m})}else if(t.success!==void 0){a=!1;let c=typeof t.success=="function"?await t.success(u):t.success,m=typeof t.description=="function"?await t.description(u):t.description;this.create({id:r,type:"success",message:c,description:m})}}).catch(async u=>{if(o=["reject",u],t.error!==void 0){a=!1;let c=typeof t.error=="function"?await t.error(u):t.error,m=typeof t.description=="function"?await t.description(u):t.description;this.create({id:r,type:"error",message:c,description:m})}}).finally(()=>{var u;a&&(this.dismiss(r),r=void 0),(u=t.finally)==null||u.call(t)}),i=()=>new Promise((u,c)=>l.then(()=>o[0]==="reject"?c(o[1]):u(o[1])).catch(c));return typeof r!="string"&&typeof r!="number"?{unwrap:i}:Object.assign(r,{unwrap:i})},this.custom=(e,t)=>{let r=t?.id||nr++;return this.create({jsx:e(r),id:r,...t}),r},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},de=new Xs,Zs=(e,t)=>{let r=t?.id||nr++;return de.addToast({title:e,...t,id:r}),r},eo=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",to=Zs,ro=()=>de.toasts,no=()=>de.getActiveToasts(),Pe=Object.assign(to,{success:de.success,info:de.info,warning:de.warning,error:de.error,custom:de.custom,message:de.message,promise:de.promise,dismiss:de.dismiss,loading:de.loading},{getHistory:ro,getToasts:no});function ao(e,{insertAt:t}={}){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}ao(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
2left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
2:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
2--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 3`);function wt(e){return e.label!==void 0}var so=3,oo="32px",io="16px",Vr=4e3,lo=356,co=14,uo=20,mo=200;function _e(...e){return e.filter(Boolean).join(" ")}function po(e){let[t,r]=e.split("-"),n=[];return t&&n.push(t),r&&n.push(r),n}var fo=e=>{var t,r,n,a,o,l,i,u,c,m,p;let{invert:h,toast:d,unstyled:T,interacting:x,setHeights:y,visibleToasts:S,heights:R,index:D,toasts:Q,expanded:A,removeToast:k,defaultRichColors:_,closeButton:P,style:E,cancelButtonStyle:q,actionButtonStyle:v,className:g="",descriptionClassName:$="",duration:Y,position:se,gap:re,loadingIcon:ue,expandByDefault:ve,classNames:V,icons:le,closeButtonAriaLabel:pe="Close toast",pauseWhenPageIsHidden:J}=e,[ee,ae]=w.useState(null),[fe,Be]=w.useState(null),[oe,qt]=w.useState(!1),[at,bt]=w.useState(!1),[st,Vt]=w.useState(!1),[_r,$a]=w.useState(!1),[Ha,Cr]=w.useState(!1),[Ga,Lt]=w.useState(0),[Ua,Pr]=w.useState(0),ot=w.useRef(d.duration||Y||Vr),Tr=w.useRef(null),qe=w.useRef(null),Wa=D===0,Ka=D+1<=S,he=d.type,Fe=d.dism
3issible!==!1,Ya=d.className||"",Ja=d.descriptionClassName||"",yt=w.useMemo(()=>R.findIndex(M=>M.toastId===d.id)||0,[R,d.id]),Qa=w.useMemo(()=>{var M;return(M=d.closeButton)!=null?M:P},[d.closeButton,P]),Ar=w.useMemo(()=>d.duration||Y||Vr,[d.duration,Y]),Dt=w.useRef(0),$e=w.useRef(0),jr=w.useRef(0),He=w.useRef(null),[Xa,Za]=se.split("-"),Sr=w.useMemo(()=>R.reduce((M,K,ne)=>ne>=yt?M:M+K.height,0),[R,yt]),Er=Qs(),es=d.invert||h,Ot=he==="loading";$e.current=w.useMemo(()=>yt*re+Sr,[yt,Sr]),w.useEffect(()=>{ot.current=Ar},[Ar]),w.useEffect(()=>{qt(!0)},[]),w.useEffect(()=>{let M=qe.current;if(M){let K=M.getBoundingClientRect().height;return Pr(K),y(ne=>[{toastId:d.id,height:K,position:d.position},...ne]),()=>y(ne=>ne.filter(we=>we.toastId!==d.id))}},[y,d.id]),w.useLayoutEffect(()=>{if(!oe)return;let M=qe.current,K=M.style.height;M.style.height="auto";let ne=M.getBoundingClientRect().height;M.style.height=K,Pr(ne),y(we=>we.find(xe=>xe.toastId===d.id)?we.map(xe=>xe.toastId===d.id?{...xe,height:ne}:xe):[{toastId:d.id,height:ne,position:d.position},...we])},[oe,d.title,d.description,y,d.id]);let Se=w.useCallback(()=>{bt(!0),Lt($e.current),y(M=>M.filter(K=>K.toastId!==d.id)),setTimeout(()=>{k(d)},mo)},[d,k,y,$e]);w.useEffect(()=>{if(d.promise&&he==="loading"||d.duration===1/0||d.type==="loading")return;let M;return A||x||J&&Er?(()=>{if(jr.current<Dt.current){let K=new Date().getTime()-Dt.current;ot.current=ot.current-K}jr.current=new Date().getTime()})():ot.current!==1/0&&(Dt.current=new Date().getTime(),M=setTimeout(()=>{var K;(K=d.onAutoClose)==null||K.call(d,d),Se()},ot.current)),()=>clearTimeout(M)},[A,x,d,he,J,Er,Se]),w.useEffect(()=>{d.delete&&Se()},[Se,d.delete]);function ts(){var M,K,ne;return le!=null&&le.loading?w.createElement("div",{className:_e(V?.loader,(M=d?.classNames)==null?void 0:M.loader,"sonner-loader"),"data-visible":he==="loading"},le.loading):ue?w.createElement("div",{className:_e(V?.loader,(K=d?.classNames)==null?void 0:K.loader,"sonner-loader"),"data-visible":he==="loading"},ue):w.createElement(Gs,{className:_e(V?.loader,(ne=d?.classNames)==null?void 0:ne.loader),visible:he==="loading"})}return w.createElement("li",{tabIndex:0,ref:qe,className:_e(g,Ya,V?.toast,(t=d?.classNames)==null?void 0:t.toast,V?.default,V?.[he],(r=d?.classNames)==null?void 0:r[he]),"data-sonner-toast":"","data-rich-colors":(n=d.richColors)!=null?n:_,"data-styled":!(d.jsx||d.unstyled||T),"data-mounted":oe,"data-promise":!!d.promise,"data-swiped":Ha,"data-removed":at,"data-visible":Ka,"data-y-position":Xa,"data-x-position":Za,"data-index":D,"data-front":Wa,"data-swiping":st,"data-dismissible":Fe,"data-type":he,"data-invert":es,"data-swipe-out":_r,"data-swipe-direction":fe,"data-expanded":!!(A||ve&&oe),style:{"--index":D,"--toasts-before":D,"--z-index":Q.length-D,"--offset":`${at?Ga:$e.current}px`,"--initial-height":ve?"auto":`${Ua}px`,...E,...d.style},onDragEnd:()=>{Vt(!1),ae(null),He.current=null},onPointerDown:M=>{Ot||!Fe||(Tr.current=new Date,Lt($e.current),M.target.setPointerCapture(M.pointerId),M.target.tagName!=="BUTTON"&&(Vt(!0),He.current={x:M.clientX,y:M.clientY}))},onPointerUp:()=>{var M,K,ne,we;if(_r||!Fe)return;He.current=null;let xe=Number(((M=qe.current)==null?void 0:M.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Ee=Number(((K=qe.current)==null?void 0:K.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Ve=new Date().getTime()-((ne=Tr.current)==null?void 0:ne.getTime()),ke=ee==="x"?xe:Ee,Ie=Math.abs(ke)/Ve;if(Math.abs(ke)>=uo||Ie>.11){Lt($e.current),(we=d.onDismiss)==null||we.call(d,d),Be(ee==="x"?xe>0?"right":"left":Ee>0?"down":"up"),Se(),$a(!0),Cr(!1);return}Vt(!1),ae(null)},onPointerMove:M=>{var K,ne,we,xe;if(!He.current||!Fe||((K=window.getSelection())==null?void 0:K.toString().length)>0)return;let Ee=M.clientY-He.current.y,Ve=M.clientX-He.current.x,ke=(ne=e.swipeDirections)!=null?ne:po(se);!ee&&(Math.abs(Ve)>1||Math.abs(Ee)>1)&&ae(Math.abs(Ve)>Math.abs(Ee)?"x":"y");let Ie={x:0,y:0};ee==="y"?(ke.includes("top")||ke.includes("bottom"))&&(ke.includes("top")&&Ee<0||ke.includes("bottom")&&Ee>0)&&(Ie.y=Ee):ee==="x"&&(ke.includes("left")||ke.includes("right"))&&(ke.includes("left")&&Ve<0||ke.includes("right")&&Ve>0)&&(Ie.x=Ve),(Math.abs(Ie.x)>0||Math.abs(Ie.y)>0)&&Cr(!0),(we=qe.current)==null||we.style.setProperty("--swipe-amount-x",`${Ie.x}px`),(xe=qe.current)==null||xe.style.setProperty("--swipe-amount-y",`${Ie.y}px`)}},Qa&&!d.jsx?w.createElement("button",{"aria-label":pe,"data-disabled":Ot,"data-close-button":!0,onClick:Ot||!Fe?()=>{}:()=>{var M;
3Se(),(M=d.onDismiss)==null||M.call(d,d)},className:_e(V?.closeButton,(a=d?.classNames)==null?void 0:a.closeButton)},(o=le?.close)!=null?o:Js):null,d.jsx||f.isValidElement(d.title)?d.jsx?d.jsx:typeof d.title=="function"?d.title():d.title:w.createElement(w.Fragment,null,he||d.icon||d.promise?w.createElement("div",{"data-icon":"",className:_e(V?.icon,(l=d?.classNames)==null?void 0:l.icon)},d.promise||d.type==="loading"&&!d.icon?d.icon||ts():null,d.type!=="loading"?d.icon||le?.[he]||$s(he):null):null,w.createElement("div",{"data-content":"",className:_e(V?.content,(i=d?.classNames)==null?void 0:i.content)},w.createElement("div",{"data-title":"",className:_e(V?.title,(u=d?.classNames)==null?void 0:u.title)},typeof d.title=="function"?d.title():d.title),d.description?w.createElement("div",{"data-description":"",className:_e($,Ja,V?.description,(c=d?.classNames)==null?void 0:c.description)},typeof d.description=="function"?d.description():d.description):null),f.isValidElement(d.cancel)?d.cancel:d.cancel&&wt(d.cancel)?w.createElement("button",{"data-button":!0,"data-cancel":!0,style:d.cancelButtonStyle||q,onClick:M=>{var K,ne;wt(d.cancel)&&Fe&&((ne=(K=d.cancel).onClick)==null||ne.call(K,M),Se())},className:_e(V?.cancelButton,(m=d?.classNames)==null?void 0:m.cancelButton)},d.cancel.label):null,f.isValidElement(d.action)?d.action:d.action&&wt(d.action)?w.createElement("button",{"data-button":!0,"data-action":!0,style:d.actionButtonStyle||v,onClick:M=>{var K,ne;wt(d.action)&&((ne=(K=d.action).onClick)==null||ne.call(K,M),!M.defaultPrevented&&Se())},className:_e(V?.actionButton,(p=d?.classNames)==null?void 0:p.actionButton)},d.action.label):null))};function Lr(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function ho(e,t){let r={};return[e,t].forEach((n,a)=>{let o=a===1,l=o?"--mobile-offset":"--offset",i=o?io:oo;function u(c){["top","right","bottom","left"].forEach(m=>{r[`${l}-${m}`]=typeof c=="number"?`${c}px`:c})}typeof n=="number"||typeof n=="string"?u(n):typeof n=="object"?["top","right","bottom","left"].forEach(c=>{n[c]===void 0?r[`${l}-${c}`]=i:r[`${l}-${c}`]=typeof n[c]=="number"?`${n[c]}px`:n[c]}):u(i)}),r}var go=f.forwardRef(function(e,t){let{invert:r,position:n="bottom-right",hotkey:a=["altKey","KeyT"],expand:o,closeButton:l,className:i,offset:u,mobileOffset:c,theme:m="light",richColors:p,duration:h,style:d,visibleToasts:T=so,toastOptions:x,dir:y=Lr(),gap:S=co,loadingIcon:R,icons:D,containerAriaLabel:Q="Notifications",pauseWhenPageIsHidden:A}=e,[k,_]=w.useState([]),P=w.useMemo(()=>Array.from(new Set([n].concat(k.filter(J=>J.position).map(J=>J.position)))),[k,n]),[E,q]=w.useState([]),[v,g]=w.useState(!1),[$,Y]=w.useState(!1),[se,re]=w.useState(m!=="system"?m:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),ue=w.useRef(null),ve=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),V=w.useRef(null),le=w.useRef(!1),pe=w.useCallback(J=>{_(ee=>{var ae;return(ae=ee.find(fe=>fe.id===J.id))!=null&&ae.delete||de.dismiss(J.id),ee.filter(({id:fe})=>fe!==J.id)})},[]);return w.useEffect(()=>de.subscribe(J=>{if(J.dismiss){_(ee=>ee.map(ae=>ae.id===J.id?{...ae,delete:!0}:ae));return}setTimeout(()=>{cs.flushSync(()=>{_(ee=>{let ae=ee.findIndex(fe=>fe.id===J.id);return ae!==-1?[...ee.slice(0,ae),{...ee[ae],...J},...ee.slice(ae+1)]:[J,...ee]})})})}),[]),w.useEffect(()=>{if(m!=="system"){re(m);return}if(m==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?re("dark"):re("light")),typeof window>"u")return;let J=window.matchMedia("(prefers-color-scheme: dark)");try{J.addEventListener("change",({matches:ee})=>{re(ee?"dark":"light")})}catch{J.addListener(({matches:ae})=>{try{re(ae?"dark":"light")}catch{}})}},[m]),w.useEffect(()=>{k.length<=1&&g(!1)},[k]),w.useEffect(()=>{let J=ee=>{var ae,fe;a.every(Be=>ee[Be]||ee.code===Be)&&(g(!0),(ae=ue.current)==null||ae.focus()),ee.code==="Escape"&&(document.activeElement===ue.current||(fe=ue.current)!=null&&fe.contains(document.activeElement))&&g(!1)};return document.addEventListener("keydown",J),()=>document.removeEventListener("keydown",J)}
3,[a]),w.useEffect(()=>{if(ue.current)return()=>{V.current&&(V.current.focus({preventScroll:!0}),V.current=null,le.current=!1)}},[ue.current]),w.createElement("section",{ref:t,"aria-label":`${Q} ${ve}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},P.map((J,ee)=>{var ae;let[fe,Be]=J.split("-");return k.length?w.createElement("ol",{key:J,dir:y==="auto"?Lr():y,tabIndex:-1,ref:ue,className:i,"data-sonner-toaster":!0,"data-theme":se,"data-y-position":fe,"data-lifted":v&&k.length>1&&!o,"data-x-position":Be,style:{"--front-toast-height":`${((ae=E[0])==null?void 0:ae.height)||0}px`,"--width":`${lo}px`,"--gap":`${S}px`,...d,...ho(u,c)},onBlur:oe=>{le.current&&!oe.currentTarget.contains(oe.relatedTarget)&&(le.current=!1,V.current&&(V.current.focus({preventScroll:!0}),V.current=null))},onFocus:oe=>{oe.target instanceof HTMLElement&&oe.target.dataset.dismissible==="false"||le.current||(le.current=!0,V.current=oe.relatedTarget)},onMouseEnter:()=>g(!0),onMouseMove:()=>g(!0),onMouseLeave:()=>{$||g(!1)},onDragEnd:()=>g(!1),onPointerDown:oe=>{oe.target instanceof HTMLElement&&oe.target.dataset.dismissible==="false"||Y(!0)},onPointerUp:()=>Y(!1)},k.filter(oe=>!oe.position&&ee===0||oe.position===J).map((oe,qt)=>{var at,bt;return w.createElement(fo,{key:oe.id,icons:D,index:qt,toast:oe,defaultRichColors:p,duration:(at=x?.duration)!=null?at:h,className:x?.className,descriptionClassName:x?.descriptionClassName,invert:r,visibleToasts:T,closeButton:(bt=x?.closeButton)!=null?bt:l,interacting:$,position:J,style:x?.style,unstyled:x?.unstyled,classNames:x?.classNames,cancelButtonStyle:x?.cancelButtonStyle,actionButtonStyle:x?.actionButtonStyle,removeToast:pe,toasts:k.filter(st=>st.position==oe.position),heights:E.filter(st=>st.position==oe.position),setHeights:q,expandByDefault:o,gap:S,loadingIcon:R,expanded:v,pauseWhenPageIsHidden:A,swipeDirections:e.swipeDirections})})):null}))});const Qn=f.createContext(void 0),bo=({children:e})=>{const[t,r]=f.useState(()=>{const c=localStorage.getItem("cart");return c?JSON.parse(c):[]});f.useEffect(()=>{localStorage.setItem("cart",JSON.stringify(t))},[t]);const n=c=>{r(m=>m.find(h=>h.card.id===c.id)?(Pe.info("Cette carte est déjà dans votre panier"),m):(Pe.success(`${c.name} ajouté au panier`),[...m,{card:c,quantity:1}]))},a=c=>{r(m=>{const p=m.find(h=>h.card.id===c);return p&&Pe.info(`${p.card.name} retiré du panier`),m.filter(h=>h.card.id!==c)})},o=()=>{r([]),Pe.info("Panier vidé")},l=()=>t.reduce((c,m)=>c+m.card.price*m.quantity,0),i=()=>t.reduce((c,m)=>c+m.quantity,0),u=c=>t.some(m=>m.card.id===c);return s.jsx(Qn.Provider,{value:{items:t,addToCart:n,removeFromCart:a,clearCart:o,getTotal:l,getTotalItems:i,isInCart:u},children:e})},Tu=()=>{const e=f.useContext(Qn);if(!e)throw new Error("useCart must be used within a CartProvider");return e},yo="modulepreload",vo=function(e){return"/"+e},Dr={},I=function(t,r,n){let a=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),i=l?.nonce||l?.getAttribute("nonce");a=Promise.allSettled(r.map(u=>{if(u=vo(u),u in Dr)return;Dr[u]=!0;const c=u.endsWith(".css"),m=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${m}`))return;const p=document.createElement("link");if(p.rel=c?"stylesheet":yo,c||(p.as="script"),p.crossOrigin="",p.href=u,i&&p.setAttribute("nonce",i),document.head.appendChild(p),c)return new Promise((h,d)=>{p.addEventListener("load",h),p.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(l){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=l,window.dispatchEvent(i),!i.defaultPrevented)throw l}return a.then(l=>{for(const i of l||[])i.status==="rejected"&&o(i.reason);return t().catch(o)})},wo=1,xo=1e6;let Ht=0;function ko(){return Ht=(Ht+1)%Number.MAX_SAFE_INTEGER,Ht.toString()}const Gt=new Map,Or=e=>{if(Gt.has(e))return;const t=setTimeout(()=>{Gt.delete(e),mt({type:"REMOVE_TOAST",toastId:e})},xo);Gt.set(e,t)},_o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,wo)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(r=>r.id===t.toast.id?{...r,...t.toast}:r)};case"DISMISS_TOAST":{const{toastId:r}=t;
3return r?Or(r):e.toasts.forEach(n=>{Or(n.id)}),{...e,toasts:e.toasts.map(n=>n.id===r||r===void 0?{...n,open:!1}:n)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(r=>r.id!==t.toastId)}}},Pt=[];let Tt={toasts:[]};function mt(e){Tt=_o(Tt,e),Pt.forEach(t=>{t(Tt)})}function Co({...e}){const t=ko(),r=a=>mt({type:"UPDATE_TOAST",toast:{...a,id:t}}),n=()=>mt({type:"DISMISS_TOAST",toastId:t});return mt({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||n()}}}),{id:t,dismiss:n,update:r}}function yr(){const[e,t]=f.useState(Tt);return f.useEffect(()=>(Pt.push(t),()=>{const r=Pt.indexOf(t);r>-1&&Pt.splice(r,1)}),[e]),{...e,toast:Co,dismiss:r=>mt({type:"DISMISS_TOAST",toastId:r})}}function Xn(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=Xn(e[t]))&&(n&&(n+=" "),n+=r)}else for(r in e)e[r]&&(n&&(n+=" "),n+=r);return n}function Zn(){for(var e,t,r=0,n="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=Xn(e))&&(n&&(n+=" "),n+=t);return n}const Br=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Fr=Zn,vr=(e,t)=>r=>{var n;if(t?.variants==null)return Fr(e,r?.class,r?.className);const{variants:a,defaultVariants:o}=t,l=Object.keys(a).map(c=>{const m=r?.[c],p=o?.[c];if(m===null)return null;const h=Br(m)||Br(p);return a[c][h]}),i=r&&Object.entries(r).reduce((c,m)=>{let[p,h]=m;return h===void 0||(c[p]=h),c},{}),u=t==null||(n=t.compoundVariants)===null||n===void 0?void 0:n.reduce((c,m)=>{let{class:p,className:h,...d}=m;return Object.entries(d).every(T=>{let[x,y]=T;return Array.isArray(y)?y.includes({...o,...i}[x]):{...o,...i}[x]===y})?[...c,p,h]:c},[]);return Fr(e,l,u,r?.class,r?.className)};/** 4 * @license lucide-react v0.462.0 - ISC 5 * 6 * This source code is licensed under the ISC license. 7 * See the LICENSE file in the root directory of this source tree. 8 */const Po=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ea=(...e)=>e.filter((t,r,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===r).join(" ").trim();/** 9 * @license lucide-react v0.462.0 - ISC 10 * 11 * This source code is licensed under the ISC license. 12 * See the LICENSE file in the root directory of this source tree. 13 */var To={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 14 * @license lucide-react v0.462.0 - ISC 15 * 16 * This source code is licensed under the ISC license. 17 * See the LICENSE file in the root directory of this source tree. 18 */const Ao=f.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:a="",children:o,iconNode:l,...i},u)=>f.createElement("svg",{ref:u,...To,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:ea("lucide",a),...i},[...l.map(([c,m])=>f.createElement(c,m)),...Array.isArray(o)?o:[o]]));/** 19 * @license lucide-react v0.462.0 - ISC 20 * 21 * This source code is licensed under the ISC license. 22 * See the LICENSE file in the root directory of this source tree. 23 */const B=(e,t)=>{const r=f.forwardRef(({className:n,...a},o)=>f.createElement(Ao,{ref:o,iconNode:t,className:ea(`lucide-${Po(e)}`,n),...a}));return r.displayName=`${e}`,r};/** 24 * @license lucide-react v0.462.0 - ISC 25 * 26 * This source code is licensed under the ISC license. 27 * See the LICENSE file in the root directory of this source tree. 28 */const jo=B("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** 29 * @license lucide-react v0.462.0 - ISC 30 * 31 * This source code is licensed under the ISC license. 32 * See the LICENSE file in the root directory of this source tree. 33 */const pt=B("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** 34 * @license lucide-react v0.462.0 - ISC 35 * 36 * This source code is licensed under the ISC license. 37 * See the LICENSE file in the root directory of this source tree. 38 */const So=B("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** 39 * @license lucide-react v0.462.0 - ISC 40 * 41 * This source code is licensed under the ISC license. 42 * See the LICENSE file in the root directory of this source tree. 43 */const ft=B("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}
43],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** 44 * @license lucide-react v0.462.0 - ISC 45 * 46 * This source code is licensed under the ISC license. 47 * See the LICENSE file in the root directory of this source tree. 48 */const Eo=B("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** 49 * @license lucide-react v0.462.0 - ISC 50 * 51 * This source code is licensed under the ISC license. 52 * See the LICENSE file in the root directory of this source tree. 53 */const Io=B("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** 54 * @license lucide-react v0.462.0 - ISC 55 * 56 * This source code is licensed under the ISC license. 57 * See the LICENSE file in the root directory of this source tree. 58 */const No=B("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** 59 * @license lucide-react v0.462.0 - ISC 60 * 61 * This source code is licensed under the ISC license. 62 * See the LICENSE file in the root directory of this source tree. 63 */const Ro=B("Cookie",[["path",{d:"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5",key:"laymnq"}],["path",{d:"M8.5 8.5v.01",key:"ue8clq"}],["path",{d:"M16 15.5v.01",key:"14dtrp"}],["path",{d:"M12 12v.01",key:"u5ubse"}],["path",{d:"M11 17v.01",key:"1hyl5a"}],["path",{d:"M7 14v.01",key:"uct60s"}]]);/** 64 * @license lucide-react v0.462.0 - ISC 65 * 66 * This source code is licensed under the ISC license. 67 * See the LICENSE file in the root directory of this source tree. 68 */const $r=B("Crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]);/** 69 * @license lucide-react v0.462.0 - ISC 70 * 71 * This source code is licensed under the ISC license. 72 * See the LICENSE file in the root directory of this source tree. 73 */const zo=B("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** 74 * @license lucide-react v0.462.0 - ISC 75 * 76 * This source code is licensed under the ISC license. 77 * See the LICENSE file in the root directory of this source tree. 78 */const Mo=B("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/** 79 * @license lucide-react v0.462.0 - ISC 80 * 81 * This source code is licensed under the ISC license. 82 * See the LICENSE file in the root directory of this source tree. 83 */const Je=B("Gamepad2",[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]]);/** 84 * @license lucide-react v0.462.0 - ISC 85 * 86 * This source code is licensed under the ISC license. 87 * See the LICENSE file in the root directory of this source tree. 88 */const Ut=B("Gem",[["path",{d:"M6 3h12l4 6-10 13L2 9Z",key:"1pcd5k"}],["path",{d:"M11 3 8 9l4 13 4-13-3-6",key:"1fcu3u"}],["path",{d:"M2 9h20",key:"16fsjt"}]]);/** 89 * @license lucide-react v0.462.0 - ISC 90 * 91 * This source code is licensed under the ISC license. 92 * See the LICENSE file in the root directory of this source tree. 93 */const qo=B("Gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]);/** 94 * @license lucide-react v0.462.0 - ISC 95 * 96 * This source code is licensed under the ISC license. 97 * See the LICENSE file in the root directory of this source tree. 98 */const Vo=B("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/** 99 * @license lucide-react v0.462.0 - ISC 100 * 101 * This source code is licensed under the ISC license. 102 * See the LICENSE file in the root directory of this source tree. 103 */const Lo=B("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** 104 * @license lucide-react v0.462.0 - ISC 105 * 106 * This source code is licensed under the ISC license. 107 * See the LICENSE file in the root directory of this source tree. 108 */const Do=B("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** 109 * @license lucide-react v0.462.0 - ISC 110 * 111 * This source code is licensed under the ISC license. 112 * See the LICENSE file in the root directory of this source tree.
113 */const Oo=B("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** 114 * @license lucide-react v0.462.0 - ISC 115 * 116 * This source code is licensed under the ISC license. 117 * See the LICENSE file in the root directory of this source tree. 118 */const Bo=B("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** 119 * @license lucide-react v0.462.0 - ISC 120 * 121 * This source code is licensed under the ISC license. 122 * See the LICENSE file in the root directory of this source tree. 123 */const Fo=B("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** 124 * @license lucide-react v0.462.0 - ISC 125 * 126 * This source code is licensed under the ISC license. 127 * See the LICENSE file in the root directory of this source tree. 128 */const ta=B("Megaphone",[["path",{d:"m3 11 18-5v12L3 14v-3z",key:"n962bs"}],["path",{d:"M11.6 16.8a3 3 0 1 1-5.8-1.6",key:"1yl0tm"}]]);/** 129 * @license lucide-react v0.462.0 - ISC 130 * 131 * This source code is licensed under the ISC license. 132 * See the LICENSE file in the root directory of this source tree. 133 */const $o=B("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 134 * @license lucide-react v0.462.0 - ISC 135 * 136 * This source code is licensed under the ISC license. 137 * See the LICENSE file in the root directory of this source tree. 138 */const Ho=B("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** 139 * @license lucide-react v0.462.0 - ISC 140 * 141 * This source code is licensed under the ISC license. 142 * See the LICENSE file in the root directory of this source tree. 143 */const Go=B("Newspaper",[["path",{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2",key:"7pis2x"}],["path",{d:"M18 14h-8",key:"sponae"}],["path",{d:"M15 18h-5",key:"95g1m2"}],["path",{d:"M10 6h8v4h-8V6Z",key:"smlsk5"}]]);/** 144 * @license lucide-react v0.462.0 - ISC 145 * 146 * This source code is licensed under the ISC license. 147 * See the LICENSE file in the root directory of this source tree. 148 */const Hr=B("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** 149 * @license lucide-react v0.462.0 - ISC 150 * 151 * This source code is licensed under the ISC license. 152 * See the LICENSE file in the root directory of this source tree. 153 */const Uo=B("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** 154 * @license lucide-react v0.462.0 - ISC 155 * 156 * This source code is licensed under the ISC license. 157 * See the LICENSE file in the root directory of this source tree. 158 */const Wo=B("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/** 159 * @license lucide-react v0.462.0 - ISC 160 * 161 * This source code is licensed under the ISC license. 162 * See the LICENSE file in the root directory of this source tree. 163 */const ar=B("ShoppingBag",[["path",{d:"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",key:"hou9p0"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}]]);/** 164 * @license lucide-react v0.462.0 - ISC 165 * 166 * This source code is licensed under the ISC license. 167 * See the LICENSE file in the root directory of this source tree. 168 */const sr=B("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** 169 * @license lucide-react v0.462.0 - ISC 170 * 171 * This source code is licensed under the ISC license. 172 * See the LICENSE file in the root directory of this source tree. 173 */const Ko=B("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** 174 * @license lucide-react v0.462.0 - ISC 175 * 176 * This source code is licensed under the ISC license. 177 * See the LICENSE file in the root directory of this source tree.
178 */const Yo=B("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]);/** 179 * @license lucide-react v0.462.0 - ISC 180 * 181 * This source code is licensed under the ISC license. 182 * See the LICENSE file in the root directory of this source tree. 183 */const Jo=B("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** 184 * @license lucide-react v0.462.0 - ISC 185 * 186 * This source code is licensed under the ISC license. 187 * See the LICENSE file in the root directory of this source tree. 188 */const Qo=B("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** 189 * @license lucide-react v0.462.0 - ISC 190 * 191 * This source code is licensed under the ISC license. 192 * See the LICENSE file in the root directory of this source tree. 193 */const Gr=B("Trophy",[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]]);/** 194 * @license lucide-react v0.462.0 - ISC 195 * 196 * This source code is licensed under the ISC license. 197 * See the LICENSE file in the root directory of this source tree. 198 */const ra=B("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** 199 * @license lucide-react v0.462.0 - ISC 200 * 201 * This source code is licensed under the ISC license. 202 * See the LICENSE file in the root directory of this source tree. 203 */const na=B("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** 204 * @license lucide-react v0.462.0 - ISC 205 * 206 * This source code is licensed under the ISC license. 207 * See the LICENSE file in the root directory of this source tree. 208 */const Xo=B("Wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);/** 209 * @license lucide-react v0.462.0 - ISC 210 * 211 * This source code is licensed under the ISC license. 212 * See the LICENSE file in the root directory of this source tree. 213 */const Xe=B("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** 214 * @license lucide-react v0.462.0 - ISC 215 * 216 * This source code is licensed under the ISC license. 217 * See the LICENSE file in the root directory of this source tree. 218 */const Zo=B("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),wr="-",ei=e=>{const t=ri(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:l=>{const i=l.split(wr);return i[0]===""&&i.length!==1&&i.shift(),aa(i,t)||ti(l)},getConflictingClassGroupIds:(l,i)=>{const u=r[l]||[];return i&&n[l]?[...u,...n[l]]:u}}},aa=(e,t)=>{if(e.length===0)return t.classGroupId;const r=e[0],n=t.nextPart.get(r),a=n?aa(e.slice(1),n):void 0;if(a)return a;if(t.validators.length===0)return;const o=e.join(wr);return t.validators.find(({validator:l})=>l(o))?.classGroupId},Ur=/^\[(.+)\]$/,ti=e=>{if(Ur.test(e)){const t=Ur.exec(e)[1],r=t?.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},ri=e=>{const{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return ai(Object.entries(e.classGroups),r).forEach(([o,l])=>{or(l,n,o,t)}),n},or=(e,t,r,n)=>{e.forEach(a=>
vendor: 5,014 bytes, line 218
218{if(typeof a=="string"){const o=a===""?t:Wr(t,a);o.classGroupId=r;return}if(typeof a=="function"){if(ni(a)){or(a(n),t,r,n);return}t.validators.push({validator:a,classGroupId:r});return}Object.entries(a).forEach(([o,l])=>{or(l,Wr(t,o),r,n)})})},Wr=(e,t)=>{let r=e;return t.split(wr).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},ni=e=>e.isThemeGetter,ai=(e,t)=>t?e.map(([r,n])=>{const a=n.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([l,i])=>[t+l,i])):o);return[r,a]}):e,si=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=new Map,n=new Map;const a=(o,l)=>{r.set(o,l),t++,t>e&&(t=0,n=r,r=new Map)};return{get(o){let l=r.get(o);if(l!==void 0)return l;if((l=n.get(o))!==void 0)return a(o,l),l},set(o,l){r.has(o)?r.set(o,l):a(o,l)}}},sa="!",oi=e=>{const{separator:t,experimentalParseClassName:r}=e,n=t.length===1,a=t[0],o=t.length,l=i=>{const u=[];let c=0,m=0,p;for(let y=0;y<i.length;y++){let S=i[y];if(c===0){if(S===a&&(n||i.slice(y,y+o)===t)){u.push(i.slice(m,y)),m=y+o;continue}if(S==="/"){p=y;continue}}S==="["?c++:S==="]"&&c--}const h=u.length===0?i:i.substring(m),d=h.startsWith(sa),T=d?h.substring(1):h,x=p&&p>m?p-m:void 0;return{modifiers:u,hasImportantModifier:d,baseClassName:T,maybePostfixModifierPosition:x}};return r?i=>r({className:i,parseClassName:l}):l},ii=e=>{if(e.length<=1)return e;const t=[];let r=[];return e.forEach(n=>{n[0]==="["?(t.push(...r.sort(),n),r=[]):r.push(n)}),t.push(...r.sort()),t},li=e=>({cache:si(e.cacheSize),parseClassName:oi(e),...ei(e)}),ci=/\s+/,ui=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:a}=t,o=[],l=e.trim().split(ci);let i="";for(let u=l.length-1;u>=0;u-=1){const c=l[u],{modifiers:m,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:d}=r(c);let T=!!d,x=n(T?h.substring(0,d):h);if(!x){if(!T){i=c+(i.length>0?" "+i:i);continue}if(x=n(h),!x){i=c+(i.length>0?" "+i:i);continue}T=!1}const y=ii(m).join(":"),S=p?y+sa:y,R=S+x;if(o.includes(R))continue;o.push(R);const D=a(x,T);for(let Q=0;Q<D.length;++Q){const A=D[Q];o.push(S+A)}i=c+(i.length>0?" "+i:i)}return i};function di(){let e=0,t,r,n="";for(;e<arguments.length;)(t=arguments[e++])&&(r=oa(t))&&(n&&(n+=" "),n+=r);return n}const oa=e=>{if(typeof e=="string")return e;let t,r="";for(let n=0;n<e.length;n++)e[n]&&(t=oa(e[n]))&&(r&&(r+=" "),r+=t);return r};function mi(e,...t){let r,n,a,o=l;function l(u){const c=t.reduce((m,p)=>p(m),e());return r=li(c),n=r.cache.get,a=r.cache.set,o=i,i(u)}function i(u){const c=n(u);if(c)return c;const m=ui(u,r);return a(u,m),m}return function(){return o(di.apply(null,arguments))}}const te=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},ia=/^\[(?:([a-z-]+):)?(.+)\]$/i,pi=/^\d+\/\d+$/,fi=new Set(["px","full","screen"]),hi=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,gi=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,bi=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,yi=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,vi=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Te=e=>Qe(e)||fi.has(e)||pi.test(e),Ne=e=>rt(e,"length",Ai),Qe=e=>!!e&&!Number.isNaN(Number(e)),Wt=e=>rt(e,"number",Qe),ct=e=>!!e&&Number.isInteger(Number(e)),wi=e=>e.endsWith("%")&&Qe(e.slice(0,-1)),L=e=>ia.test(e),Re=e=>hi.test(e),xi=new Set(["length","size","percentage"]),ki=e=>rt(e,xi,la),_i=e=>rt(e,"position",la),Ci=new Set(["image","url"]),Pi=e=>rt(e,Ci,Si),Ti=e=>rt(e,"",ji),ut=()=>!0,rt=(e,t,r)=>{const n=ia.exec(e);return n?n[1]?typeof t=="string"?n[1]===t:t.has(n[1]):r(n[2]):!1},Ai=e=>gi.test(e)&&!bi.test(e),la=()=>!1,ji=e=>yi.test(e),Si=e=>vi.test(e),Ei=()=>{const e=te("colors"),t=te("spacing"),r=te("blur"),n=te("brightness"),a=te("borderColor"),o=te("borderRadius"),l=te("borderSpacing"),i=te("borderWidth"),u=te("contrast"),c=te("grayscale"),m=te("hueRotate"),p=te("invert"),h=te("gap"),d=te("gradientColorStops"),T=te("gradientColorStopPositions"),x=te("inset"),y=te("margin"),S=te("opacity"),R=te("padding"),D=te("saturate"),Q=te("scale"),A=te("sepia"),k=te("skew"),_=te("space"),P=te("translate"),E=()=>["auto","contain","none"],q=()=>["auto","hidden","clip","visible","scroll"],v=()=>["auto",L,t],g=()=>[L,t],$=()=>["",Te,Ne],Y=()=>["auto",Qe,L],se=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],re=()=>["solid","dashed","dotted","double","none"],ue=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ve=()=>["start","end","center","between","around","evenly","stretch"],V=()=>["","0",L],le=()=>["auto","avoid","all","avoid-page","page","left","right","column"],pe=()=>[Qe,L];return{cacheSize:500,separator:":",theme:{colors:[ut],spacing:[Te,Ne],blur:["none","",Re,L],brightness:pe(),borderColor:[e],borderRadius:["n
218one","","full",Re,L],borderSpacing:g(),borderWidth:$(),contrast:pe(),grayscale:V(),hueRotate:pe(),invert:V(),gap:g(),gradientColorStops:[e],gradientColorStopPositions:[wi,Ne],inset:v(),margin:v(),opacity:pe(),padding:g(),saturate:pe(),scale:pe(),sepia:V(),skew:pe(),space:g(),translate:g()},classGroups:{aspect:[{aspect:["auto","square","video",L]}],container:["container"],columns:[{columns:[Re]}],"break-after":[{"break-after":le()}],"break-before":[{"break-before":le()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...se(),L]}],overflow:[{overflow:q()}],"overflow-x":[{"overflow-x":q()}],"overflow-y":[{"overflow-y":q()}],overscroll:[{overscroll:E()}],"overscroll-x":[{"overscroll-x":E()}],"overscroll-y":[{"overscroll-y":E()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[x]}],"inset-x":[{"inset-x":[x]}],"inset-y":[{"inset-y":[x]}],start:[{start:[x]}],end:[{end:[x]}],top:[{top:[x]}],right:[{right:[x]}],bottom:[{bottom:[x]}],left:[{left:[x]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ct,L]}],basis:[{basis:v()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",L]}],grow:[{grow:V()}],shrink:[{shrink:V()}],order:[{order:["first","last","none",ct,L]}],"grid-cols":[{"grid-cols":[ut]}],"col-start-end":[{col:["auto",{span:["full",ct,L]},L]}],"col-start":[{"col-start":Y()}],"col-end":[{"col-end":Y()}],"grid-rows":[{"grid-rows":[ut]}],"row-start-end":[{row:["auto",{span:[ct,L]},L]}],"row-start":[{"row-start":Y()}],"row-end":[{"row-end":Y()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",L]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",L]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...ve()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...ve(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...ve(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[R]}],px:[{px:[R]}],py:[{py:[R]}],ps:[{ps:[R]}],pe:[{pe:[R]}],pt:[{pt:[R]}],pr:[{pr:[R]}],pb:[{pb:[R]}],pl:[{pl:[R]}],m:[{m:[y]}],mx:[{mx:[y]}],my:[{my:[y]}],ms:[{ms:[y]}],me:[{me:[y]}],mt:[{mt:[y]}],mr:[{mr:[y]}],mb:[{mb:[y]}],ml:[{ml:[y]}],"space-x":[{"space-x":[_]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[_]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",L,t]}],"min-w":[{"min-w":[L,t,"min","max","fit"]}],"max-w":[{"max-w":[L,t,"none","full","min","max","fit","prose",{screen:[Re]},Re]}],h:[{h:[L,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[L,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[L,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[L,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Re,Ne]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Wt]}],"font-family":[{font:[ut]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",L]}],"line-clamp":[{"line-clamp":["none",Qe,Wt]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Te,L]}],"list-image":[{"list-image":["none",L]}],"list-style-type":[{list:["none","disc","decimal",L]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[S]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[S]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...re(),"w
218avy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Te,Ne]}],"underline-offset":[{"underline-offset":["auto",Te,L]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:g()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",L]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",L]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[S]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...se(),_i]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",ki]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Pi]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[T]}],"gradient-via-pos":[{via:[T]}],"gradient-to-pos":[{to:[T]}],"gradient-from":[{from:[d]}],"gradient-via":[{via:[d]}],"gradient-to":[{to:[d]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[S]}],"border-style":[{border:[...re(),"hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[S]}
vendor: 4,464 bytes, line 218
218],"divide-style":[{divide:re()}],"border-color":[{border:[a]}],"border-color-x":[{"border-x":[a]}],"border-color-y":[{"border-y":[a]}],"border-color-s":[{"border-s":[a]}],"border-color-e":[{"border-e":[a]}],"border-color-t":[{"border-t":[a]}],"border-color-r":[{"border-r":[a]}],"border-color-b":[{"border-b":[a]}],"border-color-l":[{"border-l":[a]}],"divide-color":[{divide:[a]}],"outline-style":[{outline:["",...re()]}],"outline-offset":[{"outline-offset":[Te,L]}],"outline-w":[{outline:[Te,Ne]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:$()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[S]}],"ring-offset-w":[{"ring-offset":[Te,Ne]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Re,Ti]}],"shadow-color":[{shadow:[ut]}],opacity:[{opacity:[S]}],"mix-blend":[{"mix-blend":[...ue(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":ue()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",Re,L]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[m]}],invert:[{invert:[p]}],saturate:[{saturate:[D]}],sepia:[{sepia:[A]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[S]}],"backdrop-saturate":[{"backdrop-saturate":[D]}],"backdrop-sepia":[{"backdrop-sepia":[A]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",L]}],duration:[{duration:pe()}],ease:[{ease:["linear","in","out","in-out",L]}],delay:[{delay:pe()}],animate:[{animate:["none","spin","ping","pulse","bounce",L]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[Q]}],"scale-x":[{"scale-x":[Q]}],"scale-y":[{"scale-y":[Q]}],rotate:[{rotate:[ct,L]}],"translate-x":[{"translate-x":[P]}],"translate-y":[{"translate-y":[P]}],"skew-x":[{"skew-x":[k]}],"skew-y":[{"skew-y":[k]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",L]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",L]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":g()}],"scroll-mx":[{"scroll-mx":g()}],"scroll-my":[{"scroll-my":g()}],"scroll-ms":[{"scroll-ms":g()}],"scroll-me":[{"scroll-me":g()}],"scroll-mt":[{"scroll-mt":g()}],"scroll-mr":[{"scroll-mr":g()}],"scroll-mb":[{"scroll-mb":g()}],"scroll-ml":[{"scroll-ml":g()}],"scroll-p":[{"scroll-p":g()}],"scroll-px":[{"scroll-px":g()}],"scroll-py":[{"scroll-py":g()}],"scroll-ps":[{"scroll-ps":g()}],"scroll-pe":[{"scroll-pe":g()}],"scroll-pt":[{"scroll-pt":g()}],"scroll-pr":[{"scroll-pr":g()}],"scroll-pb":[{"scroll-pb":g()}],"scroll-pl":[{"scroll-pl":g()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",L]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Te,Ne,Wt]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","
218none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Ii=mi(Ei);function G(...e){return Ii(Zn(e))}const Ni=as,ca=f.forwardRef(({className:e,...t},r)=>s.jsx(In,{ref:r,className:G("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));ca.displayName=In.displayName;const Ri=vr("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),ua=f.forwardRef(({className:e,variant:t,...r},n)=>s.jsx(Nn,{ref:n,className:G(Ri({variant:t}),e),...r}));ua.displayName=Nn.displayName;const zi=f.forwardRef(({className:e,...t},r)=>s.jsx(Rn,{ref:r,className:G("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));zi.displayName=Rn.displayName;const da=f.forwardRef(({className:e,...t},r)=>s.jsx(zn,{ref:r,className:G("absolute right-2 top-2 rounded-md p-1 text-foreground
218/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:s.jsx(Xe,{className:"h-4 w-4"})}));da.displayName=zn.displayName;const ma=f.forwardRef(({className:e,...t},r)=>s.jsx(Mn,{ref:r,className:G("text-sm font-semibold",e),...t}));ma.displayName=Mn.displayName;const pa=f.forwardRef(({className:e,...t},r)=>s.jsx(qn,{ref:r,className:G("text-sm opacity-90",e),...t}));pa.displayName=qn.displayName;function Mi(){const{toasts:e}=yr();return s.jsxs(Ni,{children:[e.map(function({id:t,title:r,description:n,action:a,...o}){return s.jsxs(ua,{...o,children:[s.jsxs("div",{className:"grid gap-1",children:[r&&s.jsx(ma,{children:r}),n&&s.jsx(pa,{children:n})]}),a,s.jsx(da,{})]},t)}),s.jsx(ca,{})]})}var Kr=["light","dark"],qi="(prefers-color-scheme: dark)",Vi=f.createContext(void 0),Li={setTheme:e=>{},themes:[]},Di=()=>{var e;return(e=f.useContext(Vi))!=null?e:Li};f.memo(({forcedTheme:e,storageKey:t,attribute:r,enableSystem:n,enableColorScheme:a,defaultTheme:o,value:l,attrs:i,nonce:u})=>{let c=o==="system",m=r==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${i.map(T=>`'${T}'`).join(",")})`};`:`var d=document.documentElement,n='${r}',s='setAttribute';`,p=a?Kr.includes(o)&&o?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${o}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=(T,x=!1,y=!0)=>{let S=l?l[T]:T,R=x?T+"|| ''":`'${S}'`,D="";return a&&y&&!x&&Kr.includes(T)&&(D+=`d.style.colorScheme = '${T}';`),r==="class"?x||S?D+=`c.add(${R})`:D+="null":S&&(D+=`d[s](n,${R})`),D},d=e?`!function(){${m}${h(e)}}()`:n?`!function(){try{${m}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${c})){var t='${qi}',m=window.matchMedia(t);if(m.media!==t||m.matches){${h("dark")}}else{${h("light")}}}else if(e){${l?`var x=${JSON.stringify(l)};`:""}${h(l?"x[e]":"e",!0)}}${c?"":"else{"+h(o,!1,!1)+"}"}${p}}catch(e){}}()`:`!function(){try{${m}var e=localStorage.getItem('${t}');if(e){${l?`var x=${JSON.stringify(l)};`:""}${h(l?"x[e]":"e",!0)}}else{${h(o,!1,!1)};}${p}}catch(t){}}();`;return f.createElement("script",{nonce:u,dangerouslySetInnerHTML:{__html:d}})});const Oi=({...e})=>{const{theme:t="system"}=Di();return s.jsx(go,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})},ir=is,lr=ss,cr=os,St=f.forwardRef(({className:e,sideOffset:t=4,...r},n)=>s.jsx(Vn,{ref:n,sideOffset:t,className:G("z-[100] overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r}));St.displayName=Vn.displayName;function Bi(){if(typeof window>"u")return;const e=location.hostname,r=["lovableproject.com","lovableproject-dev.com","lovable.app","gpt-eng.com","gptengineer.run"].some(y=>e===y||e.endsWith("."+y)),n="[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}",a=r?e.match(new RegExp("^(?:id-preview(?:-[a-z0-9]+)?|project)--("+n+")(?:-dev)?(?=\\.|$)","i"))?.[1]??e.match(new RegExp("^("+n+")(?=[.-])","i"))?.[1]:void 0,o=window.parent&&window.parent!==window;if(!a||!o)return localStorage;const l=e.endsWith(".lovableproject-dev.com")||e.endsWith(".gpt-eng.com"),i=l?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,u=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:""),c=u&&i.test(u)?[u]:l?["https://lovable.dev","http://localhost:3000"]:["https://lovable.dev"],m="lovable-preview-auth:result",p=2e3,h=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),d=(y,S,R)=>new Promise(D=>{const Q=h();let A=!1,k;const _=q=>{A||(A=!0,clearTimeout(k),window.removeEventListener("message",P),D(q))},P=q=>{if(c.indexOf(q.origin)<0)return;const v=q.data;v&&v.type===m&&v.requestId===Q&&_(v)};window.addEventListener("message",P);const E={type:y,requestId:Q,projectId:a,key:S};R!==void 0&&(E.value=R);for(const q of c)window.parent.postMessage(E,q);k=setTimeout(()=>_(null),p)});let T=!0;const x=250;return{getItem:async y=>{let S=await d("lovable-preview-auth:get",y);return!S&&T&&(await new Promise(R=>setTimeout(R,x)),S=await d("lovable-preview-auth:get",y)),T=!1,S&&S.ok&&typeof S.value=="string"?S.value===""?(localStorage.removeItem(y),null):S.value:localStorage.getItem(y)},setItem:(y,S)=>(localStorage.setItem(y,S),d("lovable-preview-auth:set",y,S).then(()=>{})),removeItem:y=>(localStorage.removeItem(y),d("lovable-preview-auth:remove",y).then(()=>{}))}}const Fi="https://btgtqbctiakiidwfotoc.supabase.co",$i="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImJ0Z3RxYmN0aWFraWlkd2ZvdG9jIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjYzNDA2NzEsImV4cCI6MjA4MTkxNjY3MX0.Izqt5t_ls6wt7q_A438LMWAJgTXKMqW9h762xW2S0tU",j=fs(Fi,$i,{auth:{storage:Bi(),persistSession:!0,autoRefreshToken:!0}}),Au=Object.freeze(Object.defineProperty({__proto__:null,supabase:j},Symbol.toStringTag,{value:"Module"})),fa=f.createContext(void 0),Hi=e=>e.includes("missing sub claim")||e.includes("invalid claim")||e.includes("bad_jwt")||e.includes("Invalid JWT")||e.includes("Invalid Refresh Token")||e.includes("Refresh Token Not Found"),Gi=e=>{if(!e?.access_token)return!0;try{const t=e.access_token.split(".")[1];if(!t)return!1;const r=t.replace(/-/g,"+").replace(/_/g,"/"),n=JSON.parse(atob(r));return typeof n.sub=="string"&&n.sub.length>0}catch{return!1}},Ui=({children:e})=>{const[t,r]=f.useState(null),[n,a]=f.useState(null),[o,l]=f.useState(null),[i,u]=f.useState(!1),[c,m]=f.useState(!1),[p,h]=f.useState(!0);f.useEffect(()=>{const{data:{subscription:k}}=j.auth.onAuthStateChange((P,E)=>{if(a(E),r(E?.user??null),P==="PASSWORD_RECOVERY"){window.location.href=`${window.location.origin}/auth?mode=reset`;return}E?.user?setTimeout(()=>{d(E.user.id),T(E.user.id)},0):(l(null),u(!1),m(!1))});return(async()=>{const{data:P}=await j.auth.getSession();if(!P.session){a(null),r(null),h(!1);return}if(!Gi(P.session)){await j.auth.signOut({scope:"local"}),a(null),r(null),h(!1);return}const{data:E,error:q}=await j.auth.getUser();if(q&&Hi(q.message)){await j.auth.signOut({scope:"local"}),a(null),r(null),h(!1);return}if(q){a(P.session),r(P.session.user),h(!1);return}if(E.user){const{data:v}=await j.auth.getSession();a(v.session),r(E.user),d(E.user.id),T(E.user.id)}else a(null),r(null);h(!1)})(),()=>k.unsubscribe()},[]),f.useEffect(()=>{if(!t?.id)return;const k=j.channel("profile-changes").on("postgres_changes",{event:"UPDATE",schema:"public",table:"profiles",filter:`id=eq.${t.id}`},_=>{const P=_.new;l(P);const E=P.is_premium&&(!P.premium_until||new Date(P.premium_until)>new Date);m(E)}).subscribe();return()=>{j.removeChannel(k)}},[t?.id]);const d=async k=>{const{data:_}=await j.from("profiles").select("*").eq("id",k).maybeSingle();if(_){l(_);const P=_.is_premium&&(!_.premium_until||new Date(_.premium_until)>new Date);m(P)}
218},T=async k=>{const{data:_}=await j.from("user_roles").select("role").eq("user_id",k).eq("role","admin").maybeSingle();u(!!_)},x=async()=>{try{const{data:k,error:_}=await j.functions.invoke("check-premium");!_&&k&&(m(k.is_premium===!0),t?.id&&d(t.id))}catch{}},y=async()=>{await x()},S=async(k,_,P)=>{const E=`${window.location.origin}/`,{data:q,error:v}=await j.auth.signUp({email:k,password:_,options:{emailRedirectTo:E,data:{username:P}}});if(!v&&q.user)try{await j.functions.invoke("send-welcome-email",{body:{user_id:q.user.id,email:k,username:P}})}catch{}return{error:v}},R=async(k,_)=>{const{error:P}=await j.auth.signInWithPassword({email:k,password:_});return{error:P}},D=async()=>{await j.auth.signOut(),r(null),a(null),l(null),u(!1),m(!1)},Q=async k=>{const _=`${window.location.origin}/auth?mode=reset`,{error:P}=await j.auth.resetPasswordForEmail(k,{redirectTo:_});return{error:P}},A=async k=>{const{error:_}=await j.auth.updateUser({password:k});return{error:_}};return s.jsx(fa.Provider,{value:{user:t,session:n,profile:o,isAdmin:i,isPremium:c,loading:p,signUp:S,signIn:R,signOut:D,resetPassword:Q,updatePassword:A,checkPremiumStatus:y},children:e})},Me=()=>{const e=f.useContext(fa);if(e===void 0)throw new Error("useAuth must be used within an AuthProvider");return e},Wi=async e=>{const{data:t,error:r}=await j.rpc("is_admin",{_user_id:e});return r?!1:t===!0},ha=f.createContext(void 0),Ki=({children:e})=>{const{user:t}=Me(),[r,n]=f.useState([]),[a,o]=f.useState(!0),[l,i]=f.useState(!1);f.useEffect(()=>{(async()=>{if(t){const d=await Wi(t.id);i(d)}else i(!1)})()},[t]);const u=f.useCallback(async()=>{if(!t){n([]),o(!1);return}const{data:h,error:d}=await j.from("favorites").select("*").eq("user_id",t.id);d||n(h||[]),o(!1)},[t]);f.useEffect(()=>{u()},[u]);const c=f.useCallback(h=>r.some(d=>d.card_id===h),[r]),m=f.useCallback(async(h,d)=>{if(!t){Pe.error("Connectez-vous pour ajouter aux favoris");return}const T=r.find(x=>x.card_id===h);if(T){n(y=>y.filter(S=>S.id!==T.id));const{error:x}=await j.from("favorites").delete().eq("id",T.id);if(x){n(y=>[...y,T]),Pe.error("Erreur lors de la suppression");return}Pe.success("Retiré des favoris")}else{const x={id:`temp-${h}`,card_id:h,created_at:new Date().toISOString()};if(n(R=>[...R,x]),l){Pe.info(d?`${d} ajoutée (mode admin - non comptabilisé)`:"Ajouté (mode admin - non comptabilisé)");return}const{data:y,error:S}=await j.from("favorites").insert({user_id:t.id,card_id:h}).select().single();if(S){n(R=>R.filter(D=>D.id!==x.id)),Pe.error("Erreur lors de l'ajout");return}n(R=>R.map(D=>D.id===x.id?y:D)),Pe.success(d?`${d} ajoutée aux favoris`:"Ajouté aux favoris")}},[t,r,l]),p=f.useMemo(()=>({favorites:r,loading:a,isFavorite:c,toggleFavorite:m,refetch:u}),[r,a,c,m,u]);return s.jsx(ha.Provider,{value:p,children:e})},ju=()=>{const e=f.useContext(ha);if(e===void 0)throw new Error("useFavoritesContext must be used within a FavoritesProvider");return e},Yi=vr("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-semibold ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 hover:shadow-lg hover:shadow-primary/20",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border-2 border-border bg-transparent text-foreground hover:border-primary hover:text-primary",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"text-foreground hover:bg-muted hover:text-foreground",link:"text-primary underline-offset-4 hover:underline",gold:"bg-gradient-to-r from-gold-dark via-gold to-gold-light text-primary-foreground font-bold hover:shadow-lg hover:shadow-gold/30 hover:scale-105 active:scale-100","gold-outline":"border-2 border-gold text-gold bg-transparent hover:bg-gold/10 hover:shadow-lg hover:shadow-gold/20",hero:"bg-gradient-to-r from-gold-dark via-gold to-gold-light text-primary-foreground font-bold text-base px-8 py-3 hover:shadow-xl hover:shadow-gold/40 hover:scale-105 active:scale-100"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-12 rounded-lg px-6 text-base",xl:"h-14 roun
218ded-xl px-8 text-lg",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ce=f.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...a},o)=>{const l=n?ls:"button";return s.jsx(l,{className:G(Yi({variant:t,size:r,className:e})),ref:o,...a})});ce.displayName="Button";function ga(){const{user:e}=Me(),[t,r]=f.useState([]),[n,a]=f.useState([]),[o,l]=f.useState(new Set),[i,u]=f.useState(!0),c=f.useRef(null),m=f.useCallback(async()=>{if(!e)return;const{data:A}=await j.from("user_notifications").select("*").eq("user_id",e.id).order("created_at",{ascending:!1}).limit(50);A&&r(A)},[e]),p=f.useCallback(async()=>{if(!e)return;const{data:A}=await j.from("global_announcements").select("*").eq("is_active",!0).order("created_at",{ascending:!1}).limit(20);A&&a(A);const{data:k}=await j.from("user_announcement_reads").select("announcement_id").eq("user_id",e.id);k&&l(new Set(k.map(_=>_.announcement_id)))},[e]),h=f.useCallback(async()=>{if(!e)return;const[{data:A},{data:k}]=await Promise.all([j.from("mission_definitions").select("id, name, threshold, points_reward").eq("is_active",!0),j.from("user_mission_progress").select("mission_id, current_progress, points_claimed").eq("user_id",e.id)]);if(!A||!k)return;const _=k.filter(q=>{const v=A.find(g=>g.id===q.mission_id);return v&&q.current_progress>=v.threshold&&!q.points_claimed});if(_.length===0)return;const P=new Date(Date.now()-6*60*60*1e3).toISOString(),{data:E}=await j.from("user_notifications").select("id").eq("user_id",e.id).eq("type","mission_claimable").gt("created_at",P).limit(1);E&&E.length>0||await j.from("user_notifications").insert([{user_id:e.id,type:"mission_claimable",title:`ð¯ ${_.length} mission${_.length>1?"s":""} à réclamer !`,message:"Vous avez des récompenses en attente. Réclamez vos points maintenant !",icon:"ð¯",link:"/missions",metadata:{count:_.length}}])},[e]),d=f.useCallback(async()=>{if(!e)return;const A=c.current||new Date(Date.now()-24*60*60*1e3).toISOString(),{data:k}=await j.from("cards").select("id, name, rarity, is_token, image_url").eq("is_public",!0).gt("created_at",A).order("created_at",{ascending:!1}).limit(5);if(k&&k.length>0)for(const _ of k){const P=_.is_token,E=P?"new_token":"new_card",q=P?"ð":"ð",v=P?`Nouveau jeton : ${_.name}`:`Nouvelle carte : ${_.name}`,g=P?`Un nouveau jeton ${_.rarity} est disponible dans la boutique !`:`La carte ${_.name} (${_.rarity}) vient d'être ajoutée à la collection !`;await j.from("user_notifications").insert([{user_id:e.id,type:E,title:v,message:g,icon:q,link:"/boutique",metadata:{card_id:_.id,card_name:_.name,rarity:_.rarity}}])}c.current=new Date().toISOString()},[e]);f.useEffect(()=>{if(!e){r([]),a([]),u(!1);return}(async()=>{u(!0),await Promise.all([m(),p(),d(),h()]),u(!1)})()},[e,m,p,d,h]),f.useEffect(()=>{if(!e)return;const A=j.channel("user-notifications-feed").on("postgres_changes",{event:"INSERT",schema:"public",table:"user_notifications",filter:`user_id=eq.${e.id}`},_=>{const P=_.new;r(E=>[P,...E].slice(0,50))}).subscribe(),k=j.channel("global-announcements-feed").on("postgres_changes",{event:"INSERT",schema:"public",table:"global_announcements"},_=>{const P=_.new;P.is_active&&a(E=>[P,...E])}).subscribe();return()=>{j.removeChannel(A),j.removeChannel(k)}},[e]);const T=f.useCallback(async A=>{await j.from("user_notifications").update({is_read:!0}).eq("id",A),r(k=>k.map(_=>_.id===A?{..._,is_read:!0}:_))},[]),x=f.useCallback(async()=>{e&&(await j.from("user_notifications").update({is_read:!0}).eq("user_id",e.id).eq("is_read",!1),r(A=>A.map(k=>({...k,is_read:!0}))))},[e]),y=f.useCallback(async A=>{e&&(await j.from("user_announcement_reads").insert({user_id:e.id,announcement_id:A}),l(k=>new Set(k).add(A)))},[e]),S=f.useCallback(async A=>{await j.from("user_notifications").delete().eq("id",A),r(k=>k.filter(_=>_.id!==A))},[]),R=f.useCallback(async A=>{if(!e)return;const{data:k}=await j.from("user_notifications").insert([{user_id:e.id,type:A.type,title:A.title,message:A.message,icon:A.icon||"ð",link:A.link,metadata:A.metadata||{}}]).select().single();return k},[e]),D=n.filter(A=>!o.has(A.id)),Q=t.filter(A=>!A.is_read).length+D.length;return{notifications:t,announcements:n,unreadAnnouncements:D,unreadCount:Q,loading:i,markRead:T,markAllRead:x,markAnnouncementRead:y,deleteNotification:S,addNotification:R,refetch:m}}const Ji={"popup.title":{fr:"Bienvenue sur Digital Icons",en:"Welcome to Digital Icons"},"popup.subtitle":{fr:"Choisissez votre profil pour une expérience personnalisée",en:"Choose your profile for a personalized experience"},"popup.individual":{fr:"Je suis un Particulier",en:"I'm an Indiv
218idual"},"popup.individual.desc":{fr:"Collectionnez, jouez et gagnez avec des cartes digitales",en:"Collect, play and win with digital cards"},"popup.business":{fr:"Je suis une Entreprise",en:"I'm a Business"},"popup.business.desc":{fr:"Créez votre carte entreprise et boostez votre visibilité",en:"Create your business card and boost your visibility"},"popup.language":{fr:"Langue",en:"Language"},"nav.home":{fr:"Accueil",en:"Home"},"nav.shop":{fr:"Boutique",en:"Shop"},"nav.boosters":{fr:"Boosters",en:"Boosters"},"nav.p2p":{fr:"Marché P2P",en:"P2P Market"},"nav.collection":{fr:"Ma collection",en:"My Collection"},"nav.play":{fr:"Jouer",en:"Play Now"},"nav.myspace":{fr:"Mon espace",en:"My Space"},"nav.competitions":{fr:"Compétitions",en:"Competitions"},"nav.notifications":{fr:"Notifications",en:"Notifications"},"nav.more":{fr:"Plus",en:"More"},"nav.dashboard":{fr:"Dashboard",en:"Dashboard"},"nav.blog":{fr:"Blog",en:"Blog"},"nav.help":{fr:"Aide",en:"Help"},"nav.partner":{fr:"Partenaire",en:"Partner"},"nav.settings":{fr:"Paramètres",en:"Settings"},"nav.logout":{fr:"Déconnexion",en:"Logout"},"nav.login":{fr:"Connexion",en:"Login"},"nav.admin":{fr:"Admin",en:"Admin"},"nav.guide":{fr:"Guide",en:"Guide"},"nav.trends":{fr:"Tendances",en:"Trends"},"nav.games":{fr:"Jeux",en:"Games"},"nav.premium":{fr:"Premium",en:"Premium"},"nav.become.premium":{fr:"Devenir Premium",en:"Become Premium"},"nav.navigation":{fr:"Navigation",en:"Navigation"},"nav.resources":{fr:"Ressources",en:"Resources"},"nav.performance.system":{fr:"Système Performance",en:"Performance System"},"nav.traceability":{fr:"Traçabilité",en:"Traceability"},"nav.become.partner":{fr:"Devenir Partenaire",en:"Become a Partner"},"nav.administration":{fr:"Administration",en:"Administration"},"nav.pricing":{fr:"Tarifs",en:"Pricing"},"nav.contact":{fr:"Contact",en:"Contact"},"nav.menu.myspace":{fr:"Mon espace",en:"My Space"},"nav.menu.dashboard":{fr:"Tableau de bord",en:"Dashboard"},"nav.menu.messages":{fr:"Messagerie",en:"Messages"},"nav.menu.collection":{fr:"Ma Collection",en:"My Collection"},"nav.menu.missions":{fr:"Missions",en:"Missions"},"nav.menu.vip":{fr:"Espace VIP",en:"VIP Space"},"nav.menu.go.premium":{fr:"Devenir Premium",en:"Become Premium"},"nav.menu.play.now":{fr:"Jouer maintenant",en:"Play Now"},"nav.menu.ranking":{fr:"Classement",en:"Rankings"},"nav.menu.market":{fr:"Marché",en:"Market"},"nav.menu.trends":{fr:"Tendances",en:"Trends"},"nav.menu.discover":{fr:"Découvrir",en:"Discover"},"nav.menu.guide":{fr:"Guide",en:"Guide"},"nav.menu.new":{fr:"Nouveautés",en:"New"},"nav.menu.performance":{fr:"Système Performance",en:"Performance System"},"nav.menu.why":{fr:"Pourquoi Digital Icons",en:"Why Digital Icons"},"nav.menu.community":{fr:"Communauté",en:"Community"},"nav.menu.become.partner":{fr:"Devenir Partenaire",en:"Become a Partner"},"nav.menu.language":{fr:"Langue",en:"Language"},"nav.menu.settings":{fr:"Paramètres",en:"Settings"},"nav.menu.logout":{fr:"Déconnexion",en:"Logout"},"nav.menu.login":{fr:"Connexion",en:"Login"},"home.hero.title":{fr:"Collectionnez, Jouez, Vendez",en:"Collect, Play, Sell"},"home.hero.subtitle":{fr:"Cartes digitales uniques représentant des entreprises et entrepreneurs réels",en:"Unique digital cards representing real businesses and entrepreneurs"},"home.hero.title.b2b":{fr:"Boostez votre Visibilité",en:"Boost your Visibility"},"home.hero.subtitle.b2b":{fr:"Rejoignez notre réseau de partenaires, développez votre notoriété locale et générez des revenus passifs",en:"Join our partner network, grow your local brand awareness and generate passive income"},"home.discover":{fr:"Découvrir les cartes",en:"Discover cards"},"home.play.arena":{fr:"Jouer à Icons Arena",en:"Play Icons Arena"},"home.free.boosters":{fr:"Boosters gratuits",en:"Free boosters"},"home.free.boosters.desc":{fr:"Obtenez des boosters gratuits chaque jour",en:"Get free boosters every day"},"home.trade":{fr:"Marché P2P",en:"P2P Market"},"home.trade.desc":{fr:"Vendez vos cartes en double sur le marché",en:"Sell your duplicate cards on the market"},"home.play":{fr:"Jouez et gagnez",en:"Play and win"},"home.play.desc":{fr:"Affrontez d'autres joueurs dans l'arène",en:"Battle other players in the arena"},"home.featured":{fr:"Cartes vedettes",en:"Featured Cards"},"home.how.it.works":{fr:"Comment ça marche ?",en:"How does it work?"},"home.discover.games":{fr:"Découvrir les jeux",en:"Discover games"},"home.cta.title":{fr:"Prêt à rejoindre l'aventure ?",en:"Ready to join the adventure?"},"home.cta.subtitle":{fr:"Créez votre compte et commencez à collectionner",en:"Create your account and start collecting"},"home.create.account":{fr:"Créer mon compte",en:"Create my account"},"home.learn.more":{fr:"En savoir plus",en:"Learn more"},"settings.title":{fr:"Paramètres",en:"Settings"},"settings.account":{fr:"du compte",en:"Account"},"settings.profile":{fr:"Profil",en:"Profile"},"settings.appearance":{fr:"Apparence",en:"Appearance"},"settings.theme":{fr:"Thème",en:"Theme"},"settings.theme.light":{fr:"Clair",en:"Light"},"settings.theme.dark":{fr:"Sombre",en:"Dark"},"settings.theme.system":{fr:"Système",en:"System"},"settings.language":{fr:"Langue",en:"Language"},"settings.save":{fr:"Enregistrer",en:"Save"},"settings.save.changes":{fr:"Enregistrer les modifications",en:"Save changes"},"settings.username":{fr:"Nom d'utilisateur",en:"Username"},"settings.your.username":{fr:"Votre pseudo",en:"Your username"},"settings.email":{fr:"Adresse email",en:"Email address"},"settings.email.cannot.change":{fr:"L'email ne peut pas être modifié",en:"Email cannot be changed"},"settings.transactions":{fr:"Transactions",en:"Transactions"},"settings.security":{fr:"Sécurité",en:"Security"},"settings.notifs":{fr:"Notifs",en:"Notifs"},"settings.account.stats":{fr:"Statistiques du compte",en:"Account statistics"},"settings.cards.owned":{fr:"Cartes possédées",en:"Cards owned"},"settings.total.sales":{fr:"Ventes totales",en:"Total sales"},"settings.total.purchases":{fr:"Achats totaux",en:"Total purchases"},"settings.revenue":{fr:"Revenus",en:"Revenue"},"settings.user":{fr:"Utilisateur",en:"User"},"common.loading":{fr:"Chargement...",en:"Loading..."},"common.error":{fr:"Erreur",en:"Error"},"common.success":{fr:"Succès",en:"Success"},"common.cancel":{fr:"Annuler",en:"Cancel"},"common.confirm":{fr:"Confirmer",en:"Confirm"},"common.close":{fr:"Fermer",en:"Close"},"common.or":{fr:"ou",en:"or"},"common.back":{fr:"Retour",en:"Back"},"common.next":{fr:"Suivant",en:"Next"},"common.previous":{fr:"Précédent",en:"Previous"},"common.search":{fr:"Rechercher",en:"Search"},"common.filter":{fr:"Filtrer",en:"Filter"},"common.sort":{fr:"Trier",en:"Sort"},"common.all":{fr:"Tout",en:"All"},"common.none":{fr:"Aucun",en:"None"},"common.yes":{fr:"Oui",en:"Yes"},"common.no":{fr:"Non",en:"No"},"card.rarity.common":{fr:"Commune",en:"Common"},"card.rarity.rare":{fr:"Rare",en:"Rare"},"card.rarity.epic":{fr:"Ãpique",en:"Epic"},"card.rarity.legendary":{fr:"Légendaire",en:"Legendary"},"card.rarity.mythic":{fr:"Mythique",en:"Mythic"},"card.buy":{fr:"Acheter",en:"Buy"},"card.sell":{fr:"Vendre",en:"Sell"},"card.price":{fr:"Prix",en:"Price"},"card.edition":{fr:"Ãdition",en:"Edition"},"card.attack":{fr:"Attaque",en:"Attack"},"card.defense":{fr:"PV",en:"HP"},"card.speed":{fr:"Vitesse",en:"Speed"}
218,"card.strategy":{fr:"Stratégie",en:"Strategy"},"footer.shop":{fr:"Boutique",en:"Shop"},"footer.market":{fr:"Marché",en:"Market"},"footer.collection":{fr:"Collection",en:"Collection"},"footer.myspace":{fr:"Mon espace",en:"My space"},"footer.guide":{fr:"Guide",en:"Guide"},"footer.trends":{fr:"Tendances",en:"Trends"},"footer.traceability":{fr:"Traçabilité",en:"Traceability"},"footer.performance.system":{fr:"Système de Performance",en:"Performance System"},"footer.partner":{fr:"Partenaire",en:"Partner"},"footer.why.digital.icons":{fr:"Pourquoi Digital Icons",en:"Why Digital Icons"},"footer.evolution":{fr:"Ãvolution",en:"Evolution"},"footer.terms":{fr:"CGU",en:"Terms"},"footer.sales.terms":{fr:"CGV",en:"Sales Terms"},"footer.privacy":{fr:"Confidentialité",en:"Privacy"},"footer.copyright":{fr:"Collectionnez les cartes digitales des entrepreneurs.",en:"Collect digital cards of entrepreneurs."},"footer.newsletter":{fr:"Newsletter",en:"Newsletter"},"tooltip.back.home":{fr:"Retour à l'accueil",en:"Back to home"},"tooltip.cards.boosters":{fr:"Cartes & Boosters",en:"Cards & Boosters"},"tooltip.card.packs":{fr:"Packs de cartes",en:"Card packs"},"tooltip.player.purchases":{fr:"Achats entre joueurs",en:"Player purchases"},"tooltip.my.card.collection":{fr:"Ma collection de cartes",en:"My card collection"},"tooltip.dashboard.profile":{fr:"Tableau de bord & Profil",en:"Dashboard & Profile"},"tooltip.icons.arena":{fr:"Icons Arena",en:"Icons Arena"},"tooltip.my.account":{fr:"Mon compte",en:"My account"},"tooltip.see.profile":{fr:"Voir mon profil â",en:"See my profile â"},"tooltip.click.to.change":{fr:"Cliquez pour changer",en:"Click to change"},"tooltip.business":{fr:"Entreprise",en:"Business"},"tooltip.individual":{fr:"Particulier",en:"Individual"},"tooltip.create.own.cards":{fr:"Créez vos propres cartes",en:"Create your own cards"},"tooltip.view.pricing":{fr:"Voir nos offres",en:"View our offers"},"tooltip.how.it.works":{fr:"Comment ça marche",en:"How it works"},"tooltip.contact.us":{fr:"Nous contacter",en:"Contact us"},"auth.signin":{fr:"Se connecter",en:"Sign in"},"auth.signup":{fr:"S'inscrire",en:"Sign up"},"auth.email":{fr:"Email",en:"Email"},"auth.password":{fr:"Mot de passe",en:"Password"},"auth.forgot.password":{fr:"Mot de passe oublié ?",en:"Forgot password?"},"auth.no.account":{fr:"Pas encore de compte ?",en:"Don't have an account?"},"auth.have.account":{fr:"Déjà un compte ?",en:"Already have an account?"},"marketplace.title":{fr:"Marché P2P",en:"P2P Marketplace"},"marketplace.subtitle":{fr:"Achetez et vendez des cartes avec la communauté",en:"Buy and sell cards with the community"},"marketplace.list.card":{fr:"Mettre en vente",en:"List for sale"},"marketplace.delist":{fr:"Retirer de la vente",en:"Remove from sale"},"marketplace.listed.by":{fr:"Vendu par",en:"Listed by"},"boosters.title":{fr:"Boosters",en:"Boosters"},"boosters.subtitle":{fr:"Ouvrez des boosters pour découvrir de nouvelles cartes",en:"Open boosters to discover new cards"},"boosters.open":{fr:"Ouvrir",en:"Open"},"boosters.free.daily":{fr:"Booster gratuit quotidien",en:"Daily free booster"},"boosters.cards.inside":{fr:"cartes à découvrir",en:"cards inside"},"collection.title":{fr:"Ma Collection",en:"My Collection"},"collection.subtitle":{fr:"Toutes vos cartes en un seul endroit",en:"All your cards in one place"},"collection.empty":{fr:"Vous n'avez pas encore de cartes",en:"You don't have any cards yet"},"collection.start.collecting":{fr:"Commencer à collectionner",en:"Start collecting"},"dashboard.title":{fr:"Mon Espace",en:"My Space"},"dashboard.welcome":{fr:"Bienvenue",en:"Welcome"},"dashboard.balance":{fr:"Solde",en:"Balance"},"dashboard.recent.activity":{fr:"Activité récente",en:"Recent activity"},"dashboard.no.activity":{fr:"Aucune activité récente",en:"No recent activity"},"games.arena.title":{fr:"Icons Arena",en:"Icons Arena"},"games.arena.subtitle":{fr:"Affrontez vos adversaires avec vos meilleures cartes",en:"Battle your opponents with your best cards"},"games.play.now":{fr:"Jouer maintenant",en:"Play now"},"games.coming.soon":{fr:"Bientôt disponible",en:"Coming soon"},"premium.title":{fr:"Premium",en:"Premium"},"premium.benefits":{fr:"Avantages Premium",en:"Premium Benefits"},"premium.subscribe":{fr:"S'abonner",en:"Subscribe"},"premium.already":{fr:"Vous êtes Premium !",en:"You are Premium!"},"vip.status.active":{fr:"Membre VIP Premium",en:"VIP Premium Member"},"vip.until":{fr:"Valide jusqu'au",en:"Valid until"},"vip.lifetime":{fr:"Accès illimité",en:"Unlimited access"},"vip.manage":{fr:"Gérer",en:"Manage"},"vip.welcome":{fr:"Bienvenue, membre VIP !",en:"Welcome, VIP Member!"},"vip.active.until":{fr:"Votre abonnement Premium est actif jusqu'au",en:"Your Premium subscription is active until"},"vip.lifetime.access":{fr:"Profitez de tous vos avantages VIP exclusifs",en:"Enjoy all your exclusive VIP benef
218its"},"vip.day":{fr:"jour",en:"day"},"vip.fees":{fr:"frais P2P",en:"P2P fees"},"vip.shop":{fr:"boutique",en:"shop"},"vip.referral":{fr:"Parrainage",en:"Referral"},"vip.early.access":{fr:"Accès anticipé",en:"Early access"},"vip.tournaments":{fr:"Tournois VIP",en:"VIP Tournaments"},"vip.manage.subscription":{fr:"Gérer mon abonnement",en:"Manage my subscription"},"warning.account.suspended":{fr:"Compte suspendu",en:"Account Suspended"},"warning.account.suspended.reason":{fr:"Votre compte a été suspendu pour la raison suivante :",en:"Your account has been suspended for the following reason:"},"warning.suspension.until":{fr:"Suspension jusqu'au",en:"Suspended until"},"warning.suspension.permanent":{fr:"Cette suspension est permanente.",en:"This suspension is permanent."},"warning.cannot.trade":{fr:"Vous ne pouvez pas acheter ni vendre de cartes pendant cette période. Si vous pensez qu'il s'agit d'une erreur, contactez le support.",en:"You cannot buy or sell cards during this period. If you believe this is an error, contact support."},"warning.contact.support":{fr:"Contacter le support",en:"Contact Support"},"warning.title":{fr:"Avertissement",en:"Warning"},"warning.received.on":{fr:"Reçu le",en:"Received on"},"warning.count.notice":{fr:"Attention : Vous avez {count} avertissement(s) en cours. Après 3 avertissements, votre compte sera automatiquement suspendu.",en:"Warning: You have {count} warning(s). After 3 warnings, your account will be automatically suspended."},"warning.understood":{fr:"J'ai compris",en:"I Understand"},"premium.welcome.title":{fr:"Bienvenue dans le Premium ! ð",en:"Welcome to Premium! ð"},"premium.welcome.subtitle":{fr:"Vous avez maintenant accès à tous les avantages exclusifs",en:"You now have access to all exclusive benefits"},"premium.feature.fees.title":{fr:"Frais P2P réduits",en:"Reduced P2P Fees"},"premium.feature.fees.desc":{fr:"1% au lieu de 5% sur vos ventes",en:"1% instead of 5% on your sales"},"premium.feature.booster.title":{fr:"Compétitions exclusives",en:"Exclusive Competitions"},"premium.feature.booster.desc":{fr:"Participez à des tournois réservés aux Premium",en:"Join Premium-only tournaments"},"premium.feature.discount.title":{fr:"-15% sur la boutique",en:"-15% on shop"},"premium.feature.discount.desc":{fr:"Réduction sur tous vos achats",en:"Discount on all your purchases"},"premium.feature.boost.title":{fr:"Boost de priorité",en:"Priority Boost"},"premium.feature.boost.desc":{fr:"Vos cartes sont mises en avant",en:"Your cards are highlighted"},"premium.feature.early.title":{fr:"Accès anticipé",en:"Early Access"},"premium.feature.early.desc":{fr:"Nouvelles cartes en avant-première",en:"New cards in preview"},"premium.feature.tournaments.title":{fr:"Tournois exclusifs",en:"Exclusive Tournaments"},"premium.feature.tournaments.desc":{fr:"Participez à des tournois avec des prix spéciaux",en:"Participate in tournaments with special prizes"},"premium.feature.referral.title":{fr:"Programme parrainage",en:"Referral Program"},"premium.feature.referral.desc":{fr:"Gagnez des récompenses en parrainant",en:"Earn rewards by referring"},"premium.tip":{fr:"Conseil : Retrouvez tous vos avantages dans Mon Espace â Mon Profil",en:"Tip: Find all your benefits in My Space â My Profile"},"premium.go.dashboard":{fr:"Aller à Mon Espace",en:"Go to My Space"},"newsletter.title":{fr:"Newsletter Digital Icons",en:"Digital Icons Newsletter"},"newsletter.description":{fr:"Recevez les dernières actualités, nouvelles cartes et offres exclusives directement dans votre boîte mail.",en:"Receive the latest news, new cards and exclusive offers directly in your inbox."},"newsletter.subscribed":{fr:"Cet email est abonné à la newsletter",en:"This email is subscribed to the newsletter"},"newsletter.not.subscribed":{fr:"Cet email n'est pas abonné ou s'est désabonné",en:"This email is not subscribed or has unsubscribed"},"newsletter.unsubscribe":{fr:"Se désabonner",en:"Unsubscribe"},"newsletter.subscribe":{fr:"S'abonner",en:"Subscribe"},"newsletter.privacy":{fr:"Vous pouvez vous désabonner à tout moment. Nous respectons votre vie privée.",en:"You can unsubscribe at any time. We respect your privacy."},"newsletter.success":{fr:"Vous êtes maintenant inscrit à la newsletter !",en:"You are now subscribed to the newsletter!"},"newsletter.unsubscribed":{fr:"Vous avez été désabonné de la newsletter",en:"You have been unsubscribed from the newsletter"},"newsletter.error.subscribe":{fr:"Erreur lors de l'inscription",en:"Error during subscription"},"newsletter.error.unsubscribe":{fr:"Erreur lors du désabonnement",en:"Error during unsubscription"}
218,"arena.coming.soon.desc":{fr:"Le jeu de cartes stratégique arrive bientôt !",en:"The strategic card game is coming soon!"},"arena.in.development":{fr:"En cours de développement",en:"In Development"},"arena.use.cards.title":{fr:"Utilisez vos cartes",en:"Use your cards"},"arena.use.cards.desc":{fr:"Vos cartes achetées seront jouables dans Icons Arena",en:"Your purchased cards will be playable in Icons Arena"},"arena.early.title":{fr:"Bonus early-adopter",en:"Early-adopter Bonus"},"arena.early.desc":{fr:"Les premiers acheteurs recevront des avantages exclusifs",en:"Early buyers will receive exclusive benefits"},"arena.cashprize.title":{fr:"Cashprizes en argent réel",en:"Real money cashprizes"},"arena.cashprize.desc":{fr:"Gagnez de l'argent lors des compétitions officielles",en:"Win money in official competitions"},"arena.discover":{fr:"Découvrir Icons Arena",en:"Discover Icons Arena"},"arena.notify.me":{fr:"Me notifier à la sortie",en:"Notify me on release"},"arena.notified":{fr:"â Vous serez notifié à la sortie !",en:"â You will be notified on release!"},"arena.buy.cards.hint":{fr:"En attendant, achetez des cartes pour avoir un avantage au lancement",en:"Meanwhile, buy cards to have an advantage at launch"},"login.required":{fr:"Connexion requise",en:"Login Required"},"login.required.desc":{fr:"Connectez-vous ou créez un compte pour continuer.",en:"Sign in or create an account to continue."},"login.username":{fr:"Nom d'utilisateur",en:"Username"},"login.username.placeholder":{fr:"Votre nom d'utilisateur",en:"Your username"},"login.password":{fr:"Mot de passe",en:"Password"},"login.creating":{fr:"Création...",en:"Creating..."},"login.connecting":{fr:"Connexion...",en:"Connecting..."},"login.create.account":{fr:"Créer un compte",en:"Create Account"},"login.sign.in":{fr:"Se connecter",en:"Sign In"},"login.already.account":{fr:"Déjà un compte ? Se connecter",en:"Already have an account? Sign in"},"login.no.account":{fr:"Pas encore de compte ? S'inscrire",en:"Don't have an account? Sign up"},"login.all.options":{fr:"Voir toutes les options de connexion",en:"See all login options"},"login.email.used":{fr:"Cet email est déjà utilisé. Essayez de vous connecter.",en:"This email is already used. Try signing in."},"login.invalid.credentials":{fr:"Email ou mot de passe incorrect",en:"Invalid email or password"},"login.account.created":{fr:"Compte créé avec succès !",en:"Account created successfully!"},"login.success":{fr:"Connexion réussie !",en:"Login successful!"},"login.error":{fr:"Une erreur est survenue",en:"An error occurred"},"login.invalid.email":{fr:"Email invalide",en:"Invalid email"},"login.password.min":{fr:"Le mot de passe doit contenir au moins 6 caractères",en:"Password must contain at least 6 characters"},"login.username.min":{fr:"Le nom d'utilisateur doit contenir au moins 3 caractères",en:"Username must contain at least 3 characters"},"login.valid.email":{fr:"Veuillez entrer une adresse email valide",en:"Please enter a valid email address"},"payout.title":{fr:"Retirer mon solde",en:"Withdraw my balance"},"payout.description":{fr:"Demandez le transfert de votre solde vers votre compte bancaire",en:"Request the transfer of your balance to your bank account"},"payout.amount":{fr:"Montant à retirer",en:"Amount to withdraw"},"payout.min":{fr:"Montant minimum: 5â¬",en:"Minimum amount: â¬5"},"payout.delay":{fr:"Transfert sous 3-5 jours ouvrés",en:"Transfer within 3-5 business days"},"payout.email.confirm":{fr:"Vous recevrez un email de confirmation",en:"You will receive a confirmation email"},"payout.confirm":{fr:"Confirmer le retrait",en:"Confirm withdrawal"},"payout.processing":{fr:"Traitement...",en:"Processing..."},"deck.my.decks":{fr:"Mes Decks de Combat",en:"My Battle Decks"},"deck.build.desc":{fr:"Construisez des decks de 5 cartes pour affronter l'IA dans Icons Arena",en:"Build decks of 5 cards to face the AI in Icons Arena"},"deck.new":{fr:"Nouveau Deck",en:"New Deck"},"deck.create.first":{fr:"Créez votre premier deck",en:"Create your first deck"},"deck.create.first.desc":{fr:"Sélectionnez 5 cartes de votre collection pour composer un deck et lancer des combats dans l'arène",en:"Select 5 cards from your collection to build a deck and start battles in the arena"},"deck.create":{fr:"Créer un deck",en:"Create a deck"},"deck.selection":{fr:"Sélection du Deck",en:"Deck Selection"},"deck.selection.desc":{fr:"Choisissez le deck avec lequel vous voulez combattre",en:"Choose the deck you want to battle with"},"deck.loading":{fr:"Chargement des decks...",en:"Loading decks..."},"deck.none":{fr:"Vous n'avez pas encore de deck.",en:"You don't have a deck yet."},"deck.active":{fr:"Actif",en:"Active"},"deck.cards.count":{fr:"cartes",en:"cards"},"deck.min.cards.warning":{fr:"Votre deck doit contenir au moins 3 cartes pour lancer une partie.",en:"Your deck must contain at least 3 cards to start a game."},"deck.add.cards":{fr:"Ajouter des cartes",en:"Add cards"},"deck.manage":{fr:"Gérer les decks",en:"Manage decks"},"deck.start.battle":{fr:"Lancer le combat !",en:"Start Battle!"},"deck.login.required.desc":{fr:"Connectez-vous pour accéder à Icons Arena et jouer avec vos cartes.",en:"Sign in to access Icons Arena and play with your cards."},"deck.login.create.desc":{fr:"Créez un compte ou connectez-vous pour construire votre deck et affronter d'autres joueurs.",en:"Create an account or sign in to build your deck and face other players."},"home.limited.series":{fr:"Séries limitées",en:"Limited Series"},"home.collect.play.trade":{fr:"Collectionnez ⢠Jouez ⢠Gagnez",en:"Collect ⢠Play ⢠Win"},"home.collect.leaders":{fr:"Collectionnez les Leaders Iconiques",en:"Collect Iconic Leaders"},"home.real.companies":{fr:"Collectez des cartes représentant des entreprises réelles. Leurs valeurs et performances en jeu évoluent selon les résultats réels des entreprises.",en:"Collect cards representing real companies. Their values and in-game performance evolve based on actual company results."},"home.discover.cards":{fr:"Découvrir les cartes",en:"Discover cards"},"home.play.icons.arena":{fr:"Jouer à Icons Arena",en:"Play Icons Arena"},"home.digital.assets":{fr:"Actifs numériques",en:"Digital assets"},"home.ultra.limited":{fr:"Ãditions ultra-limitées",en:"Ultra-limited editions"},"home.playable.cards":{fr:"Cartes jouables",en:"Playable cards"},"home.dynamic.values":{fr:"Valeurs Dynamiques",en:"Dynamic Values"},"home.evolve.company":{fr:"Ãvoluent avec l'entreprise réelle",en:"Evolve with the real company"},"home.early.bonus":{fr:"Bonus Early-Adopter",en:"Early-Adopter Bonus"},"home.exclusive.advantages":{fr:"Avantages exclusifs dans le jeu",en:"Exclusive in-game advantages"},"home.playable.arena":{fr:"Jouables dans Icons Arena",en:"Playable in Icons Arena"}
218,"home.battles.rewards":{fr:"Batailles stratégiques et récompenses",en:"Strategic battles and rewards"},"home.official.cards":{fr:"Cartes officielles",en:"Official cards"},"home.free.per.day":{fr:"1 gratuit/jour",en:"1 free/day"},"home.buy.sell":{fr:"Achat/Vente",en:"Buy/Sell"},"chat.start.conversation":{fr:"Envoyez un message pour démarrer la conversation",en:"Send a message to start the conversation"},"chat.placeholder":{fr:"Ãcrivez votre message...",en:"Write your message..."},"chat.error.create":{fr:"Erreur lors de la création de la conversation",en:"Error creating conversation"},"chat.error.send":{fr:"Erreur lors de l'envoi",en:"Error sending message"},"collection.manage.cards":{fr:"Gérez vos cartes et suivez leur valeur",en:"Manage your cards and track their value"},"collection.total.value":{fr:"Valeur totale",en:"Total value"},"collection.performance.24h":{fr:"Performance 24h",en:"24h Performance"},"collection.cards.owned":{fr:"Cartes possédées",en:"Cards owned"},"collection.tab.cards":{fr:"Cartes",en:"Cards"},"collection.tab.listed":{fr:"En vente",en:"Listed"},"collection.tab.decks":{fr:"Decks",en:"Decks"},"collection.no.listed":{fr:"Aucune carte en vente",en:"No cards listed"},"collection.list.hint":{fr:"Mettez vos cartes en vente sur le marché secondaire",en:"List your cards for sale on the secondary market"},"collection.see.all":{fr:"Voir toutes mes cartes",en:"See all my cards"},"collection.empty.title":{fr:"Votre collection est vide",en:"Your collection is empty"},"collection.empty.hint":{fr:"Achetez vos premières cartes sur la boutique",en:"Buy your first cards in the shop"},"collection.explore.shop":{fr:"Explorer la Boutique",en:"Explore the Shop"},"collection.sell":{fr:"Vendre",en:"Sell"},"collection.chart.7d":{fr:"Graphique 7j",en:"7d Chart"},"collection.card.column":{fr:"Carte",en:"Card"},"collection.value.column":{fr:"Valeur",en:"Value"},"collection.change.24h":{fr:"Var. 24h",en:"24h Change"},"collection.sell.column":{fr:"Vendre",en:"Sell"},"filter.type":{fr:"Type",en:"Type"},"filter.type.all":{fr:"Tout",en:"All"},"filter.type.cards":{fr:"ð Cartes",en:"ð Cards"},"filter.type.tokens":{fr:"⨠Jetons",en:"⨠Tokens"},"filter.rarity":{fr:"Rareté",en:"Rarity"},"filter.rarity.all":{fr:"Toutes",en:"All"},"filter.rarity.common":{fr:"Commune",en:"Common"},"filter.rarity.rare":{fr:"Rare",en:"Rare"},"filter.rarity.epic":{fr:"Ãpique",en:"Epic"},"filter.rarity.legendary":{fr:"Légendaire",en:"Legendary"},"filter.rarity.mythic":{fr:"Mythique",en:"Mythic"},"filter.nature":{fr:"Nature",en:"Nature"},"filter.nature.all":{fr:"Tous",en:"All"},"filter.nature.private":{fr:"ð¢ Privé",en:"ð¢ Private"},"filter.nature.public":{fr:"ðï¸ Public",en:"ðï¸ Public"},"filter.sector":{fr:"Secteur",en:"Sector"},"filter.sector.all":{fr:"Tous",en:"All"},"filter.sector.tech":{fr:"ð» Tech",en:"ð» Tech"},"filter.sector.finance":{fr:"ð° Finance",en:"ð° Finance"},"filter.sector.retail":{fr:"ð Commerce",en:"ð Retail"},"filter.sector.media":{fr:"ðº Média",en:"ðº Media"},"filter.sector.health":{fr:"ð¥ Santé",en:"ð¥ Health"},"filter.sector.energy":{fr:"â¡ Ãnergie",en:"â¡ Energy"},"filter.sort":{fr:"Trier par",en:"Sort by"},"filter.sort.price.asc":{fr:"Prix croissant",en:"Price: Low to High"},"filter.sort.price.desc":{fr:"Prix décroissant",en:"Price: High to Low"},"filter.sort.rarity":{fr:"Par rareté",en:"By rarity"},"filter.sort.newest":{fr:"Plus récent",en:"Newest"},"filter.sort.trending":{fr:"Tendance",en:"Trending"},"filter.reset":{fr:"Réinitialiser",en:"Reset"},"filter.search.placeholder":{fr:"Rechercher une carte...",en:"Search for a card..."},"p2p.login.to.buy":{fr:"Connectez-vous pour acheter",en:"Log in to buy"},"p2p.cannot.buy.own":{fr:"Vous ne pouvez pas acheter votre propre carte",en:"You cannot buy your own card"},"p2p.redirect.payment":{fr:"Redirection vers le paiement...",en:"Redirecting to payment..."},"p2p.payment.error":{fr:"Erreur lors du paiement. Veuillez réessayer.",en:"Payment error. Please try again."},"p2p.serial.unavailable":{fr:"Numéro de série non disponible pour cette carte",en:"Serial number not available for this card"},"p2p.serial.error":{fr:"Erreur lors de la récupération du numéro de série",en:"Error fetching serial number"},"p2p.my.listings":{fr:"Mes annonces",en:"My Listings"},"p2p.all.listings":{fr:"Toutes les annonces",en:"All Listings"},"p2p.no.listings":{fr:"Aucune carte en vente actuellement",en:"No cards currently listed"},"p2p.be.first":{fr:"Soyez le premier à mettre une carte en vente !",en:"Be the first to list a card!"},"p2p.list.from.collection":{fr:"Mettre en vente depuis ma collection",en:"List from my collection"},"p2p.commission":{fr:"Commission",en:"Commission"},"p2p.commission.info":{fr:"La plateforme prélève une commission de 5% sur chaque vente (1% pour les membres Premium).",en:"The platform charges a 5% commission on each sale (1% for Premium members)."},"p2p.seller":{fr:"Vendeur",en:"Seller"},"p2p.edition":{fr:"Ãdition",en:"Edition"},"p2p.owners":{fr:"Propriétaires",en:"Owners"},"p2p.traceability":{fr:"Voir la traçabilité",en:"View traceability"},"p2p.buy.now":{fr:"Acheter maintenant",en:"Buy Now"},"p2p.edit.listing":{fr:"Modifier mon annonce",en:"Edit my listing"},"p2p.view.seller":{fr:"Voir le profil du vendeur",en:"View seller profile"},"shop.title":{fr:"Boutique",en:"Shop"},"shop.subtitle":{fr:"Achetez des cartes neuves directement",en:"Buy new cards directly"},"shop.payment.success":{fr:"Paiement réussi ! Votre carte a été ajoutée à votre collection.",en:"Payment successful! Your card has been added to your collection."},"shop.payment.cancelled":{fr:"Paiement annulé",en:"Payment cancelled"},"shop.results":{fr:"résultats",en:"results"},"shop.load.more":{fr:"Charger plus",en:"Load more"}
218,"shop.no.cards":{fr:"Aucune carte trouvée",en:"No cards found"},"shop.no.cards.hint":{fr:"Essayez avec dautres critères de recherche",en:"Try different search criteria"},"shop.in.cart":{fr:"Dans le panier",en:"In cart"},"shop.add.to.cart":{fr:"Ajouter au panier",en:"Add to cart"},"shop.buy.now":{fr:"Acheter",en:"Buy"},"shop.search.placeholder":{fr:"Rechercher...",en:"Search..."},"shop.my.collection":{fr:"Ma Collection",en:"My Collection"},"shop.secure.purchase":{fr:"Achetez des cartes d'entrepreneurs en toute sécurité",en:"Buy entrepreneur cards securely"},"shop.volume.24h":{fr:"Volume 24h",en:"24h Volume"},"shop.avg.price":{fr:"Prix moyen",en:"Avg. Price"},"shop.cards.on.sale":{fr:"Cartes en vente",en:"Cards for sale"},"shop.secure.payment":{fr:"Paiement sécurisé Stripe",en:"Secure Stripe payment"},"shop.card":{fr:"carte",en:"card"},"shop.cards":{fr:"cartes",en:"cards"},"shop.filter.type":{fr:"Type",en:"Type"},"shop.filter.nature":{fr:"Nature",en:"Nature"},"shop.filter.rarity":{fr:"Rareté",en:"Rarity"},"shop.filter.sort":{fr:"Trier",en:"Sort"},"shop.filter.all":{fr:"Tout",en:"All"},"shop.filter.cards":{fr:"ð Cartes",en:"ð Cards"},"shop.filter.tokens":{fr:"⨠Jetons",en:"⨠Tokens"},"shop.filter.private":{fr:"ð¢ Privé",en:"ð¢ Private"},"shop.filter.public":{fr:"ðï¸ Public",en:"ðï¸ Public"},"shop.rarity.common":{fr:"Commune",en:"Common"},"shop.rarity.rare":{fr:"Rare",en:"Rare"},"shop.rarity.epic":{fr:"Ãpique",en:"Epic"},"shop.rarity.legendary":{fr:"Légendaire",en:"Legendary"},"shop.rarity.mythic":{fr:"Mythique",en:"Mythic"},"shop.sort.trending":{fr:"ð¥ Tendance",en:"ð¥ Trending"},"shop.sort.price.asc":{fr:"Prix â",en:"Price â"},"shop.sort.price.desc":{fr:"Prix â",en:"Price â"},"shop.sort.rarity":{fr:"Rareté",en:"Rarity"},"shop.sort.newest":{fr:"Nouveautés",en:"Newest"},"shop.list.card":{fr:"Carte",en:"Card"},"shop.list.shop.price":{fr:"Prix boutique",en:"Shop price"},"shop.list.stats.24h":{fr:"Stats 24h",en:"24h Stats"},"shop.list.volume.p2p":{fr:"Volume P2P",en:"P2P Volume"},"pricing.title":{fr:"Tarification Entreprises",en:"Business Pricing"},"pricing.meta":{fr:"Découvrez nos offres pour les entreprises partenaires. Créez votre carte digitale et générez des revenus passifs.",en:"Discover our offers for partner businesses. Create your digital card and generate passive income."},"pricing.badge":{fr:"Offres Entreprises",en:"Business Offers"},"pricing.hero.title":{fr:"Des solutions adaptées à ",en:"Solutions tailored to"},"pricing.hero.highlight":{fr:"votre entreprise",en:"your business"},"pricing.hero.subtitle":{fr:"Rejoignez l'écosystème Digital Icons et transformez votre marque en actif digital collectible.",en:"Join the Digital Icons ecosystem and transform your brand into a collectible digital asset."},"pricing.recommended":{fr:"Recommandé",en:"Recommended"},"pricing.plan.starter":{fr:"Starter",en:"Starter"},"pricing.plan.starter.subtitle":{fr:"Pour démarrer",en:"To get started"},"pricing.plan.starter.price":{fr:"399â¬",en:"â¬399"},"pricing.plan.starter.detail":{fr:"Droit d'entrée + 10â¬/mois",en:"Entry fee + â¬10/month"},"pricing.plan.business":{fr:"Business",en:"Business"},"pricing.plan.business.subtitle":{fr:"Le plus populaire",en:"Most popular"},"pricing.plan.business.price":{fr:"599â¬",en:"â¬599"},"pricing.plan.business.detail":{fr:"Droit d'entrée + 25â¬/mois",en:"Entry fee + â¬25/month"},"pricing.plan.enterprise":{fr:"Enterprise",en:"Enterprise"},"pricing.plan.enterprise.subtitle":{fr:"Sur mesure",en:"Custom"},"pricing.plan.enterprise.price":{fr:"Sur devis",en:"On request"},"pricing.plan.enterprise.detail":{fr:"Commission négociable",en:"Negotiable commission"},"pricing.feature.card.creation":{fr:"Création de votre carte digitale",en:"Creation of your digital card"},"pricing.feature.marketplace":{fr:"Présence sur la boutique Digital Icons",en:"Presence on the Digital Icons store"},"pricing.feature.basic.stats":{fr:"Statistiques de base",en:"Basic statistics"},"pricing.feature.email.support":{fr:"Support par email",en:"Email support"},"pricing.feature.commission.30":{fr:"Royalties de 30% sur les reventes P2P",en:"30% royalties on P2P resales"},"pricing.feature.all.starter":{fr:"Tout du plan Starter",en:"Everything in Starter"},"pricing.feature.commission.20":{fr:"Royalties augmentées à 20% sur les reventes",en:"Increased 20% royalties on resales"},"pricing.feature.advanced.stats":{fr:"Statistiques avancées",en:"Advanced statistics"},"pricing.feature.customization":{fr:"Personnalisation de la carte",en:"Card customization"},"pricing.feature.priority.support":{fr:"Support prioritaire",en:"Priority support"},"pricing.feature.monthly.reports":{fr:"Rapports mensuels détaillés",en:"Detailed monthly reports"},"pricing.feature.badge":{fr:'Badge "Partenaire Officiel"',en:'"Official Partner" Badge'},"pricing.feature.all.business":{fr:"Tout du plan Business",en:"Everything in Business"},"pricing.feature.custom.commission":{fr:"Commission sur mesure",en:"Custom commission"},"pricing.feature.multiple.cards":{fr:"Cartes multiples",en:"Multiple cards"},"pricing.feature.api":{fr:"API dédiée",en:"Dedicated API"},"pricing.feature.account.manager":{fr:"Account manager dédié",en:"Dedicated account manager"},"pricing.feature.events":{fr:"Ãvénements exclusifs",en:"Exclusive events"},"pricing.feature.cobranding":{fr:"Co-branding possible",en:"Co-branding available"}
218,"pricing.feature.integration":{fr:"Intégration personnalisée",en:"Custom integration"},"pricing.cta.starter":{fr:"Choisir Starter",en:"Choose Starter"},"pricing.cta.business":{fr:"Choisir Business",en:"Choose Business"},"pricing.cta.enterprise":{fr:"Nous contacter",en:"Contact us"},"pricing.benefits.title":{fr:"Pourquoi devenir partenaire ?",en:"Why become a partner?"},"pricing.benefits.subtitle":{fr:"Rejoignez un écosystème innovant et bénéficiez d'avantages exclusifs.",en:"Join an innovative ecosystem and enjoy exclusive benefits."},"pricing.benefit.revenue":{fr:"Revenus passifs",en:"Passive income"},"pricing.benefit.revenue.desc":{fr:"Gagnez des royalties à chaque transaction de vos cartes sur le marché secondaire.",en:"Earn royalties on every transaction of your cards on the secondary market."},"pricing.benefit.community":{fr:"Communauté engagée",en:"Engaged community"},"pricing.benefit.community.desc":{fr:"Accédez à une communauté de collectionneurs passionnés et fidèles.",en:"Access a community of passionate and loyal collectors."},"pricing.benefit.visibility":{fr:"Visibilité premium",en:"Premium visibility"},"pricing.benefit.visibility.desc":{fr:"Votre entreprise mise en avant auprès de milliers d'utilisateurs actifs.",en:"Your business featured to thousands of active users."},"pricing.benefit.marketing":{fr:"Outils marketing",en:"Marketing tools"},"pricing.benefit.marketing.desc":{fr:"Promotions, codes promo et événements pour engager votre audience.",en:"Promotions, promo codes and events to engage your audience."},"pricing.contact.title":{fr:"Une question ? Un projet sur mesure ?",en:"A question? A custom project?"},"pricing.contact.subtitle":{fr:"Notre équipe est là pour vous accompagner dans votre projet. Contactez-nous pour discuter de vos besoins spécifiques.",en:"Our team is here to support you. Contact us to discuss your specific needs."},"pricing.contact.cta":{fr:"Nous contacter",en:"Contact us"},"pricing.partner.cta":{fr:"Devenir partenaire",en:"Become a partner"},"home.b2b.partner.desc":{fr:"Créez votre carte",en:"Create your card"},"home.b2b.pricing.desc":{fr:"Nos offres",en:"Our offers"},"home.b2b.guide.desc":{fr:"Comment ça marche",en:"How it works"},"home.b2b.contact.desc":{fr:"Nous contacter",en:"Contact us"},"home.b2b.partners":{fr:"Partenaires",en:"Partners"},"home.b2b.royalties":{fr:"Royalties",en:"Royalties"},"home.b2b.visibility":{fr:"Visibilité",en:"Visibility"},"home.b2c.cards":{fr:"Cartes",en:"Cards"},"home.b2c.legendaries":{fr:"Légendaires",en:"Legendaries"},"home.b2c.players":{fr:"Joueurs",en:"Players"},"home.b2c.exclusive.benefits":{fr:"avantages exclusifs",en:"exclusive benefits"},"guide.mode.player":{fr:"Guide Joueur",en:"Player Guide"},"guide.mode.business":{fr:"Guide Entreprise",en:"Business Guide"},"guide.b2b.title":{fr:"Guide Partenaires - Digital Icons",en:"Partners Guide - Digital Icons"},"guide.b2b.meta":{fr:"Devenez partenaire Digital Icons : boostez votre visibilité locale, renforcez votre image de marque et touchez de nouvelles audiences.",en:"Become a Digital Icons partner: boost your local visibility, strengthen your brand image and reach new audiences."},"guide.b2b.badge":{fr:"Guide Partenaires",en:"Partners Guide"},"guide.b2b.hero.title":{fr:"Boostez votre visibilité avec",en:"Boost your visibility with"},"guide.b2b.hero.highlight":{fr:"Digital Icons",en:"Digital Icons"},"guide.b2b.hero.subtitle":{fr:"Rejoignez notre réseau de partenaires et développez votre notoriété auprès d'une communauté engagée.",en:"Join our partner network and grow your brand awareness among an engaged community."},"guide.b2b.nav.how":{fr:"Comment ça marche",en:"How it works"},"guide.b2b.nav.how.desc":{fr:"Le processus",en:"The process"},"guide.b2b.nav.benefits":{fr:"Avantages",en:"Benefits"},"guide.b2b.nav.benefits.desc":{fr:"Pour votre entreprise",en:"For your business"},"guide.b2b.nav.pricing":{fr:"Tarifs",en:"Pricing"},"guide.b2b.nav.pricing.desc":{fr:"Nos offres",en:"Our offers"},"guide.b2b.nav.contact":{fr:"Contact",en:"Contact"},"guide.b2b.nav.contact.desc":{fr:"Parlons-en",en:"Let's talk"},"guide.b2b.how.title":{fr:"Comment devenir partenaire ?",en:"How to become a partner?"},"guide.b2b.step1.title":{fr:"Prenez contact",en:"Get in touch"},"guide.b2b.step1.desc":{fr:"Remplissez notre formulaire de contact. Notre équipe commerciale vous recontacte sous 48h pour comprendre vos besoins.",en:"Fill out our contact form. Our sales team will get back to you within 48 hours to understand your needs."}
218,"guide.b2b.step1.point1":{fr:"Formulaire simple et rapide",en:"Simple and quick form"},"guide.b2b.step1.point2":{fr:"Réponse garantie sous 48h",en:"Guaranteed response within 48 hours"},"guide.b2b.step1.point3":{fr:"Ãtude personnalisée de votre projet",en:"Personalized study of your project"},"guide.b2b.step2.title":{fr:"Définissez votre stratégie",en:"Define your strategy"},"guide.b2b.step2.desc":{fr:"Avec notre équipe, choisissez le plan adapté à vos objectifs : visibilité locale, image de marque, communication digitale.",en:"With our team, choose the plan adapted to your goals: local visibility, brand image, digital communication."},"guide.b2b.step3.title":{fr:"Lancez votre présence",en:"Launch your presence"},"guide.b2b.step3.desc":{fr:"Votre carte entreprise est créée et mise en avant sur notre plateforme. Bénéficiez d'une visibilité immédiate auprès de notre communauté.",en:"Your business card is created and highlighted on our platform. Enjoy immediate visibility among our community."},"guide.b2b.benefits.title":{fr:"Pourquoi devenir partenaire ?",en:"Why become a partner?"},"guide.b2b.benefit.royalties.title":{fr:"Visibilité locale renforcée",en:"Enhanced local visibility"},"guide.b2b.benefit.royalties.desc":{fr:"Touchez une audience locale qualifiée et engagée dans votre région.",en:"Reach a qualified and engaged local audience in your region."},"guide.b2b.benefit.visibility.title":{fr:"Image de marque innovante",en:"Innovative brand image"},"guide.b2b.benefit.visibility.desc":{fr:"Positionnez-vous comme une entreprise moderne, connectée aux nouvelles tendances digitales.",en:"Position yourself as a modern company, connected to new digital trends."},"guide.b2b.benefit.stats.title":{fr:"Communication ciblée",en:"Targeted communication"},"guide.b2b.benefit.stats.desc":{fr:"Accédez à des outils de communication et de suivi pour mesurer votre impact.",en:"Access communication and tracking tools to measure your impact."},"guide.b2b.benefit.secure.title":{fr:"Réseau de partenaires",en:"Partner network"},"guide.b2b.benefit.secure.desc":{fr:"Intégrez un écosystème d'entreprises locales et développez votre réseau professionnel.",en:"Join an ecosystem of local businesses and grow your professional network."},"guide.b2b.pricing.title":{fr:"Nos formules partenaires",en:"Our partner plans"},"guide.b2b.pricing.intro":{fr:"Des offres adaptées à tous les types d'entreprises, de la TPE aux grands groupes :",en:"Plans adapted to all types of businesses, from small businesses to large groups:"},"guide.b2b.pricing.see.all":{fr:"Voir tous les tarifs",en:"See all pricing"},"guide.b2b.faq.title":{fr:"Questions fréquentes",en:"Frequently asked questions"},"guide.b2b.faq.q1":{fr:"Quels sont les avantages concrets pour mon entreprise ?",en:"What are the concrete benefits for my business?"},"guide.b2b.faq.a1":{fr:"Vous bénéficiez d'une visibilité accrue auprès d'une communauté engagée, d'un positionnement innovant et d'outils pour communiquer sur votre marque.",en:"You benefit from increased visibility among an engaged community, innovative positioning and tools to communicate about your brand."},"guide.b2b.faq.q2":{fr:"Combien de temps pour être visible sur la plateforme ?",en:"How long to be visible on the platform?"},"guide.b2b.faq.a2":{fr:"Après validation de votre dossier, votre carte entreprise est créée sous 5 à 10 jours ouvrés et mise en ligne immédiatement.",en:"After validation of your file, your business card is created within 5 to 10 business days and goes online immediately."},"guide.b2b.faq.q3":{fr:"Puis-je mettre à jour mes informations ?",en:"Can I update my information?"},"guide.b2b.faq.a3":{fr:"Oui, vous pouvez demander des modifications à tout moment. La fréquence des mises à jour dépend de votre formule.",en:"Yes, you can request modifications at any time. The frequency of updates depends on your plan."},"guide.b2b.faq.q4":{fr:"Y a-t-il un engagement de durée ?",en:"Is there a commitment period?"},"guide.b2b.faq.a4":{fr:"Les formules sont flexibles : mensuelles ou annuelles selon vos besoins. Sans engagement pour la formule Starter.",en:"Plans are flexible: monthly or annual according to your needs. No commitment for the Starter plan."},"guide.b2b.cta.title":{fr:"Prêt à rejoindre nos partenaires ?",en:"Ready to join our partners?"},"guide.b2b.cta.subtitle":{fr:"Contactez notre équipe commerciale pour discuter de vos objectifs et trouver la formule adaptée.",en:"Contact our sales team to discu
218ss your goals and find the right plan."},"b2b.hero.badge":{fr:"Espace Entreprise",en:"Business Space"},"b2b.hero.title":{fr:"Transformez votre marque en",en:"Transform your brand into a"},"b2b.hero.title.highlight":{fr:"Légende du Gaming",en:"Gaming Legend"},"b2b.hero.royalties":{fr:"30% de royalties",en:"30% royalties"},"b2b.hero.royalties.desc":{fr:"Sur chaque vente et revente de vos cartes",en:"On every sale and resale of your cards"},"b2b.hero.gaming.visibility":{fr:"Visibilité Gaming",en:"Gaming Visibility"},"b2b.hero.young.audience":{fr:"Audience Jeune",en:"Young Audience"},"b2b.hero.innovative.marketing":{fr:"Marketing Innovant",en:"Innovative Marketing"},"b2b.hero.modern.image":{fr:"Image Moderne",en:"Modern Image"},"b2b.hero.your.brand":{fr:"Votre Marque",en:"Your Brand"},"b2b.hero.legendary":{fr:"LÃGENDAIRE",en:"LEGENDARY"},"b2b.hero.estimated.revenue":{fr:"Revenus estimés / mois",en:"Estimated monthly revenue"},"b2b.hero.become.partner":{fr:"Devenir Partenaire",en:"Become a Partner"},"b2b.hero.learn.more":{fr:"En savoir plus",en:"Learn more"},"b2b.hero.see.pricing":{fr:"Voir nos tarifs",en:"See our pricing"},"b2b.hero.royalties.guaranteed":{fr:"Royalties garanties",en:"Guaranteed royalties"},"b2b.hero.partner.companies":{fr:"Entreprises partenaires",en:"Partner companies"},"b2b.hero.game.available":{fr:"Jeu disponible",en:"Game available"},"b2b.hero.visibility.potential":{fr:"Potentiel de visibilité",en:"Visibility potential"},"b2b.hero.subtitle":{fr:"Créez des cartes à collectionner uniques représentant votre entreprise.",en:"Create unique collectible cards representing your business."},"b2b.hero.subtitle.2":{fr:"Générez des revenus passifs",en:"Generate passive income"},"b2b.hero.subtitle.3":{fr:"à chaque vente et touchez une",en:"on every sale and reach a"},"b2b.hero.subtitle.4":{fr:"audience jeune et engagée",en:"young and engaged audience"},"b2b.hero.benefit.royalties":{fr:"30% de royalties sur chaque vente et revente",en:"30% royalties on every sale and resale"},"b2b.hero.benefit.visibility":{fr:"Visibilité dans Icons Arena",en:"Visibility in Icons Arena"},"b2b.hero.benefit.branding":{fr:"Rajeunissement de l'image de marque",en:"Brand image rejuvenation"},"b2b.hero.contact.team":{fr:"Contactez notre équipe commerciale",en:"Contact our sales team"},"b2b.hero.discover.offers":{fr:"Découvrir les offres partenaires",en:"Discover partner offers"},"b2b.hero.ceo.founder":{fr:"CEO ⢠Fondateur",en:"CEO ⢠Founder"},"b2b.hero.cards.sold":{fr:"Cartes vendues",en:"Cards sold"},"b2b.hero.impressions":{fr:"Impressions",en:"Impressions"},"partner.title":{fr:"Devenir Partenaire B2B - Digital Icons | Créez vos cartes d'entreprise",en:"Become a B2B Partner - Digital Icons | Create your business cards"},"partner.meta":{fr:"Créez des cartes à collectionner à l'effigie de votre entreprise. Générez des revenus passifs avec 5% de commissions sur les reventes. Calculez vos revenus potentiels.",en:"Create collectible cards featuring your business. Generate passive income with 5% commissions on resales. Calculate your potential revenue."},"partner.badge":{fr:"Partenariat Entreprise",en:"Business Partnership"},"partner.hero.title":{fr:"Transformez votre marque en",en:"Transform your brand into a"},"partner.hero.highlight":{fr:"Source de Revenus",en:"Revenue Source"},"partner.hero.desc":{fr:"Créez des cartes à collectionner uniques représentant votre entreprise.",en:"Create unique collectible cards representing your business."},"partner.hero.commission":{fr:"La plateforme perçoit",en:"The platform receives"},"partner.hero.commission.rate":{fr:"5% de commission",en:"5% commission"},"partner.hero.commission.desc":{fr:"sur les reventes P2P.",en:"on P2P resales."},"partner.calculator.title":{fr:"Calculateur de revenus",en:"Revenue Calculator"},"partner.calculator.subtitle":{fr:"Estimez vos revenus potentiels en tant que partenaire Digital Icons",en:"Estimate your potential revenue as a Digital Icons partner"},"partner.calculator.card.price":{fr:"Prix de vente par carte",en:"Sale price per card"},"partner.calculator.average":{fr:"Moyenne: 3â¬",en:"Average: â¬3"},"partner.calculator.cards.sold":{fr:"Cartes vendues / mois",en:"Cards sold / month"},"partner.calculator.resale.rate":{fr:"Taux de revente",en:"Resale rate"},"partner.calculator.resale.rate.desc":{fr:"Pourcentage de cartes revendues sur le marché secondaire",en:"Percentage of cards resold on the secondary market"},"partner.calculator.avg.resale.price":{fr:"Prix moyen de revente",en:"Average resale price"},"partner.calculator.primary.value":{fr:"Valeur cartes primaires / mois",en:"Primary cards value / month"},"partner.calculator.cards.at":{fr:"cartes à ",en:"cards at"},"partner.calculator.secondary.volume":{fr:"Volume marché secondaire / mois",en:"Secondary market volume / month"},"partner.calculator.resales.estimated":{fr:"reventes estimées à ",en:"estimated resales at"},"partner.calculator.platform.commission":{fr:"(5% commission plateforme)",en:"(5% platform commission)"},"partner.calculator.total.value":{fr:"Valeur marché totale / mois",en:"Total market value / month"},"partner.calculator.yearly.value":{fr:"Valeur marché annuelle",en:"Annual market value"},"partner.benefits.title":{fr:"Pourquoi devenir partenaire ?",en:"Why become a partner?"},"partner.benefit.passive.income":{fr:"Revenus Passifs",en:"Passive Income"},"partner.benefit.passive.income.desc":{fr:"30% sur chaque vente primaire et 30% des commissions sur les reventes P2P.",en:"30% on each primary sale and 30% of commissions on P2P resales."},"partner.benefit.arena.visibility":{fr:"Visibilité Icons Arena",en:"Icons Arena Visibility"},"partner.benefit.arena.visibility.desc":{fr:"Votre marque présente dans Icons Arena, le jeu de combat stratég
218ique de Digital Icons.",en:"Your brand present in Icons Arena, the strategic combat game of Digital Icons."},"partner.benefit.marketing":{fr:"Marketing Innovant",en:"Innovative Marketing"},"partner.benefit.marketing.desc":{fr:"Touchez une audience jeune et engagée via un format ludique et mémorable.",en:"Reach a young and engaged audience through a fun and memorable format."},"partner.benefit.brand.image":{fr:"Image de Marque",en:"Brand Image"},"partner.benefit.brand.image.desc":{fr:"Rajeunissez votre image en vous associant au gaming et aux nouvelles technologies.",en:"Rejuvenate your image by associating with gaming and new technologies."},"partner.contact.badge":{fr:"Contactez-nous",en:"Contact us"},"partner.contact.title":{fr:"Prêt à rejoindre l'aventure ?",en:"Ready to join the adventure?"},"partner.contact.subtitle":{fr:"Remplissez le formulaire et notre équipe vous contactera sous 48h.",en:"Fill out the form and our team will contact you within 48 hours."},"partner.form.company":{fr:"Nom de l'entreprise",en:"Company name"},"partner.form.contact":{fr:"Nom du contact",en:"Contact name"},"partner.form.email":{fr:"Email professionnel",en:"Professional email"},"partner.form.phone":{fr:"Téléphone",en:"Phone"},"partner.form.website":{fr:"Site web",en:"Website"},"partner.form.message":{fr:"Votre message",en:"Your message"},"partner.form.message.placeholder":{fr:"Parlez-nous de votre entreprise et de vos objectifs...",en:"Tell us about your business and your goals..."},"partner.form.required":{fr:"Veuillez remplir tous les champs obligatoires",en:"Please fill in all required fields"},"partner.form.success":{fr:"Demande envoyée ! Notre équipe vous contactera sous 48h.",en:"Request sent! Our team will c
218ontact you within 48 hours."},"partner.form.submit":{fr:"Envoyer ma demande",en:"Send my request"},"partner.form.sending":{fr:"Envoi en cours...",en:"Sending..."},"leagues.title":{fr:"Leagues",en:"Leagues"},"leagues.subtitle":{fr:"Compétition Icons Arena",en:"Icons Arena Competition"},"leagues.cash.prize.banner.title":{fr:"ð° Phase de test : Gagnez 150â¬",en:"ð° Test phase: Win â¬150"},"leagues.cash.prize.banner.desc":{fr:"Nous démarrons par la",en:"We start with"},"leagues.cash.prize.banner.league":{fr:"League I (Découverte)",en:"League I (Discovery)"},"leagues.cash.prize.banner.accessible":{fr:"â la plus accessible â pour tester le format Cash Prize.",en:"â the most accessible â to test the Cash Prize format."},"leagues.cash.prize.banner.future":{fr:"En fonction du succès, les",en:"Based on success,"},"leagues.cash.prize.banner.higher":{fr:"Leagues II, III et IV",en:"Leagues II, III and IV"},"leagues.cash.prize.banner.more":{fr:"proposeront des gains encore plus importants.",en:"will offer even greater rewards."},"leagues.season.ends":{fr:"Fin dans",en:"Ends in"},"leagues.tab.leagues":{fr:"Leagues",en:"Leagues"},"leagues.tab.rankings":{fr:"Classements",en:"Rankings"},"leagues.power.required":{fr:"Puissance requise",en:"Required power"},"leagues.remaining":{fr:"restants",en:"remaining"},"leagues.rank":{fr:"Rang",en:"Rank"},"leagues.points":{fr:"Points",en:"Points"},"leagues.wins":{fr:"Victoires",en:"Wins"},"leagues.rewards":{fr:"Récompenses",en:"Rewards"},"leagues.top":{fr:"Top",en:"Top"},"leagues.cash.active":{fr:"CASH PRIZE ACTIF",en:"CASH PRIZE ACTIVE"},"leagues.coming.soon":{fr:"BIENTÃT",en:"COMING SOON"},"leagues.cash.prizes.coming":{fr:"Cash Prizes à venir...",en:"Cash Prizes coming..."},"leagues.at.stake":{fr:"en jeu",en:"at stake"},"leagues.test.phase":{fr:"Phase de test",en:"Test phase"},"leagues.tooltip.title":{fr:"ð° Récompense réelle â Phase de test",en:"ð° Real reward â Test phase"},"leagues.tooltip.desc":{fr:"Nous lançons le Cash Prize sur la league la plus accessible pour tester le format. En fonction du succès, les leagues supérieures proposeront des gains encore plus importants !",en:"We are launching Cash Prize on the most accessible league to test the format. Based on success, higher leagues will offer even greater rewards!"},"leagues.enrolled":{fr:"Inscrit",en:"Enrolled"},"leagues.join":{fr:"Rejoindre",en:"Join"},"leagues.view.ranking":{fr:"Voir le classement",en:"View ranking"},"leagues.no.participants":{fr:"Aucun participant",en:"No participants"},"leagues.be.first":{fr:"Soyez le premier !",en:"Be the first!"},"leagues.you":{fr:"(vous)",en:"(you)"},"leagues.join.dialog.title":{fr:"Rejoindre",en:"Join"},"leagues.join.dialog.desc":{fr:"Sélectionnez un deck éligible pour participer.",en:"Select an eligible deck to participate."},"leagues.choose.deck":{fr:"Choisir un deck",en:"Choose a deck"},"leagues.select.deck":{fr:"Sélectionner un deck",en:"Select a deck"},"leagues.no.decks":{fr:"Aucun deck disponible",en:"No deck available"},"leagues.create.deck":{fr:"Créez un deck avec 5 cartes pour participer.",en:"Create a deck with 5 cards to participate."},"leagues.estimated.power":{fr:"Puissance estimée",en:"Estimated power"},"leagues.eligible":{fr:"Ãligible",en:"Eligible"},"leagues.not.eligible":{fr:"Non éligible",en:"Not eligible"},"leagues.confirm.join":{fr:"Confirmer l'inscription",en:"Confirm enrollment"},"leagues.select.ranking":{fr:"Sélectionner une League",en:"Select a League"},"leagues.discovery":{fr:"Découverte",en:"Discovery"},"leagues.discovery.sublabel":{fr:"La plus accessible ⢠Cash Prize actif",en:"Most accessible ⢠Cash Prize active"},"leagues.progression":{fr:"Progression",en:"Progression"},"leagues.progression.sublabel":{fr:"Niveau intermédiaire",en:"Intermediate level"},"leagues.premium":{fr:"Premium",en:"Premium"},"leagues.premium.sublabel":{fr:"Joueurs confirmés",en:"Confirmed players"},"leagues.elite":{fr:"Ãlite",en:"Elite"},"leagues.elite.sublabel":{fr:"Top joueurs",en:"Top players"},"leagues.boosters":{fr:"Boosters",en:"Boosters"},"leagues.booster":{fr:"Booster",en:"Booster"},"leagues.rare.card":{fr:"Carte rare",en:"Rare card"},"leagues.mission.points":{fr:"Bonus points missions",en:"Mission points bonus"},"tutorial.label":{fr:"Tutoriel",en:"Tutorial"},"tutorial.dismiss":{fr:"Désactiver le tutoriel",en:"Disable tutorial"},"tutorial.got.it":{fr:"Compris",en:"Got it"},"tutorial.select.starting.title":{fr:"Choisissez votre première carte",en:"Choose your first card"},"tutorial.select.starting.desc":{fr:"Sélectionnez la carte qui entrera en combat en premier. Ãvaluez les stats ATK (attaque) et PV (points de vie) pour faire le meilleur choix.",en:"Select the card that will enter battle first. Evaluate ATK (attack) and HP (hit points) stats to make the best choice."},"tutorial.main.phase.title":{fr:"Phase Principale",en:"Main Phase"},"tutorial.main.phase.desc":{fr:"Pendant cette phase, vous pouvez activer des jetons, utiliser l'effet de votre carte, ou passer en phase de combat. Défendre rapporte +1 Capital ð°.",en:"During this phase, you can activate tokens, use your card's effect, or move to battle phase. Defending earns +1 Capital ð°."},"tutorial.battle.phase.title":{fr:"Phase de Combat",en:"Battle Phase"},"tutorial.battle.phase.desc":{fr:`Appuyez sur "Attaquer" pour frapper la carte adverse. Les dégâts sont basés sur l'ATK de votre carte. Détruisez 3 cartes ennemies pour gagner !`,en:`Press "Attack" to hit the opponent's card. Damage is based on your card's ATK. Destroy 3 enemy cards to win!`},"tutorial.capital.title":{fr:"Système de Capital",en:"Capital System"},"tutorial.capital.desc":{fr:"Chaque action coûte du Capital ð°. Vous en gagnez +2 par tour. Gérez bien votre capital pour poser des cartes, attaquer et activer des effets.",en:"Each action costs Capital ð°. You earn +2 per turn. Manage your capital wisely to play cards, attack and activate effects."},"tutorial.switch.title":{fr:"Changer de carte",en:"Switch card"},"tutorial.switch.desc":{fr:"Vous avez 2 switchs par partie. Glissez une carte de votre main vers le terrain, ou cliquez dessus pour l'envoyer au combat.",en:"You have 2 switches per game. Drag a card from your hand to the field, or click it to send it into battle."}
218,"tutorial.replacement.title":{fr:"Carte détruite !",en:"Card destroyed!"},"tutorial.replacement.desc":{fr:"Votre carte a été éliminée. Choisissez une nouvelle carte pour la remplacer. Si vous n'avez pas assez de Capital, seule la carte la plus faible sera gratuite.",en:"Your card has been eliminated. Choose a new card to replace it. If you don't have enough Capital, only the weakest card will be free."},"tutorial.tokens.title":{fr:"Jetons spéciaux",en:"Special tokens"},"tutorial.tokens.desc":{fr:"Les jetons offrent des effets puissants : doubler l'ATK, activer un bouclier, drainer l'adversaire... Ils coûtent 2 Capital chacun.",en:"Tokens offer powerful effects: double ATK, activate a shield, drain the opponent... They cost 2 Capital each."},"rewards.label":{fr:"Récompenses",en:"Rewards"},"rewards.coins":{fr:"Pièces",en:"Coins"},"rewards.xp":{fr:"XP",en:"XP"},"rewards.bonus":{fr:"Bonus",en:"Bonus"},"rewards.fast.win":{fr:"Victoire rapide",en:"Fast win"},"rewards.perfect":{fr:"Sans faute",en:"Flawless"},"rewards.hard.fought":{fr:"Combat acharné",en:"Hard fought"},"rewards.victory":{fr:"Victoire",en:"Victory"},"rewards.draw":{fr:"Match Nul",en:"Draw"},"rewards.defeat":{fr:"Défaite",en:"Defeat"},"notif.title":{fr:"Notifications",en:"Notifications"},"notif.all.read":{fr:"Tout lu",en:"All read"},"notif.tab.all":{fr:"Tout",en:"All"},"notif.tab.announcements":{fr:"Annonces",en:"Announcements"},"notif.empty":{fr:"Aucune notification",en:"No notifications"},"notif.empty.announcements":{fr:"Aucune annonce",en:"No announcements"},"notif.unread":{fr:"non lues",en:"unread"},"notif.just.now":{fr:"à l'instant",en:"Just now"},"notif.minutes.ago":{fr:"Il y a {n} min",en:"{n} min ago"},"notif.hours.ago":{fr:"Il y a {n}h",en:"{n}h ago"},"notif.days.ago":{fr:"Il y a {n}j",en:"{n}d ago"},"notif.type.new_card":{fr:"Nouvelle carte",en:"New card"},"notif.type.new_token":{fr:"Nouveau jeton",en:"New token"},"notif.type.event":{fr:"Ãvénement",en:"Event"},"notif.type.feature":{fr:"Nouveauté",en:"New feature"},"notif.type.announcement":{fr:"Annonce",en:"Announcement"},"deck.compose.desc":{fr:"Composez des decks avec vos cartes : Héros (optionnel) + Jetons + Entreprises (min {min} cartes)",en:"Build decks with your cards: Hero (optional) + Tokens + Enterprises (min {min} cards)"},"deck.select.cards.desc":{fr:"Sélectionnez vos cartes pour composer un deck et lancer des combats dans Icons Arena",en:"Select your cards to build a deck and start battles in Icons Arena"},"deck.active.label":{fr:"DECK ACTIF",en:"ACTIVE DECK"},"deck.used.in.game":{fr:"Utilisé en jeu",en:"Used in game"},"deck.set.active":{fr:"Définir comme actif",en:"Set as active"},"deck.complete":{fr:"Compléter",en:"Complete"},"deck.select.label":{fr:"Sélectionner",en:"Select"},"deck.search.name":{fr:"Rechercher par nom...",en:"Search by name..."},"deck.sort.by":{fr:"Trier par",en:"Sort by"},"deck.all.sectors":{fr:"Tous secteurs",en:"All sectors"},"deck.all.rarities":{fr:"Toutes raretés",en:"All rarities"},"deck.no.hero":{fr:"Aucune carte Héros disponible.",en:"No Hero card available."},"deck.no.token":{fr:"Aucun Jeton disponible dans votre collection.",en:"No Token available in your collection."},"deck.no.enterprise":{fr:"Aucune carte Entreprise disponible.",en:"No Enterprise card available."},"deck.no.filter.match":{fr:"Aucune carte ne correspond à vos filtres.",en:"No cards match your filters."},"deck.back":{fr:"â Retour",en:"â Back"},"deck.activate":{fr:"Activer ce deck",en:"Activate this deck"},"deck.incomplete.warning":{fr:"Deck incomplet : il faut au moins 3 cartes Entreprise (min {min} cartes). Héros et Jetons sont optionnels.",en:"Incomplete deck: at least 3 Enterprise cards needed (min {min} cards). Heroes and Tokens are optional."},"deck.hero":{fr:"Héros",en:"Hero"},"deck.tokens":{fr:"Jetons",en:"Tokens"},"deck.enterprises":{fr:"Entreprises",en:"Enterprises"},"deck.token.slot":{fr:"Jeton",en:"Token"},"deck.enterprise.slot":{fr:"Entreprise",en:"Enterprise"},"deck.sort.name":{fr:"Nom (A-Z)",en:"Name (A-Z)"},"deck.sort.total.desc":{fr:"Puissance totale â",en:"Total power â"},"deck.sort.total.asc":{fr:"Puissance totale â",en:"Total power â"},"deck.sort.attack.desc":{fr:"Attaque â",en:"Attack â"},"deck.sort.attack.asc":{fr:"Attaque â",en:"Attack â"},"deck.sort.defense.desc":{fr:"Défense â",en:"Defense â"},"deck.sort.defense.asc":{fr:"Défense â",en:"Defense â"},"deck.sort.speed.desc":{fr:"Vitesse â",en:"Speed â"},"deck.sort.speed.asc":{fr:"Vitesse â",en:"Speed â"}
218,"deck.sort.strategy.desc":{fr:"Stratégie â",en:"Strategy â"},"deck.sort.strategy.asc":{fr:"Stratégie â",en:"Strategy â"},"deck.sort.rarity":{fr:"Rareté â",en:"Rarity â"},"deck.sort.price.desc":{fr:"Prix â",en:"Price â"},"deck.sort.price.asc":{fr:"Prix â",en:"Price â"},"deck.effect.label":{fr:"EFFET",en:"EFFECT"},"deck.hero.label":{fr:"HÃROS",en:"HERO"},"deck.token.label":{fr:"JETON",en:"TOKEN"},"auth.title.login":{fr:"Connexion",en:"Sign In"},"auth.title.signup":{fr:"Créer un compte",en:"Create Account"},"auth.title.forgot":{fr:"Mot de passe oublié",en:"Forgot Password"},"auth.title.reset":{fr:"Nouveau mot de passe",en:"New Password"},"auth.subtitle.login":{fr:"Accédez à votre collection de cartes",en:"Access your card collection"},"auth.subtitle.signup":{fr:"Rejoignez la boutique Digital Icons",en:"Join the Digital Icons store"},"auth.subtitle.forgot":{fr:"Entrez votre email pour recevoir un lien de réinitialisation",en:"Enter your email to receive a reset link"},"auth.subtitle.reset":{fr:"Choisissez un nouveau mot de passe sécurisé",en:"Choose a new secure password"},"auth.btn.login":{fr:"Se connecter",en:"Sign in"},"auth.btn.signup":{fr:"Créer mon compte",en:"Create my account"},"auth.btn.forgot":{fr:"Envoyer le lien",en:"Send link"},"auth.btn.reset":{fr:"Mettre à jour",en:"Update"},"auth.btn.loading":{fr:"Chargement...",en:"Loading..."},"auth.back.login":{fr:"Retour à la connexion",en:"Back to sign in"},"auth.username":{fr:"Nom d'utilisateur",en:"Username"},"auth.referral.label":{fr:"Code de parrainage (optionnel)",en:"Referral code (optional)"},"auth.referral.reward":{fr:"Vous et votre parrain recevrez des récompenses !",en:"You and your referrer will receive rewards!"},"auth.new.password":{fr:"Nouveau mot de passe",en:"New password"},"auth.password.label":{fr:"Mot de passe",en:"Password"},"auth.confirm.password":{fr:"Confirmer le mot de passe",en:"Confirm password"},"auth.passwords.match":{fr:"â Les mots de passe correspondent",en:"â Passwords match"},"auth.passwords.no.match":{fr:"â Les mots de passe ne correspondent pas",en:"â Passwords do not match"},"auth.accept.terms":{fr:"J'accepte les",en:"I accept the"},"auth.terms.link":{fr:"Conditions Générales d'Utilisation",en:"Terms of Service"},"auth.and.the":{fr:"et la",en:"and the"},"auth.privacy.link":{fr:"Politique de Confidentialité",en:"Privacy Policy"},"auth.forgot.link":{fr:"Mot de passe oublié ?",en:"Forgot password?"},"auth.no.account.yet":{fr:"Pas encore de compte ? ",en:"Don't have an account? "},"auth.has.account":{fr:"Déjà un compte ? ",en:"Already have an account? "},"auth.signup.link":{fr:"Inscrivez-vous",en:"Sign up"},"auth.login.link":{fr:"Connectez-vous",en:"Sign in"},"auth.error.invalid":{fr:"Identifiants invalides. Vérifiez votre email/mot de passe ou réinitialisez votre mot de passe.",en:"Invalid credentials. Check your email/password or reset your password."},"auth.error.passwords":{fr:"Les mots de passe ne correspondent pas",en:"Passwords do not match"},"auth.error.terms":{fr:"Vous devez accepter les conditions d'utilisation",en:"You must accept the terms of service"},"auth.error.email.used":{fr:"Cet email est déjà utilisé",en:"This email is already in use"},"auth.success.login":{fr:"Connexion réussie !",en:"Login successful!"},"auth.success.signup":{fr:"Compte créé avec succès !",en:"Account created successfully!"},"auth.success.reset.sent":{fr:"Un email de réinitialisation a été envoyé !",en:"A reset email has been sent!"},"auth.success.password.updated":{fr:"Mot de passe mis à jour avec succès !",en:"Password updated successfully!"},"auth.referral.applied":{fr:"Code de parrainage appliqué ! Vous et votre parrain recevrez des récompenses.",en:"Referral code applied! You and your referrer will receive rewards."},"auth.validation.email":{fr:"Email invalide",en:"Invalid email"},"auth.validation.password":{fr:"Le mot de passe doit contenir au moins 6 caractères",en:"Password must be at least 6 characters"},"auth.validation.username":{fr:"Le nom d'utilisateur doit contenir au moins 3 caractères",en:"Username must be at least 3 characters"},"auth.validation.username.max":{fr:"Maximum 20 caractères",en:"Maximum 20 characters"},"auth.validation.code.long":{fr:"Code trop long",en:"Code too long"},"auth.email.placeholder":{fr:"[email protected]",en:"[email protected]"},"gameplay.login.required":{fr:"Connexion requise",en:"Login Required"},"gameplay.login.desc":{fr:"Vous devez être connecté pour jouer à Icons Arena.",en:"You must be logged in to play Icons Arena."},"gameplay.login.btn":{fr:"Se connecter",en:"Sign in"},"gameplay.no.deck":{fr:"Aucun deck actif",en:"No active deck"},"gameplay.deck.too.small":{fr:"Deck trop petit",en:"Deck too small"},"gameplay.no.deck.desc":{fr:"Créez un deck dans votre collection et définissez-le comme actif pour jouer.",en:"Create a deck in your collection and set it as active to play."},"gameplay.ready":{fr:"Prêt pour le combat ?",en:"Ready for battle?"},"gameplay.training":{fr:"Mode Entraînement vs IA",en:"Training Mode vs AI"},"gameplay.enterprises":{fr:"Entreprises",en:"Enterprises"},"gameplay.tokens":{fr:"Jetons",en:"Tokens"},"gameplay.heroes":{fr:"Héros",en:"Heroes"},"gameplay.view.cards":{fr:"ð Voir les cartes",en:"ð View cards"},"gameplay.cards":{fr:"cartes",en:"cards"},"gameplay.ai.difficulty":{fr:"Difficulté de l'IA",en:"AI Difficulty"},"gameplay.difficulty.easy":{fr:"Facile",en:"Easy"},"gameplay.difficulty.easy.desc":{fr:"IA lente et prévisible",en:"Slow and predictable AI"},"gameplay.difficulty.medium":{fr:"Normal",en:"Normal"},"gameplay.difficulty.medium.desc":{fr:"IA équilibrée",en:"Balanced AI"},"gameplay.difficulty.hard":{fr:"Difficile",en:"Hard"},"gameplay.difficulty.hard.desc":{fr:"IA agressive et optimale",en:"Aggressive and optimal AI"},"gameplay.rules.title":{fr:"âï¸ Rappel des règles",en:"âï¸ Rules reminder"},"gameplay.rules.1":{fr:"Choisissez une carte de départ",en:"Choose a starting card"},"gameplay.rules.2":{fr:"2 switchs par partie",en:"2 switches per game"},"gameplay.rules.3":{fr:"Activez les effets en combat",en:"Activate effects in battle"},"gameplay.rules.4":{fr:"3 éliminations = Victoire",en:"3 eliminations = Victory"},"gameplay.start":{fr:"Lancer le combat",en:"Start Battle"},"gameplay.back":{fr:"Retour",en:"Back"},"gameplay.battle.title":{fr:"Combat en cours - Icons Arena",en:"Battle in Progress - Icons Arena"},"gameplay.lobby.title":{fr:"Lancer un combat - Icons Arena",en:"Start a Battle - Icons Arena"},"gameplay.my.collection":{fr:"Ma Collection",en:"My Collection"},"boosters.page.title":{fr:"Boosters Digital Icons - Ouvrez des packs de cartes",en:"Digital Icons Boosters - Open card packs"},"boosters.meta":{fr:"Achetez et ouvrez des boosters pour obtenir des cartes aléatoires avec différentes raretés. Tentez votre chance pour des cartes légendaires !",en:"Buy and open boosters to get random cards with various rarities. Try your luck for legendary cards!"},"boosters.desc":{fr:"Ouvrez des packs pour découvrir des cartes avec des raretés variées. Tentez votre chance pour des cartes Légendaires et Mythiques !",en:"Open packs to discover cards with various rarities. Try your luck for Legendary and Mythic cards!"},"boosters.free.available":{fr:"Booster gratuit disponible !",en:"Free booster available!"},"boosters.next.in":{fr:"Prochain dans",en:"Next in"},"boosters.my.collection":{fr:"Ma Collection",en:"My Collection"},"boosters.shop":{fr:"Boutique",en:"Shop"},"boosters.none":{fr:"Aucun booster disponible",en:"No booster available"},"boosters.coming.soon":{fr:"Les boosters seront bientôt disponibles !",en:"Boosters will be available soon!"},"boosters.payment.success":{fr:"Paiement réussi ! Ouverture du booster...",en:"Payment successful! Opening booster..."},"boosters.error.open":{fr:"Erreur lors de l'ouverture du booster",en:"Error opening booster"},"boosters.already.claimed":{fr:"Vous avez déjà réclamé votre booster gratuit aujourd'hui. Revenez demain !",en:"You've already claimed your free booster today. Come back tomorrow!"},"boosters.login.desc":{fr:"Connectez-vous pour ouvrir votre booster gratuit quotidien !",en:"Sign in to open your daily free booster!"},"boosters.cards":{fr:"cartes",en:"cards"},"boosters.tokens":{fr:"jetons",en:"tokens"}
218,"boosters.claim.free":{fr:"Réclamer GRATUIT",en:"Claim FREE"},"boosters.opening":{fr:"Ouverture...",en:"Opening..."},"boosters.drop.rates":{fr:"Taux de drop",en:"Drop rates"},"boosters.open.btn":{fr:"Ouvrir",en:"Open"},"boosters.tomorrow":{fr:"Demain",en:"Tomorrow"},"boosters.per.day":{fr:"1 par jour",en:"1 per day"},"boosters.free":{fr:"GRATUIT",en:"FREE"},"boosters.popular":{fr:"POPULAIRE",en:"POPULAR"},"boosters.default.desc":{fr:"Pack de cartes avec des chances exclusives",en:"Card pack with exclusive chances"},"boosters.open.rare":{fr:"Ouvrez des packs pour découvrir des cartes rares",en:"Open packs to discover rare cards"},"boosters.login.play":{fr:"Connectez-vous pour jouer",en:"Sign in to play"},"boosters.no.coming":{fr:"Les boosters arrivent bientôt !",en:"Boosters coming soon!"},"boosters.login.open":{fr:"Connectez-vous ou créez un compte pour ouvrir des boosters et collectionner des cartes !",en:"Sign in or create an account to open boosters and collect cards!"},"boosters.ready.play":{fr:"Prêt à jouer ?",en:"Ready to play?"},"boosters.use.cards":{fr:"Utilisez vos cartes dans Icons Arena et affrontez d'autres joueurs en combat stratégique !",en:"Use your cards in Icons Arena and battle other players in strategic combat!"},"boosters.start.battle":{fr:"Lancer un combat",en:"Start a battle"},"boosters.packs":{fr:"Packs",en:"Packs"},"boosters.play":{fr:"Jouer",en:"Play"},"rarity.common":{fr:"Commune",en:"Common"},"rarity.rare":{fr:"Rare",en:"Rare"},"rarity.epic":{fr:"Ãpique",en:"Epic"},"rarity.legendary":{fr:"Légendaire",en:"Legendary"},"rarity.legendary.short":{fr:"Légend.",en:"Legend."},"rarity.mythic":{fr:"Mythique",en:"Mythic"},"rarity.hero":{fr:"Héros",en:"Hero"},"partner.page.title":{fr:"Devenir Partenaire - Transformez votre entreprise en carte | Digital Icons",en:"Become a Partner - Transform your business into a card | Digital Icons"},"partner.page.meta":{fr:"Créez la carte digitale de votre entreprise sur Digital Icons. Vos stats évoluent en temps réel, vos cartes se jouent dans Icons Arena, et vous touchez 30% de royalties sur les reventes.",en:"Create your business digital card on Digital Icons. Your stats evolve in real time, your cards are played in Icons Arena, and you earn 30% royalties on resales."},"partner.become":{fr:"Devenir Partenaire",en:"Become a Partner"},"partner.transform":{fr:"Transformez votre entreprise en carte",en:"Transform your business into a card"},"partner.program":{fr:"Programme Partenaire",en:"Partner Program"},"partner.your.business":{fr:"Votre entreprise",en:"Your business"},"partner.becomes.card":{fr:"devient une carte",en:"becomes a card"},"partner.hero.text":{fr:"Votre score de performance définit les stats de vos cartes. Elles sont collectionnées, échangées et jouées par des milliers de joueurs dans Icons Arena.",en:"Your performance score defines your card stats. They are collected, traded and played by thousands of players in Icons Arena."},"partner.royalties":{fr:"30% de royalties",en:"30% royalties"},"partner.on.resale":{fr:"sur chaque revente P2P",en:"on each P2P resale"},"partner.become.btn":{fr:"Devenir partenaire",en:"Become a partner"},"partner.learn.more":{fr:"En savoir plus",en:"Learn more"},"partner.how":{fr:"Comment ça",en:"How it"},"partner.works":{fr:"marche",en:"works"},"partner.how.desc":{fr:"De votre inscription à votre présence dans le jeu, en 4 étapes",en:"From your registration to your presence in the game, in 4 steps"},"partner.step":{fr:"Ãtape",en:"Step"},"partner.step1":{fr:"Score de performance",en:"Performance score"},"partner.step1.desc":{fr:"Nous analysons votre entreprise : CA, innovation, RSE, stabilité... Votre score global détermine la puissance de base de vos cartes.",en:"We analyze your business: revenue, innovation, CSR, stability... Your global score determines the base power of your cards."},"partner.step2":{fr:"4 raretés + 1 Héros",en:"4 rarities + 1 Hero"},"partner.step2.desc":{fr:"Votre entreprise est déclinée en 4 raretés (Commune, Rare, Ãpique, Légendaire) avec des bonus de stats croissants, plus une carte Héros unique avec un effet de terrain.",en:"Your business comes in 4 rarities (Common, Rare, Epic, Legendary) with increasing stat bonuses, plus a unique Hero card with a field effect."},"partner.step3":{fr:"Stats dynamiques",en:"Dynamic stats"},"partner.step3.desc":{fr:"L'ATK et les PV de vos cartes évoluent en temps réel selon la performance de votre entreprise. Plus vous performez, plus vos cartes sont fortes.",en:"Your cards' ATK and HP evolve in real time based on your company's performance. The better you perform, the stronger your cards."},"partner.step4":{fr:"Jeu & Marché",en:"Game & Market"},"partner.step4.desc":{fr:"Vos cartes sont collectionnées, jouées dans Icons Arena et échangées sur le marché P2P. Vous touchez 30% de royalties sur chaque revente.",en:"Your cards are collected, played in Icons Arena and traded on the P2P market. You earn 30% royalties on each resale."},"partner.rarities.in":{fr:"Vos cartes en",en:"Your cards in"},"partner.4.rarities":{fr:"4 raretés",en:"4 rarities"},"partner.rarities.desc":{fr:"Chaque rareté a un bonus de stats et un prix boutique plus élevé",en:"Each rarity has higher stat bonuses and a higher shop price"},"partner.base.stats":{fr:"Stats de base",en:"Base stats"},"partner.field.effect":{fr:"Effet de terrain",en:"Field effect"},"partner.unique":{fr:"Unique",en:"Unique"},"partner.why.become":{fr:"Pourquoi devenir",en:"Why become a"},"partner.partner":{fr:"partenaire",en:"partner"},"partner.b1.title":{fr:"30% de royalties",en:"30% royalties"},"partner.b1.desc":{fr:"Sur chaque revente P2P de vos cartes. Revenus passifs récurrents.",en:"On each P2P resale of your cards. Recurring passive income."},"partner.b2.title":{fr:"Visibilité in-game",en:"In-game visibility"},"partner.b2.desc":{fr:"Votre marque est vue par tous les joueurs d'Icons Arena à chaque combat.",en:"Your brand is seen by all Icons Arena players in every battle."},"partner.b3.title":{fr:"Stats dynamiques",en:"Dynamic stats"},"partner.b3.desc":{fr:"Vos performances réelles influencent la puissance de vos cartes en temps réel.",en:"Your real performance influences the power of your cards in real time."},"partner.b4.title":{fr:"Présence dans le jeu",en:"In-game presence"},"partner.b4.desc":{fr:"Vos cartes sont jouées dans Icons Arena, le jeu de combat stratég
218ique.",en:"Your cards are played in Icons Arena, the strategic combat game."},"partner.b5.title":{fr:"Page entreprise",en:"Business page"},"partner.b5.desc":{fr:"Profil dédié avec vos données de performance, historique et actualités.",en:"Dedicated profile with your performance data, history and news."},"partner.b6.title":{fr:"Communauté engagée",en:"Engaged community"},"partner.b6.desc":{fr:"Les collectionneurs suivent vos performances et s'attachent à votre marque.",en:"Collectors follow your performance and become attached to your brand."},"partner.simulator":{fr:"Simulateur",en:"Simulator"},"partner.estimate":{fr:"Estimez vos",en:"Estimate your"},"partner.revenues":{fr:"revenus",en:"revenues"},"partner.avg.price":{fr:"Prix moyen par carte",en:"Average price per card"},"partner.cards.sold":{fr:"Cartes vendues / mois",en:"Cards sold / month"},"partner.resale.rate":{fr:"Taux de revente P2P",en:"P2P resale rate"},"partner.resale.rate.desc":{fr:"% de cartes revendues sur le marché secondaire",en:"% of cards resold on the secondary market"},"partner.avg.resale":{fr:"Prix moyen de revente",en:"Average resale price"},"partner.shop.volume":{fr:"Volume boutique / mois",en:"Shop volume / month"},"partner.platform.sales":{fr:"ventes plateforme",en:"platform sales"},"partner.resale.volume":{fr:"Volume reventes P2P",en:"P2P resale volume"},"partner.resales.at":{fr:"reventes à ",en:"resales at"},"partner.your.royalties":{fr:"Vos royalties (30%)",en:"Your royalties (30%)"},"partner.monthly.revenue":{fr:"/ mois estimé en royalties P2P",en:"/ month estimated P2P royalties"},"partner.contact.us":{fr:"Contactez-nous",en:"Contact us"},"partner.contact.desc2":{fr:"Remplissez le formulaire et notre équipe vous recontactera sous 48h.",en:"Fill out the form and our team will get back to you within 48 hours."},"partner.form.submitting":{fr:"Envoi en cours...",en:"Submitting..."},"partner.cards.at":{fr:"cartes à ",en:"cards at"},"arena.title":{fr:"Icons Arena - Jeu de cartes stratégique | Digital Icons",en:"Icons Arena - Strategic card game | Digital Icons"},"arena.meta":{fr:"Jouez à Icons Arena, le jeu de cartes stratégique. Combattez avec vos cartes, gérez votre Capital et devenez le meilleur.",en:"Play Icons Arena, the strategic card game. Battle with your cards, manage your Capital and become the best."},"arena.strategic":{fr:"Jeu de cartes stratégique",en:"Strategic card game"},"arena.hero.desc":{fr:"Combattez au tour par tour avec vos cartes d'entrepreneurs. Gérez votre Capital, activez vos effets et éliminez 3 cartes adverses pour remporter la victoire.",en:"Battle turn by turn with your entrepreneur cards. Manage your Capital, activate your effects and eliminate 3 opponent cards to win."},"arena.play.now":{fr:"Jouer maintenant",en:"Play now"},"arena.get.cards":{fr:"Obtenir des cartes",en:"Get cards"},"gamemode.title":{fr:"Choisir un mode - Icons Arena",en:"Choose a mode - Icons Arena"},"gamemode.meta":{fr:"Choisissez votre mode de jeu : Mode Classé ou Entraînement.",en:"Choose your game mode: Ranked or Training."},"gamemode.choose":{fr:"Choisissez votre",en:"Choose your"},"gamemode.mode":{fr:"mode",en:"mode"},"gamemode.subtitle":{fr:"Affrontez l'IA ou montez dans les classements",en:"Face the AI or climb the rankings"},"gamemode.ranked":{fr:"Mode Classé",en:"Ranked Mode"},"gamemode.ranked.desc":{fr:"Affrontez des joueurs et grimpez dans les classements",en:"Face players and climb the rankings"},"gamemode.ranked.seasons":{fr:"Saisons de 2 semaines",en:"2-week seasons"},"gamemode.ranked.rewards":{fr:"Récompenses exclusives",en:"Exclusive rewards"},"gamemode.ranked.enter":{fr:"Entrer en compétition",en:"Enter competition"},"gamemode.training":{fr:"Entraînement",en:"Training"},"gamemode.training.desc":{fr:"Perfectionnez votre stratégie contre l'IA",en:"Perfect your strategy against AI"},"gamemode.training.3diff":{fr:"3 niveaux de difficulté",en:"3 difficulty levels"},"gamemode.training.norisk":{fr:"Sans risque pour votre rang",en:"No risk to your rank"},"gamemode.training.start":{fr:"S'entraîner",en:"Start training"},"adbooster.title":{fr:"Boosters Gratuits",en:"Free Boosters"},"adbooster.desc":{fr:"Regardez des pubs pour des récompenses",en:"Watch ads for rewards"},"adbooster.progress":{fr:"Progression",en:"Progress"},"adbooster.ads":{fr:"pubs",en:"ads"},"adbooster.more.for.booster":{fr:"pour un booster gratuit",en:"for a free booster"},"adbooster.more":{fr:"Encore",en:"More"},"adbooster.ads.today":{fr:"Pubs aujourd'hui",en:"Ads today"},"adbooster.boosters.earned":{fr:"Boosters gagnés",en:"Boosters earned"},"adbooster.watching":{fr:"Publicité en cours...",en:"Watching ad..."},"adbooster.remaining":{fr:"restantes",en:"remaining"},"adbooster.wait":{fr:"Attendez",en:"Wait"},"adbooster.watch":{fr:"Regarder une pub",en:"Watch an ad"},"adbooster.info":{fr:"+5 pts mission par pub (x2 Premium) + 1 booster tous les",en:"+5 mission pts per ad (x2 Premium) + 1 booster every"},"adbooster.login":{fr:"Connectez-vous pour gagner des boosters gratuits",en:"Sign in to earn free boosters"},"adbooster.unlocked":{fr:"ð Booster gratuit débloqué !",en:"ð Free booster unlocked!"},"adbooster.unlocked.desc":{fr:"Ouvrez-le maintenant !",en:"Open it now!"},"adbooster.error":{fr:"Erreur lors de l'attribution du booster",en:"Error granting booster"},"cinematic.booster.won":{fr:"BOOSTER GAGNà !",en:"BOOSTER WON!"},"cinematic.booster.desc":{fr:"Vous avez débloqué un booster gratuit grâce aux publicités !",en:"You unlocked a free booster thanks to ads!"},"cinematic.open.now":{fr:"Ouvrir maintenant !",en:"Open now!"},"cinematic.later":{fr:"Plus tard",en:"Later"},"contact.title":{fr:"Contact - Digital Icons",en:"Contact - Digital Icons"},"contact.meta":{fr:"Contactez l'équipe Digital Icons. Questions, partenariats ou support, nous sommes là pour vous aider.",en:"Contact the Digital Icons team. Questions, partnerships or support, we are here to help."}
218,"contact.us":{fr:"Nous",en:"Contact"},"contact.word":{fr:"contacter",en:"us"},"contact.desc":{fr:"Une question ? Un partenariat ? Notre équipe vous répond sous 24-48h.",en:"A question? A partnership? Our team responds within 24-48 hours."},"contact.info":{fr:"Informations de contact",en:"Contact information"},"contact.address":{fr:"66000 Perpignan, France",en:"66000 Perpignan, France"},"contact.hours":{fr:"Lun-Ven: 9h-18h",en:"Mon-Fri: 9am-6pm"},"contact.name":{fr:"Nom complet",en:"Full name"},"contact.email":{fr:"Email",en:"Email"},"contact.subject":{fr:"Sujet",en:"Subject"},"contact.message":{fr:"Votre message",en:"Your message"},"contact.send":{fr:"Envoyer le message",en:"Send message"},"contact.sending":{fr:"Envoi en cours...",en:"Sending..."},"contact.success":{fr:"Message envoyé avec succès ! Nous vous répondrons sous 24-48h.",en:"Message sent successfully! We will respond within 24-48 hours."},"contact.send.form":{fr:"Envoyez-nous un message",en:"Send us a message"},"premium.page.title":{fr:"Premium - Digital Icons",en:"Premium - Digital Icons"},"premium.page.meta":{fr:"Devenez membre Premium et profitez de réductions, accès anticipé et tournois exclusifs. Soutenez le projet !",en:"Become a Premium member and enjoy discounts, early access and exclusive tournaments. Support the project!"},"premium.must.login":{fr:"Vous devez être connecté pour souscrire",en:"You must be logged in to subscribe"},"premium.error":{fr:"Erreur lors de la création de la session de paiement",en:"Error creating payment session"},"premium.already.member":{fr:"Vous êtes déjà Premium !",en:"You're already Premium!"},"premium.already.desc":{fr:"Merci de soutenir Digital Icons. Vous bénéficiez de tous les avantages Premium.",en:"Thank you for supporting Digital Icons. You enjoy all Premium benef
218its."},"premium.manage":{fr:"Gérer mon abonnement",en:"Manage my subscription"},"premium.become":{fr:"Devenez",en:"Become"},"premium.word":{fr:"Premium",en:"Premium"},"premium.description":{fr:"Soutenez le projet et débloquez des avantages exclusifs.",en:"Support the project and unlock exclusive benefits."},"premium.month":{fr:"/ mois",en:"/ month"},"premium.subscribe.btn":{fr:"S'abonner Premium",en:"Subscribe Premium"},"premium.subscribing":{fr:"Redirection...",en:"Redirecting..."},"premium.included":{fr:"Tout ce qui est inclus :",en:"Everything included:"},"notfound.title":{fr:"Page non trouvée",en:"Page not found"},"notfound.back":{fr:"Retour à l'accueil",en:"Return to Home"},"help.title":{fr:"Centre d'aide - Digital Icons",en:"Help Center - Digital Icons"},"help.meta":{fr:"Trouvez des réponses à vos questions sur Digital Icons.",en:"Find answers to your questions about Digital Icons."},"help.heading":{fr:"Centre",en:"Help"},"help.heading.highlight":{fr:"d'aide",en:"Center"},"help.subtitle":{fr:"Comment pouvons-nous vous aider aujourd'hui ?",en:"How can we help you today?"},"help.search.placeholder":{fr:"Rechercher une question...",en:"Search for a question..."},"help.live.chat":{fr:"Chat en direct",en:"Live Chat"},"help.live.chat.desc":{fr:"Parlez à un membre de notre équipe",en:"Talk to a team member"},"help.start.chat":{fr:"Démarrer le chat",en:"Start chat"},"help.email.desc":{fr:"[email protected]",en:"[email protected]"},"help.send.email":{fr:"Envoyer un email",en:"Send an email"},"help.documentation":{fr:"Documentation",en:"Documentation"},"help.documentation.desc":{fr:"Guides détaillés et tutoriels",en:"Detailed guides and tutorials"},"help.see.guides":{fr:"Voir les guides",en:"See guides"},"help.faq.title":{fr:"Questions fréquentes",en:"Frequently Asked Questions"},"help.no.results":{fr:"Aucun résultat pour",en:"No results for"},"help.cat.general":{fr:"Général",en:"General"},"help.cat.payments":{fr:"Achats & Paiements",en:"Purchases & Payments"},"help.cat.tech":{fr:"Technologie & Sécurité",en:"Technology & Security"},"help.cat.collection":{fr:"Collection & Ãchange",en:"Collection & Trading"},"help.cat.arena":{fr:"Icons Arena",en:"Icons Arena"},"help.cat.security":{fr:"Sécurité",en:"Security"},"help.q.what":{fr:"Qu'est-ce que Digital Icons ?",en:"What is Digital Icons?"},"help.a.what":{fr:"Digital Icons est une plateforme de cartes digitales à collectionner représentant des entreprises et entrepreneurs réels. Chaque carte est en édition limitée et numérotée. Leur valeur et leurs statistiques de jeu évoluent en fonction des performances réelles de l'entreprise.",en:"Digital Icons is a digital collectible card platform representing real businesses and entrepreneurs. Each card is limited edition and numbered. Their value and game statistics evolve based on the real performance of the company."},"help.q.create.account":{fr:"Comment créer un compte ?",en:"How do I create an account?"},"help.a.create.account":{fr:"Cliquez sur 'Créer un compte' dans le menu, entrez votre email et choisissez un mot de passe sécurisé. Vous recevrez un email de confirmation pour activer votre compte.",en:"Click 'Create an account' in the menu, enter your email and choose a secure password. You'll receive a confirmation email to activate your account."},"help.q.secure":{fr:"Les cartes sont-elles sécurisées ?",en:"Are the cards secure?"},"help.a.secure":{fr:"Oui ! Chaque carte Digital Icons est un actif numérique authentique, numéroté et certifié. Cela garantit leur unicité, leur rareté et votre propriété exclusive.",en:"Yes! Every Digital Icons card is an authentic, numbered and certified digital asset. This guarantees their uniqueness, rarity and your exclusive ownership."},"help.q.values.change":{fr:"Pourquoi les valeurs des cartes changent-elles ?",en:"Why do card values change?"},"help.a.values.change":{fr:"Les cartes d'entreprises privées ont des valeurs dynamiques : leur prix et leurs statistiques (ATK/PV) évoluent selon l'offre et la demande du marché, ainsi que les performances réelles de l'entreprise.",en:"Private company cards have dynamic values: their price and statistics (ATK/HP) evolve based on market supply and demand, as well as actual company performance."},"help.q.payment.methods":{fr:"Quels moyens de paiement acceptez-vous ?",en:"What payment methods do you accept?"},"help.a.payment.methods":{fr:"Nous acceptons les cartes bancaires (Visa, Mastercard, American Express) via notre système de paiement sécurisé Stripe.",en:"We accept bank cards (Visa, Mastercard, American Express) via our secure Stripe payment system."},"help.q.refund":{fr:"Puis-je obtenir un remboursement ?",en:"Can I get a refund?"},"help.a.refund":{fr:"Les achats de cartes digitales sont définitifs et non remboursables. Cependant, en cas de problème technique, contactez notre support.",en:"Digital card purchases are final and n
218on-refundable. However, in case of technical issues, contact our support."},"help.q.promo":{fr:"Comment utiliser un code promo ?",en:"How do I use a promo code?"},"help.a.promo":{fr:"Lors du paiement, entrez votre code promo dans le champ dédié. La réduction sera automatiquement appliquée.",en:"During checkout, enter your promo code in the designated field. The discount will be automatically applied."},"help.q.price.works":{fr:"Comment fonctionne le prix des cartes ?",en:"How does card pricing work?"},"help.a.price.works":{fr:"Le prix initial d'une carte est déterminé par sa rareté. Ensuite, pour les cartes d'entreprises privées, le prix évolue dynamiquement.",en:"The initial price of a card is determined by its rarity. Then, for private company cards, the price evolves dynamically."},"help.q.cards.secure":{fr:"Mes cartes sont-elles sécurisées ?",en:"Are my cards secure?"},"help.a.cards.secure":{fr:"Oui, chaque carte possède un numéro de série unique et un numéro d'édition. Notre système de certification numérique garantit l'authenticité.",en:"Yes, each card has a unique serial number and edition number. Our digital certification system guarantees authenticity."},"help.q.cards.linked":{fr:"Mes cartes sont-elles liées à mon compte ?",en:"Are my cards linked to my account?"},"help.a.cards.linked":{fr:"Oui, toutes vos cartes sont liées à votre compte Digital Icons.",en:"Yes, all your cards are linked to your Digital Icons account."},"help.q.see.collection":{fr:"Comment voir ma collection ?",en:"How do I view my collection?"},"help.a.see.collection":{fr:"Connectez-vous et cliquez sur 'Ma Collection' dans le menu.",en:"Sign in and click 'My Collection' in the menu."},"help.q.resell":{fr:"Comment revendre une carte ?",en:"How do I resell a card?"},"help.a.resell":{fr:"Depuis votre collection, cliquez sur une carte puis sur 'Mettre en vente'.",en:"From your collection, click on a card then 'List for sale'."},"help.q.rarity.system":{fr:"Comment fonctionne le système de rareté ?",en:"How does the rarity system work?"},"help.a.rarity.system":{fr:"Les cartes ont 5 niveaux de rareté : Commune, Rare, Ãpique, Légendaire et Mythique.",en:"Cards have 5 rarity levels: Common, Rare, Epic, Legendary and Mythic."},"help.q.arena.what":{fr:"Qu'est-ce que Icons Arena ?",en:"What is Icons Arena?"},"help.a.arena.what":{fr:"Icons Arena est notre jeu de cartes stratégique où vou
218s affrontez d'autres joueurs avec vos cartes Digital Icons.",en:"Icons Arena is our strategic card game where you battle other players with your Digital Icons cards."},"help.q.arena.when":{fr:"Quand Icons Arena sera-t-il disponible ?",en:"When will Icons Arena be available?"},"help.a.arena.when":{fr:"Icons Arena est actuellement en développement. Les premiers utilisateurs auront un accès prioritaire.",en:"Icons Arena is currently in development. Early users will have priority access."},"help.q.arena.playable":{fr:"Mes cartes seront-elles utilisables dans le jeu ?",en:"Will my cards be usable in the game?"},"help.a.arena.playable":{fr:"Oui ! Toutes les cartes que vous possédez seront automatiquement disponibles dans Icons Arena.",en:"Yes! All cards you own will be automatically available in Icons Arena."},"help.q.account.secure":{fr:"Mes cartes sont-elles en sécurité ?",en:"Are my cards safe?"},"help.a.account.secure":{fr:"Absolument. Vos cartes sont sécurisées par notre système de certification numérique.",en:"Absolutely. Your cards are secured by our digital certification system."},"help.q.protect.account":{fr:"Comment protéger mon compte ?",en:"How do I protect my account?"},"help.a.protect.account":{fr:"Utilisez un mot de passe fort et unique, ne le partagez jamais.",en:"Use a strong and unique password, never share it."},"blog.title":{fr:"Blog Digital Icons - Actualités, Guides et Stratégies",en:"Digital Icons Blog - News, Guides and Strategies"},"blog.meta":{fr:"Découvrez les dernières actualités Digital Icons.",en:"Discover the latest Digital Icons news."},"blog.heading":{fr:"Blog",en:"Blog"},"blog.subtitle":{fr:"Guides, stratégies et actualités pour les collectionneurs et joueurs",en:"Guides, strategies and news for collectors and players"},"blog.mobile.subtitle":{fr:"Actualités & Guides",en:"News & Guides"},"blog.search.placeholder":{fr:"Rechercher un article...",en:"Search for an article..."},"blog.no.results":{fr:"Aucun article trouvé",en:"No articles found"},"blog.no.results.search":{fr:"Essayez une autre recherche",en:"Try a different search"},"blog.no.results.soon":{fr:"Revenez bientôt pour découvrir nos contenus !",en:"Come back soon to discover our content!"},"blog.read":{fr:"Lire",en:"Read"},"blog.recent":{fr:"Récent",en:"Recent"},"blog.cat.all":{fr:"Tous",en:"All"},"blog.cat.guide":{fr:"Guide",en:"Guide"},"blog.cat.gameplay":{fr:"Gameplay",en:"Gameplay"},"blog.cat.collection":{fr:"Collection",en:"Collection"},"blog.cat.news":{fr:"Actualités",en:"News"},"blog.cat.tech":{fr:"Technologie",en:"Technology"},"blog.cat.community":{fr:"Communauté",en:"Community"},"blog.cat.blockchain":{fr:"Blockchain",en:"Blockchain"},"dashboard.myspace":{fr:"Mon espace",en:"My space"},"dashboard.myspace.heading":{fr:"Mon",en:"My"},"dashboard.myspace.highlight":{fr:"Espace",en:"Space"},"dashboard.myspace.desc":{fr:"Suivez vos performances et gérez votre portefeuille",en:"Track your performance and manage your portfolio"},"dashboard.my.badges":{fr:"Mes badges",en:"My badges"},"dashboard.my.profile":{fr:"Mon Profil",en:"My Profile"},"dashboard.board":{fr:"Tableau de bord",en:"Dashboard"},"dashboard.error.load":{fr:"Erreur lors du chargement des données",en:"Error loading data"},"dashboard.avatar.success":{fr:"Avatar mis à jour avec succès",en:"Avatar updated successfully"},"dashboard.avatar.error":{fr:"Erreur lors du téléchargement de l'avatar",en:"Error uploading avatar"},"dashboard.avatar.select.image":{fr:"Veuillez sélectionner une image",en:"Please select an image"},"dashboard.avatar.too.large":{fr:"L'image ne doit pas dépasser 2 Mo",en:"Image must not exceed 2 MB"},"dashboard.profile.success":{fr:"Profil mis à jour avec succès",en:"Profile updated successfully"},"dashboard.profile.error":{fr:"Erreur lors de la mise à jour du profil",en:"Error updating profile"},"dashboard.time.7d":{fr:"7 jours",en:"7 days"},"dashboard.time.30d":{fr:"30 jours",en:"30 days"},"dashboard.time.90d":{fr:"90 jours",en:"90 days"},"dashboard.time.all":{fr:"Tout",en:"All"},"dashboard.cat.all":{fr:"Toutes catégories",en:"All categories"},"dashboard.cat.tech":{fr:"Technologie",en:"Technology"},"dashboard.cat.finance":{fr:"Finance",en:"Finance"},"dashboard.cat.retail":{fr:"Commerce",en:"Retail"},"dashboard.cat.media":{fr:"Média",en:"Media"},"dashboard.cat.health":{fr:"Santé",en:"Health"},"dashboard.cat.energy":{fr:"Ãnergie",en:"Energy"},"dashboard.page.title":{fr:"Mon Espace - Digital Icons",en:"My Space - Digital Icons"},"dashboard.page.meta":{fr:"Suivez vos performances et gérez votre collection de cartes Digital Icons",en:"Track your performance and manage your Digital Icons card collection"},"dashboard.vip.member":{fr:"Membre VIP Premium",en:"VIP Premium Member"},"dashboard.refresh":{fr:"Actualiser mon statut",en:"Refresh my status"},"dashboard.status.updated":{fr:"Statut mis à jour",en:"Status updated"},"missions.title":{fr:"Missions",en:"Missions"},"missions.desc":{fr:"Gagnez des points et échangez-les contre des récompenses",en:"Earn points and exchange them for rewards"},"missions.stats":{fr:"Mes Statistiques",en:"My Statistics"},"missions.points":{fr:"Points",en:"Points"},"missions.victories":{fr:"Victoires",en:"Victories"},"missions.current.streak":{fr:"Série actuelle",en:"Current streak"}
218,"missions.best.streak":{fr:"Record série",en:"Best streak"},"missions.cards":{fr:"Cartes",en:"Cards"},"missions.boosters":{fr:"Boosters",en:"Boosters"},"missions.combats":{fr:"Combats",en:"Battles"},"missions.shares":{fr:"Partages",en:"Shares"},"missions.daily":{fr:"Quotidiennes",en:"Daily"},"missions.daily.short":{fr:"Jour",en:"Daily"},"missions.longterm":{fr:"Long terme",en:"Long term"},"missions.longterm.short":{fr:"Objectifs",en:"Goals"},"missions.rewards":{fr:"Récompenses",en:"Rewards"},"missions.rewards.short":{fr:"Shop",en:"Shop"},"missions.claim":{fr:"Réclamer",en:"Claim"},"missions.completed":{fr:"Complétée",en:"Completed"},"missions.locked":{fr:"Verrouillée",en:"Locked"},"missions.hidden":{fr:"Cachée",en:"Hidden"},"missions.unlock.prev":{fr:"Complétez la mission précédente pour débloquer",en:"Complete the previous mission to unlock"},"missions.exchange":{fr:"Ãchanger",en:"Exchange"},"missions.difficulty.easy":{fr:"Facile",en:"Easy"},"missions.difficulty.medium":{fr:"Moyen",en:"Medium"},"missions.difficulty.hard":{fr:"Difficile",en:"Hard"},"missions.difficulty.legendary":{fr:"Légendaire",en:"Legendary"},"missions.cat.cards":{fr:"ð Cartes",en:"ð Cards"},"missions.cat.boosters":{fr:"ð¦ Boosters",en:"ð¦ Boosters"},"missions.cat.combat.played":{fr:"âï¸ Combats joués",en:"âï¸ Battles played"},"missions.cat.combat.won":{fr:"ð Victoires",en:"ð Victories"},"missions.cat.shares":{fr:"ð¤ Partages",en:"ð¤ Shares"},"missions.cat.logins":{fr:"ð¥ Connexions consécutives",en:"ð¥ Consecutive logins"},"missions.cat.trading":{fr:"ð° Trading & Marché",en:"ð° Trading & Market"},"leagues.page.title":{fr:"Compétitions - Icons Arena | Digital Icons",en:"Competitions - Icons Arena | Digital Icons"},"leagues.page.meta":{fr:"Participez aux leagues d'Icons Arena. Affrontez d'autres joueurs et gagnez des récompenses.",en:"Participate in Icons Arena leagues. Battle other players and win rewards."},"leagues.heading":{fr:"Compétitions",en:"Competitions"},"leagues.desc.page":{fr:"Affrontez les meilleurs joueurs et gagnez des récompenses",en:"Battle the best players and win rewards"},"leagues.tab.ranking":{fr:"Classement",en:"Ranking"},"leagues.cash.prize.active":{fr:"CASH PRIZE ACTIF",en:"CASH PRIZE ACTIVE"},"leagues.time.remaining":{fr:"restants",en:"remaining"},"leagues.rewards.label":{fr:"Récompenses",en:"Rewards"},"leagues.rewards.tbd":{fr:"Récompenses à définir...",en:"Rewards to be defined..."},"settings.sound":{fr:"Son",en:"Sound"},"settings.select.image":{fr:"Veuillez sélectionner une image",en:"Please select an image"},"settings.image.too.large":{fr:"L'image ne doit pas dépasser 2 Mo",en:"Image must not exceed 2 MB"},"settings.avatar.success":{fr:"Avatar mis à jour avec succès",en:"Avatar updated successfully"},"settings.avatar.error":{fr:"Erreur lors du téléchargement de l'avatar",en:"Error uploading avatar"},"settings.profile.success":{fr:"Profil mis à jour avec succès",en:"Profile updated successfully"},"settings.profile.error":{fr:"Erreur lors de la mise à jour du profil",en:"Error updating profile"},"settings.unknown.card":{fr:"Carte inconnue",en:"Unknown card"},"settings.purchase":{fr:"Achat",en:"Purchase"},"settings.sale":{fr:"Vente",en:"Sale"},"settings.amount":{fr:"Montant",en:"Amount"},"settings.commission":{fr:"Commission",en:"Commission"},"settings.received":{fr:"Reçu",en:"Received"},"settings.no.transactions":{fr:"Aucune transaction pour le moment",en:"No transactions yet"},"settings.no.transactions.desc":{fr:"Vos achats et ventes apparaîtront ici",en:"Your purchases and sales will appear here"},"settings.security.title":{fr:"Sécurité du compte",en:"Account Security"},"settings.reset.password":{fr:"Réinitialiser le mot de passe",en:"Reset Password"},"settings.reset.password.desc":{fr:"Envoyez un lien de réinitialisation à votre email",en:"Send a reset link to your email"},"settings.reset.btn":{fr:"Envoyer le lien",en:"Send link"},"settings.reset.sending":{fr:"Envoi en cours...",en:"Sending..."},"settings.delete.title":{fr:"Zone dangereuse",en:"Danger Zone"},"settings.delete.desc":{fr:"La suppression de votre compte est irréversible",en:"Deleting your account is irreversible"},"settings.delete.btn":{fr:"Supprimer mon compte",en:"Delete my account"},"settings.notifs.email":{fr:"Notifications email",en:"Email Notifications"},"settings.notifs.email.desc":{fr:"Recevez les actualités et offres par email",en:"Receive news and offers by email"},"settings.notifs.new.cards":{fr:"Nouvelles cartes",en:"New cards"},"settings.notifs.new.cards.desc":{fr:"Notifications lors de nouvelles s
218orties",en:"Notifications for new releases"},"settings.notifs.market":{fr:"Ãvolutions du marché",en:"Market changes"},"settings.notifs.market.desc":{fr:"Alertes sur les prix de vos cartes",en:"Price alerts for your cards"},"settings.notifs.stripe":{fr:"Compte vendeur (Stripe)",en:"Seller account (Stripe)"},"settings.notifs.stripe.desc":{fr:"Recevez vos paiements directement",en:"Receive your payments directly"},"settings.notifs.stripe.connected":{fr:"Connecté",en:"Connected"},"settings.notifs.stripe.not.connected":{fr:"Non connecté",en:"Not connected"},"settings.notifs.stripe.setup":{fr:"Configurer Stripe Connect",en:"Set up Stripe Connect"},"settings.notifs.stripe.manage":{fr:"Gérer mon compte Stripe",en:"Manage my Stripe account"},"settings.notifs.premium":{fr:"Abonnement Premium",en:"Premium Subscription"},"settings.notifs.premium.active":{fr:"Actif",en:"Active"},"settings.notifs.premium.inactive":{fr:"Inactif",en:"Inactive"},"settings.notifs.premium.manage":{fr:"Gérer mon abonnement",en:"Manage my subscription"},"settings.notifs.premium.subscribe":{fr:"Devenir Premium",en:"Become Premium"},"contact.subject.support":{fr:"Support technique",en:"Technical Support"},"contact.subject.payment":{fr:"Paiement & Facturation",en:"Payment & Billing"},"contact.subject.partnership":{fr:"Partenariat",en:"Partnership"},"contact.subject.press":{fr:"Presse & Média",en:"Press & Media"},"contact.subject.other":{fr:"Autre",en:"Other"},"contact.subject.select":{fr:"Sélectionnez un sujet",en:"Select a subject"},"contact.message.placeholder":{fr:"Décrivez votre demande en détail...",en:"Describe your request in detail..."},"contact.name.placeholder":{fr:"Votre nom",en:"Your name"},"contact.address.label":{fr:"Adresse",en:"Address"},"contact.hours.label":{fr:"Horaires",en:"Hours"},"contact.quick.response":{fr:"Réponse rapide",en:"Quick Response"},"contact.quick.response.desc":{fr:"Nous nous engageons à répondre à toutes les demandes sous 24-48 heures ouvrées.",en:"We commit to responding to all requests within 24-48 business hours."},"contact.see.help":{fr:"Voir le Centre d'aide",en:"See the Help Center"},"contact.partnerships":{fr:"Partenariats",en:"Partnerships"},"contact.partnerships.desc":{fr:"Vous êtes une entreprise ou un influenceur ? Nous sommes toujours à la recherche de nouveaux partenaires.",en:"Are you a business or influencer? We're always looking for new partners."},"shop.power.desc":{fr:"ðª Puissance â",en:"ðª Power â"},"shop.power.asc":{fr:"ðª Puissance â",en:"ðª Power â"},"shop.type.enterprises":{fr:"ð¢ Entreprises",en:"ð¢ Enterprises"},"shop.type.heroes":{fr:"𦸠Héros",en:"𦸠Heroes"},"shop.type.tokens":{fr:"⨠Jetons",en:"⨠Tokens"},"shop.payment.error":{fr:"Erreur lors de la création du paiement",en:"Error creating payment"},"collection.value.short":{fr:"Valeur",en:"Value"},"collection.perf.short":{fr:"Perf.",en:"Perf."},"collection.cards.short":{fr:"Cartes",en:"Cards"},"collection.tab.listed.short":{fr:"Vente",en:"Sale"},"premium.launch.offer":{fr:"Offre de lancement",en:"Launch offer"},"premium.subscription":{fr:"Abonnement Premium",en:"Premium Subscription"},"premium.all.benefits":{fr:"Tous les avantages pour seulement",en:"All benefits for only"},"premium.become.btn":{fr:"Devenir Premium",en:"Become Premium"},"premium.no.commitment":{fr:"Sans engagement ⢠Annulable à tout moment",en:"No commitment ⢠Cancel anytime"},"common.save":{fr:"Enregistrer",en:"Save"},"common.delete":{fr:"Supprimer",en:"Delete"},"common.edit":{fr:"Modifier",en:"Edit"},"common.collection":{fr:"Collection",en:"Collection"},"mobile.welcome":{fr:"Bienvenue",en:"Welcome"},"mobile.vip.player":{fr:"Joueur VIP",en:"VIP Player"},"mobile.player":{fr:"Joueur",en:"Player"},"mobile.new.player":{fr:"Nouveau joueur",en:"New Player"},"mobile.season":{fr:"SAISON 1",en:"SEASON 1"},"mobile.play.now":{fr:"Jouez maintenant",en:"Play now"},"mobile.free.booster":{fr:"Booster GRATUIT",en:"FREE Booster"},"mobile.free.booster.desc":{fr:"5+ cartes ⢠Toutes raretés possibles",en:"5+ cards ⢠All rarities possible"},"mobile.online.battles":{fr:"Batailles en ligne",en:"Online battles"},"mobile.shop":{fr:"Boutique",en:"Shop"},"mobile.cards.count":{fr:"100+ cartes",en:"100+ cards"},"mobile.free.per.day":{fr:"1 gratuit/jour",en:"1 free/day"},"mobile.market":{fr:"Marché",en:"Market"},"mobile.buy.sell":{fr:"Acheter/Vendre",en:"Buy/Sell"},"mobile.become.vip":{fr:"Devenir VIP",en:"Become VIP"},"mobile.vip.price":{fr:"4,99â¬/mois",en:"â¬4.99/month"},"mobile.b2b.space":{fr:"Espace",en:"Space"},"mobile.b2b.enterprise":{fr:"Entreprise",en:"Business"},"mobile.b2b.partner":{fr:"PARTENAIRE",en:"PARTNER"},"mobile.b2b.create.title":{fr:"Créez votre",en:"Create your"},"mobile.b2b.create.highlight":{fr:"carte entreprise",en:"business card"},"mobile.b2b.create.subtitle":{fr:"Visibilité ⢠Gamification ⢠Innovation",en:"Visibility ⢠Gamification ⢠Innovation"},"mobile.b2b.become.partner":{fr:"Devenir partenaire",en:"Become a partner"},"mobile.b2b.create.card":{fr:"Créer ma carte",en:"Create my card"},"mobile.b2b.our.offers":{fr:"Nos offres",en:"Our offers"},"featured.trending":{fr:"Tendances du moment",en:"Trending now"},"featured.popular":{fr:"Populaires",en:"Popular"},"featured.cards.title":{fr:"Cartes",en:"Cards"},"featured.desc":{fr:"Les cartes d'entrepreneurs les plus demandées â éditions limitées",en:"The most in-demand entrepreneur cards â limited editions"},"featured.view.all":{fr:"Voir tout",en:"View all"},"featured.limited.editions":{fr:"Ãditions limitées",en:"Limited editions"},"featured.early.bonus":{fr:"Bonus early-adopter dans le jeu",en:"Early-adopter in-game bonus"},"featured.dynamic.stats":{fr:"Stats dynamiques liées aux performances réelles",en:"Dynamic stats linked to real performance"},"featured.buy":{fr:"Acheter",en:"Buy"},"featured.buy.tooltip":{fr:"Acheter cette carte maintenant",en:"Buy this card now"},"featured.explore.shop":{fr:"Explorer la Boutique",en:"Explore the Shop"},"featured.secure.payment":{fr:"Paiement sécurisé par Stripe ⢠Carte bancaire, Apple Pay, Google Pay",en:"Secure payment by Stripe ⢠Credit card, Apple Pay, Google Pay"},"featured.login.title":{fr:"Connexion requise",en:"Login required"},"featured.login.desc":{fr:"Connectez-vous ou créez un compte pour acheter des cartes.",en:"Sign in or create an account to buy cards."},"featured.payment.error":{fr:"Erreur lors de la création du paiement",en:"Error creating payment"},"hero.collect.play.win":{fr:"Collectionnez ⢠Jouez ⢠Gagnez",en:"Collect ⢠Play ⢠Win"},"cta.join":{fr:"Rejoignez l'aventure",en:"Join the adventure"},"cta.ready":{fr:"Prêt à ",en:"Ready to"},"cta.collect":{fr:"collectionner",en:"collect"},"cta.desc":{fr:"Commencez votre collection gratuitement avec un booster offert chaque jour. Rejoignez une communauté de passionnés et découvrez l'univers Digital Icons.",en:"Start your collection for free with a daily booster. Join a community of enthusiasts and discover the Digital Icons universe."},"cta.create.account":{fr:"Créer mon compte",en:"Create my account"},"cta.learn.more":{fr:"En savoir plus",en:"Learn more"},"features.why":{fr:"Pourquoi",en:"Why"},"features.desc":{fr:"Plus qu'une simple boutique â un écosystème complet reliant cartes à collectionner et gameplay compétitif.",en:"More than a shop â a complete ecosystem linking collectible cards and competitive gameplay."},"features.real.values":{fr:"Valeurs liées au réel",en:"Real-world values"},"features.real.values.desc":{fr:"Chaque carte représente une entreprise réelle. Sa valeur et ses stats évoluent selon les performances de l'entreprise.",en:"Each card represents a real business. Its value and stats evolve based on the company's performance."},"features.dynamic.stats":{fr:"Stats dynamiques in-game",en:"Dynamic in-game stats"},"features.dynamic.stats.desc":{fr:"Les performances de vos cartes dans Icons Arena évoluent en temps réel selon les résultats des entreprises.",en:"Your cards' performance in Icons Arena evolves in real time based on company results."},"features.real.companies":{fr:"Entreprises Réelles",en:"Real Companies"},"features.real.companies.desc":{fr:"Collectionnez des cartes représentant de vraies entreprises du monde entier et suivez leurs performances.",en:"Collect cards representing real companies worldwide and track their performance."},"features.secure.ownership":{fr:"Propriété Sécurisée",en:"Secure Ownership"},"features.secure.ownership.desc":{fr:"Chaque carte vous appartient. Ãchangez en toute confiance sur notre plateforme sécurisée.",en:"Every card is yours. Trade with confidence on our secure platform."},"features.realtime.sync":{fr:"Synchronisation Temps Réel",en:"Real-time Sync"},"features.realtime.sync.desc":{fr:"Les stats des cartes se mettent à jour automatiquement selon les actualités des entreprises.",en:"Card stats update automatically based on company news."},"features.active.community":{fr:"Communauté Active",en:"Active Community"},"features.active.community.desc":{fr:"Rejoignez des milliers de collectionneurs et joueurs dans l'écosystème Digital Icons.",en:"Join thousands of collectors and players in the Digital Icons ecosystem."},"games.universe":{fr:"Univers de jeux Digital Icons",en:"Digital Icons game universe"},"games.play.with":{fr:"Jouez avec vos",en:"Play with your"},"games.cards":{fr:"Cartes",en:"Cards"},"games.desc":{fr:"Vos cartes ne sont pas que des objets de collection. Utilisez-les dans nos jeux exclusifs et affrontez des joueurs du monde entier.",en:"Your cards aren't just collectibles. Use them in our exclusive games and battle players worldwide."}
218,"games.arena.desc":{fr:"Le jeu de cartes stratégique ultime. Affrontez d'autres joueurs avec vos cartes d'entrepreneurs dans des batailles épiques.",en:"The ultimate strategic card game. Battle other players with your entrepreneur cards in epic battles."},"games.world.ranking":{fr:"Classement mondial",en:"World ranking"},"games.weekly.tournaments":{fr:"Tournois hebdomadaires",en:"Weekly tournaments"},"games.real.cashprizes":{fr:"Cashprizes en argent réel",en:"Real money cashprizes"},"games.tournaments":{fr:"Tournois",en:"Tournaments"},"games.notification.activated":{fr:"Notification activée â",en:"Notification activated â"},"games.notify.me":{fr:"Me notifier",en:"Notify me"},"games.learn.more":{fr:"En savoir plus",en:"Learn more"},"games.notified.toast":{fr:"ð® Vous serez notifié dès la sortie du jeu !",en:"ð® You will be notified when the game launches!"},"games.new.modes":{fr:"Nouveaux modes à venir...",en:"New modes coming..."},"games.new.modes.desc":{fr:"De nouveaux modes de jeu arrivent bientôt dans Icons Arena. Restez connectés !",en:"New game modes are coming soon to Icons Arena. Stay tuned!"},"games.buy.cards.cta":{fr:"Achetez des cartes dès maintenant pour être prêt au lancement des jeux",en:"Buy cards now to be ready when games launch"},"games.explore.shop":{fr:"Explorer la Boutique",en:"Explore the Shop"},"games.available":{fr:"Disponible",en:"Available"},"games.beta":{fr:"Bêta",en:"Beta"},"premium.banner.1p.p2p":{fr:"1% P2P",en:"1% P2P"},"premium.banner.15.shop":{fr:"-15% shop",en:"-15% shop"},"premium.banner.early":{fr:"Early access",en:"Early access"},"premium.banner.tournaments":{fr:"Tournois",en:"Tournaments"}},ba=f.createContext(void 0),Yr="digital_icons_language",Qi=({children:e})=>{const[t,r]=f.useState("fr");f.useEffect(()=>{const o=localStorage.getItem(Yr);(o==="fr"||o==="en")&&r(o)},[]);const n=o=>{r(o),localStorage.setItem(Yr,o)},a=o=>{const l=Ji[o];return l&&(l[t]||l.fr)||o};return s.jsx(ba.Provider,{value:{language:t,setLanguage:n,t:a},children:e})},Mt=()=>{const e=f.useContext(ba);if(e===void 0)throw new Error("useLanguage must be used within a LanguageProvider");return e},ya=f.createContext(null),Su=()=>{const e=f.useContext(ya);if(!e)throw new Error("useNotifications must be used within NotificationProvider");return e},Xi=({children:e})=>{const t=ga();return s.jsx(ya.Provider,{value:{unreadCount:t.unreadCount,addNotification:t.addNotification},children:e})},Zi={reward:Gr,event:sr,new_card:Ko,new_token:Zo,feature:ta,sale:ar,news:Go,game:Je,promo:qo,collection:ar,mission_claimable:Gr,system:pt},el={reward:"text-amber-400",event:"text-purple-400",new_card:"text-blue-400",new_token:"text-emerald-400",feature:"text-primary",sale:"text-green-400",news:"text-blue-400",game:"text-accent",promo:"text-amber-500",collection:"text-primary",mission_claimable:"text-amber-400",system:"text-muted-foreground"};function Jr(e,t){const r=new Date(e),a=new Date().getTime()-r.getTime(),o=Math.floor(a/6e4),l=Math.floor(a/36e5),i=Math.floor(a/864e5);return t==="en"?o<1?"Just now":o<60?`${o} min ago`:l<24?`${l}h ago`:i<7?`${i}d ago`:r.toLocaleDateString("en-US"):o<1?"à l'instant":o<60?`Il y a ${o} min`:l<24?`Il y a ${l}h`:i<7?`Il y a ${i}j`:r.toLocaleDateString("fr-FR")}function tl(e,t){const r=`notif.type.${e}`,n=t(r);return n!==r?n:t("notif.type.announcement")}const va=f.memo(()=>{const e=ga(),{t,language:r}=Mt(),[n,a]=f.useState(!1),[o,l]=f.useState("all"),i=f.useCallback(p=>Zi[p]||pt,[]),u=f.useCallback(p=>el[p]||"text-muted-foreground",[]),c=f.useCallback(p=>{e.markRead(p.id),p.link&&(window.location.href=p.link)},[e]),m=f.useCallback(p=>{e.markAnnouncementRead(p.id),p.link&&(window.location.href=p.link)},[e]);return s.jsxs("div",{className:"relative",children:[s.jsxs(lr,{children:[s.jsx(cr,{asChild:!0,children:s.jsxs(ce,{variant:"ghost",size:"icon",onClick:()=>a(!n),className:"relative",children:[s.jsx(pt,{className:"w-5 h-5"}),e.unreadCount>0&&s.jsx("span",{className:"absolute -top-1 -right-1 w-5 h-5 rounded-full bg-destructive text-destructive-foreground text-xs flex items-center justify-center font-bold animate-pulse",children:e.unreadCount>9?"9+":e.unreadCount})]})}),s.jsx(St,{children:s.jsxs("p",{children:[t("notif.title"),e.unreadCount>0?` (${e.unreadCount} ${t("notif.unread")})`:""]})})]}),n&&Bn.createPortal(s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-[9998] bg-black/60 backdrop-blur-sm",onClick:()=>a(!1)}),s.jsxs("div",{className:"fixed inset-x-0 top-0 bottom-0 z-[9999] sm:fixed sm:inset-auto sm:right-4 sm:top-16 w-full sm:w-80 md:w-96 sm:max-h-[70vh] overflow-hidden sm:rou
218nded-xl bg-card border-b sm:border border-border shadow-2xl animate-fade-in-up flex flex-col",children:[s.jsxs("div",{className:"p-3 border-b border-border flex-shrink-0",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("h3",{className:"font-display font-bold text-foreground text-sm",children:t("notif.title")}),s.jsxs("div",{className:"flex items-center gap-1",children:[e.unreadCount>0&&s.jsxs(ce,{variant:"ghost",size:"sm",onClick:e.markAllRead,className:"text-xs h-7",children:[s.jsx(Eo,{className:"w-3 h-3 mr-1"}),t("notif.all.read")]}),s.jsx(ce,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>a(!1),children:s.jsx(Xe,{className:"w-4 h-4"})})]})]}),s.jsxs("div",{className:"flex gap-1",children:[s.jsxs("button",{onClick:()=>l("all"),className:`flex-1 text-xs py-1.5 rounded-lg font-medium transition-colors ${o==="all"?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-muted"}`,children:[t("notif.tab.all")," (",e.notifications.filter(p=>!p.is_read).length,")"]}),s.jsxs("button",{onClick:()=>l("announcements"),className:`flex-1 text-xs py-1.5 rounded-lg font-medium transition-colors ${o==="announcements"?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-muted"}`,children:[t("notif.tab.announcements")," (",e.unreadAnnouncements.length,")"]})]})]}),s.jsxs("div",{className:"flex-1 overflow-y-auto",children:[o==="all"&&s.jsx(s.Fragment,{children:e.notifications.length===0?s.jsxs("div",{className:"p-8 text-center text-muted-foreground",children:[s.jsx(pt,{className:"w-8 h-8 mx-auto mb-2 opacity-50"}),s.jsx("p",{className:"text-sm",children:t("notif.empty")})]}):e.notifications.slice(0,20).map(p=>{const h=i(p.type);return s.jsx("div",{className:`p-3 border-b border-border hover:bg-secondary/50 transition-colors cursor-pointer ${p.is_read?"":"bg-primary/5"}`,onClick:()=>c(p),children:s.jsxs("div",{className:"flex gap-2.5",children:[s.jsx("div",{className:`flex-shrink-0 w-8 h-8 rounded-lg bg-muted/50 flex items-center justify-center ${u(p.type)}`,children:p.icon?s.jsx("span",{className:"text-base",children:p.icon}):s.jsx(h,{className:"w-4 h-4"})}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsx("p",{className:`font-medium text-xs ${p.is_read?"text-muted-foreground":"text-foreground"}`,children:p.title}),s.jsx(ce,{variant:"ghost",size:"icon",className:"w-5 h-5 flex-shrink-0",onClick:d=>{d.stopPropagation(),e.deleteNotification(p.id)},children:s.jsx(Xe,{className:"w-3 h-3"})})]}),s.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5 line-clamp-2",children:p.message}),s.jsx("p",{className:"text-[10px] text-muted-foreground/50 mt-1",children:Jr(p.created_at,r)})]})]})},p.id)})}),o==="announcements"&&s.jsx(s.Fragment,{children:e.announcements.length===0?s.jsxs("div",{className:"p-8 text-center text-muted-foreground",children:[s.jsx(ta,{className:"w-8 h-8 mx-auto mb-2 opacity-50"}),s.jsx("p",{className:"text-sm",children:t("notif.empty.announcements")})]}):e.announcements.map(p=>{const h=e.unreadAnnouncements.every(T=>T.id!==p.id),d=i(p.type);return s.jsx("div",{className:`p-3 border-b border-border hover:bg-secondary/50 transition-colors cursor-pointer ${h?"":"bg-primary/5"}`,onClick:()=>m(p),children:s.jsxs("div",{className:"flex gap-2.5",children:[s.jsx("div",{className:`flex-shrink-0 w-8 h-8 rounded-lg bg-muted/50 flex items-center justify-center ${u(p.type)}`,children:p.icon?s.jsx("span",{className:"text-base",children:p.icon}):s.jsx(d,{className:"w-4 h-4"})}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("div",{className:"flex items-center gap-1.5 mb-0.5",children:[!h&&s.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary flex-shrink-0"}),s.jsx("span",{className:"text-[9px] font-semibold uppercase tracking-wider text-primary",children:tl(p.type,t)})]}),s.jsx("p",{className:`font-medium text-xs ${h?"text-muted-foreground":"text-foreground"}`,children:p.title}),s.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5 line-clamp-2",children:p.message}
218),s.jsx("p",{className:"text-[10px] text-muted-foreground/50 mt-1",children:Jr(p.created_at,r)})]})]})},p.id)})})]})]})]}),document.body)]})});va.displayName="NotificationBell";const wa=f.createContext(void 0),Kt="digital_icons_visitor_type",rl=({children:e})=>{const[t,r]=f.useState(null),[n,a]=f.useState(!1);f.useEffect(()=>{const c=localStorage.getItem(Kt);if(c==="b2c"||c==="b2b")r(c);else{const m=setTimeout(()=>{a(!0)},1e3);return()=>clearTimeout(m)}},[]);const o=async c=>{if(c)try{const{error:m}=await j.rpc("track_visitor_type",{p_visitor_type:c})}catch{}},l=f.useCallback(c=>{r(c),c?(localStorage.setItem(Kt,c),o(c)):localStorage.removeItem(Kt),a(!1)},[]),i=f.useCallback(()=>{l(t==="b2b"?"b2c":"b2b")},[t,l]),u=t==="b2b";return s.jsx(wa.Provider,{value:{visitorType:t,setVisitorType:l,showTypeSelector:n,setShowTypeSelector:a,isB2B:u,switchMode:i},children:e})},xr=()=>{const e=f.useContext(wa);if(e===void 0)throw new Error("useVisitorType must be used within a VisitorTypeProvider");return e},xa=f.createContext(void 0),Qr="digital_icons_theme",nl=({children:e})=>{const[t,r]=f.useState("dark"),[n,a]=f.useState("dark"),o=()=>typeof window<"u"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark";f.useEffect(()=>{const i=localStorage.getItem(Qr);(i==="light"||i==="dark"||i==="system")&&r(i)},[]),f.useEffect(()=>{const i=window.document.documentElement;let u;t==="system"?u=o():u=t,a(u),i.classList.remove("light","dark"),i.classList.add(u)},[t]),f.useEffect(()=>{const i=window.matchMedia("(prefers-color-scheme: dark)"),u=()=>{if(t==="system"){const c=o();a(c);const m=window.document.documentElement;m.classList.remove("light","dark"),m.classList.add(c)}};return i.addEventListener("change",u),()=>i.removeEventListener("change",u)},[t]);const l=i=>{r(i),localStorage.setItem(Qr,i)};return s.jsx(xa.Provider,{value:{theme:t,setTheme:l,resolvedTheme:n},children:e})},Eu=()=>{const e=f.useContext(xa);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e};function Xr(e,t){const r=t==null||t<=0?1:t;return Math.round(e*r)}function al(e,t,r){return{attack:Xr(e,r?.atk_modifier??1),defense:Xr(t,r?.pv_modifier??1)}}class sl{constructor(){ge(this,"map",new Map);ge(this,"listeners",new Map);ge(this,"globalListeners",new Set)}get(t){return this.map.get(t)}setMany(t){const r=[];for(const[n,a]of t){const o=this.map.get(n);(!o||o.atk_modifier!==a.atk_modifier||o.pv_modifier!==a.pv_modifier)&&(this.map.set(n,a),r.push(n))}r.forEach(n=>this.listeners.get(n)?.forEach(a=>a())),r.length&&this.globalListeners.forEach(n=>n())}setOne(t,r){const n=this.map.get(t);n&&n.atk_modifier===r.atk_modifier&&n.pv_modifier===r.pv_modifier||(this.map.set(t,r),this.listeners.get(t)?.forEach(a=>a()),this.globalListeners.forEach(a=>a()))}subscribe(t,r){let n=this.listeners.get(t);return n||(n=new Set,this.listeners.set(t,n)),n.add(r),()=>{n?.delete(r),n&&n.size===0&&this.listeners.delete(t)}}subscribeAll(t){return this.globalListeners.add(t),()=>{this.globalListeners.delete(t)}}}const We=new sl,ka=f.createContext(null);function ol({children:e}){const[t,r]=f.useState(new Map),n=f.useCallback(async()=>{try{const{data:o,error:l}=await j.from("card_market_data").select("card_id, atk_modifier, pv_modifier");if(l)return;const i=(o??[]).map(u=>[u.card_id,{atk_modifier:u.atk_modifier??1,pv_modifier:u.pv_modifier??1}]);We.setMany(i)}catch{}},[]);f.useEffect(()=>{n();const o=setInterval(n,5*60*1e3);return()=>clearInterval(o)},[n]),f.useEffect(()=>{let o=0;const l=()=>{cancelAnimationFrame(o),o=requestAnimationFrame(()=>{const u=We.map;r(new Map(u))})},i=We.subscribeAll(l);return l(),()=>{cancelAnimationFrame(o),i()}},[]),f.useEffect(()=>{const o=j.channel("live-stats-modifiers").on("postgres_changes",{event:"*",schema:"public",table:"card_market_data"},l=>{if(l.new&&typeof l.new=="object"&&"card_id"in l.new){const i=l.new;We.setOne(i.card_id,{atk_modifier:i.atk_modifier??1,pv_modifier:i.pv_modifier??1})}}).subscribe();return()=>{j.removeChannel(o)}},[]);const a=f.useMemo(()=>({refreshModifiers:n,modifiersCache:t}),[n,t]);return s.jsx(ka.Provider,{value:a,children:e})}function Iu(){const e=f.useContext(ka);if(!e)throw new Error("useLiveStatsContext must be used within LiveStatsProvi
218der");return e}const Zr={atk_modifier:1,pv_modifier:1};function il(e){return f.useSyncExternalStore(t=>We.subscribe(e,t),()=>We.get(e)??Zr,()=>Zr)}function Nu(e,t,r,n=!0){const a=il(e),[o,l]=f.useState(!1),i=f.useRef(null),u=f.useRef(null),{attack:c,defense:m}=n?al(t,r,a):{attack:t,defense:r};return f.useEffect(()=>{if(!n)return;const p=i.current;if(p===null){i.current={attack:c,defense:m};return}(p.attack!==c||p.defense!==m)&&(i.current={attack:c,defense:m},l(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>l(!1),1e3))},[c,m,n]),f.useEffect(()=>()=>{u.current&&clearTimeout(u.current)},[]),{attack:c,defense:m,isAnimating:o}}/*! Capacitor: https://capacitorjs.com/ - MIT License */var Ze;(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(Ze||(Ze={}));class Yt extends Error{constructor(t,r,n){super(t),this.message=t,this.code=r,this.data=n}}const ll=e=>{var t,r;return e?.androidBridge?"android":!((r=(t=e?.webkit)===null||t===void 0?void 0:t.messageHandlers)===null||r===void 0)&&r.bridge?"ios":"web"},cl=e=>{const t=e.CapacitorCustomPlatform||null,r=e.Capacitor||{},n=r.Plugins=r.Plugins||{},a=()=>t!==null?t.name:ll(e),o=()=>a()!=="web",l=p=>{const h=c.get(p);return!!(h?.platforms.has(a())||i(p))},i=p=>{var h;return(h=r.PluginHeaders)===null||h===void 0?void 0:h.find(d=>d.name===p)},u=p=>e.console.error(p),c=new Map,m=(p,h={})=>{const d=c.get(p);if(d)return d.proxy;const T=a(),x=i(p);let y;const S=async()=>(!y&&T in h?y=typeof h[T]=="function"?y=await h[T]():y=h[T]:t!==null&&!y&&"web"in h&&(y=typeof h.web=="function"?y=await h.web():y=h.web),y),R=(P,E)=>{var q,v;if(x){const g=x?.methods.find($=>E===$.name);if(g)return g.rtype==="promise"?$=>r.nativePromise(p,E.toString(),$):($,Y)=>r.nativeCallback(p,E.toString(),$,Y);if(P)return(q=P[E])===null||q===void 0?void 0:q.bind(P)}else{if(P)return(v=P[E])===null||v===void 0?void 0:v.bind(P);throw new Yt(`"${p}" plugin is not implemented on ${T}`,Ze.Unimplemented)}},D=P=>{let E;const q=(...v)=>{const g=S().then($=>{const Y=R($,P);if(Y){const se=Y(...v);return E=se?.remove,se}else throw new Yt(`"${p}.${P}()" is not implemented on ${T}`,Ze.Unimplemented)});return P==="addListener"&&(g.remove=async()=>E()),g};return q.toString=()=>`${P.toString()}() { [capacitor code] }`,Object.defineProperty(q,"name",{value:P,writable:!1,configurable:!1}),q},Q=D("addListener"),A=D("removeListener"),k=(P,E)=>{const q=Q({eventName:P},E),v=async()=>{const $=await q;A({eventName:P,callbackId:$},E)},g=new Promise($=>q.then(()=>$({remove:v})));return g.remove=async()=>{await v()},g},_=new Proxy({},{get(P,E){switch(E){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return x?k:Q;case"removeListener":return A;default:return D(E)}}});return n[p]=_,c.set(p,{name:p,proxy:_,platforms:new Set([...Object.keys(h),...x?[T]:[]])}),_};return r.convertFileSrc||(r.convertFileSrc=p=>p),r.getPlatform=a,r.handleError=u,r.isNativePlatform=o,r.isPluginAvailable=l,r.registerPlugin=m,r.Exception=Yt,r.DEBUG=!!r.DEBUG,r.isLoggingEnabled=!!r.isLoggingEnabled,r},ul=e=>e.Capacitor=cl(e),Ae=ul(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),nt=Ae.registerPlugin;class kr{constructor(){this.listeners={},this.retainedEventArguments={},this.windowListeners={}}addListener(t,r){let n=!1;this.listeners[t]||(this.listeners[t]=[],n=!0),this.listeners[t].push(r);const o=this.windowListeners[t];o&&!o.registered&&this.addWindowListener(o),n&&this.sendRetainedArgumentsForEvent(t);const l=async()=>this.removeListener(t,r);return Promise.resolve({remove:l})}async removeAllListeners(){this.listeners={};for(const t in this.windowListeners)this.removeWindowListener(this.windowListeners[t]);this.windowListeners={}}notifyListeners(t,r,n){const a=this.listeners[t];if(!a){if(n){let o=this.retainedEventArguments[t];o||(o=[]),o.push(r),this.retainedEventArguments[t]=o}return}a.forEach(o=>o(r))}hasListeners(t){var r;return!!(!((r=this.listeners[t])===null||r===void 0)&&r.length)}registerWindowListener(t,r){this.windowListeners[r]={registered:!1,windowEventName:t,pluginEventName:r,handler:n=>{this.notifyListeners(r,n)}}}unimplemented(t="not implemented"){return new Ae.Exception(t,Ze.Unimplemented)}unavailable(t="not available"){return new Ae.Exception(t,Ze.Unavailable)}async removeListener(t,r){const n=this.listeners[t];if(!n)return;const a=n.indexOf(r);this.listeners[t].splice(a,1),this.listeners[t].length||this.removeWindowListener(this.windowListeners[t])}
218addWindowListener(t){window.addEventListener(t.windowEventName,t.handler),t.registered=!0}removeWindowListener(t){t&&(window.removeEventListener(t.windowEventName,t.handler),t.registered=!1)}sendRetainedArgumentsForEvent(t){const r=this.retainedEventArguments[t];r&&(delete this.retainedEventArguments[t],r.forEach(n=>{this.notifyListeners(t,n)}))}}const en=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),tn=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class dl extends kr{async getCookies(){const t=document.cookie,r={};return t.split(";").forEach(n=>{if(n.length<=0)return;let[a,o]=n.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");a=tn(a).trim(),o=tn(o).trim(),r[a]=o}),r}async setCookie(t){try{const r=en(t.key),n=en(t.value),a=`; expires=${(t.expires||"").replace("expires=","")}`,o=(t.path||"/").replace("path=",""),l=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${r}=${n||""}${a}; path=${o}; ${l};`}catch(r){return Promise.reject(r)}}async deleteCookie(t){try{document.cookie=`${t.key}=; Max-Age=0`}catch(r){return Promise.reject(r)}}async clearCookies(){try{const t=document.cookie.split(";")||[];for(const r of t)document.cookie=r.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(t){return Promise.reject(t)}}async clearAllCookies(){try{await this.clearCookies()}catch(t){return Promise.reject(t)}}}nt("CapacitorCookies",{web:()=>new dl});const ml=async e=>new Promise((t,r)=>{const n=new FileReader;n.onload=()=>{const a=n.result;t(a.indexOf(",")>=0?a.split(",")[1]:a)},n.onerror=a=>r(a),n.readAsDataURL(e)}),pl=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(a=>a.toLocaleLowerCase()).reduce((a,o,l)=>(a[o]=e[t[l]],a),{})},fl=(e,t=!0)=>e?Object.entries(e).reduce((n,a)=>{const[o,l]=a;let i,u;return Array.isArray(l)?(u="",l.forEach(c=>{i=t?encodeURIComponent(c):c,u+=`${o}=${i}&`}),u.slice(0,-1)):(i=t?encodeURIComponent(l):l,u=`${o}=${i}`),`${n}&${u}`},"").substr(1):null,hl=(e,t={})=>{const r=Object.assign({method:e.method||"GET",headers:e.headers},t),a=pl(e.headers)["content-type"]||"";if(typeof e.data=="string")r.body=e.data;else if(a.includes("application/x-www-form-urlencoded")){const o=new URLSearchParams;for(const[l,i]of Object.entries(e.data||{}))o.set(l,i);r.body=o.toString()}else if(a.includes("multipart/form-data")||e.data instanceof FormData){const o=new FormData;if(e.data instanceof FormData)e.data.forEach((i,u)=>{o.append(u,i)});else for(const i of Object.keys(e.data))o.append(i,e.data[i]);r.body=o;const l=new Headers(r.headers);l.delete("content-type"),r.headers=l}else(a.includes("application/json")||typeof e.data=="object")&&(r.body=JSON.stringify(e.data));return r};class gl extends kr{async request(t){const r=hl(t,t.webFetchExtra),n=fl(t.params,t.shouldEncodeUrlParams),a=n?`${t.url}?${n}`:t.url,o=await fetch(a,r),l=o.headers.get("content-type")||"";let{responseType:i="text"}=o.ok?t:{};l.includes("application/json")&&(i="json");let u,c;switch(i){case"arraybuffer":case"blob":c=await o.blob(),u=await ml(c);break;case"json":u=await o.json();break;case"document":case"text":default:u=await o.text()}const m={};return o.headers.forEach((p,h)=>{m[h]=p}),{data:u,headers:m,status:o.status,url:o.url}}async get(t){return this.request(Object.assign(Object.assign({},t),{method:"GET"}))}async post(t){return this.request(Object.assign(Object.assign({},t),{method:"POST"}))}async put(t){return this.request(Object.assign(Object.assign({},t),{method:"PUT"}))}async patch(t){return this.request(Object.assign(Object.assign({},t),{method:"PATCH"}))}async delete(t){return this.request(Object.assign(Object.assign({},t),{method:"DELETE"}))}}nt("CapacitorHttp",{web:()=>new gl});var rn;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(rn||(rn={}));var nn;(function(e){e.StatusBar="StatusBar",e.NavigationBar="NavigationBar"})(nn||(nn={}));class bl extends kr{async setStyle(){this.unavailable("not available for web")}async setAnimation(){this.unavailable("not available for web")}async show(){this.unavailable("not available for web")}async hide(){this.unavailable("not available for web")}}nt("SystemBars",{web:()=>new bl});let Ue=null;const yl=()=>{const[e,t]=f.useState(!1),[r,n]=f.useState(!1);f.useEffect(()=>{const m=window.matchMedia("(display-mode: standalone)").matches||window.navigator.standalone===!0;n(m);const p=d=>{d.preventDefault(),Ue=d,t(!0)},h=()=>{t(!1),n(!0),Ue=null};return window.addEventListener("beforeinstallprompt",p),window.addEventListener("appinstalled",h),()=>{window.removeEventListener("beforeinstallprompt",p),window.removeEventListener("appinstalled",h)}},[]);const a=async()=>
218{if(!Ue)return;Ue.prompt();const{outcome:m}=await Ue.userChoice;m==="accepted"&&(t(!1),Ue=null)},o=Ae.isNativePlatform(),l=Ae.getPlatform(),i=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),u=!i;let c;return o?c=l==="ios"||l==="android"?"mobile-app":"desktop-app":r&&u?c="desktop-app":r&&i?c="mobile-app":i?c="web-mobile":c="web-desktop",{platform:c,isNativeApp:o,isMobileApp:c==="mobile-app",isDesktopApp:c==="desktop-app",isWebMobile:c==="web-mobile",isWebDesktop:c==="web-desktop",isPWA:r,canInstallPWA:e&&u,installPWA:a}},_a=f.createContext(void 0),vl=({children:e})=>{const t=yl();return s.jsx(_a.Provider,{value:t,children:e})},Ru=()=>{const e=f.useContext(_a);if(!e)throw new Error("usePlatformContext must be used within a PlatformProvider");return e};let xt=null,At=!1,kt=null;function U(){return(!xt||xt.state==="closed")&&(xt=new AudioContext,At=!1),xt}function wl(){const e=U();At||kt||(kt=e.resume().then(()=>{const t=e.createBuffer(1,1,e.sampleRate),r=e.createBufferSource();r.buffer=t,r.connect(e.destination),r.start(0),At=!0,kt=null}).catch(()=>{kt=null})),At&&e.state==="suspended"&&e.resume().catch(()=>{})}function F(e,t){const r=e.createGain();return r.gain.value=t,r}function Z(e,t,r){const n=e.createOscillator();return n.type=t,n.frequency.value=r,n}const an=new Map;function ye(e,t){const r=t.toFixed(3);let n=an.get(r);if(!n){const o=Math.max(1,Math.floor(e.sampleRate*t));n=e.createBuffer(1,o,e.sampleRate);const l=n.getChannelData(0);for(let i=0;i<o;i++)l[i]=Math.random()*2-1;an.set(r,n)}const a=e.createBufferSource();return a.buffer=n,a}function b(e,t,r,n,a,o){const l=Z(e,"sine",t),i=F(e,0);i.gain.setValueAtTime(r,n),i.gain.exponentialRampToValueAtTime(r*.4,n+.02),i.gain.exponentialRampToValueAtTime(.001,n+a),l.connect(i).connect(o),l.start(n),l.stop(n+a);const u=Z(e,"sine",t*2.01),c=F(e,0);c.gain.setValueAtTime(r*.15,n),c.gain.exponentialRampToValueAtTime(.001,n+a*.5),u.connect(c).connect(o),u.start(n),u.stop(n+a*.5)}function H(e,t,r,n,a,o){const l=Z(e,"sine",t),i=F(e,0);i.gain.setValueAtTime(r,n),i.gain.exponentialRampToValueAtTime(.001,n+a),l.connect(i).connect(o),l.start(n),l.stop(n+a)}function et(e,t,r,n,a,o){t.forEach(l=>H(e,l,r,n,a,o))}function X(e,t,r,n,a=120,o=35,l=.12){const i=Z(e,"sine",a),u=F(e,0);u.gain.setValueAtTime(t,r),u.gain.exponentialRampToValueAtTime(t*.6,r+.02),u.gain.exponentialRampToValueAtTime(.001,r+l),i.frequency.exponentialRampToValueAtTime(o,r+l*.7),i.connect(u).connect(n),i.start(r),i.stop(r+l+.02)}function ie(e,t,r,n,a,o){const l=Z(e,"square",t),i=Z(e,"square",t*1.007),u=e.createBiquadFilter();u.type="bandpass",u.frequency.value=t,u.Q.value=12;const c=F(e,0);c.gain.setValueAtTime(r,n),c.gain.exponentialRampToValueAtTime(r*.3,n+.01),c.gain.exponentialRampToValueAtTime(.001,n+a),l.connect(u),i.connect(u),u.connect(c).connect(o),l.start(n),l.stop(n+a),i.start(n),i.stop(n+a)}function je(e,t,r,n,a=.06){const o=ye(e,a),l=e.createBiquadFilter();l.type="bandpass",l.frequency.value=1800,l.Q.value=.8;const i=e.createWaveShaper(),u=new Float32Array(256);for(let m=0;m<256;m++){const p=m/128-1;u[m]=Math.tanh(p*3)}i.curve=u;const c=F(e,0);c.gain.setValueAtTime(t,r),c.gain.exponentialRampToValueAtTime(.001,r+a),o.connect(l).connect(i).connect(c).connect(n),o.start(r),o.stop(r+a)}function O(e,t,r,n,a,o){[1,1.5,2,3].forEach((l,i)=>{const u=Z(e,"sine",t*l),c=F(e,0),m=r*(.3/(i+1));c.gain.setValueAtTime(.001,n),c.gain.linearRampToValueAtTime(m,n+.03),c.gain.exponentialRampToValueAtTime(.001,n+a*(1-i*.15)),u.connect(c).connect(o),u.start(n),u.stop(n+a)})}function me(e,t,r,n,a,o,l){const i=Z(e,"sawtooth",t),u=e.createBiquadFilter();u.type="lowpass",u.frequency.value=3e3,u.Q.value=2;const c=F(e,0);c.gain.setValueAtTime(.001,a),c.gain.linearRampToValueAtTime(n,a+o*.4),c.gain.exponentialRampToValueAtTime(.001,a+o),i.frequency.exponentialRampToValueAtTime(r,a+o*.8),i.connect(u).connect(c).connect(l),i.start(a),i.stop(a+o+.02)}const sn=new Map,xl={click:"ui",hover:"ui",nav:"ui",tab:"ui",switch:"ui",flip:"ui",success:"feedback",error:"feedback",notif:"feedback",atk:"combat",oppAtk:"combat",destroy:"combat",shield:"combat",effect:"effects",token:"effects",heal:"effects",buff:"effects",coin:"effects",turn:"game_flow",phase:"game_flow",count:"game_flow",draw:"game_flow",victory:"game_flow",defeat:"game_flow",booster:"rewards",reveal:"rewards",purchase:"rewards",level:"rewards",collect:"rewards",favAdd:"rewards",favRem:"rewards"},Ca={};function zu(e,t){Ca[e]=Math.max(0,Math.min(2,t))}function Pa(e){const t=xl[e];return t?Ca[t]??1:1}function W(e,t){const r=sn.get(e)??-1;let n=Math.floor(Math.random()*t.length);n===r&&t.length>1&&(n=(n+1)%t.length),sn.set(e,n);const a=t[n],o=Pa(e);return o===1?a:o<=0?()=>{}:(l,i,u)=>a(l,i*o,u)}const kl=[(e,t,r)=>{b(e,1e3,t*.5,r,.04,e.destination),H(e,1800,t*.12,r+.005,.02,e.destination)},(e,t,r)=>{b(e,700,t*.4,r,.05,e.destination),H(e,1400,t*.08,r+.008,.025,e.destination)},(e,t,r)=>
218{H(e,1500,t*.3,r,.03,e.destination),H(e,2200,t*.1,r+.01,.02,e.destination)},(e,t,r)=>{b(e,850,t*.35,r,.035,e.destination),b(e,1200,t*.1,r+.003,.02,e.destination)},(e,t,r)=>{const n=Z(e,"sine",600);n.frequency.exponentialRampToValueAtTime(1e3,r+.03);const a=F(e,t*.25);a.gain.exponentialRampToValueAtTime(.001,r+.05),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.05)}];function _l(e=.08){const t=U();W("click",kl)(t,e,t.currentTime)}const Cl=[(e,t,r)=>{H(e,1800,t*.4,r,.025,e.destination)},(e,t,r)=>{H(e,2100,t*.3,r,.02,e.destination)},(e,t,r)=>{b(e,1600,t*.2,r,.02,e.destination)}];function Mu(e=.03){const t=U();W("hover",Cl)(t,e,t.currentTime)}const Pl=[(e,t,r)=>{b(e,523,t*.5,r,.25,e.destination),b(e,659,t*.5,r+.1,.22,e.destination),b(e,784,t*.6,r+.2,.28,e.destination)},(e,t,r)=>{b(e,440,t*.45,r,.2,e.destination),b(e,554,t*.5,r+.08,.2,e.destination),b(e,659,t*.55,r+.16,.25,e.destination)},(e,t,r)=>{b(e,587,t*.5,r,.22,e.destination),b(e,740,t*.5,r+.09,.2,e.destination),b(e,880,t*.55,r+.18,.26,e.destination)}];function qu(e=.08){const t=U();W("success",Pl)(t,e,t.currentTime)}const Tl=[(e,t,r)=>{const n=Z(e,"sine",320),a=F(e,t*.5);n.frequency.exponentialRampToValueAtTime(220,r+.1),a.gain.exponentialRampToValueAtTime(.001,r+.12),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.12)},(e,t,r)=>{b(e,400,t*.35,r,.08,e.destination),b(e,300,t*.3,r+.06,.08,e.destination)},(e,t,r)=>{const n=Z(e,"triangle",280),a=F(e,t*.4);n.frequency.exponentialRampToValueAtTime(180,r+.12),a.gain.exponentialRampToValueAtTime(.001,r+.14),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.14)}];function Vu(e=.07){const t=U();W("error",Tl)(t,e,t.currentTime)}const Al=[(e,t,r)=>{b(e,900,t*.4,r,.04,e.destination),H(e,1400,t*.15,r+.015,.025,e.destination)},(e,t,r)=>{b(e,1100,t*.3,r,.035,e.destination),H(e,1600,t*.1,r+.01,.02,e.destination)},(e,t,r)=>
218{H(e,800,t*.35,r,.03,e.destination),b(e,1200,t*.15,r+.02,.025,e.destination)}];function Lu(e=.05){const t=U();W("nav",Al)(t,e,t.currentTime)}const jl=[(e,t,r)=>{const n=ye(e,.04),a=F(e,t*.4),o=e.createBiquadFilter();o.type="bandpass",o.frequency.value=5e3,o.Q.value=2,a.gain.exponentialRampToValueAtTime(.001,r+.04),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.04),b(e,2e3,t*.2,r+.015,.03,e.destination)},(e,t,r)=>{const n=ye(e,.03),a=F(e,t*.3),o=e.createBiquadFilter();o.type="bandpass",o.frequency.value=4e3,o.Q.value=1.5,a.gain.exponentialRampToValueAtTime(.001,r+.03),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.03),b(e,1800,t*.15,r+.01,.025,e.destination)},(e,t,r)=>{b(e,1600,t*.25,r,.03,e.destination),H(e,2400,t*.08,r+.01,.02,e.destination)}];function Du(e=.1){const t=U();W("flip",jl)(t,e,t.currentTime)}const Sl=[(e,t,r)=>{b(e,587,t*.7,r,.35,e.destination),b(e,740,t*.6,r+.1,.3,e.destination),b(e,880,t*.5,r+.2,.35,e.destination)},(e,t,r)=>{b(e,523,t*.6,r,.3,e.destination),b(e,659,t*.55,r+.1,.28,e.destination),b(e,784,t*.5,r+.2,.3,e.destination)},(e,t,r)=>{b(e,440,t*.6,r,.3,e.destination),b(e,554,t*.5,r+.12,.25,e.destination),b(e,659,t*.45,r+.22,.28,e.destination)}];function Ou(e=.1){const t=U();W("notif",Sl)(t,e,t.currentTime)}const El=[(e,t,r)=>{X(e,t*.5,r,e.destination,180,50,.1),je(e,t*.25,r+.01,e.destination,.05);const n=ye(e,.04),a=F(e,t*.1),o=e.createBiquadFilter();o.type="bandpass",o.frequency.setValueAtTime(1200,r),o.frequency.exponentialRampToValueAtTime(3500,r+.03),o.Q.value=1.2,a.gain.exponentialRampToValueAtTime(.001,r+.04),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.04),b(e,1200,t*.08,r+.02,.04,e.destination),O(e,2e3,t*.03,r+.03,.15,e.destination)},(e,t,r)=>{X(e,t*.4,r,e.destination,150,40,.08),je(e,t*.2,r+.005,e.destination,.04);const n=ye(e,.035),a=F(e,t*.08),o=e.createBiquadFilter();o.type="bandpass",o.frequency.setValueAtTime(1500,r),o.frequency.exponentialRampToValueAtTime(3800,r+.025),o.Q.value=.9,a.gain.exponentialRampToValueAtTime(.001,r+.035),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.035),ie(e,3e3,t*.02,r+.02,.06,e.destination)},(e,t,r)=>{X(e,t*.45,r,e.destination,200,60,.09),je(e,t*.22,r+.008,e.destination,.045),b(e,1400,t*.07,r+.01,.035,e.destination),H(e,2400,t*.04,r+.015,.025,e.destination)}];function Bu(e=.18){const t=U();W("atk",El)(t,e,t.currentTime)}const Il=[(e,t,r)=>{X(e,t*.6,r,e.destination,140,35,.12),je(e,t*.2,r+.01,e.destination,.06);const n=ye(e,.05),a=F(e,t*.08),o=e.createBiquadFilter();o.type="bandpass",o.frequency.setValueAtTime(800,r),o.frequency.exponentialRampToValueAtTime(2200,r+.04),o.Q.value=.8,a.gain.exponentialRampToValueAtTime(.001,r+.05),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.05),b(e,600,t*.06,r+.03,.04,e.destination)},(e,t,r)=>{X(e,t*.5,r,e.destination,120,30,.1),je(e,t*.18,r+.008,e.destination,.05),b(e,800,t*.05,r+.015,.035,e.destination),H(e,1800,t*.03,r+.02,.03,e.destination)},(e,t,r)=>{X(e,t*.55,r,e.destination,160,40,.11);const n=ye(e,.04),a=F(e,t*.07),o=e.createBiquadFilter();o.type="bandpass",o.frequency.setValueAtTime(1e3,r),o.frequency.exponentialRampToValueAtTime(2500,r+.03),o.Q.value=.7,a.gain.exponentialRampToValueAtTime(.001,r+.04),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.04),ie(e,1500,t*.015,r+.025,.05,e.destination)}];function Fu(e=.15){const t=U();W("oppAtk",Il)(t,e,t.currentTime)}const Nl=[(e,t,r)=>{X(e,t*.8,r,e.destination,200,25,.18),je(e,t*.35,r,e.destination,.08);const n=ye(e,.1),a=F(e,t*.12),o=e.createBiquadFilter();o.type="lowpass",o.frequency.setValueAtTime(3e3,r),o.frequency.exponentialRampToValueAtTime(200,r+.1),a.gain.exponentialRampToValueAtTime(.001,r+.1),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.1),O(e,1200,t*.04,r+.06,.4,e.destination);const l=Z(e,"sine",60),i=F(e,t*.15);i.gain.exponentialRampToValueAtTime(.001,r+.35),l.connect(i).connect(e.destination),l.start(r+.03),l.stop(r+.35)},(e,t,r)=>{X(e,t*.7,r,e.destination,180,30,.15),je(e,t*.3,r+.005,e.destination,.07),b(e,500,t*.1,r+.02,.12,e.destination),b(e,350,t*.08,r+.06,.1,e.destination),b(e,200,t*.06,r+.1,.08,e.destination),O(e,900,t*.03,r+.08,.35,e.destination)},(e,t,r)=>{X(e,t*.75,r,e.destination,160,28,.16),je(e,t*.28,r+.01,e.destination,.06);const n=Z(e,"triangle",400),a=F(e,t*.08);n.frequency.exponentialRampToValueAtTime(100,r+.15),a.gain.exponentialRampToValueAtTime(.001,r+.2),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.2),ie(e,2500,t*.02,r+.03,.1,e.destination),O(e,1500,t*.025,r+.1,.3,e.destination)}];function $u(e=.2){const t=U();W("destroy",Nl)(t,e,t.currentTime)}const Rl=[(e,t,r)=>{ie(e,2200,t*.12,r,.2,e.destination),ie(e,3300,t*.06,r+.01,.15,e.destination),X(e,t*.2,r,e.de
218stination,100,50,.06),b(e,1800,t*.08,r,.08,e.destination),O(e,3e3,t*.02,r+.02,.2,e.destination)},(e,t,r)=>{ie(e,1800,t*.1,r,.18,e.destination),je(e,t*.08,r,e.destination,.03),b(e,2500,t*.06,r+.008,.06,e.destination),H(e,4e3,t*.02,r+.015,.04,e.destination)},(e,t,r)=>{ie(e,2800,t*.1,r,.16,e.destination),ie(e,1400,t*.05,r+.005,.12,e.destination),X(e,t*.15,r,e.destination,80,40,.05),O(e,2500,t*.015,r+.01,.18,e.destination)}];function Hu(e=.12){const t=U();W("shield",Rl)(t,e,t.currentTime)}const zl=[(e,t,r)=>{me(e,200,1200,t*.06,r,.25,e.destination),[440,554,659,880].forEach((n,a)=>b(e,n,t*.15,r+a*.045,.2,e.destination)),O(e,1760,t*.04,r+.18,.3,e.destination)},(e,t,r)=>{me(e,250,1e3,t*.05,r,.2,e.destination),[523,659,784,1047].forEach((n,a)=>b(e,n,t*.12,r+a*.04,.18,e.destination)),O(e,2e3,t*.03,r+.16,.25,e.destination)},(e,t,r)=>{me(e,180,900,t*.05,r,.22,e.destination),[392,494,587,784].forEach((n,a)=>H(e,n,t*.12,r+a*.05,.16,e.destination)),b(e,1175,t*.04,r+.2,.12,e.destination),O(e,1568,t*.03,r+.2,.28,e.destination)}];function Gu(e=.12){const t=U();W("effect",zl)(t,e,t.currentTime)}const Ml=[(e,t,r)=>{me(e,300,1500,t*.05,r,.12,e.destination);const n=Z(e,"sine",500);n.frequency.exponentialRampToValueAtTime(1400,r+.04),n.frequency.exponentialRampToValueAtTime(800,r+.08);const a=F(e,t*.2);a.gain.exponentialRampToValueAtTime(.001,r+.1),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.1),ie(e,3500,t*.03,r+.04,.1,e.destination),O(e,2e3,t*.02,r+.05,.2,e.destination)},(e,t,r)=>{me(e,350,1200,t*.04,r,.1,e.destination),H(e,600,t*.15,r,.04,e.destination),H(e,1e3,t*.12,r+.02,.04,e.destination),H(e,1600,t*.08,r+.04,.04,e.destination),O(e,2500,t*.025,r+.05,.18,e.destination)},(e,t,r)=>{const n=Z(e,"sine",400);n.frequency.exponentialRampToValueAtTime(1200,r+.05);const a=F(e,t*.18);a.gain.exponentialRampToValueAtTime(.001,r+.08),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.08),ie(e,4e3,t*.025,r+.03,.08,e.destination),b(e,2200,t*.04,r+.04,.06,e.destination)}];function Uu(e=.12){const t=U();W("token",Ml)(t,e,t.currentTime)}const ql=[(e,t,r)=>{[392,494,587,784].forEach((n,a)=>b(e,n,t*.2,r+a*.07,.28,e.destination)),O(e,1568,t*.04,r+.3,.4,e.destination),ht(e,392,t*.04,r,.5,e.destination)},(e,t,r)=>{[440,523,659,880].forEach((n,a)=>b(e,n,t*.17,r+a*.08,.25,e.destination)),O(e,1760,t*.03,r+.35,.35,e.destination)},(e,t,r)=>{me(e,300,800,t*.03,r,.3,e.destination),[330,440,554,659].forEach((n,a)=>H(e,n,t*.15,r+a*.065,.22,e.destination)),b(e,880,t*.06,r+.28,.2,e.destination),O(e,1320,t*.025,r+.25,.35,e.destination)}];function Wu(e=.1){const t=U();W("heal",ql)(t,e,t.currentTime)}const Vl=[(e,t,r)=>{me(e,200,800,t*.04,r,.15,e.destination);const n=Z(e,"sine",350);n.frequency.exponentialRampToValueAtTime(1e3,r+.1);const a=F(e,t*.2);a.gain.exponentialRampToValueAtTime(.001,r+.14),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.14),b(e,1047,t*.1,r+.08,.1,e.destination),O(e,1600,t*.025,r+.1,.2,e.destination)},(e,t,r)=>{me(e,250,900,t*.035,r,.12,e.destination),b(e,500,t*.15,r,.08,e.destination),b(e,750,t*.12,r+.05,.08,e.destination),b(e,1100,t*.1,r+.1,.08,e.destination),O(e,1400,t*.02,r+.1,.18,e.destination)},(e,t,r)=>{const n=Z(e,"sine",400);n.frequency.exponentialRampToValueAtTime(1200,r+.09);const a=F(e,t*.18);a.gain.exponentialRampToValueAtTime(.001,r+.12),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.12),X(e,t*.12,r,e.destination,100,50,.06),O(e,1800,t*.02,r+.08,.2,e.destination)}];function Ku(e=.12){const t=U();W("buff",Vl)(t,e,t.currentTime)}const Ll=[(e,t,r)=>{const n=ye(e,.06),a=F(e,t*.18),o=e.createBiquadFilter();o.type="bandpass",o.frequency.setValueAtTime(800,r),o.frequency.exponentialRampToValueAtTime(3e3,r+.04),o.Q.value=.6,a.gain.setValueAtTime(.001,r),a.gain.linearRampToValueAtTime(t*.18,r+.02),a.gain.exponentialRampToValueAtTime(.001,r+.06),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.06),b(e,1500,t*.05,r+.025,.025,e.destination)},(e,t,r)=>{b(e,1200,t*.14,r,.035,e.destination),b(e,900,t*.08,r+.018,.03,e.de
218stination),X(e,t*.06,r,e.destination,80,40,.04)},(e,t,r)=>{H(e,1100,t*.12,r,.03,e.destination);const n=ye(e,.04),a=F(e,t*.12),o=e.createBiquadFilter();o.type="highpass",o.frequency.value=2e3,a.gain.exponentialRampToValueAtTime(.001,r+.04),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.04)}];function Yu(e=.08){const t=U();W("switch",Ll)(t,e,t.currentTime)}const Dl=[(e,t,r)=>{ie(e,2e3,t*.04,r,.12,e.destination),b(e,880,t*.25,r,.18,e.destination),b(e,1175,t*.2,r+.07,.14,e.destination)},(e,t,r)=>{b(e,784,t*.24,r,.14,e.destination),b(e,1047,t*.22,r+.08,.14,e.destination),O(e,2e3,t*.015,r+.1,.15,e.destination)},(e,t,r)=>{H(e,700,t*.22,r,.12,e.destination),b(e,1100,t*.18,r+.06,.12,e.destination),ie(e,2500,t*.02,r+.08,.08,e.destination)}];function Ju(e=.08){const t=U();W("turn",Dl)(t,e,t.currentTime)}const Ol=[(e,t,r)=>{b(e,600,t*.18,r,.1,e.destination),b(e,900,t*.12,r+.05,.08,e.destination),X(e,t*.06,r,e.destination,60,30,.05)},(e,t,r)=>{b(e,500,t*.15,r,.08,e.destination),b(e,800,t*.12,r+.04,.07,e.destination)},(e,t,r)=>{H(e,700,t*.14,r,.07,e.destination),H(e,1050,t*.1,r+.035,.06,e.destination),O(e,1400,t*.01,r+.06,.1,e.destination)}];function Qu(e=.07){const t=U();W("phase",Ol)(t,e,t.currentTime)}const Bl=[(e,t,r)=>{X(e,t*.15,r,e.destination,100,40,.15),[{f:587,d:0},{f:740,d:.09},{f:880,d:.18},{f:1175,d:.28}].forEach(({f:n,d:a})=>{const o=Z(e,"sine",n),l=F(e,0);l.gain.setValueAtTime(.001,r+a),l.gain.linearRampToValueAtTime(t*.2,r+a+.03),l.gain.exponentialRampToValueAtTime(.001,r+a+.9),o.connect(l).connect(e.destination),o.start(r+a),o.stop(r+a+.9)}),et(e,[587,740,880,1175],t*.06,r+.5,.9,e.destination),O(e,2350,t*.04,r+.4,.8,e.destination),ie(e,4e3,t*.015,r+.5,.3,e.destination)},(e,t,r)=>{X(e,t*.12,r,e.destination,80,35,.12),[{f:523,d:0},{f:659,d:.1},{f:784,d:.2},{f:1047,d:.3}].forEach(({f:n,d:a})=>{b(e,n,t*.17,r+a,.55,e.destination)}),et(e,[523,659,784,1047],t*.05,r+.55,.8,e.destination),O(e,2094,t*.035,r+.45,.7,e.destination)},(e,t,r)=>{X(e,t*.1,r,e.destination,90,38,.1),[{f:440,d:0},{f:554,d:.08},{f:659,d:.16},{f:880,d:.24},{f:1100,d:.32}].forEach(({f:n,d:a})=>{b(e,n,t*.14,r+a,.45,e.destination)}),O(e,2200,t*.03,r+.4,.6,e.destination)}];function Xu(e=.15){const t=U();W("victory",Bl)(t,e,t.currentTime)}const Fl=[(e,t,r)=>{X(e,t*.2,r,e.destination,80,20,.3),[587,494,440,370].forEach((n,a)=>b(e,n,t*.12,r+a*.16,.3,e.destination)),H(e,233,t*.04,r+.6,.4,e.destination),H(e,247,t*.03,r+.6,.35,e.destination)},(e,t,r)=>{X(e,t*.18,r,e.destination,70,22,.25),[523,440,392,349].forEach((o,l)=>b(e,o,t*.1,r+l*.17,.25,e.destination));const n=Z(e,"sine",300);n.frequency.exponentialRampToValueAtTime(180,r+.6);const a=F(e,t*.04);a.gain.exponentialRampToValueAtTime(.001,r+.7),n.connect(a).connect(e.destination),n.start(r+.3),n.stop(r+.7)},(e,t,r)=>{X(e,t*.15,r,e.destination,90,25,.2);const n=Z(e,"sine",500);n.frequency.exponentialRampToValueAtTime(250,r+.5);const a=F(e,t*.1);a.gain.exponentialRampToValueAtTime(.001,r+.6),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.6),b(e,350,t*.06,r+.3,.25,e.destination)}];function Zu(e=.12){const t=U();W("defeat",Fl)(t,e,t.currentTime)}const $l=[(e,t,r)=>{b(e,330,t*.18,r,.4,e.destination),b(e,440,t*.15,r+.12,.35,e.destination),b(e,554,t*.1,r+.24,.3,e.destination),O(e,880,t*.02,r+.3,.3,e.destination)},(e,t,r)=>{b(e,392,t*.15,r,.35,e.destination),b(e,494,t*.12,r+.15,.3,e.destination)},(e,t,r)=>{b(e,440,t*.14,r,.3,e.destination),b(e,523,t*.1,r+.1,.3,e.destination),b(e,440,t*.08,r+.25,.25,e.destination)}];function ed(e=.08){const t=U();W("draw",$l)(t,e,t.currentTime)}const Hl=[(e,t,r)=>
218{b(e,800,t*.25,r,.03,e.destination)},(e,t,r)=>{H(e,1e3,t*.2,r,.025,e.destination)},(e,t,r)=>{b(e,900,t*.2,r,.025,e.destination),H(e,1300,t*.06,r+.005,.015,e.destination)}];function td(e=.06){const t=U();W("count",Hl)(t,e,t.currentTime)}const Gl=[(e,t,r)=>{for(let n=0;n<8;n++){const a=n*(.08-n*.006);ie(e,1600+n*60,t*(.03+n*.01),r+Math.max(0,a),.04,e.destination)}ie(e,2200,t*.06,r+.55,.2,e.destination),b(e,2200,t*.15,r+.55,.25,e.destination)},(e,t,r)=>{for(let n=0;n<6;n++){const a=n*(.09-n*.008);ie(e,1400+n*80,t*(.025+n*.008),r+Math.max(0,a),.035,e.destination)}b(e,2e3,t*.15,r+.45,.2,e.destination),O(e,3e3,t*.02,r+.45,.25,e.destination)},(e,t,r)=>{for(let n=0;n<7;n++){const a=n*(.07-n*.005);ie(e,1800+n*50,t*(.025+n*.007),r+Math.max(0,a),.03,e.destination)}H(e,2400,t*.12,r+.5,.15,e.destination),ie(e,2400,t*.04,r+.5,.15,e.destination)}];function rd(e=.1){const t=U();W("coin",Gl)(t,e,t.currentTime)}const Ul=[(e,t,r)=>{me(e,200,2e3,t*.04,r,.15,e.destination);const n=ye(e,.1),a=F(e,t*.12),o=e.createBiquadFilter();o.type="bandpass",o.frequency.setValueAtTime(1500,r),o.frequency.exponentialRampToValueAtTime(5e3,r+.06),o.Q.value=1,a.gain.exponentialRampToValueAtTime(.001,r+.1),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.1),[440,554,659,880].forEach((l,i)=>b(e,l,t*.14,r+.06+i*.05,.28,e.destination)),O(e,1760,t*.04,r+.25,.4,e.destination),X(e,t*.1,r,e.destination,100,40,.08)},(e,t,r)=>{me(e,250,1800,t*.035,r,.12,e.destination),[523,659,784,1047,1319].forEach((n,a)=>b(e,n,t*.12,r+a*.04,.22,e.destination)),O(e,2e3,t*.035,r+.2,.35,e.destination)},(e,t,r)=>{me(e,180,1600,t*.04,r,.14,e.destination);const n=ye(e,.07),a=F(e,t*.1),o=e.createBiquadFilter();o.type="bandpass",o.frequency.setValueAtTime(1800,r),o.frequency.exponentialRampToValueAtTime(4e3,r+.04),o.Q.value=.8,a.gain.exponentialRampToValueAtTime(.001,r+.07),n.connect(o).connect(a).connect(e.destination),n.start(r),n.stop(r+.07),[392,494,587,784,988].forEach((l,i)=>b(e,l,t*.11,r+.05+i*.045,.24,e.destination)),O(e,1568,t*.03,r+.22,.35,e.destination)}];function nd(e=.12){const t=U();W("booster",Ul)(t,e,t.currentTime)}const on={common:[[440,554],[494,587],[523,659]],rare:[[523,659,784],[587,740,880],[440,554,659]],epic:[[587,740,880,1047],[523,659,784,988],[440,554,659,880]],legendary:[[523,659,784,1047,1319],[587,740,880,1175,1480],[440,554,659,880,1100]]};function ad(e=.1,t="common"){const r=e*Pa("reveal");if(r<=0)return;const n=U(),a=n.currentTime,o=on[t]||on.common,l=Math.floor(Math.random()*o.length),i=o[l],u=t==="common"?.2:t==="rare"?.3:t==="epic"?.4:.5;i.forEach((c,m)=>b(n,c,r*u*.22,a+m*.04,.38,n.destination)),["rare","epic","legendary"].includes(t)&&O(n,i[i.length-1]*1.5,r*.03,a+i.length*.04,.3,n.destination),t==="legendary"&&(X(n,r*.08,a,n.destination,80,35,.1),ie(n,i[i.length-1]*2,r*.015,a+i.length*.04,.15,n.destination))}let De=null,Oe=null;function Ta(e){if(e){e.playing=!1,e.intervalId&&clearInterval(e.intervalId);try{e.masterGain.gain.setValueAtTime(0,e.ctx.currentTime)}catch{}e.nodes.forEach(t=>{try{t.stop?.(),t.disconnect?.()}catch{}})}}function ht(e,t,r,n,a,o){const l=Z(e,"sine",t),i=Z(e,"sine",t*1.002),u=F(e,0);u.gain.setValueAtTime(.001,n),u.gain.linearRampToValueAtTime(r,n+a*.3),u.gain.linearRampToValueAtTime(r*.7,n+a*.7),u.gain.linearRampToValueAtTime(.001,n+a);const c=F(e,0);c.gain.setValueAtTime(.001,n),c.gain.linearRampToValueAtTime(r*.3,n+a*.35),c.gain.linearRampToValueAtTime(.001,n+a*.9),l.connect(u).connect(o),i.connect(c).connect(o),l.start(n),l.stop(n+a+.1),i.start(n),i.stop(n+a+.1)}function Et(e,t,r,n,a,o){const l=Z(e,"triangle",t),i=Z(e,"sine",t*2.01),u=F(e,0);u.gain.setValueAtTime(r,n),u.gain.exponentialRampToValueAtTime(r*.5,n+.05),u.gain.exponentialRampToValueAtTime(.001,n+a);const c=F(e,0);c.gain.setValueAtTime(r*.12,n),c.gain.exponentialRampToValueAtTime(.001,n+a*.4),l.connect(u).connect(o),i.connect(c).connect(o),l.start(n),l.stop(n+a+.05),i.start(n),i.stop(n+a*.4+.05)}const ln=[[523,587,659,784,659,587,523,494],[392,440,494,523,587,523,494,440],[330,392,440,523,494,440,392,330],[440,523,587,659,784,659,587,523]],cn=[[261,330,392],[220,277,330],[349,440,523],[392,494,587],[261,330,392],[293,370,440],[349,440,523],[392,494,587]];
218function sd(e=.06){Wl();const t=U(),r=t.createGain();r.gain.value=Math.min(1,e),r.connect(t.destination);const n=[];let a=0,o=0;const l=()=>{if(!Oe?.playing)return;const i=t.currentTime,u=a%cn.length,c=cn[u],m=ln[o%ln.length],p=a%m.length;a%4===0&&c.forEach(h=>ht(t,h,.08,i,3.2,r)),Et(t,m[p],.15,i,.7,r),a%3===1&&Et(t,m[p]*1.25,.06,i+.15,.5,r),a%4===0&&ht(t,c[0]*.5,.05,i,2.5,r),a++,a%(m.length*2)===0&&o++};Oe={ctx:t,playing:!0,intervalId:null,masterGain:r,nodes:n},l(),Oe.intervalId=setInterval(l,800)}function Wl(){Ta(Oe),Oe=null}function od(e){Oe?.masterGain&&(Oe.masterGain.gain.value=Math.min(1,Math.max(0,e)))}const un=[[440,523,587,659,784,880,784,659],[587,659,784,880,784,659,587,523],[523,659,784,880,1047,880,784,659],[659,587,523,494,523,587,659,784]],dn=[[220,277,330],[262,330,392],[349,440,523],[330,415,494],[220,277,330],[293,349,440],[349,440,523],[392,494,587]];function id(e=.08){Kl();const t=U(),r=t.createGain();r.gain.value=Math.min(1,e),r.connect(t.destination);const n=[];let a=0,o=0;const l=()=>{if(!De?.playing)return;const i=t.currentTime,u=a%dn.length,c=dn[u],m=un[o%un.length],p=a%m.length;if(a%4===0&&c.forEach(h=>ht(t,h,.1,i,2.4,r)),Et(t,m[p],.2,i,.5,r),a%2===0&&ht(t,c[0]*.5,.07,i,.4,r),a%2===1&&Et(t,m[p]*1.5,.05,i,.2,r),H(t,4e3,.02,i,.015,r),a%4===0){const h=Z(t,"sine",150),d=F(t,.06);h.frequency.exponentialRampToValueAtTime(60,i+.04),d.gain.exponentialRampToValueAtTime(.001,i+.06),h.connect(d).connect(r),h.start(i),h.stop(i+.06)}a++,a%(m.length*2)===0&&o++};De={ctx:t,playing:!0,intervalId:null,masterGain:r,nodes:n},l(),De.intervalId=setInterval(l,600)}function Kl(){Ta(De),De=null}function ld(e){De?.masterGain&&(De.masterGain.gain.value=Math.min(1,Math.max(0,e)))}const Yl=[(e,t,r)=>{ie(e,3e3,t*.04,r,.12,e.destination),b(e,1047,t*.2,r,.12,e.destination),b(e,1319,t*.22,r+.06,.14,e.destination),b(e,1568,t*.28,r+.12,.2,e.destination),O(e,3e3,t*.03,r+.15,.25,e.destination)},(e,t,r)=>{ie(e,2800,t*.035,r,.1,e.destination),b(e,880,t*.18,r,.1,e.destination),b(e,1175,t*.2,r+.07,.12,e.destination),b(e,1480,t*.25,r+.14,.18,e.destination),O(e,2800,t*.025,r+.15,.22,e.destination)},(e,t,r)=>{ie(e,3200,t*.03,r,.08,e.destination),[784,988,1175,1480].forEach((n,a)=>H(e,n,t*(.12+a*.04),r+a*.05,.12,e.destination)),O(e,2500,t*.02,r+.2,.2,e.destination)}];function cd(e=.12){const t=U();W("purchase",Yl)(t,e,t.currentTime)}const Jl=[(e,t,r)=>{const n=Z(e,"sine",700);n.frequency.exponentialRampToValueAtTime(1200,r+.06);const a=F(e,t*.22);a.gain.exponentialRampToValueAtTime(.001,r+.1),n.connect(a).connect(e.destination),n.start(r),n.stop(r+.1),b(e,1800,t*.07,r+.04,.07,e.destination),O(e,2400,t*.015,r+.06,.12,e.destination)},(e,t,r)=>{b(e,800,t*.2,r,.07,e.destination),b(e,1100,t*.14,r+.03,.06,e.destination),O(e,2e3,t*.01,r+.05,.1,e.destination)},(e,t,r)=>{H(e,900,t*.17,r,.05,e.destination),H(e,1300,t*.12,r+.025,.05,e.destination),O(e,2200,t*.01,r+.04,.1,e.destination)}];function ud(e=.07){const t=U();W("favAdd",Jl)(t,e,t.currentTime)}const Ql=[(e,t,r)=>{b(e,700,t*.18,r,.08,e.destination),b(e,550,t*.1,r+.04,.06,e.destination)},(e,t,r)=>{b(e,800,t*.15,r,.06,e.destination),b(e,600,t*.08,r+.03,.05,e.destination)},(e,t,r)=>{H(e,900,t*.12,r,.05,e.destination),H(e,650,t*.08,r+.03,.04,e.destination)}];function dd(e=.04){const t=U();W("favRem",Ql)(t,e,t.currentTime)}const Xl=[(e,t,r)=>{X(e,t*.1,r,e.destination,100,40,.1),[587,740,880,1175].forEach((n,a)=>b(e,n,t*.17,r+a*.08,.38-a*.04,e.destination)),et(e,[1175,1480,1760],t*.05,r+.4,.55,e.destination),O(e,2350,t*.04,r+.4,.5,e.destination)},(e,t,r)=>{X(e,t*.08,r,e.destination,80,35,.08),[523,659,784,1047,1319].forEach((n,a)=>b(e,n,t*.14,r+a*.07,.32-a*.03,e.destination)),O(e,2094,t*.035,r+.35,.45,e.destination)},(e,t,r)=>{X(e,t*.08,r,e.destination,90,38,.08),[440,554,659,880].forEach((n,a)=>b(e,n,t*.16,r+a*.09,.35-a*.04,e.destination)),et(e,[880,1100,1319],t*.045,r+.4,.5,e.destination),O(e,1760,t*.03,r+.38,.45,e.destination)}];function md(e=.14){const t=U();W("level",Xl)(t,e,t.currentTime)}const Zl=[(e,t,r)=>{me(e,300,1200,t*.04,r,.22,e.destination),et(e,[587,740,880,1175],t*.07,r+.18,.65,e.destination),O(e,2350,t*.04,r+.25,.5,e.destination),X(e,t*.08,r,e.de
218stination,80,35,.1)},(e,t,r)=>{me(e,250,1e3,t*.035,r,.18,e.destination),[440,554,659,784,1047].forEach((n,a)=>b(e,n,t*.12,r+a*.06,.32,e.destination)),O(e,2e3,t*.03,r+.3,.4,e.destination)},(e,t,r)=>{me(e,280,1100,t*.04,r,.2,e.destination),et(e,[523,659,784,1047],t*.06,r+.16,.55,e.destination),O(e,2094,t*.035,r+.2,.45,e.destination)}];function pd(e=.12){const t=U();W("collect",Zl)(t,e,t.currentTime)}const ec=[(e,t,r)=>{b(e,1300,t*.15,r,.025,e.destination)},(e,t,r)=>{H(e,1100,t*.12,r,.02,e.destination)},(e,t,r)=>{b(e,1500,t*.12,r,.02,e.destination)}];function fd(e=.04){const t=U();W("tab",ec)(t,e,t.currentTime)}const mn={masterEnabled:!0,sfxVolume:.7,musicVolume:.15,uiSoundsEnabled:!0},Aa="di_sound_settings";function tc(){try{const e=localStorage.getItem(Aa);if(e)return{...mn,...JSON.parse(e)}}catch{}return mn}const ja=f.createContext(null),rc=({children:e})=>{const[t,r]=f.useState(tc),n=f.useRef(!1);f.useEffect(()=>{localStorage.setItem(Aa,JSON.stringify(t))},[t]),f.useEffect(()=>{const m=()=>{wl(),n.current=!0},p=["click","touchstart","keydown","pointerdown"];return p.forEach(h=>document.addEventListener(h,m,{passive:!0})),()=>{p.forEach(h=>document.removeEventListener(h,m))}},[]);const a=f.useCallback(m=>r(p=>({...p,masterEnabled:m})),[]),o=f.useCallback(m=>r(p=>({...p,sfxVolume:m})),[]),l=f.useCallback(m=>r(p=>({...p,musicVolume:m})),[]),i=f.useCallback(m=>r(p=>({...p,uiSoundsEnabled:m})),[]),u=t.masterEnabled?t.sfxVolume:0,c=t.masterEnabled?t.musicVolume:0;return s.jsx(ja.Provider,{value:{...t,setMasterEnabled:a,setSfxVolume:o,setMusicVolume:l,setUiSoundsEnabled:i,effectiveSfxVolume:u,effectiveMusicVolume:c},children:e})},nc=()=>{const e=f.useContext(ja);if(!e)throw new Error("useSoundSettings must be used within SoundProvider");return e},ac=()=>{const[e,t]=f.useState(!1),[r,n]=f.useState(!1);f.useEffect(()=>{if(!localStorage.getItem("cookie-consent")){const u=setTimeout(()=>t(!0),1e3);return()=>clearTimeout(u)}},[]);const a=()=>{localStorage.setItem("cookie-consent",JSON.stringify({necessary:!0,analytics:!0,marketing:!0,timestamp:new Date().toISOString()})),t(!1)},o=()=>{localStorage.setItem("cookie-consent",JSON.stringify({necessary:!0,analytics:!1,marketing:!1,timestamp:new Date().toISOString()})),t(!1)},l=(i,u)=>{localStorage.setItem("cookie-consent",JSON.stringify({necessary:!0,analytics:i,marketing:u,timestamp:new Date().toISOString()})),t(!1)};return e?s.jsx("div",{className:"fixed bottom-4 right-4 z-50 pointer-events-none animate-fade-in-up",children:s.jsx("div",{className:"w-[min(calc(100vw-2rem),24rem)] pointer-events-auto",children:s.jsx("div",{className:"rounded-xl bg-secondary border border-border shadow-lg",children:r?s.jsx(sc,{onSave:l,onBack:()=>n(!1)}):s.jsxs("div",{className:"space-y-3 p-3",children:[s.jsxs("div",{className:"flex min-w-0 items-start gap-2.5",children:[s.jsx(Ro,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),s.jsxs("div",{className:"flex-1",children:[s.jsx("h3",{className:"font-display font-bold text-foreground text-sm mb-1",children:"Cookies"}),s.jsx("p",{className:"text-muted-foreground text-xs leading-snug",children:"Nous utilisons des cookies pour améliorer votre expérience."})]})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[s.jsx(ce,{variant:"hero",onClick:a,size:"sm",className:"w-full",children:"Accepter"}),s.jsx(ce,{variant:"outline",onClick:o,size:"sm",className:"w-full",children:"Refuser"}),s.jsxs(ce,{variant:"ghost",onClick:()=>n(!0),size:"sm",className:"col-span-2 w-full gap-2",children:[s.jsx(Uo,{className:"w-4 h-4"}),"Personnaliser"]})]})]})})})}):null},sc=({onSave:e,onBack:t})=>{const[r,n]=f.useState(!0),[a,o]=f.useState(!1);return s.jsxs("div",{className:"p-4",children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsx("h3",{className:"font-display font-bold text-foreground text-lg",children:"Personnaliser les cookies"}),s.jsx(ce,{variant:"ghost",size:"sm",onClick:t,children:s.jsx(Xe,{className:"w-4 h-4"})})]}),s.jsxs("div",{className:"space-y-4 mb-6",children:[s.jsxs("div",{className:"p-4 rounded-xl bg-secondary/50 border border-border",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("span",{className:"font-medium text-foreground",children:"Cookies nécessaires"}),s.jsx("span",{className:"px-2 py-1 rounded bg-primary/20 text-primary text-xs",children:"Requis"})]}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Ces cookies sont essentiels au fonctionnement du site (authentification, panier, sécurité)."})]}),s.jsxs("div",{className:"p-4 rounded-xl bg-secondary/50 border border-border",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("span",{className:"font-medium text-foreground",children:"Cookies analytiques"}),s.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:r,onChange:l=>n(l.target.checked),className:"sr-only peer"}),s.jsx("div",{className:"w-11 h-6 bg-muted peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary"})]})]}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Nous aident à comprendre comment vous utilisez le site pour l'améliorer."})]}),s.jsxs("div",{className:"p-4 rounded-xl bg-secondary/50 border border-border",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("span",{className:"font-medium text-foreground",children:"Cookies marketing"}),s.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:a,onChange:l=>o(l.target.checked),className:"sr-only peer"}),s.jsx("div",{className:"w-11 h-6 bg-muted peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary"})]})]}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Utilisés pour vous proposer des publicités personnalisées."})]})]}),s.jsx("div",{className:"flex gap-3",children:s.jsx(ce,{variant:"hero",onClick:()=>e(r,a),className:"flex-1",children:"Enregistrer mes préférences"})})]})},oc=()=>{const{effectiveSfxVolume:e,uiSoundsEnabled:t,masterEnabled:r}=nc();return f.useEffect(()=>{if(!r||!t||e<=0)return;const n=a=>{a.target.closest('button, [role="button"], [role="tab"], [role="menuitem"], a[href]')&&_l(e*.04)};return document.addEventListener("click",n,{passive:!0,capture:!0}),()=>document.removeEventListener("click",n,!0)},[e,t,r]),null},ic=()=>{const e=tt(),{user:t}=Me(),{t:r,language:n}=Mt(),{isB2B:a}=xr(),o=t&&t.is_anonymous!==!0?t:null;if(e.pathname==="/play")return null;const l=()=>n==="en"?"$":"â¬",i=[{to:"/dashboard",label:r("nav.myspace"),icon:ra,guide:"dashboard"},{to:"/boutique",label:r("nav.shop"),icon:ar,guide:"shop"},{to:"/boosters",label:r("nav.boosters"),icon:Do,guide:"boosters"},{to:"/marche",label:r("nav.p2p"),icon:na,guide:"market"},{to:"/collection",label:r("nav.collection"),icon:Mo,guide:"collection"}],u=[{to:"/",label:r("nav.home"),icon:Vo},{to:"/partenaire",label:r("nav.partner"),icon:ft},{to:"/tarification",label:r("nav.pricing"),currencySymbol:l(),highlight:!0},{to:"/guide-entreprise",label:r("nav.guide"),icon:zo},{to:"/contact",label:r("nav.contact"),icon:Fo}],c=a?u:i,m=h=>h==="/dashboard"||h==="/"?e.pathname==="/dashboard"||e.pathname==="/":e.pathname.startsWith(h),p=!a&&o||a?c:c.map(h=>h.to==="/collection"?{...h,to:"/auth",label:r("nav.login")}:h);return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"md:hidden",style:{height:"calc(4rem + env(safe-area-inset-bottom))"},"aria-hidden":"true"}),s.jsx("nav",{className:"fixed bottom-0 left-0 right-0 z-50 md:hidden bg-background/95 backdrop-blur-xl border-t border-border",style:{paddingBottom:"env(safe-area-inset-bottom)"},children:s.jsx("div",{className:"flex items-center justify-around h-16",children:p.map(h=>
218{const d="icon"in h?h.icon:null,T="currencySymbol"in h?h.currencySymbol:null,x=m(h.to),y="highlight"in h&&h.highlight;return s.jsxs(gr,{to:h.to,"data-guide":"guide"in h?h.guide:void 0,className:G("flex flex-col items-center justify-center flex-1 h-full transition-colors touch-manipulation relative",x?y?"text-yellow-500":"text-primary":y?"text-yellow-500/70":"text-muted-foreground active:text-foreground"),children:[y&&s.jsx("div",{className:"absolute inset-x-2 top-1 bottom-1 bg-gradient-to-b from-yellow-500/20 to-transparent rounded-lg"}),T?s.jsx("span",{className:G("w-5 h-5 mb-1 flex items-center justify-center font-bold text-base transition-transform relative z-10",x&&"scale-110",y&&"drop-shadow-[0_0_4px_rgba(234,179,8,0.5)]"),children:T}):d?s.jsx(d,{className:G("w-5 h-5 mb-1 transition-transform relative z-10",x&&"scale-110",y&&"drop-shadow-[0_0_4px_rgba(234,179,8,0.5)]")}):null,s.jsx("span",{className:G("text-[10px] font-medium relative z-10",y&&"font-semibold"),children:h.label}),x&&s.jsx("div",{className:G("absolute bottom-1 w-1 h-1 rounded-full",y?"bg-yellow-500":"bg-primary")})]},h.to)})})})]})},lc=Ln,hd=On,cc=Dn,gd=fr,Sa=f.forwardRef(({className:e,...t},r)=>s.jsx(It,{ref:r,className:G("fixed inset-0 z-50 bg-background/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));Sa.displayName=It.displayName;const Ea=f.forwardRef(({className:e,children:t,hideCloseButton:r,...n},a)=>s.jsxs(cc,{children:[s.jsx(Sa,{}),s.jsxs(Nt,{ref:a,className:G("fixed left-[50%] top-[50%] z-50 grid w-[calc(100vw-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg",e),...n,children:[t,!r&&s.jsxs(fr,{className:"absolute right-3 top-3 z-20 inline-flex h-8 w-8 items-center justify-center rounded-md opacity-80 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 data-[state=open]:bg-accent data-[state=open]:text-muted-foreground disabled:pointer-events-none touch-manipulation",children:[s.jsx(Xe,{className:"h-4 w-4"}),s.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Ea.displayName=Nt.displayName;const Ia=({className:e,...t})=>s.jsx("div",{className:G("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Ia.displayName="DialogHeader";const uc=({className:e,...t})=>s.jsx("div",{className:G("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});uc.displayName="DialogFooter";const Na=f.forwardRef(({className:e,...t},r)=>s.jsx(Rt,{ref:r,className:G("text-lg font-semibold leading-none tracking-tight",e),...t}));Na.displayName=Rt.displayName;const Ra=f.forwardRef(({className:e,...t},r)=>s.jsx(zt,{ref:r,className:G("text-sm text-muted-foreground",e),...t}));Ra.displayName=zt.displayName;const dc="/assets/icons-arena-logo-BE4Agh-1.png",za=f.forwardRef(({open:e,onOpenChange:t},r)=>{const{t:n}=Mt(),[a,o]=f.useState(!1),l=()=>{o(!0)};return s.jsx(lc,{open:e,onOpenChange:t,children:s.jsxs(Ea,{className:"max-w-[95vw] sm:max-w-md bg-card border-border mx-2",children:[s.jsxs(Ia,{className:"text-center space-y-4",children:[s.jsx("div",{className:"mx-auto animate-[fade-in_0.5s_ease-out,scale-in_0.6s_ease-out]",children:s.jsx("img",{src:dc,alt:"Icons Arena Logo",className:"w-48 sm:w-56 h-auto object-contain"})}),s.jsx(Na,{className:"sr-only",children:"Icons Arena"}),s.jsx(Ra,{className:"text-muted-foreground text-sm sm:text-base",children:n("arena.coming.soon.desc")})]}),s.jsxs("div",{className:"space-y-3 sm:space-y-4 py-3 sm:py-4",children:[s.jsxs("div",{className:"flex items-center justify-center gap-2 px-3 py-1.5 sm:px-4 sm:py-2 rounded-full bg-primary/10 border border-primary/20 text-primary text-xs sm:text-sm font-medium",children:[s.jsx(No,{className:"w-3 h-3 sm:w-4 sm:h-4"}),n("arena.in.development")]}),s.jsxs("div",{className:"space-y-2 sm:space-y-3 p-3 sm:p-4 roun
218ded-xl bg-secondary/50",children:[s.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[s.jsx(Ut,{className:"w-4 h-4 sm:w-5 sm:h-5 text-rarity-legendary mt-0.5 flex-shrink-0"}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("p",{className:"font-medium text-foreground text-xs sm:text-sm",children:n("arena.use.cards.title")}),s.jsx("p",{className:"text-muted-foreground text-[10px] sm:text-xs",children:n("arena.use.cards.desc")})]})]}),s.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[s.jsx(Ut,{className:"w-4 h-4 sm:w-5 sm:h-5 text-rarity-epic mt-0.5 flex-shrink-0"}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("p",{className:"font-medium text-foreground text-xs sm:text-sm",children:n("arena.early.title")}),s.jsx("p",{className:"text-muted-foreground text-[10px] sm:text-xs",children:n("arena.early.desc")})]})]}),s.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[s.jsx(Ut,{className:"w-4 h-4 sm:w-5 sm:h-5 text-rarity-rare mt-0.5 flex-shrink-0"}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("p",{className:"font-medium text-foreground text-xs sm:text-sm",children:n("arena.cashprize.title")}),s.jsx("p",{className:"text-muted-foreground text-[10px] sm:text-xs",children:n("arena.cashprize.desc")})]})]})]}),s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsx(gr,{to:"/icons-arena",onClick:i=>{i.preventDefault(),t(!1),setTimeout(()=>{window.location.href="/icons-arena"},100)},children:s.jsxs(ce,{variant:"hero",className:"w-full gap-2",children:[s.jsx(Je,{className:"w-4 h-4"}),"Découvrir Icons Arena"]})}),a?s.jsx("div",{className:"text-center p-3 rounded-xl bg-accent/10 border border-accent/20",children:s.jsx("p",{className:"text-accent font-medium text-sm",children:n("arena.notified")})}):s.jsxs(ce,{variant:"outline",className:"w-full gap-2",onClick:l,children:[s.jsx(pt,{className:"w-4 h-4"}),n("arena.notify.me")]})]}),s.jsx("p",{className:"text-center text-muted-foreground text-xs",children:n("arena.buy.cards.hint")})]})]})})});za.displayName="IconsArenaPopup";const mc=({variant:e="default",className:t})=>{const{isB2B:r,switchMode:n}=xr(),a=gt(),o=tt(),l=()=>{n(),o.pathname!=="/"&&a("/")};return e==="mobile"?s.jsx("button",{onClick:l,className:G("relative flex items-center rounded-full p-0.5 transition-all duration-300","bg-secondary/80 border border-border shadow-inner min-w-0 flex-shrink",t),children:s.jsxs("div",{className:"relative flex items-center min-w-0",children:[s.jsxs("div",{className:G("relative z-10 flex items-center gap-0.5 px-2 py-1 rounded-full transition-all duration-300 whitespace-nowrap",r?"text-muted-foreground":"bg-primary text-primary-foreground shadow-md"),children:[s.jsx(Je,{className:"w-3 h-3 flex-shrink-0"}),s.jsx("span",{className:"text-[9px] font-semibold",children:"Joueur"})]}),s.jsxs("div",{className:G("relative z-10 flex items-center gap-0.5 px-2 py-1 rounded-full transition-all duration-300 whitespace-nowrap",r?"bg-accent text-accent-foreground shadow-md":"text-muted-foreground"),children:[s.jsx(ft,{className:"w-3 h-3 flex-shrink-0"}),s.jsx("span",{className:"text-[9px] font-semibold",children:"Entreprise"})]})]})}):e==="compact"?s.jsx(ir,{delayDuration:200,children:s.jsxs(lr,{children:[s.jsx(cr,{asChild:!0,children:s.jsxs("button",{onClick:l,className:G("relative flex items-center gap-1 px-2 py-1.5 rounded-lg transition-all duration-300","border font-medium text-xs",r?"bg-accent/10 border-accent/30 text-accent hover:bg-accent/20":"bg-primary/10 border-primary/30 text-primary hover:bg-primary/20",t),children:[r?s.jsx(ft,{className:"w-3.5 h-3.5"}):s.jsx(Je,{className:"w-3.5 h-3.5"}),s.jsx("span",{className:"hidden sm:inline",children:r?"Pro":"Joueur"})]})}),s.jsx(St,{side:"bottom",children:s.jsxs("p",{className:"text-xs",children:["Mode ",r?"Entreprise":"Joueur"," actif",s.jsx("br",{}),s.jsx("span",{className:"text-muted-foreground",children:"Cliquez pour basculer"})]})})]})}):s.jsx(ir,{delayDuration:300,children:s.jsxs(lr,{children:[s.jsx(cr,{asChild:!0,children:s.jsx("button",{onClick:l,className:G("relative flex items-center rounded-full p-1 transition-all duration-300","bg-secondary/50 border border-border hover:bg-secondary",t),children:s.jsxs("div",{className:"relative flex items-center gap-0",children:[s.jsxs("div",{className:G("relative z-10 flex items-center gap-1.5 px-3 py-1.5 rounded-full transition-all duration-300",r?"text-muted-foreground":"bg-primary text-primary-foreground shadow-md"),children:[s.jsx(Je,{className:"w-4 h-4"}),s.jsx("span",{className:"text-xs font-semibold whitespace-nowrap",children:"Joueur"})]}),s.jsxs("div",{className:G("relative z-10 flex items-center gap-1.5 px-3 py-1.5 rounded-full transition-all duration-300",r?"bg-accent text-accent-foreground shadow-md":"text-muted-foreground"),children:[s.jsx(ft,{className:"w-4 h-4"}),s.jsx("span",{className:"text-xs font-semibold whitespace-nowrap",children:"Entreprise"})]})]})})}),s.jsx(St,{side:"bottom",className:"hidden sm:block",children:s.jsxs("p",{className:"text-xs",children:["Basculer vers le mode ",r?"Joueur":"Entreprise"]})})]})})},jt={mission_daily:50,mission_long_term:200,combat_win:100,combat_draw:40,combat_loss:10,booster_free:20,booster_paid:50,shop_purchase:10,p2p_sale:30,p2p_purchase:15,daily_login:15},bd={mission_daily:"Mission quotidienne",mission_long_term:"Mission long-terme",combat_win:"Victoire en combat",combat_draw:"Match nul",combat_loss:"Défaite en combat",booster_free:"Booster gratuit ouvert",booster_paid:"Booster payant ouvert",shop_purchase:"Achat boutique",p2p_
218sale:"Vente P2P",p2p_purchase:"Achat P2P",daily_login:"Connexion quotidienne"};function Ma(e){return Math.floor(100*Math.pow(e,2.2))}function pc(e){if(e<=1)return 0;let t=0;for(let r=1;r<e;r++)t+=Ma(r);return t}function pn(e,t){const r=pc(t),n=Ma(t),a=e-r,o=Math.min(100,Math.max(0,a/n*100)),l=Math.max(0,n-a);return{level:t,totalXP:e,currentLevelXP:a,nextLevelXP:n,progressPercent:o,xpToNext:l}}function fc(){const{user:e}=Me(),{toast:t}=yr(),r=Fn(),{data:n,isLoading:a}=ze({queryKey:["user-xp",e?.id],queryFn:async()=>{if(!e)return null;const{data:i,error:u}=await j.from("user_xp").select("*").eq("user_id",e.id).maybeSingle();if(u&&u.code!=="PGRST116")throw u;if(!i){const{data:c}=await j.from("user_xp").insert({user_id:e.id}).select().single();return c}return i},enabled:!!e,staleTime:1e3*30,refetchOnWindowFocus:!0,refetchOnReconnect:!0});f.useEffect(()=>{if(!e)return;const i=j.channel(`user-xp-${e.id}`).on("postgres_changes",{event:"UPDATE",schema:"public",table:"user_xp",filter:`user_id=eq.${e.id}`},u=>{const c=u.old?.current_level??1,m=u.new?.current_level??1;r.invalidateQueries({queryKey:["user-xp",e.id]}),r.invalidateQueries({queryKey:["xp-events",e.id]}),m>c&&t({title:`ð Niveau ${m} atteint !`,description:m%5===0?"+1 booster gratuit + 1% de réduction boutique":"+20 points missions bonus"})}).on("postgres_changes",{event:"INSERT",schema:"public",table:"xp_events",filter:`user_id=eq.${e.id}`},()=>{r.invalidateQueries({queryKey:["xp-events",e.id]})}).subscribe();return()=>{j.removeChannel(i)}},[e,r,t]);const o=dt({mutationFn:async({source:i,baseXP:u,metadata:c={}})=>{if(!e)return null;const{data:m,error:p}=await j.rpc("award_xp",{_user_id:e.id,_source:i,_base_xp:u,_metadata:c});if(p)throw p;return m},onSuccess:i=>{i&&(r.invalidateQueries({queryKey:["user-xp",e?.id]}),r.invalidateQueries({queryKey:["xp-events",e?.id]}),!i.leveled_up&&i.xp_gained>0&&t({title:`+${i.xp_gained} XP${i.multiplier>1?" ⨠Ã2":""}`,duration:1800}))},onError:i=>{t({title:"Erreur de synchronisation XP",description:"Vos points seront synchronisés automatiquement.",variant:"destructive",duration:3e3})}}),l=n?pn(n.total_xp,n.current_level):pn(0,1);return{userXP:n,levelInfo:l,isLoading:a,awardXP:o}}function hc(e=30){const{user:t}=Me();return ze({queryKey:["xp-events",t?.id,e],queryFn:async()=>{if(!t)return[];const{data:r,error:n}=await j.from("xp_events").select("*").eq("user_id",t.id).order("created_at",{ascending:!1}).limit(e);if(n)throw n;return r??[]},enabled:!!t,staleTime:1e3*30,refetchOnWindowFocus:!0})}function yd(){const{data:e=[]}=hc(200),t=Date.now(),r=new Date;r.setHours(0,0,0,0);const n=r.getTime(),a=t-7*24*60*60*1e3;let o=0,l=0;for(const i of e){const u=new Date(i.created_at).getTime();u>=n&&(o+=i.xp_amount),u>=a&&(l+=i.xp_amount)}return{xpToday:o,xp7d:l}}async function fn(e,t,r,n={}){const a=r??jt[t]??0;if(a<=0)return null;const{data:o,error:l}=await j.rpc("award_xp",{_user_id:e,_source:t,_base_xp:a,_metadata:n});return l?null:o}const hn=({variant:e="compact",className:t})=>{const{user:r}=Me(),{userXP:n,levelInfo:a}=fc(),o=gt();return r?e==="compact"?s.jsxs("button",{onClick:()=>o("/missions?tab=progression"),className:G("group flex items-center gap-1.5 px-2 py-1 rounded-lg bg-secondary/40 hover:bg-secondary/70 border border-border/50 transition-all",t),"aria-label":`Niveau ${a.level}, ${a.currentLevelXP} sur ${a.nextLevelXP} XP â voir la progression`,children:[s.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[s.jsx(sr,{className:"w-3 h-3 text-primary"}),s.jsxs("span",{className:"text-xs font-bold text-foreground tabular-nums",children:["Lv.",a.level]})]}),s.jsx("div",{className:"w-12 sm:w-20 md:w-24 h-1.5 rounded-full bg-muted overflow-hidden",children:s.jsx("div",{className:"h-full bg-gradient-to-r from-primary to-accent transition-all duration-500",style:{width:`${a.progressPercent}%`}})})]}):s.jsxs("button",{onClick:()=>o("/missions?tab=progression"),className:G("w-full flex flex-col gap-1.5 p-3 rounded-xl bg-secondary/30 hover:bg-secondary/50 border border-border/50 transition-all text-left",t),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(sr,{className:"w-4 h-4 text-primary"}),s.jsxs("span",{className:"text-sm font-bold text-foreground",children:["Niveau ",a.level]})]}),s.jsxs("span",{className:"text-xs text-muted-foreground tabular-nums",children:[a.currentLevelXP.toLocaleStr
218ing()," / ",a.nextLevelXP.toLocaleString()," XP"]})]}),s.jsx("div",{className:"h-2 rounded-full bg-muted overflow-hidden",children:s.jsx("div",{className:"h-full bg-gradient-to-r from-primary via-accent to-primary transition-all duration-500",style:{width:`${a.progressPercent}%`}})}),s.jsxs("span",{className:"text-[10px] text-muted-foreground",children:["Plus que ",a.xpToNext.toLocaleString()," XP avant le niveau ",a.level+1]})]}):null},gn="/assets/logo-icon-PaPPMHfD.png";function gc(e={}){const{enabled:t=!0,badgeOnly:r=!1}=e,{user:n}=Me(),{toast:a}=yr(),o=Fn(),[l,i]=f.useState(!1);f.useEffect(()=>{const v=async()=>{if(!n||!t||r)return;const{data:g}=await j.from("profiles").select("is_premium").eq("id",n.id).maybeSingle();i(g?.is_premium??!1)};if(!t||r){i(!1);return}v()},[n,t,r]);const u=l?2:1,{data:c=[],isLoading:m}=ze({queryKey:["missions"],queryFn:async()=>{const{data:v,error:g}=await j.from("mission_definitions").select("*").eq("is_active",!0).order("sort_order");if(g)throw g;return v},staleTime:1e3*60*10,enabled:t}),{data:p,isLoading:h}=ze({queryKey:["mission-stats",n?.id],queryFn:async()=>{if(!n)return null;const{data:v,error:g}=await j.from("user_mission_stats").select("*").eq("user_id",n.id).maybeSingle();if(g&&g.code!=="PGRST116")throw g;return v},enabled:t&&!!n}),{data:d=[],isLoading:T}=ze({queryKey:["mission-progress",n?.id],queryFn:async()=>{if(!n)return[];const{data:v,error:g}=await j.from("user_mission_progress").select("*").eq("user_id",n.id);if(g)throw g;return v},enabled:t&&!!n}),{data:x=[]}=ze({queryKey:["daily-completions",n?.id],queryFn:async()=>{if(!n)return[];const v=new Date().toISOString().split("T")[0],{data:g,error:$}=await j.from("user_daily_mission_completions").select("*").eq("user_id",n.id).eq("completion_date",v);if($)throw $;return g},enabled:t&&!!n}),{data:y=[]}=ze({queryKey:["mission-rewards"],queryFn:async()=>{const{data:v,error:g}=await j.from("mission_rewards").select("*").eq("is_active",!0).order("sort_order");if(g)throw g;return v},enabled:t&&!r}),S=dt({mutationFn:async()=>{const{data:v,error:g}=await j.rpc("track_daily_login");if(g)throw g;return v},onSuccess:async v=>{v?.success&&!v?.already_logged&&(o.invalidateQueries({queryKey:["mission-stats"]}),o.invalidateQueries({queryKey:["mission-progress"]}),o.invalidateQueries({queryKey:["daily-completions"]}),n&&(await fn(n.id,"daily_login",jt.daily_login,{streak:v.streak}),o.invalidateQueries({queryKey:["user-xp",n.id]})),a({title:"Connexion enregistrée! ð¥",description:`Série actuelle: ${v.streak} jour(s)`}))}}),R=dt({mutationFn:async({eventType:v,eventData:g={}})=>{const{error:$}=await j.rpc("track_mission_event",{p_event_type:v,p_event_data:g});if($)throw $},onSuccess:()=>{o.invalidateQueries({queryKey:["mission-stats"]}),o.invalidateQueries({queryKey:["mission-progress"]})}}),D=dt({mutationFn:async v=>{if(!n)throw new Error("Not authenticated");const g=c.find(ue=>ue.id===v);if(!g)throw new Error("Mission not found");const $=g.points_reward*u,{data:Y,error:se}=await j.rpc("credit_mission_points",{p_mission_id:v,p_points:$});if(se)throw se;const re=g.mission_type==="daily"?jt.mission_daily:jt.mission_long_term;return await fn(n.id,`mission_${g.mission_type}`,re,{mission_id:v,mission_name:g.name}),{earnedPoints:$,missionName:g.name}},onSuccess:({earnedPoints:v,missionName:g})=>{o.invalidateQueries({queryKey:["mission-stats"]}),o.invalidateQueries({queryKey:["mission-progress"]}),o.invalidateQueries({queryKey:["user-xp",n?.id]}),a({title:"Points réclamés! ð",description:`+${v} points pour "${g}"`})},onError:v=>{a({title:"Erreur",description:"Impossible de réclamer les points",variant:"destructive"})}}),Q=dt({mutationFn:async v=>{if(!n)throw new Error("Not authenticated");const g=y.find(re=>re.id===v);if(!g)throw new Error("Reward not found");if((p?.total_points??0)<g.points_cost)throw new Error("Not enough points");const{data:Y,error:se}=await j.rpc("spend_mission_points",{p_reward_id:v});if(se)throw se;return{reward:g,result:Y}},onSuccess:({reward:v,result:g})=>{o.invalidateQueries({queryKey:["mission-stats"]}),o.invalidateQueries({queryKey:["collection"]}),o.invalidateQueries({queryKey:["shop-discount"]}),o.invalidateQueries({queryKey:["cards-with-promotions"]}),o.invalidateQueries({queryKey:["notifications"]}),g?.granted_tokens?.length||a({title:"Récompense obtenue! ð",description:v.reward_type==="shop_discount"?`Réduction de -${v.reward_value}% activée sur la boutique pendant 24h!`:`Vous avez échangé ${v.points_cost} points contre "${v.name}"`})},onError:v=>{a({title:"Erreur",description:v.message==="Not enough points"?"Vous n'avez pas assez de points":"Impossible de réclamer la récompense",variant:"destructive"})}}),A=(v,g,$)=>{if(!g)return 0;switch(v.event_key){case"booster_opened":return g.total_boosters_opened??0;case"combat_started":return g.total_combats_played??0;case"combat_won":return g.total_combats_won??0;case"card_collected":return g.total_cards_collected??0;case"app_shared":return g.total_app_shares??0;case"consecutive_login":return g.max_login_streak??0;case"daily_login":return $.some(Y=>Y.mission_id===v.id)||(g.current_login_streak??0)>0?1:0;default:return 0}},k=f.useMemo(()=>{const v=new Set;
218return c.forEach(g=>{const $=d.find(re=>re.mission_id===g.id),Y=A(g,p??null,x);(g.mission_type==="daily"?x.some(re=>re.mission_id===g.id)?g.threshold:Y:$?.current_progress??Y)>=g.threshold&&v.add(g.id)}),c.map(g=>{const $=d.find(le=>le.mission_id===g.id),Y=A(g,p??null,x),se=g.mission_type==="daily"?x.some(le=>le.mission_id===g.id)?g.threshold:Y:$?.current_progress??Y,re=se>=g.threshold,ue=re&&!$?.points_claimed,ve=g.prerequisite_mission_id?!v.has(g.prerequisite_mission_id):!1,V=!g.is_hidden||re||!ve;return{...g,progress:Math.min(se,g.threshold),isCompleted:re,canClaim:ue,pointsMultiplier:u,isLocked:ve,isRevealed:V}})},[c,d,p,x,u]),_=f.useMemo(()=>k.filter(v=>v.mission_type==="daily"),[k]),P=f.useMemo(()=>k.filter(v=>v.mission_type==="long_term"),[k]),E=f.useMemo(()=>P.reduce((v,g)=>(v[g.category]||(v[g.category]=[]),v[g.category].push(g),v),{}),[P]),q=f.useMemo(()=>k.filter(v=>v.canClaim).length,[k]);return{dailyMissions:_,longTermMissions:P,longTermByCategory:E,stats:p,rewards:y,isPremium:l,pointsMultiplier:u,claimableCount:q,isLoading:m||h||T,trackLogin:S,trackEvent:R,claimPoints:D,claimReward:Q}}const bc=Ln,yc=On,vc=Dn,qa=f.forwardRef(({className:e,...t},r)=>s.jsx(It,{className:G("fixed inset-0 z-50 bg-background/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:r}));qa.displayName=It.displayName;const wc=vr("fixed z-50 gap-4 bg-background p-6 shadow-lg transition-transform ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Va=f.forwardRef(({side:e="right",className:t,children:r,...n},a)=>s.jsxs(vc,{children:[s.jsx(qa,{}),s.jsxs(Nt,{ref:a,className:G(wc({side:e}),t),...n,children:[r,s.jsxs(fr,{className:"absolute right-4 top-4 roun
218ded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[s.jsx(Xe,{className:"h-4 w-4"}),s.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Va.displayName=Nt.displayName;const La=({className:e,...t})=>s.jsx("div",{className:G("flex flex-col space-y-2 text-center sm:text-left",e),...t});La.displayName="SheetHeader";const Da=f.forwardRef(({className:e,...t},r)=>s.jsx(Rt,{ref:r,className:G("text-lg font-semibold text-foreground",e),...t}));Da.displayName=Rt.displayName;const xc=f.forwardRef(({className:e,...t},r)=>s.jsx(zt,{ref:r,className:G("text-sm text-muted-foreground",e),...t}));xc.displayName=zt.displayName;const bn={fr:{flag:"ð«ð·",name:"Français"},en:{flag:"ð¬ð§",name:"English"}},kc=()=>{const[e,t]=f.useState(!1),[r,n]=f.useState(!1),{user:a,profile:o,isAdmin:l,isPremium:i,signOut:u}=Me(),{t:c,language:m,setLanguage:p}=Mt(),{isB2B:h}=xr(),d=tt(),T=a&&(d.pathname==="/missions"||d.pathname.startsWith("/missions?")),{claimableCount:x}=gc({enabled:!!T,badgeOnly:!0}),y=gt(),S=a&&a.is_anonymous!==!0?a:null,R=async()=>{await u(),y("/")};if(d.pathname==="/play")return null;d.pathname.startsWith("/boutique")||d.pathname.startsWith("/marche");const D=_=>d.pathname===_,Q=_=>{y(_),n(!1)},A=({title:_,children:P})=>s.jsxs("div",{className:"space-y-1",children:[s.jsx("p",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider px-1 mb-2",children:_}),P]}),k=({icon:_,label:P,path:E,highlight:q,badge:v})=>s.jsxs("button",{onClick:()=>Q(E),className:G("w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-all",D(E)?"bg-primary text-primary-foreground":q?"text-primary hover:bg-primary/10":"text-foreground hover:bg-secondary/50"),children:[s.jsxs("div",{className:"relative flex-shrink-0",children:[s.jsx(_,{className:"w-4 h-4"}),v&&v>0?s.jsx("span",{className:"absolute -top-1.5 -right-1.5 w-3.5 h-3.5 rounded-full bg-destructive text-destructive-foreground text-[8px] flex items-center justify-center font-bold animate-pulse",children:v>9?"!":v}):null]}),P,v&&v>0?s.jsx("span",{className:"ml-auto text-[10px] font-bold bg-destructive text-destructive-foreground px-1.5 py-0.5 rounded-full",children:v}):null]});return s.jsxs(s.Fragment,{children:[s.jsx("nav",{className:"fixed top-0 left-0 right-0 z-50 md:hidden bg-background/95 backdrop-blur-xl border-b border-border",style:{paddingTop:"env(safe-area-inset-top)"},children:s.jsxs("div",{className:"flex items-center justify-between h-14 px-2 pr-4 gap-1 min-w-0",children:[s.jsx(gr,{to:"/",className:"flex items-center flex-shrink-0",children:s.jsx("img",{src:gn,alt:"Digital Icons",className:"h-9 w-9 object-contain"})}),s.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[h?s.jsxs(ce,{variant:"gold",size:"sm",className:"h-8 px-2.5 gap-1.5",onClick:()=>y("/partenaire"),children:[s.jsx(ft,{className:"w-3.5 h-3.5"}),s.jsx("span",{className:"text-xs",children:c("nav.partner")})]}):s.jsxs(ce,{variant:"hero",size:"sm",className:"h-8 px-2.5 gap-1.5",onClick:()=>y("/jouer"),children:[s.jsx(Je,{className:"w-3.5 h-3.5"}),s.jsx("span",{className:"text-xs",children:c("nav.play")})]}),S&&s.jsx(hn,{variant:"compact"}),s.jsx(va,{}),S&&s.jsxs("button",{onClick:()=>y("/dashboard"),className:"flex items-center gap-1 px-2 py-1 rounded-lg bg-primary/10 border border-primary/20",children:[s.jsx(Xo,{className:"w-3 h-3 text-primary"}),s.jsxs("span",{className:"font-semibold text-xs text-foreground max-w-[72px] truncate",children:[(o?.balance||0).toLocaleString(),"â¬"]})]}),s.jsxs(bc,{open:r,onOpenChange:n,children:[s.jsx(yc,{asChild:!0,children:s.jsx(ce,{variant:"ghost",size:"icon",className:"h-9 w-9 rounded-lg",children:s.jsx($o,{className:"w-5 h-5"})})}),s.jsxs(Va,{side:"right",className:"w-[88vw] max-w-sm p-0 flex flex-col h-full",children:[s.jsx(La,{className:"p-4 border-b border-border flex-shrink-0",children:s.jsxs(Da,{className:"flex items-center gap-3",children:[s.jsx("img",{src:gn,alt:"Digital Icons",className:"h-8 w-auto"}),s.jsxs("span",{className:"font-bold text-lg",children:[s.jsx("span",{className:"text-foreground",children:"DIGITAL"})," ",s.jsx("span",{className:"text-gradient-primary",children:"ICONS"})]})]})}),s.jsxs("div",{className:"flex-1 min-h-0 overflow-y-auto overscroll-contain p-4 space-y-4",style:{paddingBottom:"calc(env(safe-area-inset-bottom) + 1rem)"},children:[S&&s.jsxs("button",{onClick:()=>
218Q("/dashboard"),className:"w-full flex items-center gap-3 p-3 rounded-xl bg-gradient-to-br from-primary/10 to-accent/10 border border-primary/20 hover:from-primary/15 hover:to-accent/15 transition-all text-left",children:[s.jsxs("div",{className:"relative flex-shrink-0",children:[o?.avatar_url?s.jsx("img",{src:o.avatar_url,alt:o.username||"Profil",className:"w-11 h-11 rounded-full object-cover border-2 border-primary/30"}):s.jsx("div",{className:"w-11 h-11 rounded-full bg-primary/20 border-2 border-primary/30 flex items-center justify-center",children:s.jsx(ra,{className:"w-5 h-5 text-primary"})}),i&&s.jsx("div",{className:"absolute -bottom-1 -right-1 w-5 h-5 rounded-full bg-gradient-to-br from-yellow-400 to-amber-500 flex items-center justify-center border-2 border-background",children:s.jsx($r,{className:"w-3 h-3 text-white"})})]}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("p",{className:"font-semibold text-sm text-foreground truncate",children:o?.username||"Mon profil"}),i&&s.jsx("span",{className:"text-[9px] font-bold px-1.5 py-0.5 rounded bg-gradient-to-r from-yellow-400 to-amber-500 text-white tracking-wider",children:"VIP"})]}),s.jsxs("p",{className:"text-xs text-muted-foreground",children:[(o?.balance||0).toLocaleString(),"⬠· Voir mon tableau de bord"]})]})]}),!h&&S&&s.jsx(hn,{variant:"compact",className:"w-full justify-start"}),!h&&s.jsxs(A,{title:"Joueur",children:[s.jsx(k,{icon:Oo,label:"Tableau de bord",path:"/dashboard"}),s.jsx(k,{icon:Hr,label:"Ma Collection",path:"/collection"}),s.jsx(k,{icon:Jo,label:"Missions",path:"/missions",badge:x}),s.jsx(k,{icon:$r,label:i?"Espace VIP":"Devenir Premium",path:"/premium",highlight:!i})]}),s.jsxs(A,{title:"Marché",children:[s.jsx(k,{icon:Yo,label:c("nav.shop"),path:"/boutique"}),s.jsx(k,{icon:Hr,label:c("nav.boosters"),path:"/boosters"}),s.jsx(k,{icon:na,label:c("nav.p2p"),path:"/marche"}),s.jsx(k,{icon:Qo,label:"Tendances",path:"/trends"})]}),s.jsxs(A,{title:"Découvrir",children:[s.jsx(k,{icon:So,label:c("nav.guide"),path:h?"/guide-entreprise":"/guide"}),s.jsx(k,{icon:Io,label:c("nav.help"),path:"/help"}),s.jsx(k,{icon:Lo,label:"Whitepaper",path:"/whitepaper"}),s.jsx(k,{icon:Ho,label:"Discord",path:"/discord"})]}),S&&l&&s.jsx(A,{title:"Administration",children:s.jsx(k,{icon:Wo,label:"Admin Panel",path:"/admin",highlight:!0})}),s.jsxs("div",{className:"pt-2 border-t border-border space-y-2",children:[s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsx("span",{className:"text-sm text-muted-foreground",children:"Langue"}),s.jsx("div",{className:"flex items-center gap-2",children:["fr","en"].map(_=>s.jsxs(ce,{variant:m===_?"default":"outline",size:"sm",onClick:()=>p(_),className:"gap-1.5",children:[s.jsx("span",{children:bn[_].flag}),s.jsx("span",{children:bn[_].name})]},_))})]}),s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsx("span",{className:"text-sm text-muted-foreground",children:"Mode"}),s.jsx(mc,{})]}),S?s.jsxs(ce,{variant:"outline",className:"w-full gap-2",onClick:R,children:[s.jsx(Bo,{className:"w-4 h-4"}),c("nav.logout")]}):s.jsx(ce,{variant:"hero",className:"w-full",onClick:()=>y("/auth"),children:c("nav.login")})]})]})]})]})]})]})}),s.jsx(za,{open:e,onOpenChange:t})]})},_c=()=>{const e=gt(),t=tt();if(t.pathname==="/"||t.pathname==="/index"||t.pathname==="/play"||t.pathname==="/admin")return null;const n=["/boutique","/boosters","/marche-p2p","/collection","/marche","/jouer"].includes(t.pathname),a=()=>{n?e("/"):window.history.length>1?e(-1):e("/")};return s.jsx(ce,{variant:"ghost",size:"icon",onClick:a,className:"fixed top-[4.25rem] lg:top-20 left-3 z-40 w-7 h-7 lg:w-10 lg:h-10 rounded-full bg-background/80 backdrop-blur border border-border/50 shadow-sm hover:bg-secondary/80 transition-all","aria-label":"Retour",children:s.jsx(jo,{className:"w-3 h-3 lg:w-4 lg:h-4 text-muted-foreground"})})};var ur;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(ur||(ur={}));var yn;(function(e){e.None="NONE",e.Slide="SLIDE",e.Fade="FADE"})(yn||(yn={}));const vn=nt("StatusBar");var wn;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(wn||(wn={}));var xn;(function(e){e.Body="body",e.Ionic="ionic",e.Native="native",e.None="none"})(xn||(xn={}));const Jt=nt("Keyboard"),Qt=nt("App",{web:()=>I(()=>import("./web-SfoTURaA.js"),__vite__mapDeps([0,1,2,3,4])).then(e=>new e.AppWeb)});let Oa=!1,dr=null;const vd=(e,t)=>{Oa=e,t&&(dr=t)},Cc=()=>{const e=gt(),t=tt(),r=f.useCallback(()=>
218{if(Oa&&dr){dr();return}if(t.pathname==="/"||t.pathname==="/index"){Qt.minimizeApp?.();return}e(-1)},[e,t.pathname]);f.useEffect(()=>Ae.isNativePlatform()?((async()=>{try{await vn.setStyle({style:ur.Dark}),await vn.setBackgroundColor({color:"#0a0a12"})}catch{}try{await Jt.addListener("keyboardWillShow",()=>{document.body.classList.add("keyboard-open")}),await Jt.addListener("keyboardWillHide",()=>{document.body.classList.remove("keyboard-open")})}catch{}try{await Qt.addListener("backButton",()=>{r()})}catch{}})(),()=>{if(Ae.isNativePlatform())try{Jt.removeAllListeners(),Qt.removeAllListeners()}catch{}}):void 0,[r]);const n=Ae.isNativePlatform(),a=Ae.getPlatform();return{isNative:n,platform:a,isIOS:a==="ios",isAndroid:a==="android",isWeb:a==="web"}},wd=[{id:"swing",label:"Swing"},{id:"resistance",label:"Résistance"},{id:"frenesie",label:"Frénésie"},{id:"regeneration",label:"Régénération"},{id:"parade_offensive",label:"Parade"},{id:"augmentation",label:"Augmentation pure"},{id:"multi_attaque",label:"Multi-attaque"},{id:"lancer_suisse",label:"Lancer Suisse"},{id:"lancer_misc",label:"Lancer MISC"},{id:"lancer_augmentation",label:"Lancer Augmentation"}],xd=[{id:"over_meta",label:"â Over-Meta",kind:"enterprise"},{id:"enterprise_1",label:"ð¢ Entreprise 1",kind:"enterprise"},{id:"enterprise_2",label:"ð¢ Entreprise 2",kind:"enterprise"},{id:"enterprise_3",label:"ð¢ Entreprise 3",kind:"enterprise"},{id:"hero",label:"ð Héros",kind:"hero"},{id:"token_1",label:"ðª Jeton 1",kind:"token"},{id:"token_2",label:"ðª Jeton 2",kind:"token"},{id:"token_3",label:"ðª Jeton 3",kind:"token"}],Pc=(e,t,r,n,a,o={})=>({id:`${e}__${t}`,deckTheme:e,slot:t,name:r,description:n,sourceDescription:n,speed:a,bothTurns:o.bothTurns??a===2,coinFlip:o.coinFlip??!1,defaultCapitalCost:t==="hero"?0:t.startsWith("token_")?1:t==="over_meta"?3:2,oncePerGame:o.oncePerGame??!1,maxUsesPerGame:o.maxUsesPerGame,oncePerTurn:o.oncePerTurn,continuous:o.continuous,params:o.params}),C=Pc,Tc=[C("swing","hero","Ãlan Swing","Pour chaque switch, votre carte active gagne +10 ATK permanents. Vous disposez aussi dâun switch gratuit par partie.",1,{continuous:!0,params:{special:"hero_swing"}}),C("swing","token_1","Impulsion après switch","Votre carte active gagne +20 ATK pendant 1 tour si elle a été posée après un switch.",2,{params:{atkBuff:20,duration:1,special:"requires_after_switch"}}),C("swing","token_2","Blindage après switch","Une carte posée après un switch gagne +30 PV permanents.",2,{params:{hpBuff:30,permanent:!0,special:"requires_after_switch"}}),C("swing","token_3","Interception critique","Annulez lâattaque adverse si votre carte active a moins de 30 PV.",2,{params:{cancelNextAttack:!0,special:"requires_hp_below_30"}}),C("swing","over_meta","Rappel forcé","Renvoyez la carte active adverse dans sa main ; elle ne peut pas être reposée durant ce tour. Cette carte peut switcher pendant toutes les phases des deux joueurs.",2,{params:{special:"bounce_opponent_lock_and_any_phase_switch"}}),C("swing","enterprise_1","Switch musclé","Cette carte peut switcher gratuitement une fois par partie. Si elle est posée après un switch, elle gagne +20 ATK.",2,{oncePerGame:!0,params:{atkBuff:20,permanent:!0,special:"free_switch_once_requires_after_switch"}}),C("swing","enterprise_2","Contre-switch","Cette carte peut switcher gratuitement une fois par partie. Si elle est posée après un switch, renvoyez la carte active adverse dans sa main ; lâadversaire doit poser une autre carte.",2,{oncePerGame:!0,params:{special:"free_switch_once_bounce_after_switch"}}),C("swing","enterprise_3","Impact dâarrivée","Si cette carte a été posée après un switch, elle gagne +10 ATK permanents et la prochaine attaque adverse est annulée.",2,{params:{atkBuff:10,permanent:!0,cancelNextAttack:!0,special:"requires_after_switch"}}),C("resistance","hero","Héros Résistance","Pendant le tour adverse, vos cartes gagnent +10 PV.",1,{continuous:!0,params:{special:"hero_opponent_turn_hp_10"}}),C("resistance","enterprise_1","Muraille","Continu : si les PV de cette carte sont supérieurs à lâATK adverse, les dégâts quâelle subit sont divisés par 2.",1,{continuous:!0,params:{special:"halve_damage_if_hp_above_opponent_atk"}}),C("resistance","enterprise_2","Immunité pleine vie","Une fois par partie, annulez lâattaque adverse si cette carte possède tous ses PV.",2,{oncePerGame:!0,params:{cancelNextAttack:!0,special:"requires_full_hp"}}),C("resistance","enterprise_3","Absorption","Une fois par partie, cette carte additionne ses PV actuels à ceux de la carte adverse.",2,{oncePerGame:!0,params:{special:"add_opponent_hp"}}),C("resistance","over_meta","Survie ultime","Continu : la première fois que cette carte tombe à 0 PV, elle reste sur le terrain jusquâau tour suivant. Lâadversaire marque le point uniquement lorsquâelle rejoint le cimetière.",1,{continuous:!0,params:{special:"survive_until_next_turn"}}),C("resistance","token_1","Riposte solide","Votre carte active gagne +20 ATK face à une carte adverse ayant plus de 50 PV.",2,{params:{atkBuff:20,duration:1,special:"requires_opponent_hp_above_50"}}),C("resistance","token_2","Sacrifice défensif","Annulez lâattaque adverse, puis votre carte active perd 20 PV.",2,{params:{cancelNextAttack:!0,damage:20,target:"self"}}),C("resistance","token_3","PV bonus","Votre carte active gagne +20 PV permanents.",2,{params:{hpBuff:20,permanent:!0}}),C("frenesie","hero","Berserker","Une fois par partie, donnez +30 ATK à une de vos cartes Frénésie ayant déjà reçu une augmentation.",2,{oncePerGame:!0,params:{atkBuff:30,permanent:!0,special:"requires_frenzy_buffed"}}),C("frenesie","enterprise_1","Douleur égale force","Continu : chaque fois que cette carte subit une attaque, elle gagne +20 ATK permanents.",1,{continuous:!0,params:{special:"on_attacked_atk_20"}}),C("frenesie","enterprise_2","Mémoire du cimetière","Continu : cette carte gagne +15 ATK par carte Frénésie dans votre cimetière.",1,{continuous:!0,params:{special:"atk_per_frenzy_graveyard_15"}}),C("frenesie","enterprise_3","Ãcho des jetons","Continu : cette carte gagne +10 ATK pour chaque jeton utilisé.",1,{continuous:!0,params:{special:"atk_per_used_token_10"}}
218),C("frenesie","over_meta","Frénésie meurtrière","Continu : chaque fois que cette carte détruit une autre carte, elle gagne +20 ATK permanents.",1,{continuous:!0,params:{special:"on_kill_atk_20"}}),C("frenesie","token_1","Négation","Annulez lâattaque adverse.",2,{params:{cancelNextAttack:!0}}),C("frenesie","token_2","Renfort Frénésie","Une carte Frénésie de votre camp gagne +20 ATK, puis votre carte Frénésie active gagne aussi +20 ATK.",1,{params:{special:"split_frenzy_atk_20"}}),C("frenesie","token_3","Sacrifice rituel","Envoyez une carte Frénésie de votre main au cimetière ; votre carte Frénésie active gagne +30 PV permanents.",1,{params:{hpBuff:30,permanent:!0,special:"sacrifice_frenzy_hand"}}),C("regeneration","hero","Rappel du cimetière","Deux fois par partie, récupérez une carte Entreprise du cimetière dans votre main.",1,{maxUsesPerGame:2,params:{returnEnterpriseFromGraveyard:!0}}),C("regeneration","enterprise_1","Héritage vital","Continu : si cette carte est éliminée au combat, la prochaine carte que vous posez gagne +50 PV permanents.",1,{continuous:!0,params:{special:"on_death_
218next_card_hp_50"}}),C("regeneration","enterprise_2","Rempart décisif","Si lâadversaire nâa plus quâune carte à éliminer pour gagner, cette carte peut switcher avec votre carte active et ne rapporte aucun point lorsquâelle est détruite.",2,{params:{special:"last_point_switch_no_score"}}),C("regeneration","enterprise_3","Régénération offensive","Continu : après chaque attaque de cette carte, elle récupère 15 PV.",1,{continuous:!0,params:{special:"on_attack_heal_15"}}),C("regeneration","over_meta","Régénération totale","Une fois par partie, cette carte récupère tous ses PV.",2,{oncePerGame:!0,params:{healPercent:1}}),C("regeneration","token_1","Retour endurci","Ciblez une carte revenue du cimetière : elle gagne +30 PV permanents.",2,{params:{hpBuff:30,permanent:!0,special:"requires_returned_from_graveyard"}}),C("regeneration","token_3","Retour musclé","Ciblez une carte revenue du cimetière : elle gagne +30 ATK permanents.",2,{params:{atkBuff:30,permanent:!0,special:"requires_returned_from_graveyard"}}),C("parade_offensive","hero","Protection Parade","Continu : toutes les diminutions de PV causées par les effets de jetons sont annulées pour vos cartes.",1,{continuous:!0,params:{special:"prevent_token_hp_reduction"}}),C("parade_offensive","enterprise_1","Retour de lame","Continu : lorsque cette carte subit une attaque, elle renvoie à lâadversaire la moitié des PV perdus.",1,{continuous:!0,params:{special:"reflect_half_damage"}}),C("parade_offensive","enterprise_2","Inversion vitale","Deux fois par partie, pendant votre tour, échangez les PV actuels et lâATK de cette carte.",1,{maxUsesPerGame:2,params:{swapHpAndAttack:!0}}),C("parade_offensive","enterprise_3","Auto-saignée","Une fois par tour, divisez les PV actuels de cette carte par 2 pour lui donner +50 ATK.",1,{oncePerTurn:!0,params:{halveHpThenAtkBuff:50,permanent:!0}}),C("parade_offensive","over_meta","Attaque égale PV","Continu : lâATK de cette carte se cumule avec ses PV actuels.",1,{continuous:!0,params:{special:"attack_includes_current_hp"}}),C("parade_offensive","token_1","Rempart court","Votre carte active gagne +15 PV pendant 1 tour.",2,{params:{hpBuff:15,duration:1}}),C("parade_offensive","token_2","Switch bonus","Vous gagnez +1 switch.",2,{params:{switchBonus:1}}),C("parade_offensive","token_3","Sabotage ATK","La carte active adverse perd 20 ATK pendant 1 tour.",2,{params:{atkDebuff:20,duration:1,target:"opponent"}}),C("augmentation","hero","Héros Augmentation","Continu : toutes vos cartes gagnent +10 ATK permanents.",1,{continuous:!0,params:{special:"hero_all_atk_10"}}
218),C("augmentation","enterprise_1","Poussée durable","LâATK de cette carte augmente de 25 pendant 2 tours.",1,{params:{atkBuff:25,duration:2}}),C("augmentation","enterprise_2","Fusion cimetière","Une fois par partie, ajoutez à lâATK de cette carte lâATK dâune de vos cartes au cimetière pendant 1 tour.",1,{oncePerGame:!0,params:{addGraveyardAttack:!0,duration:1}}),C("augmentation","enterprise_3","Combustion","Multipliez lâATK de cette carte par 3 ; elle est détruite à la fin du tour.",1,{params:{atkMultiplier:3,duration:1,sacrificeActive:!0}}),C("augmentation","over_meta","Cumul de douleur","Continu : lâATK de cette carte augmente du nombre de PV quâelle a perdus.",1,{continuous:!0,params:{special:"attack_includes_lost_hp"}}),C("augmentation","token_1","Renfort ATK","Votre carte active gagne +20 ATK permanents.",1,{params:{atkBuff:20,permanent:!0}}),C("augmentation","token_2","Double à crédit","Votre carte active gagne +20 ATK pendant 2 tours mais perd 20 PV pendant 2 tours.",1,{params:{atkBuff:20,damage:20,duration:2,target:"self"}}),C("augmentation","token_3","Assaut total","Ajoutez les PV actuels de votre carte active à son ATK jusquâà la fin du tour.",1,{params:{addCurrentHpToAttack:!0,duration:1}}),C("multi_attaque","hero","Seconde frappe","Continu : la deuxième attaque dâune carte durant le même tour inflige 10 dégâts supplémentaires.",1,{continuous:!0,params:{special:"second_attack_bonus_10"}}),C("multi_attaque","enterprise_1","Revenant","Une fois par partie, cette carte peut effectuer une première attaque depuis le cimetière.",1,{oncePerGame:!0,params:{special:"attack_from_graveyard_once"}}),C("multi_attaque","enterprise_2","Assaut post-remplacement","Continu : si cette carte vient de remplacer une de vos cartes durant ce tour, elle peut attaquer deux fois.",1,{continuous:!0,params:{special:"double_attack_after_replacement"}}),C("multi_attaque","enterprise_3","Frénésie fragile","Continu : si cette carte a moins de PV que la carte adverse, elle peut attaquer deux fois durant le même tour.",1,{continuous:!0,params:{special:"double_attack_if_lower_hp"}}),C("multi_attaque","over_meta","Frappe double du faible","Continu : si cette carte a moins dâATK que la carte adverse, elle peut attaquer deux fois durant le même tour.",1,{continuous:!0,params:{special:"double_attack_if_lower_atk"}}),C("multi_attaque","token_1","Renfort PV","Votre carte active gagne +15 PV permanents.",2,{params:{hpBuff:15,permanent:!0}}),C("multi_attaque","token_2","Négation Multi","Annulez lâattaque adverse.",2,{params:{cancelNextAttack:!0}}),C("multi_attaque","token_3","Sacrifice offensif","Sacrifiez une carte Entreprise ; lâATK de votre carte active augmente de 15 permanents.",1,{params:{sacrificeHandEnterprise:!0,atkBuff:15,permanent:!0}}),C("lancer_suisse","hero","Relance Suisse","Une fois par partie, après un lancer de pièce, relancez la pièce.",2,{oncePerGame:!0,params:{special:"reroll_coin_once"}}),C("lancer_suisse","enterprise_1","Soin aléatoire","Lancez 1 pièce. Face : cette carte récupère tous ses PV. Pile : la carte adverse récupère la moitié de ses PV max.",1,{coinFlip:!0,params:{coinCount:1,face:{healPercent:1},pile:{healPercent:.5,target:"opponent"}}}),C("lancer_suisse","enterprise_2","Annulation aléatoire","Lancez 1 pièce. Face : annulez tous les effets continus et les futurs effets activés adverses durant ce tour. Pile : aucun effet.",2,{coinFlip:!0,params:{coinCount:1,face:{special:"silence_opponent_turn"},pile:{}}}),C("lancer_suisse","enterprise_3","Triple pari","Lancez 3 pièces. Au moins 2 Faces : annulez la prochaine attaque adverse. Au moins 2 Piles : divisez lâATK de cette carte par 2 pendant ce tour.",1,{coinFlip:!0,params:{coinCount:3,face:{cancelNextAttack:!0},pile:{opponentAtkDivider:2,duration:1,target:"self"}}}),C("lancer_suisse","over_meta","Espionnage Suisse","Lancez une pièce. Face : regardez la main adverse et choisissez une carte à échanger avec sa carte active. Pile : aucun effet.",2,{coinFlip:!0,params:{coinCount:1,face:{special:"choose_opponent_switch"},pile:{}}}),C("lancer_suisse","token_1","Switchs gratuits","Lancez une pièce. Face : vos switchs sont gratuits pendant les 2 prochains tours. Pile : aucun effet.",2,{coinFlip:!0,params:{coinCount:1,face:{special:"free_switches_two_turns"},pile:{}}}),C("lancer_suisse","token_2","Double chance","Lancez 2 pièces. Au moins une Face : votre carte active gagne +50 ATK. Uniquement des Piles : aucun effet.",1,{coinFlip:!0,params:{coinCount:2,face:{atkBuff:50,permanent:!0},pile:{}}}),C("lancer_suisse","token_3","Contre Suisse","Lancez une pièce. Face : annulez lâattaque adverse. Pile : aucun effet.",2,{coinFlip:!0,params:{coinCount:1,face:{cancelNextAttack:!0},pile:{}}}),C("lancer_misc","enterprise_1","Roulette fatale","Lancez 2 pièces. Deux Faces : détruisez la carte adverse. Deux Piles : détruisez cette carte. Une Face et une Pile : aucun effet.",1,{coinFlip:!0,params:{coinCount:2,face:{damage:9999,target:"opponent"},pile:{damage:9999,target:"self"},special:"exact_double_only"}}),C("lancer_misc","enterprise_2","Sabotage aléatoire","Lancez une pièce. Face : détruisez un jeton adverse au hasard. Pile : aucun effet.",2,{coinFlip:!0,params:{coinCount:1,face:{destroyRandomToken:!0,target:"opponent"},pile:{}}}),C("lancer_misc","enterprise_3","Destruction différée","Lancez 1 pièce. Face : la carte adverse est détruite au prochain tour. Pile : cette carte est détruite lors de votre prochain tour.",1,{coinFlip:!0,params:{coinCount:1,face:{special:"destroy_opponent_next_turn"},pile:{special:"destroy_self_next_turn"}}}
218),C("lancer_misc","over_meta","Pile ou destruction","Lancez une pièce. Face : détruisez la carte adverse. Pile : divisez lâATK de cette carte par 2.",2,{coinFlip:!0,params:{coinCount:1,face:{damage:9999,target:"opponent"},pile:{opponentAtkDivider:2,permanent:!0,target:"self"}}}),C("lancer_misc","token_1","Chance soin","Lancez une pièce. Face : restaurez entièrement les PV de votre carte active. Pile : aucun effet.",1,{coinFlip:!0,params:{coinCount:1,face:{healPercent:1},pile:{}}}),C("lancer_misc","token_2","Blocage des switchs","Lancez une pièce. Face : aucun joueur ne peut switcher. Pile : aucun effet.",1,{coinFlip:!0,params:{coinCount:1,face:{special:"lock_all_switches"},pile:{}}}),C("lancer_misc","token_3","Chance attaque","Lancez une pièce. Face : multipliez par 2 lâATK de votre carte active pendant les 2 prochains tours. Pile : aucun effet.",1,{coinFlip:!0,params:{coinCount:1,face:{atkMultiplier:2,duration:2},pile:{}}}),C("lancer_augmentation","enterprise_1","ATK ou PV","Lancez une pièce. Face : +30 ATK pendant 1 tour. Pile : +10 PV permanents.",1,{coinFlip:!0,params:{coinCount:1,face:{atkBuff:30,duration:1},pile:{hpBuff:10,permanent:!0}}}),C("lancer_augmentation","enterprise_2","Double boost","Lancez une pièce. Face : +30 PV permanents. Pile : +10 ATK permanents.",2,{coinFlip:!0,params:{coinCount:1,face:{hpBuff:30,permanent:!0},pile:{atkBuff:10,permanent:!0}}}),C("lancer_augmentation","enterprise_3","Sabotage ou blessure","Lancez une pièce. Face : divisez par 2 lâATK adverse durant son prochain tour. Pile : la carte adverse perd 15 PV durant ce tour.",2,{coinFlip:!0,params:{coinCount:1,face:{opponentAtkDivider:2,duration:1,target:"opponent"},pile:{damage:15,target:"opponent"}}}),C("lancer_augmentation","over_meta","Renfort maximal","Lancez une pièce. Face : +50 ATK durant ce tour. Pile : +20 PV permanents.",1,{coinFlip:!0,params:{coinCount:1,face:{atkBuff:50,duration:1},pile:{hpBuff:20,permanent:!0}}}),C("lancer_augmentation","token_1","Regard prédateur","Après avoir détruit une carte adverse, lancez une pièce. Face : regardez la main adverse et choisissez la carte qui sera posée. Pile : aucun effet.",2,{coinFlip:!0,params:{coinCount:1,face:{special:"choose_opponent_replacement"},pile:{},special:"requires_recent_kill"}}),C("lancer_augmentation","token_2","Pari court ou long","Lancez une pièce. Pile : +20 ATK pendant 2 tours. Face : +15 PV permanents.",1,{coinFlip:!0,params:{coinCount:1,face:{hpBuff:15,permanent:!0},pile:{atkBuff:20,duration:2}}}),C("lancer_augmentation","token_3","Sacrifice relance","Après un lancer, sacrifiez une carte de votre main pour relancer la pièce.",2,{params:{sacrificeHandEnterprise:!0,special:"reroll_last_coin"}})],Ba=Object.fromEntries(Tc.map(e=>[e.id,e]));let Fa={};function Ac(e){Fa=e||{}}const jc=["atkBuff","hpBuff","damage","heal","atkDebuff","halveHpThenAtkBuff","atkBuffPerEnterpriseGraveyard","atkBuffPerTokenGraveyard"];function mr(e,t){if(t===1)return e;const r={...e};for(const n of jc){const a=r[n];typeof a=="number"&&(r[n]=Math.round(a*t))}return typeof r.healPercent=="number"&&(r.healPercent=Math.min(1,Math.max(0,r.healPercent*t))),typeof r.atkMultiplier=="number"&&r.atkMultiplier>1&&(r.atkMultiplier=1+(r.atkMultiplier-1)*t),typeof r.opponentAtkDivider=="number"&&r.opponentAtkDivider>1&&(r.opponentAtkDivider=1+(r.opponentAtkDivider-1)*t),e.face&&(r.face=mr(e.face,t)),e.pile&&(r.pile=mr(e.pile,t)),r}function kd(e){if(!e)return null;const t=Ba[e];if(!t)return null;const r=Fa[e];return r?{...t,defaultCapitalCost:r.cost_override??t.defaultCapitalCost,params:t.params?mr(t.params,r.power_multiplier??1):void 0,disabled:!!r.disabled}:t}const _d=(e,t)=>Ba[`${e}__${t}`]??null,Cd={1:"Vitesse 1",2:"Vitesse 2"},Pd={1:"Activable pendant votre tour.",2:"Activable pendant les deux tours et en réponse."};function Sc(){const{data:e}=ze({queryKey:["effect-balance-overrides"],staleTime:6e4,refetchInterval:6e4,queryFn:async()=>{const{data:t,error:r}=await j.from("effect_balance_overrides").select("effect_id, power_multiplier, cost_override, disabled");if(r)throw r;return t??[]}});f.useEffect(()=>{if(!e)return;const t={};for(const r of e)t[r.effect_id]={power_multiplier:r.power_multiplier??1,cost_override:r.cost_override,disabled:!!r.disabled};Ac(t)},[e])}const N=e=>f.lazy(async()=>{const t="di-chunk-reloaded";try{return await e()}catch(r){const n=r instanceof Error?r.message:String(r);if((/Importing a module script failed/i.test(n)||/Failed to fetch dynamically imported module/i.test(n)||/Loading chunk \d+ failed/i.test(n)||/error loading dynamically imported module/i.test(n))&&typeof window<"u"&&!sessionStorage.getItem(t))return sessionStorage.setItem(t,"1"),window.location.reload(),new Promise(()=>{});throw r}}),Ec=N(()=>I(()=>import("./IndexFixed-3dX4hVs-.js"),__vite__mapDeps([5,1,2,6,7,8,3,4]))),Ic=N(()=>I(()=>import("./Auth-CPLNMR3e.js"),__vite__mapDeps([9,1,2,10,11,12,13,14,15,16,17,18,19,3,4]))),Nc=N(()=>I(()=>import("./Admin-DJ_wFcsq.js"),__vite__mapDeps([20,1,2,21,10,22,23,24,25,26,27,28,29,30,17,18,31,32,33,34,35,36,11,37,38,39,40,41,42,43,44,45,46,8,12,47,48,49,50,51,52,53,54,55,56,57,58,59,60,7,61,
21862,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,3,81,82,83,84,4]))),Rc=N(()=>I(()=>import("./Dashboard-DVWZquum.js"),__vite__mapDeps([85,1,2,6,7,8,86,10,30,18,31,28,87,3,4,88,53,51,54,38,35,69,42,47,72,80,37,50,89,67,90,21,65,40,17,62,48,49,91,78,24,25,26,27,41,77,92,16,68,66]))),zc=N(()=>I(()=>import("./Marketplace-gb_rlYQq.js"),__vite__mapDeps([93,1,2,6,7,8,86,10,30,18,31,28,87,3,4,94,95,90,96,11,16,52,97,19,55,26,25,40,69,70,51,59,74,44,98,21,71,75,99,42,47,72,54,100,101,102,103,46,61,104,39,33,81,77,105]))),Mc=N(()=>I(()=>import("./Collection-cz6CQU-T.js"),__vite__mapDeps([106,1,2,6,7,8,86,10,30,18,31,28,87,3,4,94,95,90,96,11,16,52,97,19,55,26,25,40,69,70,51,59,74,44,98,21,71,75,99,42,47,72,54,107,108,37,109,24,29,32,39,105,104,33,81,77]))),qc=N(()=>I(()=>import("./Blog-Bl41u6nw.js"),__vite__mapDeps([110,1,2,6,7,8,86,10,30,18,31,28,87,3,4,111,112,39,41,17,46]))),Vc=N(()=>I(()=>import("./BlogPost-C3-7CqJa.js"),__vite__mapDeps([113,1,2,6,7,8,86,10,30,18,31,28,87,3,4,41,17,114,36,42]))),kn=N(()=>I(()=>import("./Terms-CM-VIP3F.js"),__vite__mapDeps([115,1,2,6,7,8,86,10,30,18,31,28,87,3,4]))),Lc=N(()=>I(()=>import("./CGV-CDuzF7bz.js"),__vite__mapDeps([116,1,2,6,7,8,86,10,30,18,31,28,87,3,4]))),Dc=N(()=>I(()=>import("./Privacy-DybG0hj3.js"),__vite__mapDeps([117,1,2,6,7,8,86,10,30,18,31,28,87,3,4]))),Oc=N(()=>I(()=>import("./Help-BISWK0JS.js"),__vite__mapDeps([118,1,2,6,7,8,86,10,30,18,31,28,87,3,4,119,60,25,47,120,39]))),Bc=N(()=>I(()=>import("./Contact-DVwJBxcd.js"),__vite__mapDeps([121,1,2,6,7,8,86,10,30,18,31,28,87,3,4,11,22,122]))),_n=N(()=>I(()=>import("./Trends-RXXWicvR.js"),__vite__mapDeps([123,1,2,6,7,8,86,10,30,18,31,28,87,3,4,21,99,46]))),Fc=N(()=>I(()=>import("./NewCards-BgXi0Eys.js"),__vite__mapDeps([124,1,2,6,7,8,86,10,30,18,31,28,87,3,4,21,73,46]))),$c=N(()=>I(()=>import("./Guide-B5MH4GVU.js"),__vite__mapDeps([125,1,2,6,7,8,86,10,30,18,31,28,87,3,4,119,60,25,84,57,72,76,75,81,71,126,47,62]))),Hc=N(()=>I(()=>import("./GuideB2B-GnH1tSgp.js"),__vite__mapDeps([127,1,2,6,7,8,86,10,30,18,31,28,87,3,4,119,60,25,47,62,46]))),Cn=N(()=>I(()=>import("./GameArena-DHqnf8ag.js"),__vite__mapDeps([128,1,2,6,7,8,86,10,30,18,31,28,87,3,4,111,112,84,57,83,75,71,46,99,81,129,54,76]))),Gc=N(()=>I(()=>import("./GameModeSelect-BdKF2iaF.js"),__vite__mapDeps([130,1,2,6,7,8,15,75,3,4]))),Uc=N(()=>I(()=>import("./SecondaryMarket-D8DEQgGX.js"),__vite__mapDeps([131,1,2,132,90,3,44,75,40,48,43,4,6,7,8,86,10,30,18,31,28,87,103,46,91,88,53,51,54,78,98,21,102,107,108,11,19,72,26,25,42,59,37,100,95,104,39,33,81,77,29,70,71,47,16]))),Wc=N(()=>I(()=>import("./Partner-iVEsDMJ3.js"),__vite__mapDeps([133,1,2,6,7,8,86,10,30,18,31,28,87,3,4,111,73,40,34,98,21,66,72,11,22,45,112,46,62,71,17,75,54]))),Kc=N(()=>I(()=>import("./Whitepaper-BAHmgY7X.js"),__vite__mapDeps([134,1,2,6,7,8,86,10,30,18,31,28,87,3,4,57,76,53,71,46]))),Yc=N(()=>I(()=>import("./Boosters-0XyQtS9B.js"),__vite__mapDeps([135,1,2,6,7,8,86,10,30,18,31,28,87,3,4,96,11,16,52,97,19,15,75,136,98,21,112]))),Jc=N(()=>I(()=>import("./Settings-D0f4wiwt.js"),__vite__mapDeps([137,1,2,108,11,19,10,50,27,78,23,55,138,87,45,6,7,8,86,30,18,31,28,3,4,92,38,47,66,68,53,54,51,43,44]))),Pn=N(()=>I(()=>import("./WhyDigitalIcons-Dtec_6f_.js"),__vite__mapDeps([139,1,2,6,7,8,86,10,30,18,31,28,87,3,4,15,75,46]))),Qc=N(()=>I(()=>import("./Discord-C5STIb3u.js"),__vite__mapDeps([140,1,2,6,7,8,86,10,30,18,31,28,87,3,4,46]))),Tn=N(()=>I(()=>import("./PerformanceSystem-CXpb8Fqw.js"),__vite__mapDeps([141,1,2,6,7,8,86,10,30,18,31,28,87,3,4,56,57,62,41,68,16,51,76,122,54,40]))),Xc=N(()=>I(()=>import("./Premium-BnKf_NAi.js"),__vite__mapDeps([142,1,2,50,55,6,7,8,37,15,30,3,4]))),Zc=N(()=>I(()=>import("./Tarification-CeFVmHU6.js"),__vite__mapDeps([143,1,2,50,6,7,8,86,10,30,18,31,28,87,3,4,53,15]))),eu=N(()=>I(()=>import("./Missions-uJ6zBi-k.js"),__vite__mapDeps([144,1,2,6,7,8,86,10,30,18,31,28,87,3,4,50,89,55,27,145,15,37,16,74,44,78,79,51,99,71,68,75,97,114]))),An=N(()=>I(()=>import("./Leagues-_I9Nfe9-.js"),__vite__mapDeps([146,1,2,3,109,50,55,27,24,25,26,78,64,145,15,79,51,18,75,35,4]))),tu=N(()=>I(()=>import("./GamePlay-B48JnyjS.js"),__vite__mapDeps([147,1,2,109,148,63,15,21,75,71,65,98,99,149,82,3,4,81,16,120,7,96,10,11,30,52,97,19,8,59,25,129]))),ru=N(()=>I(()=>import("./FriendLobby-BTBVf-Zq.js"),__vite__mapDeps([150,1,2,109,10,24,25,26,96,11,16,30,52,97,19,6,7,8,15,29,80,114,3,4]))),nu=N(()=>I(()=>import("./OnlineGamePlay-SjM3xvfJ.js"),__vite__mapDeps([151,1,2,148,63,15,21,75,71,65,98,99,149,82,3,4,81,16,120,7,30]))),au=N(()=>I(()=>import("./Traceability-BGRAIDhD.js"),__vite__mapDeps([152,1,2,10,50,6,7,8,86,30,18,31,28,87,3,4,39,41,46]))),jn=N(()=>I(()=>import("./QRRedeem-CgRLbjyA.js"),__vite__mapDeps([153,1,2,80,30,68,31,67,10,154,136,98,21,15,7,52,97,75,3,4]))),su=N(()=>I(()=>import("./OnboardingPreview-h_wR1oa9.js"),__vite__mapDeps([155,1,2,156,154,112,15,136,98,21,7,30,75,3,4]))),ou=N(()=>I(()=>import("./NotFound-DrpcVfkJ.js"),__vite__mapDeps([157,1,2]))),iu=N(()=>I(()=>import("./ScrollToTop-DZX2L4Zs.js"),__vite__mapDeps([158,2]))),lu=N(()=>I(()=>import("./MusicManager-Bmp8Ja8U.js"),__vite__mapDeps([149,2,82,3,1,4]))),cu=N(()=>I(()=>import("./VisitorTypePopup-BoAHsNmn.js"),__vite__mapDeps([159,1,2,13,87,3,4]))),uu=N(()=>I(()=>import("./FloatingWidgets-CExlQSNC.js"),__vite__mapDeps([160,1,2,66,3,4]))),du=N(()=>I(()=>import("./ChatWidget-CHMlM1k8.js"),__vite__mapDeps([161,1,2,10,30,28,3,4]))),mu=N(()=>I(()=>import("./UserWarningsAndSuspension-EMZ2lASL.js"),__vite__mapDeps([162,1,2,58,59,44,43,3,4]))),pu=N(()=>I(()=>import("./OnboardingManager-CZZSZLmd.js"),__vite__mapDeps([163,1,2,14,156,154,112,15,136,98,21,7,30,75,71,
21816,52,81,3,4]))),fu=N(()=>I(()=>import("./PWAInstallBanner-Cg2jnBEh.js"),__vite__mapDeps([164,1,2,138,76,3,4]))),hu=N(()=>I(()=>import("./LevelMilestonePopup-2yUy17XJ.js"),__vite__mapDeps([165,1,2,3,75,4]))),pr=({children:e})=>{const[t,r]=f.useState(!1);return f.useEffect(()=>{const n=window,a=n.requestIdleCallback?n.requestIdleCallback(()=>r(!0)):window.setTimeout(()=>r(!0),400);return()=>{window.clearTimeout(a)}},[]),t?s.jsx(f.Suspense,{fallback:null,children:e}):null},Sn="di_onboarding_active",En="di-onboarding-visibility-change",gu=new ms({defaultOptions:{queries:{staleTime:1e3*60*5,gcTime:1e3*60*30,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:1,networkMode:"online"},mutations:{retry:0,networkMode:"online"}}}),bu=()=>s.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:s.jsx("div",{className:"w-8 h-8 border-2 border-primary border-t-transparent rounded-full animate-spin"})}),yu=()=>{Cc(),Sc();const e=tt(),[t,r]=f.useState(()=>typeof window>"u"?!1:localStorage.getItem(Sn)==="true");f.useEffect(()=>{if(typeof window>"u")return;const i=c=>{r(c??localStorage.getItem(Sn)==="true")},u=c=>{i(c.detail?.active)};return i(),window.addEventListener(En,u),()=>{window.removeEventListener(En,u)}},[]);const n=e.pathname.startsWith("/qr")||e.pathname==="/play"||e.pathname.startsWith("/play/online")||e.pathname.startsWith("/preview/onboarding"),a=e.pathname.startsWith("/admin"),o=t||n,l=o||a;return s.jsxs(s.Fragment,{children:[s.jsxs(pr,{children:[s.jsx(iu,{}),s.jsx(mu,{}),s.jsx(pu,{}),!o&&s.jsx(cu,{})]}),!o&&s.jsx(_c,{}),!l&&s.jsx(kc,{}),s.jsx(f.Suspense,{fallback:s.jsx(bu,{}),children:s.jsxs(ds,{children:[s.jsx(z,{path:"/",element:s.jsx(Ec,{})}),s.jsx(z,{path:"/auth",element:s.jsx(Ic,{})}),s.jsx(z,{path:"/admin",element:s.jsx(Nc,{})}),s.jsx(z,{path:"/dashboard",element:s.jsx(Rc,{})}),s.jsx(z,{path:"/boutique",element:s.jsx(zc,{})}),s.jsx(z,{path:"/collection",element:s.jsx(Mc,{})}),s.jsx(z,{path:"/blog",element:s.jsx(qc,{})}),s.jsx(z,{path:"/blog/:slug",element:s.jsx(Vc,{})}),s.jsx(z,{path:"/terms",element:s.jsx(kn,{})}),s.jsx(z,{path:"/conditions",element:s.jsx(kn,{})}),s.jsx(z,{path:"/cgv",element:s.jsx(Lc,{})}),s.jsx(z,{path:"/privacy",element:s.jsx(Dc,{})}),s.jsx(z,{path:"/help",element:s.jsx(Oc,{})}),s.jsx(z,{path:"/contact",element:s.jsx(Bc,{})}),s.jsx(z,{path:"/trends",element:s.jsx(_n,{})}),s.jsx(z,{path:"/tendances",element:s.jsx(_n,{})}),s.jsx(z,{path:"/new",element:s.jsx(Fc,{})}),s.jsx(z,{path:"/guide",element:s.jsx($c,{})}),s.jsx(z,{path:"/guide-entreprise",element:s.jsx(Hc,{})}),s.jsx(z,{path:"/games/arena",element:s.jsx(Cn,{})}),s.jsx(z,{path:"/icons-arena",element:s.jsx(Cn,{})}),s.jsx(z,{path:"/jouer",element:s.jsx(Gc,{})}),s.jsx(z,{path:"/marche",element:s.jsx(Uc,{})}),s.jsx(z,{path:"/partenaire",element:s.jsx(Wc,{})}),s.jsx(z,{path:"/whitepaper",element:s.jsx(Kc,{})}),s.jsx(z,{path:"/boosters",element:s.jsx(Yc,{})}),s.jsx(z,{path:"/settings",element:s.jsx(Jc,{})}),s.jsx(z,{path:"/why-digital-icons",element:s.jsx(Pn,{})}),s.jsx(z,{path:"/pourquoi-digital-icons",element:s.jsx(Pn,{})}),s.jsx(z,{path:"/discord",element:s.jsx(Qc,{})}),s.jsx(z,{path:"/performance",element:s.jsx(Tn,{})}),s.jsx(z,{path:"/systeme-performance",element:s.jsx(Tn,{})}),s.jsx(z,{path:"/premium",element:s.jsx(Xc,{})}),s.jsx(z,{path:"/tarification",element:s.jsx(Zc,{})}),s.jsx(z,{path:"/missions",element:s.jsx(eu,{})}),s.jsx(z,{path:"/leagues",element:s.jsx(An,{})}),s.jsx(z,{path:"/classement",element:s.jsx(An,{})}),s.jsx(z,{path:"/play",element:s.jsx(tu,{})}),s.jsx(z,{path:"/play/friend",element:s.jsx(ru,{})}),s.jsx(z,{path:"/play/online/:gameId",element:s.jsx(nu,{})}),s.jsx(z,{path:"/tracabilite",element:s.jsx(au,{})}),s.jsx(z,{path:"/qr/:code",element:s.jsx(jn,{})}),s.jsx(z,{path:"/qr",element:s.jsx(jn,{})}),s.jsx(z,{path:"/preview/onboarding",element:s.jsx(su,{})}),s.jsx(z,{path:"*",element:s.jsx(ou,{})})]})}),!o&&s.jsx(ic,{}),!o&&s.jsxs(pr,{children:[s.jsx(fu,{}),s.jsx(uu,{}),s.jsx(du,{}),s.jsx(hu,{})]}),!o&&s.jsx(ac,{})]})},vu=()=>s.jsx(ps,{client:gu,children:s.jsx(nl,{children:s.jsx(Qi,{children:s.jsx(Ui,{children:s.jsx(Ki,{children:s.jsx(Xi,{children:s.jsx(rl,{children:s.jsx(ol,{children:s.jsx(vl,{children:s.jsx(rc,{children:s.jsxs(ir,{delayDuration:200,children:[s.jsx(oc,{}),s.jsx(Mi,{}),s.jsx(Oi,{}),s.jsxs(us,{children:[s.jsx(pr,{children:s.jsx(lu,{})}),s.jsx(yu,{})]})]})})})})})})})})})})});$n(document.getElementById("root")).render(s.jsx(Jn,{children:s.jsx(bo,{children:s.jsx(vu,{})})}));export{Tc as $,jo as A,ce as B,No as C,lc as D,Uo as E,zo as F,qo as G,Pu as H,za as I,Ho as J,Lo as K,Je as L,Fo as M,bc as N,yc as O,Hr as P,$o as Q,Va as R,sr as S,Qo as T,ra as U,Oo as V,Xo as W,Xe as X,wd as Y,Zo as Z,I as _,xr as a,od as a$,_d as a0,Cd as a1,Pd as a2,kd as a3,ir as a4,Jo as a5,lr as a6,cr as a7,St as a8,yr as a9,cd as aA,ud as aB,dd as aC,md as aD,pd as aE,fd as aF,Mo as aG,gc as aH,fn as aI,jt as aJ,Eu as aK,fc as aL,hc as aM,yd as aN,bd as aO,_c as aP,gn as aQ,va as aR,hn as aS,mc as aT,Bo as aU,vr as aV,Yi as aW,id as aX,sd as aY,Wl as aZ,Kl as a_,xd as aa,zu as ab,_l as ac,qu as ad,Bu as ae,Gu as af,Ju as ag,nd as ah,Eo as ai,Tu as aj,gd as ak,Iu as al,Yo as am,ic as an,Io as ao,Do as ap,dc as aq,La as ar,Da as as,nc as at,Mu as au,Vu as av,Lu as aw,Ou as ax,Du as ay,ad as az,Me as b,ld as b0,Go as b1,ju as b2,Nu as b3,Su as b4,Yu as b5,td as b6,rd as b7,ed as b8,Zu as b9,Xu as ba,Qu as bb,Hu as bc,Wu as bd,Ku as be,Uu as bf,$u as bg,Fu as bh,vd as bi,Ru as bj,kr as bk,Au as bl,B as c,na as d,Pe as e,G as f,Ea as g,Ia as h,Na as i,So as j,Ut as k,ta as l,Zn as m,hd as n,Ko as o,$r as p,Gr as q,Wo as r,j as
218s,Ra as t,Mt as u,uc as v,Vo as w,ar as x,ft as y,pt as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.