@naculus/connect-appkit-ui 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var Vr=Object.create;var Cn=Object.defineProperty;var Hr=Object.getOwnPropertyDescriptor;var Ur=Object.getOwnPropertyNames;var Or=Object.getPrototypeOf,_r=Object.prototype.hasOwnProperty;var E=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fr=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ur(e))!_r.call(t,r)&&r!==n&&Cn(t,r,{get:()=>e[r],enumerable:!(o=Hr(e,r))||o.enumerable});return t};var Kr=(t,e,n)=>(n=t!=null?Vr(Or(t)):{},Fr(e||!t||!t.__esModule?Cn(n,"default",{value:t,enumerable:!0}):n,t));var Dn=E((wc,An)=>{"use strict";An.exports=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}});var ue=E(xe=>{"use strict";var Dt,gs=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];xe.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};xe.getSymbolTotalCodewords=function(e){return gs[e]};xe.getBCHDigit=function(t){let e=0;for(;t!==0;)e++,t>>>=1;return e};xe.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');Dt=e};xe.isKanjiModeEnabled=function(){return typeof Dt<"u"};xe.toSJIS=function(e){return Dt(e)}});var it=E(ne=>{"use strict";ne.L={bit:1};ne.M={bit:0};ne.Q={bit:3};ne.H={bit:2};function hs(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return ne.L;case"m":case"medium":return ne.M;case"q":case"quartile":return ne.Q;case"h":case"high":return ne.H;default:throw new Error("Unknown EC Level: "+t)}}ne.isValid=function(e){return e&&typeof e.bit<"u"&&e.bit>=0&&e.bit<4};ne.from=function(e,n){if(ne.isValid(e))return e;try{return hs(e)}catch{return n}}});var Ln=E((Rc,In)=>{"use strict";function Mn(){this.buffer=[],this.length=0}Mn.prototype={get:function(t){let e=Math.floor(t/8);return(this.buffer[e]>>>7-t%8&1)===1},put:function(t,e){for(let n=0;n<e;n++)this.putBit((t>>>e-n-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){let e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};In.exports=Mn});var Wn=E((Sc,zn)=>{"use strict";function _e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}_e.prototype.set=function(t,e,n,o){let r=t*this.size+e;this.data[r]=n,o&&(this.reservedBit[r]=!0)};_e.prototype.get=function(t,e){return this.data[t*this.size+e]};_e.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n};_e.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]};zn.exports=_e});var Vn=E(lt=>{"use strict";var bs=ue().getSymbolSize;lt.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,o=bs(e),r=o===145?26:Math.ceil((o-13)/(2*n-2))*2,s=[o-7];for(let a=1;a<n-1;a++)s[a]=s[a-1]-r;return s.push(6),s.reverse()};lt.getPositions=function(e){let n=[],o=lt.getRowColCoords(e),r=o.length;for(let s=0;s<r;s++)for(let a=0;a<r;a++)s===0&&a===0||s===0&&a===r-1||s===r-1&&a===0||n.push([o[s],o[a]]);return n}});var On=E(Un=>{"use strict";var ys=ue().getSymbolSize,Hn=7;Un.getPositions=function(e){let n=ys(e);return[[0,0],[n-Hn,0],[0,n-Hn]]}});var _n=E(I=>{"use strict";I.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var ve={N1:3,N2:3,N3:40,N4:10};I.isValid=function(e){return e!=null&&e!==""&&!isNaN(e)&&e>=0&&e<=7};I.from=function(e){return I.isValid(e)?parseInt(e,10):void 0};I.getPenaltyN1=function(e){let n=e.size,o=0,r=0,s=0,a=null,i=null;for(let l=0;l<n;l++){r=s=0,a=i=null;for(let c=0;c<n;c++){let u=e.get(l,c);u===a?r++:(r>=5&&(o+=ve.N1+(r-5)),a=u,r=1),u=e.get(c,l),u===i?s++:(s>=5&&(o+=ve.N1+(s-5)),i=u,s=1)}r>=5&&(o+=ve.N1+(r-5)),s>=5&&(o+=ve.N1+(s-5))}return o};I.getPenaltyN2=function(e){let n=e.size,o=0;for(let r=0;r<n-1;r++)for(let s=0;s<n-1;s++){let a=e.get(r,s)+e.get(r,s+1)+e.get(r+1,s)+e.get(r+1,s+1);(a===4||a===0)&&o++}return o*ve.N2};I.getPenaltyN3=function(e){let n=e.size,o=0,r=0,s=0;for(let a=0;a<n;a++){r=s=0;for(let i=0;i<n;i++)r=r<<1&2047|e.get(a,i),i>=10&&(r===1488||r===93)&&o++,s=s<<1&2047|e.get(i,a),i>=10&&(s===1488||s===93)&&o++}return o*ve.N3};I.getPenaltyN4=function(e){let n=0,o=e.data.length;for(let s=0;s<o;s++)n+=e.data[s];return Math.abs(Math.ceil(n*100/o/5)-10)*ve.N4};function xs(t,e,n){switch(t){case I.Patterns.PATTERN000:return(e+n)%2===0;case I.Patterns.PATTERN001:return e%2===0;case I.Patterns.PATTERN010:return n%3===0;case I.Patterns.PATTERN011:return(e+n)%3===0;case I.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(n/3))%2===0;case I.Patterns.PATTERN101:return e*n%2+e*n%3===0;case I.Patterns.PATTERN110:return(e*n%2+e*n%3)%2===0;case I.Patterns.PATTERN111:return(e*n%3+(e+n)%2)%2===0;default:throw new Error("bad maskPattern:"+t)}}I.applyMask=function(e,n){let o=n.size;for(let r=0;r<o;r++)for(let s=0;s<o;s++)n.isReserved(s,r)||n.xor(s,r,xs(e,s,r))};I.getBestMask=function(e,n){let o=Object.keys(I.Patterns).length,r=0,s=1/0;for(let a=0;a<o;a++){n(a),I.applyMask(a,e);let i=I.getPenaltyN1(e)+I.getPenaltyN2(e)+I.getPenaltyN3(e)+I.getPenaltyN4(e);I.applyMask(a,e),i<s&&(s=i,r=a)}return r}});var It=E(Mt=>{"use strict";var me=it(),ct=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],dt=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];Mt.getBlocksCount=function(e,n){switch(n){case me.L:return ct[(e-1)*4+0];case me.M:return ct[(e-1)*4+1];case me.Q:return ct[(e-1)*4+2];case me.H:return ct[(e-1)*4+3];default:return}};Mt.getTotalCodewordsCount=function(e,n){switch(n){case me.L:return dt[(e-1)*4+0];case me.M:return dt[(e-1)*4+1];case me.Q:return dt[(e-1)*4+2];case me.H:return dt[(e-1)*4+3];default:return}}});var Fn=E(mt=>{"use strict";var Fe=new Uint8Array(512),ut=new Uint8Array(256);(function(){let e=1;for(let n=0;n<255;n++)Fe[n]=e,ut[e]=n,e<<=1,e&256&&(e^=285);for(let n=255;n<512;n++)Fe[n]=Fe[n-255]})();mt.log=function(e){if(e<1)throw new Error("log("+e+")");return ut[e]};mt.exp=function(e){return Fe[e]};mt.mul=function(e,n){return e===0||n===0?0:Fe[ut[e]+ut[n]]}});var Kn=E(Ke=>{"use strict";var Lt=Fn();Ke.mul=function(e,n){let o=new Uint8Array(e.length+n.length-1);for(let r=0;r<e.length;r++)for(let s=0;s<n.length;s++)o[r+s]^=Lt.mul(e[r],n[s]);return o};Ke.mod=function(e,n){let o=new Uint8Array(e);for(;o.length-n.length>=0;){let r=o[0];for(let a=0;a<n.length;a++)o[a]^=Lt.mul(n[a],r);let s=0;for(;s<o.length&&o[s]===0;)s++;o=o.slice(s)}return o};Ke.generateECPolynomial=function(e){let n=new Uint8Array([1]);for(let o=0;o<e;o++)n=Ke.mul(n,new Uint8Array([1,Lt.exp(o)]));return n}});var Qn=E((Mc,jn)=>{"use strict";var qn=Kn();function zt(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}zt.prototype.initialize=function(e){this.degree=e,this.genPoly=qn.generateECPolynomial(this.degree)};zt.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");let n=new Uint8Array(e.length+this.degree);n.set(e);let o=qn.mod(n,this.genPoly),r=this.degree-o.length;if(r>0){let s=new Uint8Array(this.degree);return s.set(o,r),s}return o};jn.exports=zt});var Wt=E($n=>{"use strict";$n.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}});var Vt=E(le=>{"use strict";var Gn="[0-9]+",vs="[A-Z $%*+\\-./:]+",qe="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";qe=qe.replace(/u/g,"\\u");var Cs="(?:(?![A-Z0-9 $%*+\\-./:]|"+qe+`)(?:.|[\r
|
|
2
2
|
]))+`;le.KANJI=new RegExp(qe,"g");le.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");le.BYTE=new RegExp(Cs,"g");le.NUMERIC=new RegExp(Gn,"g");le.ALPHANUMERIC=new RegExp(vs,"g");var ws=new RegExp("^"+qe+"$"),Ns=new RegExp("^"+Gn+"$"),ks=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");le.testKanji=function(e){return ws.test(e)};le.testNumeric=function(e){return Ns.test(e)};le.testAlphanumeric=function(e){return ks.test(e)}});var pe=E(V=>{"use strict";var Rs=Wt(),Ht=Vt();V.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]};V.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]};V.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]};V.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]};V.MIXED={bit:-1};V.getCharCountIndicator=function(e,n){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!Rs.isValid(n))throw new Error("Invalid version: "+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]};V.getBestModeForData=function(e){return Ht.testNumeric(e)?V.NUMERIC:Ht.testAlphanumeric(e)?V.ALPHANUMERIC:Ht.testKanji(e)?V.KANJI:V.BYTE};V.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")};V.isValid=function(e){return e&&e.bit&&e.ccBits};function Ss(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return V.NUMERIC;case"alphanumeric":return V.ALPHANUMERIC;case"kanji":return V.KANJI;case"byte":return V.BYTE;default:throw new Error("Unknown mode: "+t)}}V.from=function(e,n){if(V.isValid(e))return e;try{return Ss(e)}catch{return n}}});var eo=E(Ce=>{"use strict";var pt=ue(),Ts=It(),Yn=it(),fe=pe(),Ut=Wt(),Xn=7973,Jn=pt.getBCHDigit(Xn);function Ps(t,e,n){for(let o=1;o<=40;o++)if(e<=Ce.getCapacity(o,n,t))return o}function Zn(t,e){return fe.getCharCountIndicator(t,e)+4}function Bs(t,e){let n=0;return t.forEach(function(o){let r=Zn(o.mode,e);n+=r+o.getBitsLength()}),n}function Es(t,e){for(let n=1;n<=40;n++)if(Bs(t,n)<=Ce.getCapacity(n,e,fe.MIXED))return n}Ce.from=function(e,n){return Ut.isValid(e)?parseInt(e,10):n};Ce.getCapacity=function(e,n,o){if(!Ut.isValid(e))throw new Error("Invalid QR Code version");typeof o>"u"&&(o=fe.BYTE);let r=pt.getSymbolTotalCodewords(e),s=Ts.getTotalCodewordsCount(e,n),a=(r-s)*8;if(o===fe.MIXED)return a;let i=a-Zn(o,e);switch(o){case fe.NUMERIC:return Math.floor(i/10*3);case fe.ALPHANUMERIC:return Math.floor(i/11*2);case fe.KANJI:return Math.floor(i/13);case fe.BYTE:default:return Math.floor(i/8)}};Ce.getBestVersionForData=function(e,n){let o,r=Yn.from(n,Yn.M);if(Array.isArray(e)){if(e.length>1)return Es(e,r);if(e.length===0)return 1;o=e[0]}else o=e;return Ps(o.mode,o.getLength(),r)};Ce.getEncodedBits=function(e){if(!Ut.isValid(e)||e<7)throw new Error("Invalid QR Code version");let n=e<<12;for(;pt.getBCHDigit(n)-Jn>=0;)n^=Xn<<pt.getBCHDigit(n)-Jn;return e<<12|n}});var ro=E(oo=>{"use strict";var Ot=ue(),no=1335,As=21522,to=Ot.getBCHDigit(no);oo.getEncodedBits=function(e,n){let o=e.bit<<3|n,r=o<<10;for(;Ot.getBCHDigit(r)-to>=0;)r^=no<<Ot.getBCHDigit(r)-to;return(o<<10|r)^As}});var ao=E((Hc,so)=>{"use strict";var Ds=pe();function Ee(t){this.mode=Ds.NUMERIC,this.data=t.toString()}Ee.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)};Ee.prototype.getLength=function(){return this.data.length};Ee.prototype.getBitsLength=function(){return Ee.getBitsLength(this.data.length)};Ee.prototype.write=function(e){let n,o,r;for(n=0;n+3<=this.data.length;n+=3)o=this.data.substr(n,3),r=parseInt(o,10),e.put(r,10);let s=this.data.length-n;s>0&&(o=this.data.substr(n),r=parseInt(o,10),e.put(r,s*3+1))};so.exports=Ee});var lo=E((Uc,io)=>{"use strict";var Ms=pe(),_t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function Ae(t){this.mode=Ms.ALPHANUMERIC,this.data=t}Ae.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};Ae.prototype.getLength=function(){return this.data.length};Ae.prototype.getBitsLength=function(){return Ae.getBitsLength(this.data.length)};Ae.prototype.write=function(e){let n;for(n=0;n+2<=this.data.length;n+=2){let o=_t.indexOf(this.data[n])*45;o+=_t.indexOf(this.data[n+1]),e.put(o,11)}this.data.length%2&&e.put(_t.indexOf(this.data[n]),6)};io.exports=Ae});var uo=E((Oc,co)=>{"use strict";var Is=pe();function De(t){this.mode=Is.BYTE,typeof t=="string"?this.data=new TextEncoder().encode(t):this.data=new Uint8Array(t)}De.getBitsLength=function(e){return e*8};De.prototype.getLength=function(){return this.data.length};De.prototype.getBitsLength=function(){return De.getBitsLength(this.data.length)};De.prototype.write=function(t){for(let e=0,n=this.data.length;e<n;e++)t.put(this.data[e],8)};co.exports=De});var po=E((_c,mo)=>{"use strict";var Ls=pe(),zs=ue();function Me(t){this.mode=Ls.KANJI,this.data=t}Me.getBitsLength=function(e){return e*13};Me.prototype.getLength=function(){return this.data.length};Me.prototype.getBitsLength=function(){return Me.getBitsLength(this.data.length)};Me.prototype.write=function(t){let e;for(e=0;e<this.data.length;e++){let n=zs.toSJIS(this.data[e]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw new Error("Invalid SJIS character: "+this.data[e]+`
|
|
3
|
-
Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),t.put(n,13)}};mo.exports=Me});var fo=E((Fc,Ft)=>{"use strict";var je={single_source_shortest_paths:function(t,e,n){var o={},r={};r[e]=0;var s=je.PriorityQueue.make();s.push(e,0);for(var a,i,l,c,u,d,
|
|
4
|
-
Suggested mode is: `+P.toString(o));switch(n===P.KANJI&&!ft.isKanjiModeEnabled()&&(n=P.BYTE),n){case P.NUMERIC:return new bo(t);case P.ALPHANUMERIC:return new yo(t);case P.KANJI:return new vo(t);case P.BYTE:return new xo(t)}}Ie.fromArray=function(e){return e.reduce(function(n,o){return typeof o=="string"?n.push(ho(o,null)):o.data&&n.push(ho(o.data,o.mode)),n},[])};Ie.fromString=function(e,n){let o=Co(e,ft.isKanjiModeEnabled()),r=Hs(o),s=Us(r,n),a=Ws.find_path(s.map,"start","end"),i=[];for(let l=1;l<a.length-1;l++)i.push(s.table[a[l]].node);return Ie.fromArray(Vs(i))};Ie.rawSplit=function(e){return Ie.fromArray(Co(e,ft.isKanjiModeEnabled()))}});var ko=E(No=>{"use strict";var ht=ue(),qt=it(),Os=Ln(),_s=Wn(),Fs=Vn(),Ks=On(),$t=_n(),Gt=It(),qs=Qn(),gt=eo(),js=ro(),Qs=pe(),jt=wo();function $s(t,e){let n=t.size,o=Ks.getPositions(e);for(let r=0;r<o.length;r++){let s=o[r][0],a=o[r][1];for(let i=-1;i<=7;i++)if(!(s+i<=-1||n<=s+i))for(let l=-1;l<=7;l++)a+l<=-1||n<=a+l||(i>=0&&i<=6&&(l===0||l===6)||l>=0&&l<=6&&(i===0||i===6)||i>=2&&i<=4&&l>=2&&l<=4?t.set(s+i,a+l,!0,!0):t.set(s+i,a+l,!1,!0))}}function Gs(t){let e=t.size;for(let n=8;n<e-8;n++){let o=n%2===0;t.set(n,6,o,!0),t.set(6,n,o,!0)}}function Ys(t,e){let n=Fs.getPositions(e);for(let o=0;o<n.length;o++){let r=n[o][0],s=n[o][1];for(let a=-2;a<=2;a++)for(let i=-2;i<=2;i++)a===-2||a===2||i===-2||i===2||a===0&&i===0?t.set(r+a,s+i,!0,!0):t.set(r+a,s+i,!1,!0)}}function Js(t,e){let n=t.size,o=gt.getEncodedBits(e),r,s,a;for(let i=0;i<18;i++)r=Math.floor(i/3),s=i%3+n-8-3,a=(o>>i&1)===1,t.set(r,s,a,!0),t.set(s,r,a,!0)}function Qt(t,e,n){let o=t.size,r=js.getEncodedBits(e,n),s,a;for(s=0;s<15;s++)a=(r>>s&1)===1,s<6?t.set(s,8,a,!0):s<8?t.set(s+1,8,a,!0):t.set(o-15+s,8,a,!0),s<8?t.set(8,o-s-1,a,!0):s<9?t.set(8,15-s-1+1,a,!0):t.set(8,15-s-1,a,!0);t.set(o-8,8,1,!0)}function Xs(t,e){let n=t.size,o=-1,r=n-1,s=7,a=0;for(let i=n-1;i>0;i-=2)for(i===6&&i--;;){for(let l=0;l<2;l++)if(!t.isReserved(r,i-l)){let c=!1;a<e.length&&(c=(e[a]>>>s&1)===1),t.set(r,i-l,c),s--,s===-1&&(a++,s=7)}if(r+=o,r<0||n<=r){r-=o,o=-o;break}}}function Zs(t,e,n){let o=new Os;n.forEach(function(l){o.put(l.mode.bit,4),o.put(l.getLength(),Qs.getCharCountIndicator(l.mode,t)),l.write(o)});let r=ht.getSymbolTotalCodewords(t),s=Gt.getTotalCodewordsCount(t,e),a=(r-s)*8;for(o.getLengthInBits()+4<=a&&o.put(0,4);o.getLengthInBits()%8!==0;)o.putBit(0);let i=(a-o.getLengthInBits())/8;for(let l=0;l<i;l++)o.put(l%2?17:236,8);return ea(o,t,e)}function ea(t,e,n){let o=ht.getSymbolTotalCodewords(e),r=Gt.getTotalCodewordsCount(e,n),s=o-r,a=Gt.getBlocksCount(e,n),i=o%a,l=a-i,c=Math.floor(o/a),u=Math.floor(s/a),d=u+1,
|
|
3
|
+
Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),t.put(n,13)}};mo.exports=Me});var fo=E((Fc,Ft)=>{"use strict";var je={single_source_shortest_paths:function(t,e,n){var o={},r={};r[e]=0;var s=je.PriorityQueue.make();s.push(e,0);for(var a,i,l,c,u,d,m,g,b;!s.empty();){a=s.pop(),i=a.value,c=a.cost,u=t[i]||{};for(l in u)u.hasOwnProperty(l)&&(d=u[l],m=c+d,g=r[l],b=typeof r[l]>"u",(b||g>m)&&(r[l]=m,s.push(l,m),o[l]=i))}if(typeof n<"u"&&typeof r[n]>"u"){var f=["Could not find a path from ",e," to ",n,"."].join("");throw new Error(f)}return o},extract_shortest_path_from_predecessor_list:function(t,e){for(var n=[],o=e,r;o;)n.push(o),r=t[o],o=t[o];return n.reverse(),n},find_path:function(t,e,n){var o=je.single_source_shortest_paths(t,e,n);return je.extract_shortest_path_from_predecessor_list(o,n)},PriorityQueue:{make:function(t){var e=je.PriorityQueue,n={},o;t=t||{};for(o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);return n.queue=[],n.sorter=t.sorter||e.default_sorter,n},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var n={value:t,cost:e};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};typeof Ft<"u"&&(Ft.exports=je)});var wo=E(Ie=>{"use strict";var P=pe(),bo=ao(),yo=lo(),xo=uo(),vo=po(),Qe=Vt(),ft=ue(),Ws=fo();function go(t){return unescape(encodeURIComponent(t)).length}function $e(t,e,n){let o=[],r;for(;(r=t.exec(n))!==null;)o.push({data:r[0],index:r.index,mode:e,length:r[0].length});return o}function Co(t){let e=$e(Qe.NUMERIC,P.NUMERIC,t),n=$e(Qe.ALPHANUMERIC,P.ALPHANUMERIC,t),o,r;return ft.isKanjiModeEnabled()?(o=$e(Qe.BYTE,P.BYTE,t),r=$e(Qe.KANJI,P.KANJI,t)):(o=$e(Qe.BYTE_KANJI,P.BYTE,t),r=[]),e.concat(n,o,r).sort(function(a,i){return a.index-i.index}).map(function(a){return{data:a.data,mode:a.mode,length:a.length}})}function Kt(t,e){switch(e){case P.NUMERIC:return bo.getBitsLength(t);case P.ALPHANUMERIC:return yo.getBitsLength(t);case P.KANJI:return vo.getBitsLength(t);case P.BYTE:return xo.getBitsLength(t)}}function Vs(t){return t.reduce(function(e,n){let o=e.length-1>=0?e[e.length-1]:null;return o&&o.mode===n.mode?(e[e.length-1].data+=n.data,e):(e.push(n),e)},[])}function Hs(t){let e=[];for(let n=0;n<t.length;n++){let o=t[n];switch(o.mode){case P.NUMERIC:e.push([o,{data:o.data,mode:P.ALPHANUMERIC,length:o.length},{data:o.data,mode:P.BYTE,length:o.length}]);break;case P.ALPHANUMERIC:e.push([o,{data:o.data,mode:P.BYTE,length:o.length}]);break;case P.KANJI:e.push([o,{data:o.data,mode:P.BYTE,length:go(o.data)}]);break;case P.BYTE:e.push([{data:o.data,mode:P.BYTE,length:go(o.data)}])}}return e}function Us(t,e){let n={},o={start:{}},r=["start"];for(let s=0;s<t.length;s++){let a=t[s],i=[];for(let l=0;l<a.length;l++){let c=a[l],u=""+s+l;i.push(u),n[u]={node:c,lastCount:0},o[u]={};for(let d=0;d<r.length;d++){let m=r[d];n[m]&&n[m].node.mode===c.mode?(o[m][u]=Kt(n[m].lastCount+c.length,c.mode)-Kt(n[m].lastCount,c.mode),n[m].lastCount+=c.length):(n[m]&&(n[m].lastCount=c.length),o[m][u]=Kt(c.length,c.mode)+4+P.getCharCountIndicator(c.mode,e))}}r=i}for(let s=0;s<r.length;s++)o[r[s]].end=0;return{map:o,table:n}}function ho(t,e){let n,o=P.getBestModeForData(t);if(n=P.from(e,o),n!==P.BYTE&&n.bit<o.bit)throw new Error('"'+t+'" cannot be encoded with mode '+P.toString(n)+`.
|
|
4
|
+
Suggested mode is: `+P.toString(o));switch(n===P.KANJI&&!ft.isKanjiModeEnabled()&&(n=P.BYTE),n){case P.NUMERIC:return new bo(t);case P.ALPHANUMERIC:return new yo(t);case P.KANJI:return new vo(t);case P.BYTE:return new xo(t)}}Ie.fromArray=function(e){return e.reduce(function(n,o){return typeof o=="string"?n.push(ho(o,null)):o.data&&n.push(ho(o.data,o.mode)),n},[])};Ie.fromString=function(e,n){let o=Co(e,ft.isKanjiModeEnabled()),r=Hs(o),s=Us(r,n),a=Ws.find_path(s.map,"start","end"),i=[];for(let l=1;l<a.length-1;l++)i.push(s.table[a[l]].node);return Ie.fromArray(Vs(i))};Ie.rawSplit=function(e){return Ie.fromArray(Co(e,ft.isKanjiModeEnabled()))}});var ko=E(No=>{"use strict";var ht=ue(),qt=it(),Os=Ln(),_s=Wn(),Fs=Vn(),Ks=On(),$t=_n(),Gt=It(),qs=Qn(),gt=eo(),js=ro(),Qs=pe(),jt=wo();function $s(t,e){let n=t.size,o=Ks.getPositions(e);for(let r=0;r<o.length;r++){let s=o[r][0],a=o[r][1];for(let i=-1;i<=7;i++)if(!(s+i<=-1||n<=s+i))for(let l=-1;l<=7;l++)a+l<=-1||n<=a+l||(i>=0&&i<=6&&(l===0||l===6)||l>=0&&l<=6&&(i===0||i===6)||i>=2&&i<=4&&l>=2&&l<=4?t.set(s+i,a+l,!0,!0):t.set(s+i,a+l,!1,!0))}}function Gs(t){let e=t.size;for(let n=8;n<e-8;n++){let o=n%2===0;t.set(n,6,o,!0),t.set(6,n,o,!0)}}function Ys(t,e){let n=Fs.getPositions(e);for(let o=0;o<n.length;o++){let r=n[o][0],s=n[o][1];for(let a=-2;a<=2;a++)for(let i=-2;i<=2;i++)a===-2||a===2||i===-2||i===2||a===0&&i===0?t.set(r+a,s+i,!0,!0):t.set(r+a,s+i,!1,!0)}}function Js(t,e){let n=t.size,o=gt.getEncodedBits(e),r,s,a;for(let i=0;i<18;i++)r=Math.floor(i/3),s=i%3+n-8-3,a=(o>>i&1)===1,t.set(r,s,a,!0),t.set(s,r,a,!0)}function Qt(t,e,n){let o=t.size,r=js.getEncodedBits(e,n),s,a;for(s=0;s<15;s++)a=(r>>s&1)===1,s<6?t.set(s,8,a,!0):s<8?t.set(s+1,8,a,!0):t.set(o-15+s,8,a,!0),s<8?t.set(8,o-s-1,a,!0):s<9?t.set(8,15-s-1+1,a,!0):t.set(8,15-s-1,a,!0);t.set(o-8,8,1,!0)}function Xs(t,e){let n=t.size,o=-1,r=n-1,s=7,a=0;for(let i=n-1;i>0;i-=2)for(i===6&&i--;;){for(let l=0;l<2;l++)if(!t.isReserved(r,i-l)){let c=!1;a<e.length&&(c=(e[a]>>>s&1)===1),t.set(r,i-l,c),s--,s===-1&&(a++,s=7)}if(r+=o,r<0||n<=r){r-=o,o=-o;break}}}function Zs(t,e,n){let o=new Os;n.forEach(function(l){o.put(l.mode.bit,4),o.put(l.getLength(),Qs.getCharCountIndicator(l.mode,t)),l.write(o)});let r=ht.getSymbolTotalCodewords(t),s=Gt.getTotalCodewordsCount(t,e),a=(r-s)*8;for(o.getLengthInBits()+4<=a&&o.put(0,4);o.getLengthInBits()%8!==0;)o.putBit(0);let i=(a-o.getLengthInBits())/8;for(let l=0;l<i;l++)o.put(l%2?17:236,8);return ea(o,t,e)}function ea(t,e,n){let o=ht.getSymbolTotalCodewords(e),r=Gt.getTotalCodewordsCount(e,n),s=o-r,a=Gt.getBlocksCount(e,n),i=o%a,l=a-i,c=Math.floor(o/a),u=Math.floor(s/a),d=u+1,m=c-u,g=new qs(m),b=0,f=new Array(a),h=new Array(a),N=0,p=new Uint8Array(t.buffer);for(let D=0;D<a;D++){let ae=D<l?u:d;f[D]=p.slice(b,b+ae),h[D]=g.encode(f[D]),b+=ae,N=Math.max(N,ae)}let x=new Uint8Array(o),T=0,S,O;for(S=0;S<N;S++)for(O=0;O<a;O++)S<f[O].length&&(x[T++]=f[O][S]);for(S=0;S<m;S++)for(O=0;O<a;O++)x[T++]=h[O][S];return x}function ta(t,e,n,o){let r;if(Array.isArray(t))r=jt.fromArray(t);else if(typeof t=="string"){let c=e;if(!c){let u=jt.rawSplit(t);c=gt.getBestVersionForData(u,n)}r=jt.fromString(t,c||40)}else throw new Error("Invalid data");let s=gt.getBestVersionForData(r,n);if(!s)throw new Error("The amount of data is too big to be stored in a QR Code");if(!e)e=s;else if(e<s)throw new Error(`
|
|
5
5
|
The chosen QR Code version cannot contain this amount of data.
|
|
6
6
|
Minimum version required to store current data is: `+s+`.
|
|
7
|
-
`);let a=Zs(e,n,r),i=ht.getSymbolSize(e),l=new _s(i);return $s(l,e),Gs(l),Ys(l,e),Qt(l,n,0),e>=7&&Js(l,e),Xs(l,a),isNaN(o)&&(o=$t.getBestMask(l,Qt.bind(null,l,n))),$t.applyMask(o,l),Qt(l,n,o),{modules:l,version:e,errorCorrectionLevel:n,maskPattern:o,segments:r}}No.create=function(e,n){if(typeof e>"u"||e==="")throw new Error("No input text");let o=qt.M,r,s;return typeof n<"u"&&(o=qt.from(n.errorCorrectionLevel,qt.M),r=gt.from(n.version),s=$t.from(n.maskPattern),n.toSJISFunc&&ht.setToSJISFunction(n.toSJISFunc)),ta(e,r,o,s)}});var Yt=E(we=>{"use strict";function Ro(t){if(typeof t=="number"&&(t=t.toString()),typeof t!="string")throw new Error("Color should be defined as hex string");let e=t.slice().replace("#","").split("");if(e.length<3||e.length===5||e.length>8)throw new Error("Invalid hex color: "+t);(e.length===3||e.length===4)&&(e=Array.prototype.concat.apply([],e.map(function(o){return[o,o]}))),e.length===6&&e.push("F","F");let n=parseInt(e.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:"#"+e.slice(0,6).join("")}}we.getOptions=function(e){e||(e={}),e.color||(e.color={});let n=typeof e.margin>"u"||e.margin===null||e.margin<0?4:e.margin,o=e.width&&e.width>=21?e.width:void 0,r=e.scale||4;return{width:o,scale:o?4:r,margin:n,color:{dark:Ro(e.color.dark||"#000000ff"),light:Ro(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}};we.getScale=function(e,n){return n.width&&n.width>=e+n.margin*2?n.width/(e+n.margin*2):n.scale};we.getImageWidth=function(e,n){let o=we.getScale(e,n);return Math.floor((e+n.margin*2)*o)};we.qrToImageData=function(e,n,o){let r=n.modules.size,s=n.modules.data,a=we.getScale(r,o),i=Math.floor((r+o.margin*2)*a),l=o.margin*a,c=[o.color.light,o.color.dark];for(let u=0;u<i;u++)for(let d=0;d<i;d++){let
|
|
8
|
-
`;return typeof o=="function"&&o(null,p),p}});var Ao=E(Ge=>{"use strict";var aa=Dn(),Zt=ko(),Eo=So(),ia=Bo();function en(t,e,n,o,r){let s=[].slice.call(arguments,1),a=s.length,i=typeof s[a-1]=="function";if(!i&&!aa())throw new Error("Callback required as last argument");if(i){if(a<2)throw new Error("Too few arguments provided");a===2?(r=n,n=e,e=o=void 0):a===3&&(e.getContext&&typeof r>"u"?(r=o,o=void 0):(r=o,o=n,n=e,e=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(n=e,e=o=void 0):a===2&&!e.getContext&&(o=n,n=e,e=void 0),new Promise(function(l,c){try{let u=Zt.create(n,o);l(t(u,e,o))}catch(u){c(u)}})}try{let l=Zt.create(n,o);r(null,t(l,e,o))}catch(l){r(l)}}Ge.create=Zt.create;Ge.toCanvas=en.bind(null,Eo.render);Ge.toDataURL=en.bind(null,Eo.renderToDataURL);Ge.toString=en.bind(null,function(t,e,n){return ia.render(t,n)})});import{useState as Pt,useEffect as es,useCallback as Rn,useRef as ts}from"react";import{AppkitConnectButton as ns}from"@naculus/connect-appkit-react";import{createContext as qr,useContext as Nn,useState as st,useCallback as Nt,useEffect as jr,useMemo as wn,useRef as kt}from"react";import{useWeb3 as Qr}from"@naculus/connect-appkit-react";import{jsx as Gr}from"react/jsx-runtime";var Rt=qr(null);function St({children:t}){let e=Qr(),[n,o]=st(null),[r,s]=st(!1),[a,i]=st("idle"),[l,c]=st(null),u=kt(0),d=kt(null);jr(()=>()=>{d.current&&clearTimeout(d.current)},[]);let p=Nt(()=>{u.current+=1,e.cancelPairing?.(),d.current&&(clearTimeout(d.current),d.current=null),o(null),s(!1),i("cancelled"),c(null)},[e]),g=kt(void 0);g.current=async()=>{if(!e.startPairing||!e.completePairing){c("WalletConnect pairing not available"),i("error");return}let m=++u.current,x=()=>u.current===m;i("loading"),c(null),s(!0);try{let T=await e.startPairing();if(!x())return;o(T),i("ready");try{if(await e.completePairing(),!x())return;d.current=setTimeout(()=>{d.current=null,x()&&(s(!1),o(null),i("idle"))},1e3)}catch(S){if(!x())return;i("error"),c(S instanceof Error?S.message:"Connection failed")}}catch(T){if(!x())return;i("error"),c(T instanceof Error?T.message:"Failed to generate QR code")}};let b=Nt(async()=>{await g.current?.()},[]),f=Nt(()=>{o(null),c(null),i("loading"),g.current?.()},[]),h=wn(()=>({qrUri:n,showQR:r,qrStatus:a,error:l}),[n,r,a,l]),N=wn(()=>({state:h,connectWalletConnect:b,cancelQR:p,retryQR:f}),[h,b,p,f]);return Gr(Rt.Provider,{value:N,children:t})}function $r(){let t=Nn(Rt);if(!t)throw new Error("useWalletConnect must be used within a WalletConnectProvider");return t}function Tt(){return Nn(Rt)}import{useState as kn,useEffect as Yr,useRef as Jr}from"react";function Ue(){let[t,e]=kn([]),[n,o]=kn(!0),r=Jr(new Set);return Yr(()=>{r.current.clear(),o(!0);let s=i=>{let l=i.detail,c=l?.info,u=l?.provider;!c?.rdns||r.current.has(c.rdns)||(r.current.add(c.rdns),e(d=>d.find(p=>p.id===c.rdns)?d:[...d,{id:c.rdns,name:c.name||c.rdns,icon:c.icon||"",rdns:c.rdns,provider:u}]))};window.addEventListener("eip6963:announceProvider",s),window.dispatchEvent(new Event("eip6963:requestProvider"));let a=setTimeout(()=>o(!1),500);return()=>{window.removeEventListener("eip6963:announceProvider",s),clearTimeout(a)}},[]),{wallets:t,isDetecting:n,hasWallets:t.length>0}}import{useState as Xr,useEffect as Zr}from"react";function Oe(){let[t,e]=Xr(!1);return Zr(()=>{if(typeof navigator>"u"||typeof window>"u")return;let n=navigator.userAgent.toLowerCase();e(/(iphone|ipad|ipod|android|mobile)/i.test(n))},[]),t}import{jsx as Sn}from"react/jsx-runtime";function ye({className:t,isConnected:e,isConnecting:n,onConnect:o,onDisconnect:r,onMobileDeepLink:s,mobileWalletName:a,startPairing:i,completePairing:l,address:c,balance:u,balanceSymbol:d,tokenBalances:p,isBalanceLoading:g,explorerUrl:b,explorerLabel:f}){let h=Tt(),{wallets:N}=Ue(),m=Oe(),x=JSON.stringify(N.map(({id:_,name:re,icon:j,rdns:Te})=>({id:_,name:re,icon:j,rdns:Te}))),[T,S]=Pt(null),[O,D]=Pt(!1),[ae,q]=Pt(null),Z=ts({aborted:!1}),He=Rn(()=>{Z.current.aborted=!0,h?.cancelQR(),D(!1),S(null),q(null)},[h]);es(()=>{if(!h)return;let{qrStatus:_,qrUri:re,error:j}=h.state;_==="loading"?(D(!0),S(null),q(null)):_==="ready"&&re?(D(!1),S(re),q(null)):_==="error"?(D(!1),q(j)):(_==="idle"||_==="cancelled")&&(D(!1),S(null),q(null))},[h?.state?.qrStatus,h?.state?.qrUri,h?.state?.error]);let ie=Rn((_,re)=>{if(_==="walletconnect"){if(h){h.connectWalletConnect();return}if(i&&l){D(!0),q(null),Z.current.aborted=!1,i().then(j=>{Z.current.aborted||(S(j),D(!1),l().then(()=>{Z.current.aborted||S(null)}).catch(Te=>{Z.current.aborted||q(Te instanceof Error?Te.message:"Connection failed")}))}).catch(j=>{Z.current.aborted||(D(!1),q(j instanceof Error?j.message:"Connection failed"))});return}}o?.(_,()=>{},re)},[h,i,l,o]);return Sn("div",{className:t,children:Sn(ns,{connected:e??!1,connecting:n??!1,address:c??"",balance:u??null,balanceSymbol:d??"",isBalanceLoading:g??!1,tokenBalancesJson:JSON.stringify(p??[]),explorerUrl:b??"",explorerLabel:f??"",walletsJson:x,isMobile:m,mobileWalletName:a??"",qrUri:T,qrLoading:O,qrError:ae,onAppkitConnect:_=>{ie(_.detail.kind,_.detail.walletId)},onAppkitDisconnect:()=>r?.(),onAppkitStartPairing:()=>ie("walletconnect"),onAppkitRetry:()=>{Z.current.aborted=!0,q(null),S(null),ie("walletconnect")},onAppkitCancelPairing:He,onAppkitMobileDeepLink:()=>s?.(),onAppkitCopyAddress:_=>{navigator.clipboard?.writeText(_.detail).catch(()=>{})}})})}import{logger as Ja}from"@naculus/connect-core";import{useState as Xa,useRef as Za,useEffect as ei}from"react";import{useChain as ti,useWallet as ni}from"@naculus/connect-appkit-react";import{clsx as os}from"clsx";import{twMerge as rs}from"tailwind-merge";function y(...t){return rs(os(t))}var Tn='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 0l-.26.97v28.15l.26.26 13.07-7.72L12 0z" fill="#8C8C8C"/><path d="M12 0L-.87 21.69l12.87 7.72V0z" fill="#3C3C3B"/><path d="M12 31.88l-.16.2v10.55l.16.47 13.08-18.42L12 31.88z" fill="#8C8C8C"/><path d="M12 42.9V31.88L-.87 24.68 12 42.9z" fill="#3C3C3B"/><path d="M12 28.41l13.07-7.72L12 14.09v14.32z" fill="#141414"/><path d="M-.87 20.69L12 28.41V14.09l-12.87 6.6z" fill="#393939"/></svg>',ss='<svg viewBox="0 0 24 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15 12.3l-3.7 2.2-3.8-2.2V7.9L11.3 5.7 15 7.9v2.7l-2.2 1.3-1.5-.9v-2l1.5.9 2.2-1.3V7.9L11.3 4 6 7.9v6.3l5.3 3.1 5.3-3.1-1.6-2.8z" fill="#6C00F6"/></svg>',as='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#F0B90B"/><path d="M12 4l2.7 1.6L14.7 7 12 5.4 9.3 7l-.7-.4L12 4zm4.7 2.7l-2.7 1.6V10l4 2.3v4.7L16 18.7v-4l-1.3-.7v4L12 20l-2.7-1.6v-4L8 14.7v4l-1.3-.7V12.3l4-2.3V8.3l-2.7-1.6.7-.4L12 8l2.7-1.7.7.4z" fill="white"/></svg>',is='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 1.5c.3 0 .6.1.8.2l8.8 5.1c.5.3.9.9.9 1.5v10.2c0 .6-.3 1.2-.9 1.5l-8.8 5.1c-.3.2-.6.2-.8.2s-.6-.1-.8-.2l-8.8-5.1c-.5-.3-.9-.9-.9-1.5V8.3c0-.6.3-1.2.9-1.5l8.8-5.1c.3-.2.6-.2.8-.2z" fill="#213147"/><path d="M14.7 13.8l-1.2 3.2c0 .1 0 .2.1.3l2 5.5 2.3-1.3-2.8-7.6c-.1-.2-.3-.2-.4-.1z" fill="#12AAFF"/><path d="M16.3 8.5c0-.2-.3-.2-.4 0l-1.1 3.2c0 .1 0 .2.1.3l3.3 9 2.3-1.3-4.2-9.1v-.1z" fill="#12AAFF"/><path d="M12 3.5c.1 0 .2 0 .3.1l8.8 5.1c.1.1.2.2.2.3v10.2c0 .1-.1.2-.2.3l-8.8 5.1c-.1 0-.2.1-.3.1s-.2 0-.3-.1l-8.8-5.1c-.1-.1-.2-.2-.2-.3V9c0-.1.1-.2.2-.3l8.8-5.1c.1 0 .2-.1.3-.1z" fill="#9DCCED" fill-opacity="0.3"/><path d="M13.3 6.2h-2.2c-.2 0-.3.1-.4.3L5.9 19.6l2.3 1.3L13 6.5c0-.1-.1-.3-.2-.3h.4z" fill="white"/><path d="M15.2 6.2H13c-.2 0-.3.1-.4.3L8.1 21.4l2.3 1.3 6-16.4c0-.1-.1-.3-.2-.3v.2z" fill="white"/></svg>',ls='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#FF0420"/><path d="M8.5 16c-.5 0-.9-.1-1.3-.3-.4-.2-.7-.5-1-.8-.3-.4-.4-.8-.4-1.3V10c0-.5.1-1 .4-1.4.3-.4.6-.7 1-.9.4-.2.8-.3 1.3-.3.4 0 .8.1 1.2.2.3.2.6.4.8.7l-1 1c-.2-.2-.4-.3-.6-.4-.2-.1-.5-.2-.8-.2-.3 0-.6.1-.9.2-.3.2-.5.4-.6.7-.1.3-.2.6-.2 1v3.5c0 .3.1.6.2.9.1.3.3.5.6.6.3.2.6.2.9.2.3 0 .6-.1.8-.2.2-.1.4-.3.6-.5l1 1c-.2.3-.5.5-.8.7-.4.2-.9.3-1.4.3z" fill="white"/><path d="M15.5 16c-.5 0-.9-.1-1.3-.3-.4-.2-.7-.5-1-.8-.2-.4-.4-.8-.4-1.3V10c0-.5.1-1 .4-1.4.2-.4.5-.7.9-.9.4-.2.8-.3 1.3-.3.5 0 1 .1 1.4.3.4.2.7.5.9.9.2.4.3.9.3 1.4v.7h-2.9v-1.1c0-.3-.1-.6-.2-.9-.1-.3-.3-.5-.5-.6-.2-.1-.5-.2-.8-.2-.3 0-.6.1-.8.2-.3.2-.5.4-.6.7-.1.3-.2.6-.2 1v3.5c0 .3.1.6.2.8.1.3.3.5.6.6.2.2.5.2.8.2.3 0 .6-.1.8-.2.2-.1.4-.3.5-.6.1-.3.2-.6.2-1v-1.1h2.9v.7c0 .5-.1 1-.3 1.4-.2.4-.5.7-.9.9-.4.2-.9.3-1.4.3z" fill="white"/></svg>',cs='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#E84142"/><path d="M8.6 16.8H6.3c-.5 0-.8-.1-1-.3-.2-.2-.3-.5-.3-.8 0-.2 0-.4.1-.6l5.8-10.7c.2-.4.5-.7.8-.8.3-.1.5-.1.7 0 .2.1.5.3.7.8l1.2 2.1.1.2c.3.5.5.9.5 1.3.1.4.1.8 0 1.1-.1.4-.3.8-.6 1.3l-3 5.4c-.2.5-.5.8-.8 1-.4.2-.7.2-1.2.2z" fill="white"/><path d="M14.5 16.8h3.3c.5 0 .7-.1 1-.3.2-.2.3-.5.3-.8 0-.2-.1-.4-.3-.7l-1.7-3-.2-.3c-.2-.4-.4-.7-.6-.8-.2-.1-.4-.1-.6 0-.2.1-.4.3-.6.8l-1.6 3c-.2.4-.4.7-.4.9 0 .2.1.5.3.7.1.1.4.3.9.3z" fill="white"/></svg>',ds='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#1969FF"/><path d="M11.3 3.8c.4-.2 1-.2 1.4 0l4.1 2.2c.2.1.4.3.4.5h0v10.9c0 .2-.1.4-.4.6l-4.1 2.2c-.4.2-1 .2-1.4 0l-4.1-2.2c-.3-.1-.4-.4-.4-.6V6.5c0-.2.1-.4.4-.5l4.1-2.2zm5.3 8.7l-3.9 2c-.4.2-1 .2-1.4 0l-3.9-2v4.8l3.9 2c.2.1.5.2.7.2.2 0 .5-.1.7-.2l3.9-2v-4.8z" fill="white"/></svg>',us={"eip155:1":Tn,"eip155:137":ss,"eip155:56":as,"eip155:42161":is,"eip155:10":ls,"eip155:43114":cs,"eip155:250":ds,"eip155:11155111":Tn};function at(t){return us[t]}import{createContext as qa,useContext as ja,useMemo as Qa}from"react";import{Wallet as ms}from"lucide-react";import{jsx as Pe,jsxs as Bt}from"react/jsx-runtime";function ps({children:t}){return Pe("div",{className:"flex h-8 w-8 items-center justify-center rounded-full bg-primary text-primary-foreground",children:t})}function Et({className:t,showAddress:e=!0,showBalance:n=!1,address:o,balance:r,balanceSymbol:s,onConnect:a}){let l=B().Button;if(!o)return Bt(l,{"aria-label":"Connect Wallet",onClick:a,className:t,children:[Pe(ms,{size:18,className:"shrink-0"}),"Connect Wallet"]});let c=o.includes(":")?o.split(":").pop():o,u=c.slice(0,6)+"..."+c.slice(-4),d=r!=null?parseFloat(r).toLocaleString(void 0,{maximumFractionDigits:4})+(s?` ${s}`:""):null;return Bt(l,{className:t,children:[Pe(ps,{children:"W"}),Bt("div",{className:"flex flex-col items-start gap-0",children:[e&&Pe("span",{className:"font-mono text-xs",children:u}),n&&d&&Pe("span",{className:"text-xs text-muted-foreground",children:d}),n&&!d&&r===null&&Pe("span",{className:"text-xs text-muted-foreground",children:"Loading..."})]})]})}import{useRef as Do,useEffect as Mo,useState as Io,useCallback as la}from"react";import{Smartphone as ca,RefreshCw as Lo,CheckCircle2 as da,AlertCircle as zo,Loader2 as ua}from"lucide-react";import{useEffect as Pn}from"react";import{X as fs}from"lucide-react";import{jsx as de,jsxs as At}from"react/jsx-runtime";function Be({open:t,onClose:e,children:n,closable:o,className:r}){return Pn(()=>{if(!t)return;let s=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=s}},[t]),Pn(()=>{if(!t||!e)return;let s=a=>{a.key==="Escape"&&e()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t,e]),t?At("div",{className:y("fixed inset-0 z-50 flex items-center justify-center p-4",r),style:{position:"fixed",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem"},children:[de("div",{className:"absolute inset-0 bg-black/80","aria-hidden":"true",onClick:e,style:{position:"absolute",inset:0,background:"rgb(0 0 0 / 0.8)"}}),At("div",{role:"dialog","aria-modal":"true",className:"relative z-10 w-full max-w-sm rounded-xl border bg-card text-card-foreground shadow-2xl max-h-[85vh] overflow-y-auto p-6",style:{position:"relative",zIndex:10,width:"100%",maxWidth:"24rem",maxHeight:"85vh",overflowY:"auto",borderRadius:"0.75rem",padding:"1.5rem",background:"hsl(var(--card, 0 0% 100%))",color:"hsl(var(--card-foreground, 222.2 84% 4.9%))",boxShadow:"0 25px 50px -12px rgb(0 0 0 / 0.4)"},children:[o&&e&&de("button",{onClick:e,type:"button","aria-label":"Close modal",className:"absolute right-4 top-4 z-20 rounded-md p-1 text-muted-foreground hover:text-foreground",style:{position:"absolute",right:"1rem",top:"1rem",zIndex:20,border:0,background:"transparent",cursor:"pointer",color:"inherit"},children:de("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:de("path",{d:"M18 6 6 18M6 6l12 12","data-testid":"x-icon"})})}),n]})]}):null}function Bn({title:t,onClose:e,showCloseButton:n=!0}){return At("div",{className:"flex items-center justify-between mb-4",children:[de("h2",{className:"text-lg font-semibold m-0",children:t}),n&&e&&de("button",{onClick:e,type:"button",className:"rounded-md p-1 text-muted-foreground hover:text-foreground transition-all duration-200","aria-label":"Close",children:de(fs,{size:16})})]})}function En({children:t,className:e=""}){return de("div",{className:y("flex flex-col gap-4",e),children:t})}import{jsx as H,jsxs as se}from"react/jsx-runtime";async function ma(t,e){let n=await Promise.resolve().then(()=>Kr(Ao(),1)),r=(n.default??n).toCanvas??n.toCanvas;if(typeof r!="function")throw new Error("qrcode.toCanvas is unavailable");return new Promise((s,a)=>{r(t,e,{width:280,margin:2},i=>{i?a(i):s()})})}function Ye({uri:t,open:e,onClose:n,onDeepLink:o,onRetry:r,status:s="pending",showDeepLink:a,timeoutMs:i=300*1e3,title:l="Scan with WalletConnect",description:c="Open your wallet app and scan this QR code to connect.",className:u}){let d=Do(null),[p,g]=Io(null),[b,f]=Io(0),h=Oe(),N=B(),m=N.Button,x=a??h,T=Do(null);Mo(()=>{!e||!t||!d.current||(g(null),ma(d.current,t).catch(j=>{g(j instanceof Error?j.message:"Unable to render QR code")}))},[e,t]),Mo(()=>{if(!e||s!=="pending"){T.current&&(clearInterval(T.current),T.current=null),f(0);return}let j=Date.now();return T.current=setInterval(()=>f(Date.now()-j),1e3),()=>{T.current&&clearInterval(T.current)}},[e,s,i]);let S=b>=i&&s==="pending",O=S||s==="expired"||s==="error",D=Math.max(0,Math.ceil((i-b)/1e3)),ae=Math.floor(D/60),q=D%60,Z=Math.min(b/i,1),He=la(()=>{t&&o&&o(t)},[t,o]),ie=t&&!S&&s==="pending"?p?se("div",{className:"w-[280px] h-[280px] flex flex-col items-center justify-center bg-muted rounded-lg gap-2",children:[H(zo,{size:24,className:"text-muted-foreground"}),H("span",{className:"text-sm text-muted-foreground",children:"Failed to render QR code"})]}):H("canvas",{ref:d,width:280,height:280,role:"img","aria-label":"WalletConnect pairing QR code",className:"rounded-lg border border-border"}):se("div",{className:"flex flex-col items-center justify-center gap-3 bg-muted rounded-lg w-[280px] h-[280px]",children:[s==="scanned"?H(da,{size:48,className:"text-[hsl(var(--primary))]"}):H(zo,{size:48,className:"text-destructive"}),H("span",{className:"text-sm text-muted-foreground","data-testid":"status-label",children:s==="scanned"?"QR code scanned! Connecting...":S||s==="expired"?"Connection timed out.":"Something went wrong. Try again."})]}),re=N.Modal??Be;return H(re,{open:e,onClose:n,closable:!0,title:l,className:u,children:se("div",{className:"p-6",children:[se("div",{className:"text-center mb-5",children:[H("div",{className:"flex justify-center mb-3",children:s==="pending"&&!S&&H(ua,{size:20,className:"animate-spin text-primary","data-testid":"loader-icon-inline"})}),H("h3",{className:"text-lg font-semibold m-0 text-foreground",children:l}),c&&H("p",{className:"text-sm text-muted-foreground mt-1.5 mb-0",children:c})]}),H("div",{className:"flex justify-center mb-4",children:ie}),s==="pending"&&!S&&se("div",{className:"mb-3",children:[H("div",{className:"h-1 bg-muted rounded-full overflow-hidden",role:"progressbar","aria-valuenow":Math.round((1-Z)*100),"aria-valuemin":0,"aria-valuemax":100,children:H("div",{className:"h-full bg-primary rounded-full transition-all duration-1000",style:{width:`${(1-Z)*100}%`}})}),se("p",{"data-testid":"countdown",className:"text-xs text-muted-foreground text-center mt-1.5 mb-0",children:["Expires in ",ae,":",q.toString().padStart(2,"0")]})]}),se("div",{className:"flex flex-col gap-2",children:[x&&t&&s==="pending"&&!S&&se("button",{onClick:He,className:"inline-flex items-center justify-center gap-2 w-full rounded-lg border border-input bg-card px-4 py-2.5 text-sm font-medium text-foreground hover:bg-accent hover:text-accent-foreground transition-all duration-200 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[H(ca,{size:16})," Open in Wallet App"]}),O&&r&&(m?se(m,{onClick:r,variant:"default",size:"default",className:"w-full",children:[H(Lo,{size:16})," Generate New QR Code"]}):se("button",{onClick:r,className:"inline-flex items-center justify-center gap-2 w-full rounded-lg bg-primary text-primary-foreground px-4 py-2.5 text-sm font-medium hover:bg-primary/90 transition-all duration-200 cursor-pointer border-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[H(Lo,{size:16})," Generate New QR Code"]})),m?H(m,{onClick:n,variant:"outline",size:"default",className:"w-full",children:"Cancel"}):H("button",{onClick:n,className:"inline-flex items-center justify-center w-full rounded-lg border border-input bg-transparent px-4 py-2.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all duration-200 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:"Cancel"})]})]})})}import{useState as tn}from"react";import{LogIn as pa,Loader2 as fa,CheckCircle2 as on,AlertCircle as ga,X as ha,Copy as ba,Check as ya}from"lucide-react";import{Fragment as Wo,jsx as k,jsxs as F}from"react/jsx-runtime";function rn({className:t,isSignedIn:e=!1,isSigningIn:n=!1,result:o=null,error:r=null,onSignIn:s,onClearError:a,children:i}){let[l,c]=tn(!1),[u,d]=tn(!1),[p,g]=tn(!1),b=B(),f=b.Button,h=b.Dialog,N=b.DialogContent,m=b.DialogHeader,x=b.DialogTitle,T=async()=>{if(o?.signature)try{await navigator.clipboard.writeText(o.signature),g(!1),d(!0),setTimeout(()=>d(!1),2e3)}catch{d(!1),g(!0)}};return!e&&!n&&!r?k(f,{onClick:s,className:t,"aria-label":"Sign In",children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(pa,{size:16}),i??"Sign In"]})}):n?k(f,{disabled:!0,className:t,"aria-label":"Signing In",children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(fa,{size:16,className:"animate-spin"}),"Signing In..."]})}):r&&!e?F("div",{style:{position:"relative",display:"inline-flex",flexDirection:"column"},children:[k(f,{onClick:s,className:t,"aria-label":"Retry Sign In",children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(ga,{size:16,style:{color:"var(--destructive, #ef4444)"}}),i??"Retry Sign In"]})}),k("div",{style:{fontSize:"0.75rem",color:"var(--destructive, #ef4444)",padding:"0.25rem 0.5rem",borderRadius:"0.375rem",background:"var(--destructive-foreground, #fef2f2)",marginTop:"2px",wordBreak:"break-word",maxWidth:"100%",lineHeight:1.4},children:r.message})]}):F("div",{style:{position:"relative",display:"inline-block"},children:[k(f,{onClick:()=>c(S=>!S),className:t,children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(on,{size:16,style:{color:"#22c55e"}}),k("span",{style:{fontSize:"0.875rem",fontWeight:500},children:"Signed In"})]})}),l&&(h&&N?k(h,{open:!0,onOpenChange:S=>{S||c(!1)},children:k(N,{children:m&&x?F(Wo,{children:[k(m,{children:k(x,{children:"Sign-In Details"})}),k(nn,{result:o,onClose:()=>c(!1),copiedSign:u,copyFailed:p,onCopy:T})]}):F(Wo,{children:[k("div",{style:{fontWeight:600,fontSize:"1.125rem",marginBottom:"0.75rem"},children:"Sign-In Details"}),k(nn,{result:o,onClose:()=>c(!1),copiedSign:u,copyFailed:p,onCopy:T})]})})}):l&&k("div",{style:{position:"absolute",top:"calc(100% + 8px)",right:0,zIndex:100,width:"340px",maxWidth:"90vw",background:"var(--card, #fff)",border:"1px solid var(--border, #e2e8f0)",borderRadius:"0.75rem",boxShadow:"0 10px 25px rgba(0,0,0,0.1)",padding:"1rem"},children:k(nn,{result:o,onClose:()=>c(!1),copiedSign:u,copyFailed:p,onCopy:T})}))]})}function nn({result:t,onClose:e,copiedSign:n,onCopy:o,copyFailed:r}){let a=B().Button;if(!t)return F("div",{style:{textAlign:"center",padding:"1rem 0"},children:[k(on,{size:32,style:{color:"#22c55e",margin:"0 auto 0.75rem"}}),k("p",{style:{fontSize:"0.875rem",color:"var(--muted-foreground, #64748b)"},children:"Authenticated successfully"}),k(a,{variant:"outline",size:"sm",onClick:e,children:"Close"})]});let{message:i,signature:l}=t,c=l.length>20?l.slice(0,14)+"..."+l.slice(-6):l;return F("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:[F("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[F("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[k(on,{size:18,color:"#22c55e"}),k("span",{style:{fontWeight:600,fontSize:"0.9375rem"},children:"Signed In"})]}),k(a,{variant:"ghost",size:"icon",onClick:e,children:k(ha,{size:16})})]}),F("div",{style:{display:"grid",gap:"0.375rem"},children:[F("div",{children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Domain"}),k("p",{style:{fontSize:"0.8125rem",fontFamily:"monospace",marginTop:"0.125rem"},children:i.domain})]}),F("div",{children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Address"}),k("p",{style:{fontSize:"0.8125rem",fontFamily:"monospace",marginTop:"0.125rem",wordBreak:"break-all"},children:i.address})]}),F("div",{children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Chain"}),k("p",{style:{fontSize:"0.8125rem",fontFamily:"monospace",marginTop:"0.125rem"},children:i.chainId})]})]}),i.statement&&k("div",{style:{padding:"0.5rem 0.625rem",borderRadius:"0.375rem",background:"var(--muted, #f1f5f9)",fontSize:"0.8125rem",lineHeight:1.5},children:i.statement}),F("div",{children:[F("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.25rem"},children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Signature"}),k(a,{variant:"ghost",size:"icon",onClick:o,title:r?"This browser refused the clipboard \u2014 select the signature and copy it":"Copy signature","aria-label":r?"Copy failed":"Copy signature",children:n?k(ya,{size:12,color:"#22c55e"}):k(ba,{size:12})})]}),k("p",{style:{fontSize:"0.75rem",fontFamily:"monospace",wordBreak:"break-all",lineHeight:1.4,color:"var(--muted-foreground, #64748b)",background:"var(--muted, #f1f5f9)",padding:"0.375rem 0.5rem",borderRadius:"0.375rem"},children:c})]}),k(a,{variant:"outline",className:"w-full",onClick:e,children:"Close"})]})}import{useState as ce,useCallback as Ne,useMemo as Vo}from"react";import{AlertTriangle as xa,Check as sn,Copy as va,Download as Ca,Eye as wa,EyeOff as Na,SkipForward as Ho,ArrowLeft as ka,ArrowRight as Ra,Shield as Sa,X as Ta}from"lucide-react";import{Fragment as ln,jsx as w,jsxs as A}from"react/jsx-runtime";function Pa(t){let e=Math.floor(4294967296/t)*t,n=new Uint32Array(1),o;do crypto.getRandomValues(n),o=n[0];while(o>=e);return o%t}function an(t){let e=[...t];for(let n=e.length-1;n>0;n--){let o=Pa(n+1);[e[n],e[o]]=[e[o],e[n]]}return e}function Uo(t,e=3){let n=t.trim().split(/\s+/);return an(n.map((r,s)=>s)).slice(0,Math.min(e,n.length)).map(r=>{let s=n[r],a=n.filter((c,u)=>u!==r),i=an(a).slice(0,3),l=an([s,...i]);return{index:r,correct:s,options:l}})}function Je({seedPhrase:t,onConfirm:e,onSkip:n,onExportPrivateKey:o,className:r,wordCount:s,inline:a=!1,open:i=!0,onOpenChange:l}){let c=B(),u=c.Button,d=c.Dialog,p=c.DialogContent,g=c.DialogHeader,b=c.DialogTitle,[f,h]=ce("reveal"),[N,m]=ce(!1),[x,T]=ce(!1),[S,O]=ce(!1),[D,ae]=ce(()=>Uo(t,3)),[q,Z]=ce({}),[He,ie]=ce([]),[_,re]=ce(!1),[j,Te]=ce(null),Ct=Vo(()=>t.trim().split(/\s+/),[t]),Sr=Vo(()=>{let L=new Map;return Ct.map(Q=>{let ee=L.get(Q)??0;return L.set(Q,ee+1),{word:Q,key:`${Q}-${ee}`}})},[Ct]),Hl=s??(Ct.length===24?24:12),Tr=Ne(()=>m(!0),[]),Pr=Ne(async()=>{try{await navigator.clipboard.writeText(t),O(!1),T(!0),setTimeout(()=>T(!1),2e3)}catch{T(!1),O(!0)}},[t]),Br=Ne(()=>{ae(Uo(t,3)),Z({}),ie([]),h("confirm")},[t]),Er=Ne((L,Q)=>{Z(ee=>({...ee,[L]:Q})),ie(ee=>ee.filter(wt=>wt!==L))},[]),Ar=Ne(()=>{let L=[];for(let Q of D)q[Q.index]!==Q.correct&&L.push(Q.index);if(L.length>0){ie(L);return}h("done"),e()},[D,q,e]),vn=Ne(()=>{n?.()},[n]),Dr=Ne(()=>{if(o){let L=o();Te(L),re(!0)}},[o]),Mr=D.every(L=>q[L.index]!==void 0),Ir=A("div",{className:"space-y-4",children:[w("div",{className:"rounded-lg border border-amber-200 bg-amber-50 dark:border-amber-800 dark:bg-amber-950/30 px-4 py-3",children:A("div",{className:"flex items-start gap-2",children:[w(xa,{size:16,className:"mt-0.5 shrink-0 text-amber-600 dark:text-amber-400"}),w("p",{className:"text-sm text-amber-800 dark:text-amber-200",children:"Write down these words in order and store them somewhere safe. Never share them with anyone. If you lose your seed phrase, your funds cannot be recovered."})]})}),N?A(ln,{children:[w("div",{className:"grid grid-cols-3 gap-2 sm:grid-cols-4",children:Sr.map(({word:L,key:Q},ee)=>A("div",{className:"flex items-center gap-1.5 rounded-md border bg-card px-2.5 py-1.5 text-sm",children:[w("span",{className:"text-xs text-muted-foreground w-5 shrink-0 text-right",children:ee+1}),w("span",{className:"font-mono font-medium",children:L})]},Q))}),A("div",{className:"flex flex-wrap gap-2",children:[A(u,{onClick:Pr,variant:"outline",size:"sm",children:[x?w(sn,{size:14}):w(va,{size:14}),x?"Copied":S?"Copy failed":"Copy"]}),o&&A(u,{onClick:Dr,variant:"outline",size:"sm",children:[w(Ca,{size:14}),"Export Private Key"]})]}),S&&w("p",{role:"alert",className:"rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive",children:"This browser would not let the page write to your clipboard. Nothing was copied \u2014 select the words above and copy them yourself, or write them down."}),_&&j&&A("div",{className:"rounded-lg border border-border bg-muted p-3 space-y-2",children:[A("div",{className:"flex items-center gap-2",children:[w(Na,{size:14,className:"text-muted-foreground"}),w("span",{className:"text-xs font-medium text-muted-foreground",children:"Private Key (keep secret!)"})]}),w("p",{className:"font-mono text-xs break-all select-all",children:j})]}),A("div",{className:"flex flex-col gap-2 sm:flex-row sm:justify-between",children:[A(u,{onClick:Br,variant:"default",children:["I've Saved It",w(Ra,{size:16})]}),n&&A(u,{onClick:vn,variant:"ghost",size:"sm",children:[w(Ho,{size:14}),"Skip Backup"]})]})]}):A("div",{className:"flex flex-col items-center gap-3 py-6",children:[w(Sa,{size:40,className:"text-muted-foreground"}),w("p",{className:"text-sm text-muted-foreground text-center",children:"Click the button below to reveal your seed phrase. Make sure no one is watching your screen."}),A(u,{onClick:Tr,variant:"default",children:[w(wa,{size:16}),"Reveal Seed Phrase"]})]})]}),Lr=A("div",{className:"space-y-4",children:[w("p",{className:"text-sm text-muted-foreground",children:"Verify your backup by selecting the correct word for each position."}),D.map(L=>{let Q=He.includes(L.index);return A("div",{className:"space-y-2",children:[A("p",{className:y("text-sm font-medium",Q?"text-destructive":"text-foreground"),children:["Word #",L.index+1,Q&&w("span",{className:"ml-2 text-xs text-destructive",children:"(incorrect)"})]}),w("div",{className:"grid grid-cols-2 gap-2",children:L.options.map(ee=>{let wt=q[L.index]===ee;return w("button",{type:"button",onClick:()=>Er(L.index,ee),className:y("rounded-md border px-3 py-2 text-sm font-mono transition-all duration-200 cursor-pointer text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",wt?"border-primary bg-primary/10 text-primary font-medium":Q?"border-destructive/50 bg-destructive/5":"border-border bg-card hover:border-primary/50"),children:ee},`${L.index}-${ee}`)})})]},L.index)}),A("div",{className:"flex flex-col gap-2 sm:flex-row sm:justify-between",children:[A(u,{onClick:Ar,variant:"default",disabled:!Mr,children:[w(sn,{size:16}),"Verify & Confirm"]}),A("div",{className:"flex gap-2",children:[A(u,{onClick:()=>h("reveal"),variant:"ghost",size:"sm",children:[w(ka,{size:14}),"Back"]}),n&&A(u,{onClick:vn,variant:"ghost",size:"sm",children:[w(Ho,{size:14}),"Skip"]})]})]})]}),zr={reveal:Ir,confirm:Lr,done:A("div",{className:"flex flex-col items-center gap-3 py-6 text-center",children:[w("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-green-100 dark:bg-green-900/30",children:w(sn,{size:24,className:"text-green-600 dark:text-green-400"})}),w("p",{className:"font-medium text-foreground",children:"Backup Confirmed"}),w("p",{className:"text-sm text-muted-foreground",children:"Your seed phrase has been backed up successfully."})]})},Wr={reveal:"Backup Seed Phrase",confirm:"Verify Backup",done:"Backup Complete"},ot=zr[f],rt=Wr[f];return a?A("div",{className:y("space-y-4",r),children:[f!=="done"&&w("h3",{className:"text-lg font-semibold",children:rt}),ot]}):i?d&&p?w(d,{open:!0,onOpenChange:L=>{L||l?.(!1)},children:w(p,{children:g&&b?A(ln,{children:[w(g,{children:w(b,{children:rt})}),w("div",{className:"mt-2 max-h-[55vh] overflow-y-auto",children:ot})]}):A(ln,{children:[w("div",{className:"mb-3 text-lg font-semibold",children:rt}),w("div",{className:"max-h-[55vh] overflow-y-auto",children:ot})]})})}):A(Be,{open:!0,onClose:()=>l?.(!1),children:[A("div",{className:"flex items-center justify-between mb-4",children:[w("h2",{className:"text-lg font-semibold m-0",children:rt}),l&&w("button",{onClick:()=>l(!1),type:"button",className:"rounded-md p-1 text-muted-foreground hover:text-foreground transition-all duration-200 cursor-pointer border-none bg-transparent","aria-label":"Close",children:w(Ta,{size:16})})]}),ot]}):null}import Ba from"react";import{Fragment as Oo,jsx as $,jsxs as ge}from"react/jsx-runtime";function Ea({error:t,reset:e,dismiss:n,retryLabel:o="Try Again"}){let r=B(),s=r.Button,a=r.Dialog,i=r.DialogContent,l=r.DialogHeader,c=r.DialogTitle;if(a&&i)return $(a,{open:!0,onOpenChange:()=>{},children:$(i,{children:l&&c?ge(Oo,{children:[$(l,{children:$(c,{children:"Something went wrong"})}),ge("div",{style:{marginTop:"0.5rem"},children:[$("p",{style:{color:"var(--muted-foreground, #666)",fontSize:"0.875rem",lineHeight:"1.5",margin:0},children:t.message||"An unexpected error occurred while connecting your wallet."}),ge("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem"},children:[n&&$(s,{variant:"outline",size:"default",onClick:n,children:"Dismiss"}),$(s,{variant:"default",size:"default",onClick:e,children:o})]})]})]}):ge(Oo,{children:[$("div",{style:{fontWeight:600,fontSize:"1.125rem",marginBottom:"0.75rem"},children:"Something went wrong"}),$("p",{style:{color:"var(--muted-foreground, #666)",fontSize:"0.875rem",lineHeight:"1.5",margin:0},children:t.message||"An unexpected error occurred while connecting your wallet."}),ge("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem"},children:[n&&$(s,{variant:"outline",size:"default",onClick:n,children:"Dismiss"}),$(s,{variant:"default",size:"default",onClick:e,children:o})]})]})})});let u=!0,d=n??void 0;return ge(Be,{open:u,onClose:d,children:[$(Bn,{title:"Something went wrong",onClose:d,showCloseButton:!!n}),ge(En,{children:[$("p",{style:{color:"var(--muted-foreground, #666)",fontSize:"0.875rem",lineHeight:"1.5",margin:0},children:t.message||"An unexpected error occurred while connecting your wallet."}),ge("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem"},children:[n&&$(s,{variant:"outline",size:"default",onClick:n,children:"Dismiss"}),$(s,{variant:"default",size:"default",onClick:e,children:o})]})]})]})}var Xe=class extends Ba.Component{constructor(e){super(e),this.state={hasError:!1,error:null,dismissed:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e,dismissed:!1}}componentDidCatch(e,n){this.props.onError?.(e,n)}handleReset=()=>{this.setState({hasError:!1,error:null,dismissed:!1}),this.props.onReset?.()};handleDismiss=()=>{this.setState(e=>({...e,dismissed:!0})),this.props.onDismiss?.()};render(){return this.state.dismissed?this.props.children:this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback({error:this.state.error,reset:this.handleReset}):$(Ea,{error:this.state.error,reset:this.handleReset,dismiss:this.props.onDismiss?this.handleDismiss:void 0,retryLabel:this.props.retryLabel}):this.props.children}};import{createContext as Ua,useContext as Oa,useMemo as _a}from"react";import{Web3ConnectProvider as Fa}from"@naculus/connect-appkit-react";import{createContext as Da,useContext as Ma,useMemo as yt,useEffect as xt,useCallback as Ia,useState as vt}from"react";var Le={primary:{name:"--primary",fallback:"221.2 83.2% 53.3%"},"primary-foreground":{name:"--primary-foreground",fallback:"210 40% 98%"},background:{name:"--background",fallback:"0 0% 100%"},foreground:{name:"--foreground",fallback:"222.2 84% 4.9%"},card:{name:"--card",fallback:"0 0% 100%"},"card-foreground":{name:"--card-foreground",fallback:"222.2 84% 4.9%"},popover:{name:"--popover",fallback:"0 0% 100%"},"popover-foreground":{name:"--popover-foreground",fallback:"222.2 84% 4.9%"},secondary:{name:"--secondary",fallback:"210 40% 96.1%"},"secondary-foreground":{name:"--secondary-foreground",fallback:"222.2 47.4% 11.2%"},muted:{name:"--muted",fallback:"210 40% 96.1%"},"muted-foreground":{name:"--muted-foreground",fallback:"215.4 16.3% 46.9%"},accent:{name:"--accent",fallback:"210 40% 96.1%"},"accent-foreground":{name:"--accent-foreground",fallback:"222.2 47.4% 11.2%"},destructive:{name:"--destructive",fallback:"0 84.2% 60.2%"},border:{name:"--border",fallback:"214.3 31.8% 91.4%"},input:{name:"--input",fallback:"214.3 31.8% 91.4%"},ring:{name:"--ring",fallback:"221.2 83.2% 53.3%"},radius:{name:"--radius",fallback:"0.5rem"}},Aa=new Map;function cn(){Aa.clear()}import{jsx as Va,jsxs as Ha}from"react/jsx-runtime";var _o=Da({theme:{},isDark:!1,setTheme:()=>{},toggleDarkMode:()=>{}});function La(t){let e=[];for(let[n,o]of Object.entries(t)){let r=Le[n];r&&o&&e.push(" "+r.name+": "+o+";")}return e.length===0?"":`:root {
|
|
7
|
+
`);let a=Zs(e,n,r),i=ht.getSymbolSize(e),l=new _s(i);return $s(l,e),Gs(l),Ys(l,e),Qt(l,n,0),e>=7&&Js(l,e),Xs(l,a),isNaN(o)&&(o=$t.getBestMask(l,Qt.bind(null,l,n))),$t.applyMask(o,l),Qt(l,n,o),{modules:l,version:e,errorCorrectionLevel:n,maskPattern:o,segments:r}}No.create=function(e,n){if(typeof e>"u"||e==="")throw new Error("No input text");let o=qt.M,r,s;return typeof n<"u"&&(o=qt.from(n.errorCorrectionLevel,qt.M),r=gt.from(n.version),s=$t.from(n.maskPattern),n.toSJISFunc&&ht.setToSJISFunction(n.toSJISFunc)),ta(e,r,o,s)}});var Yt=E(we=>{"use strict";function Ro(t){if(typeof t=="number"&&(t=t.toString()),typeof t!="string")throw new Error("Color should be defined as hex string");let e=t.slice().replace("#","").split("");if(e.length<3||e.length===5||e.length>8)throw new Error("Invalid hex color: "+t);(e.length===3||e.length===4)&&(e=Array.prototype.concat.apply([],e.map(function(o){return[o,o]}))),e.length===6&&e.push("F","F");let n=parseInt(e.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:"#"+e.slice(0,6).join("")}}we.getOptions=function(e){e||(e={}),e.color||(e.color={});let n=typeof e.margin>"u"||e.margin===null||e.margin<0?4:e.margin,o=e.width&&e.width>=21?e.width:void 0,r=e.scale||4;return{width:o,scale:o?4:r,margin:n,color:{dark:Ro(e.color.dark||"#000000ff"),light:Ro(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}};we.getScale=function(e,n){return n.width&&n.width>=e+n.margin*2?n.width/(e+n.margin*2):n.scale};we.getImageWidth=function(e,n){let o=we.getScale(e,n);return Math.floor((e+n.margin*2)*o)};we.qrToImageData=function(e,n,o){let r=n.modules.size,s=n.modules.data,a=we.getScale(r,o),i=Math.floor((r+o.margin*2)*a),l=o.margin*a,c=[o.color.light,o.color.dark];for(let u=0;u<i;u++)for(let d=0;d<i;d++){let m=(u*i+d)*4,g=o.color.light;if(u>=l&&d>=l&&u<i-l&&d<i-l){let b=Math.floor((u-l)/a),f=Math.floor((d-l)/a);g=c[s[b*r+f]?1:0]}e[m++]=g.r,e[m++]=g.g,e[m++]=g.b,e[m]=g.a}}});var So=E(bt=>{"use strict";var Jt=Yt();function na(t,e,n){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=n,e.width=n,e.style.height=n+"px",e.style.width=n+"px"}function oa(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}bt.render=function(e,n,o){let r=o,s=n;typeof r>"u"&&(!n||!n.getContext)&&(r=n,n=void 0),n||(s=oa()),r=Jt.getOptions(r);let a=Jt.getImageWidth(e.modules.size,r),i=s.getContext("2d"),l=i.createImageData(a,a);return Jt.qrToImageData(l.data,e,r),na(i,s,a),i.putImageData(l,0,0),s};bt.renderToDataURL=function(e,n,o){let r=o;typeof r>"u"&&(!n||!n.getContext)&&(r=n,n=void 0),r||(r={});let s=bt.render(e,n,r),a=r.type||"image/png",i=r.rendererOpts||{};return s.toDataURL(a,i.quality)}});var Bo=E(Po=>{"use strict";var ra=Yt();function To(t,e){let n=t.a/255,o=e+'="'+t.hex+'"';return n<1?o+" "+e+'-opacity="'+n.toFixed(2).slice(1)+'"':o}function Xt(t,e,n){let o=t+e;return typeof n<"u"&&(o+=" "+n),o}function sa(t,e,n){let o="",r=0,s=!1,a=0;for(let i=0;i<t.length;i++){let l=Math.floor(i%e),c=Math.floor(i/e);!l&&!s&&(s=!0),t[i]?(a++,i>0&&l>0&&t[i-1]||(o+=s?Xt("M",l+n,.5+c+n):Xt("m",r,0),r=0,s=!1),l+1<e&&t[i+1]||(o+=Xt("h",a),a=0)):r++}return o}Po.render=function(e,n,o){let r=ra.getOptions(n),s=e.modules.size,a=e.modules.data,i=s+r.margin*2,l=r.color.light.a?"<path "+To(r.color.light,"fill")+' d="M0 0h'+i+"v"+i+'H0z"/>':"",c="<path "+To(r.color.dark,"stroke")+' d="'+sa(a,s,r.margin)+'"/>',u='viewBox="0 0 '+i+" "+i+'"',m='<svg xmlns="http://www.w3.org/2000/svg" '+(r.width?'width="'+r.width+'" height="'+r.width+'" ':"")+u+' shape-rendering="crispEdges">'+l+c+`</svg>
|
|
8
|
+
`;return typeof o=="function"&&o(null,m),m}});var Ao=E(Ge=>{"use strict";var aa=Dn(),Zt=ko(),Eo=So(),ia=Bo();function en(t,e,n,o,r){let s=[].slice.call(arguments,1),a=s.length,i=typeof s[a-1]=="function";if(!i&&!aa())throw new Error("Callback required as last argument");if(i){if(a<2)throw new Error("Too few arguments provided");a===2?(r=n,n=e,e=o=void 0):a===3&&(e.getContext&&typeof r>"u"?(r=o,o=void 0):(r=o,o=n,n=e,e=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(n=e,e=o=void 0):a===2&&!e.getContext&&(o=n,n=e,e=void 0),new Promise(function(l,c){try{let u=Zt.create(n,o);l(t(u,e,o))}catch(u){c(u)}})}try{let l=Zt.create(n,o);r(null,t(l,e,o))}catch(l){r(l)}}Ge.create=Zt.create;Ge.toCanvas=en.bind(null,Eo.render);Ge.toDataURL=en.bind(null,Eo.renderToDataURL);Ge.toString=en.bind(null,function(t,e,n){return ia.render(t,n)})});import{useState as Pt,useEffect as es,useCallback as Rn,useRef as ts}from"react";import{AppkitConnectButton as ns}from"@naculus/connect-appkit-react";import{createContext as qr,useContext as Nn,useState as st,useCallback as Nt,useEffect as jr,useMemo as wn,useRef as kt}from"react";import{useWeb3 as Qr}from"@naculus/connect-appkit-react";import{jsx as Gr}from"react/jsx-runtime";var Rt=qr(null);function St({children:t}){let e=Qr(),[n,o]=st(null),[r,s]=st(!1),[a,i]=st("idle"),[l,c]=st(null),u=kt(0),d=kt(null);jr(()=>()=>{d.current&&clearTimeout(d.current)},[]);let m=Nt(()=>{u.current+=1,e.cancelPairing?.(),d.current&&(clearTimeout(d.current),d.current=null),o(null),s(!1),i("cancelled"),c(null)},[e]),g=kt(void 0);g.current=async()=>{if(!e.startPairing||!e.completePairing){c("WalletConnect pairing not available"),i("error");return}let p=++u.current,x=()=>u.current===p;i("loading"),c(null),s(!0);try{let T=await e.startPairing();if(!x())return;o(T),i("ready");try{if(await e.completePairing(),!x())return;d.current=setTimeout(()=>{d.current=null,x()&&(s(!1),o(null),i("idle"))},1e3)}catch(S){if(!x())return;i("error"),c(S instanceof Error?S.message:"Connection failed")}}catch(T){if(!x())return;i("error"),c(T instanceof Error?T.message:"Failed to generate QR code")}};let b=Nt(async()=>{await g.current?.()},[]),f=Nt(()=>{o(null),c(null),i("loading"),g.current?.()},[]),h=wn(()=>({qrUri:n,showQR:r,qrStatus:a,error:l}),[n,r,a,l]),N=wn(()=>({state:h,connectWalletConnect:b,cancelQR:m,retryQR:f}),[h,b,m,f]);return Gr(Rt.Provider,{value:N,children:t})}function $r(){let t=Nn(Rt);if(!t)throw new Error("useWalletConnect must be used within a WalletConnectProvider");return t}function Tt(){return Nn(Rt)}import{useState as kn,useEffect as Yr,useRef as Jr}from"react";function Ue(){let[t,e]=kn([]),[n,o]=kn(!0),r=Jr(new Set);return Yr(()=>{r.current.clear(),o(!0);let s=c=>{let u=c.detail,d=u?.info,m=u?.provider;!d?.rdns||r.current.has(d.rdns)||(r.current.add(d.rdns),e(g=>g.find(b=>b.id===d.rdns)?g:[...g,{id:d.rdns,name:d.name||d.rdns,icon:d.icon||"",rdns:d.rdns,provider:m}]))};window.addEventListener("eip6963:announceProvider",s);let a=window,i=(c,u,d)=>{r.current.has(c)||(r.current.add(c),e(m=>m.some(g=>g.id===c)?m:[...m,{id:c,name:u,icon:"",rdns:c,provider:d}]))};a.ethereum?.isMetaMask&&i("io.metamask","MetaMask",a.ethereum),a.phantom?i("app.phantom","Phantom",a.phantom):a.solana?.isPhantom&&i("app.phantom","Phantom",a.solana),window.dispatchEvent(new Event("eip6963:requestProvider"));let l=setTimeout(()=>o(!1),500);return()=>{window.removeEventListener("eip6963:announceProvider",s),clearTimeout(l)}},[]),{wallets:t,isDetecting:n,hasWallets:t.length>0}}import{useState as Xr,useEffect as Zr}from"react";function Oe(){let[t,e]=Xr(!1);return Zr(()=>{if(typeof navigator>"u"||typeof window>"u")return;let n=navigator.userAgent.toLowerCase();e(/(iphone|ipad|ipod|android|mobile)/i.test(n))},[]),t}import{jsx as Sn}from"react/jsx-runtime";function ye({className:t,isConnected:e,isConnecting:n,onConnect:o,onDisconnect:r,onMobileDeepLink:s,mobileWalletName:a,startPairing:i,completePairing:l,address:c,balance:u,balanceSymbol:d,tokenBalances:m,isBalanceLoading:g,explorerUrl:b,explorerLabel:f}){let h=Tt(),{wallets:N}=Ue(),p=Oe(),x=JSON.stringify(N.map(({id:_,name:re,icon:j,rdns:Te})=>({id:_,name:re,icon:j,rdns:Te}))),[T,S]=Pt(null),[O,D]=Pt(!1),[ae,q]=Pt(null),Z=ts({aborted:!1}),He=Rn(()=>{Z.current.aborted=!0,h?.cancelQR(),D(!1),S(null),q(null)},[h]);es(()=>{if(!h)return;let{qrStatus:_,qrUri:re,error:j}=h.state;_==="loading"?(D(!0),S(null),q(null)):_==="ready"&&re?(D(!1),S(re),q(null)):_==="error"?(D(!1),q(j)):(_==="idle"||_==="cancelled")&&(D(!1),S(null),q(null))},[h?.state?.qrStatus,h?.state?.qrUri,h?.state?.error]);let ie=Rn((_,re)=>{if(_==="walletconnect"){if(h){h.connectWalletConnect();return}if(i&&l){D(!0),q(null),Z.current.aborted=!1,i().then(j=>{Z.current.aborted||(S(j),D(!1),l().then(()=>{Z.current.aborted||S(null)}).catch(Te=>{Z.current.aborted||q(Te instanceof Error?Te.message:"Connection failed")}))}).catch(j=>{Z.current.aborted||(D(!1),q(j instanceof Error?j.message:"Connection failed"))});return}}o?.(_,()=>{},re)},[h,i,l,o]);return Sn("div",{className:t,children:Sn(ns,{connected:e??!1,connecting:n??!1,address:c??"",balance:u??null,balanceSymbol:d??"",isBalanceLoading:g??!1,tokenBalancesJson:JSON.stringify(m??[]),explorerUrl:b??"",explorerLabel:f??"",walletsJson:x,isMobile:p,mobileWalletName:a??"",qrUri:T,qrLoading:O,qrError:ae,onAppkitConnect:_=>{ie(_.detail.kind,_.detail.walletId)},onAppkitDisconnect:()=>r?.(),onAppkitStartPairing:()=>ie("walletconnect"),onAppkitRetry:()=>{Z.current.aborted=!0,q(null),S(null),ie("walletconnect")},onAppkitCancelPairing:He,onAppkitMobileDeepLink:()=>s?.(),onAppkitCopyAddress:_=>{navigator.clipboard?.writeText(_.detail).catch(()=>{})}})})}import{logger as Ja}from"@naculus/connect-core";import{useState as Xa,useRef as Za,useEffect as ei}from"react";import{useChain as ti,useWallet as ni}from"@naculus/connect-appkit-react";import{clsx as os}from"clsx";import{twMerge as rs}from"tailwind-merge";function y(...t){return rs(os(t))}var Tn='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 0l-.26.97v28.15l.26.26 13.07-7.72L12 0z" fill="#8C8C8C"/><path d="M12 0L-.87 21.69l12.87 7.72V0z" fill="#3C3C3B"/><path d="M12 31.88l-.16.2v10.55l.16.47 13.08-18.42L12 31.88z" fill="#8C8C8C"/><path d="M12 42.9V31.88L-.87 24.68 12 42.9z" fill="#3C3C3B"/><path d="M12 28.41l13.07-7.72L12 14.09v14.32z" fill="#141414"/><path d="M-.87 20.69L12 28.41V14.09l-12.87 6.6z" fill="#393939"/></svg>',ss='<svg viewBox="0 0 24 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15 12.3l-3.7 2.2-3.8-2.2V7.9L11.3 5.7 15 7.9v2.7l-2.2 1.3-1.5-.9v-2l1.5.9 2.2-1.3V7.9L11.3 4 6 7.9v6.3l5.3 3.1 5.3-3.1-1.6-2.8z" fill="#6C00F6"/></svg>',as='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#F0B90B"/><path d="M12 4l2.7 1.6L14.7 7 12 5.4 9.3 7l-.7-.4L12 4zm4.7 2.7l-2.7 1.6V10l4 2.3v4.7L16 18.7v-4l-1.3-.7v4L12 20l-2.7-1.6v-4L8 14.7v4l-1.3-.7V12.3l4-2.3V8.3l-2.7-1.6.7-.4L12 8l2.7-1.7.7.4z" fill="white"/></svg>',is='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 1.5c.3 0 .6.1.8.2l8.8 5.1c.5.3.9.9.9 1.5v10.2c0 .6-.3 1.2-.9 1.5l-8.8 5.1c-.3.2-.6.2-.8.2s-.6-.1-.8-.2l-8.8-5.1c-.5-.3-.9-.9-.9-1.5V8.3c0-.6.3-1.2.9-1.5l8.8-5.1c.3-.2.6-.2.8-.2z" fill="#213147"/><path d="M14.7 13.8l-1.2 3.2c0 .1 0 .2.1.3l2 5.5 2.3-1.3-2.8-7.6c-.1-.2-.3-.2-.4-.1z" fill="#12AAFF"/><path d="M16.3 8.5c0-.2-.3-.2-.4 0l-1.1 3.2c0 .1 0 .2.1.3l3.3 9 2.3-1.3-4.2-9.1v-.1z" fill="#12AAFF"/><path d="M12 3.5c.1 0 .2 0 .3.1l8.8 5.1c.1.1.2.2.2.3v10.2c0 .1-.1.2-.2.3l-8.8 5.1c-.1 0-.2.1-.3.1s-.2 0-.3-.1l-8.8-5.1c-.1-.1-.2-.2-.2-.3V9c0-.1.1-.2.2-.3l8.8-5.1c.1 0 .2-.1.3-.1z" fill="#9DCCED" fill-opacity="0.3"/><path d="M13.3 6.2h-2.2c-.2 0-.3.1-.4.3L5.9 19.6l2.3 1.3L13 6.5c0-.1-.1-.3-.2-.3h.4z" fill="white"/><path d="M15.2 6.2H13c-.2 0-.3.1-.4.3L8.1 21.4l2.3 1.3 6-16.4c0-.1-.1-.3-.2-.3v.2z" fill="white"/></svg>',ls='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#FF0420"/><path d="M8.5 16c-.5 0-.9-.1-1.3-.3-.4-.2-.7-.5-1-.8-.3-.4-.4-.8-.4-1.3V10c0-.5.1-1 .4-1.4.3-.4.6-.7 1-.9.4-.2.8-.3 1.3-.3.4 0 .8.1 1.2.2.3.2.6.4.8.7l-1 1c-.2-.2-.4-.3-.6-.4-.2-.1-.5-.2-.8-.2-.3 0-.6.1-.9.2-.3.2-.5.4-.6.7-.1.3-.2.6-.2 1v3.5c0 .3.1.6.2.9.1.3.3.5.6.6.3.2.6.2.9.2.3 0 .6-.1.8-.2.2-.1.4-.3.6-.5l1 1c-.2.3-.5.5-.8.7-.4.2-.9.3-1.4.3z" fill="white"/><path d="M15.5 16c-.5 0-.9-.1-1.3-.3-.4-.2-.7-.5-1-.8-.2-.4-.4-.8-.4-1.3V10c0-.5.1-1 .4-1.4.2-.4.5-.7.9-.9.4-.2.8-.3 1.3-.3.5 0 1 .1 1.4.3.4.2.7.5.9.9.2.4.3.9.3 1.4v.7h-2.9v-1.1c0-.3-.1-.6-.2-.9-.1-.3-.3-.5-.5-.6-.2-.1-.5-.2-.8-.2-.3 0-.6.1-.8.2-.3.2-.5.4-.6.7-.1.3-.2.6-.2 1v3.5c0 .3.1.6.2.8.1.3.3.5.6.6.2.2.5.2.8.2.3 0 .6-.1.8-.2.2-.1.4-.3.5-.6.1-.3.2-.6.2-1v-1.1h2.9v.7c0 .5-.1 1-.3 1.4-.2.4-.5.7-.9.9-.4.2-.9.3-1.4.3z" fill="white"/></svg>',cs='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#E84142"/><path d="M8.6 16.8H6.3c-.5 0-.8-.1-1-.3-.2-.2-.3-.5-.3-.8 0-.2 0-.4.1-.6l5.8-10.7c.2-.4.5-.7.8-.8.3-.1.5-.1.7 0 .2.1.5.3.7.8l1.2 2.1.1.2c.3.5.5.9.5 1.3.1.4.1.8 0 1.1-.1.4-.3.8-.6 1.3l-3 5.4c-.2.5-.5.8-.8 1-.4.2-.7.2-1.2.2z" fill="white"/><path d="M14.5 16.8h3.3c.5 0 .7-.1 1-.3.2-.2.3-.5.3-.8 0-.2-.1-.4-.3-.7l-1.7-3-.2-.3c-.2-.4-.4-.7-.6-.8-.2-.1-.4-.1-.6 0-.2.1-.4.3-.6.8l-1.6 3c-.2.4-.4.7-.4.9 0 .2.1.5.3.7.1.1.4.3.9.3z" fill="white"/></svg>',ds='<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#1969FF"/><path d="M11.3 3.8c.4-.2 1-.2 1.4 0l4.1 2.2c.2.1.4.3.4.5h0v10.9c0 .2-.1.4-.4.6l-4.1 2.2c-.4.2-1 .2-1.4 0l-4.1-2.2c-.3-.1-.4-.4-.4-.6V6.5c0-.2.1-.4.4-.5l4.1-2.2zm5.3 8.7l-3.9 2c-.4.2-1 .2-1.4 0l-3.9-2v4.8l3.9 2c.2.1.5.2.7.2.2 0 .5-.1.7-.2l3.9-2v-4.8z" fill="white"/></svg>',us={"eip155:1":Tn,"eip155:137":ss,"eip155:56":as,"eip155:42161":is,"eip155:10":ls,"eip155:43114":cs,"eip155:250":ds,"eip155:11155111":Tn};function at(t){return us[t]}import{createContext as qa,useContext as ja,useMemo as Qa}from"react";import{Wallet as ms}from"lucide-react";import{jsx as Pe,jsxs as Bt}from"react/jsx-runtime";function ps({children:t}){return Pe("div",{className:"flex h-8 w-8 items-center justify-center rounded-full bg-primary text-primary-foreground",children:t})}function Et({className:t,showAddress:e=!0,showBalance:n=!1,address:o,balance:r,balanceSymbol:s,onConnect:a}){let l=B().Button;if(!o)return Bt(l,{"aria-label":"Connect Wallet",onClick:a,className:t,children:[Pe(ms,{size:18,className:"shrink-0"}),"Connect Wallet"]});let c=o.includes(":")?o.split(":").pop():o,u=c.slice(0,6)+"..."+c.slice(-4),d=r!=null?parseFloat(r).toLocaleString(void 0,{maximumFractionDigits:4})+(s?` ${s}`:""):null;return Bt(l,{className:t,children:[Pe(ps,{children:"W"}),Bt("div",{className:"flex flex-col items-start gap-0",children:[e&&Pe("span",{className:"font-mono text-xs",children:u}),n&&d&&Pe("span",{className:"text-xs text-muted-foreground",children:d}),n&&!d&&r===null&&Pe("span",{className:"text-xs text-muted-foreground",children:"Loading..."})]})]})}import{useRef as Do,useEffect as Mo,useState as Io,useCallback as la}from"react";import{Smartphone as ca,RefreshCw as Lo,CheckCircle2 as da,AlertCircle as zo,Loader2 as ua}from"lucide-react";import{useEffect as Pn}from"react";import{X as fs}from"lucide-react";import{jsx as de,jsxs as At}from"react/jsx-runtime";function Be({open:t,onClose:e,children:n,closable:o,className:r}){return Pn(()=>{if(!t)return;let s=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=s}},[t]),Pn(()=>{if(!t||!e)return;let s=a=>{a.key==="Escape"&&e()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t,e]),t?At("div",{className:y("fixed inset-0 z-50 flex items-center justify-center p-4",r),style:{position:"fixed",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",padding:"1rem"},children:[de("div",{className:"absolute inset-0 bg-black/80","aria-hidden":"true",onClick:e,style:{position:"absolute",inset:0,background:"rgb(0 0 0 / 0.8)"}}),At("div",{role:"dialog","aria-modal":"true",className:"relative z-10 w-full max-w-sm rounded-xl border bg-card text-card-foreground shadow-2xl max-h-[85vh] overflow-y-auto p-6",style:{position:"relative",zIndex:10,width:"100%",maxWidth:"24rem",maxHeight:"85vh",overflowY:"auto",borderRadius:"0.75rem",padding:"1.5rem",background:"hsl(var(--card, 0 0% 100%))",color:"hsl(var(--card-foreground, 222.2 84% 4.9%))",boxShadow:"0 25px 50px -12px rgb(0 0 0 / 0.4)"},children:[o&&e&&de("button",{onClick:e,type:"button","aria-label":"Close modal",className:"absolute right-4 top-4 z-20 rounded-md p-1 text-muted-foreground hover:text-foreground",style:{position:"absolute",right:"1rem",top:"1rem",zIndex:20,border:0,background:"transparent",cursor:"pointer",color:"inherit"},children:de("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:de("path",{d:"M18 6 6 18M6 6l12 12","data-testid":"x-icon"})})}),n]})]}):null}function Bn({title:t,onClose:e,showCloseButton:n=!0}){return At("div",{className:"flex items-center justify-between mb-4",children:[de("h2",{className:"text-lg font-semibold m-0",children:t}),n&&e&&de("button",{onClick:e,type:"button",className:"rounded-md p-1 text-muted-foreground hover:text-foreground transition-all duration-200","aria-label":"Close",children:de(fs,{size:16})})]})}function En({children:t,className:e=""}){return de("div",{className:y("flex flex-col gap-4",e),children:t})}import{jsx as H,jsxs as se}from"react/jsx-runtime";async function ma(t,e){let n=await Promise.resolve().then(()=>Kr(Ao(),1)),r=(n.default??n).toCanvas??n.toCanvas;if(typeof r!="function")throw new Error("qrcode.toCanvas is unavailable");return new Promise((s,a)=>{r(t,e,{width:280,margin:2},i=>{i?a(i):s()})})}function Ye({uri:t,open:e,onClose:n,onDeepLink:o,onRetry:r,status:s="pending",showDeepLink:a,timeoutMs:i=300*1e3,title:l="Scan with WalletConnect",description:c="Open your wallet app and scan this QR code to connect.",className:u}){let d=Do(null),[m,g]=Io(null),[b,f]=Io(0),h=Oe(),N=B(),p=N.Button,x=a??h,T=Do(null);Mo(()=>{!e||!t||!d.current||(g(null),ma(d.current,t).catch(j=>{g(j instanceof Error?j.message:"Unable to render QR code")}))},[e,t]),Mo(()=>{if(!e||s!=="pending"){T.current&&(clearInterval(T.current),T.current=null),f(0);return}let j=Date.now();return T.current=setInterval(()=>f(Date.now()-j),1e3),()=>{T.current&&clearInterval(T.current)}},[e,s,i]);let S=b>=i&&s==="pending",O=S||s==="expired"||s==="error",D=Math.max(0,Math.ceil((i-b)/1e3)),ae=Math.floor(D/60),q=D%60,Z=Math.min(b/i,1),He=la(()=>{t&&o&&o(t)},[t,o]),ie=t&&!S&&s==="pending"?m?se("div",{className:"w-[280px] h-[280px] flex flex-col items-center justify-center bg-muted rounded-lg gap-2",children:[H(zo,{size:24,className:"text-muted-foreground"}),H("span",{className:"text-sm text-muted-foreground",children:"Failed to render QR code"})]}):H("canvas",{ref:d,width:280,height:280,role:"img","aria-label":"WalletConnect pairing QR code",className:"rounded-lg border border-border"}):se("div",{className:"flex flex-col items-center justify-center gap-3 bg-muted rounded-lg w-[280px] h-[280px]",children:[s==="scanned"?H(da,{size:48,className:"text-[hsl(var(--primary))]"}):H(zo,{size:48,className:"text-destructive"}),H("span",{className:"text-sm text-muted-foreground","data-testid":"status-label",children:s==="scanned"?"QR code scanned! Connecting...":S||s==="expired"?"Connection timed out.":"Something went wrong. Try again."})]}),re=N.Modal??Be;return H(re,{open:e,onClose:n,closable:!0,title:l,className:u,children:se("div",{className:"p-6",children:[se("div",{className:"text-center mb-5",children:[H("div",{className:"flex justify-center mb-3",children:s==="pending"&&!S&&H(ua,{size:20,className:"animate-spin text-primary","data-testid":"loader-icon-inline"})}),H("h3",{className:"text-lg font-semibold m-0 text-foreground",children:l}),c&&H("p",{className:"text-sm text-muted-foreground mt-1.5 mb-0",children:c})]}),H("div",{className:"flex justify-center mb-4",children:ie}),s==="pending"&&!S&&se("div",{className:"mb-3",children:[H("div",{className:"h-1 bg-muted rounded-full overflow-hidden",role:"progressbar","aria-valuenow":Math.round((1-Z)*100),"aria-valuemin":0,"aria-valuemax":100,children:H("div",{className:"h-full bg-primary rounded-full transition-all duration-1000",style:{width:`${(1-Z)*100}%`}})}),se("p",{"data-testid":"countdown",className:"text-xs text-muted-foreground text-center mt-1.5 mb-0",children:["Expires in ",ae,":",q.toString().padStart(2,"0")]})]}),se("div",{className:"flex flex-col gap-2",children:[x&&t&&s==="pending"&&!S&&se("button",{onClick:He,className:"inline-flex items-center justify-center gap-2 w-full rounded-lg border border-input bg-card px-4 py-2.5 text-sm font-medium text-foreground hover:bg-accent hover:text-accent-foreground transition-all duration-200 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[H(ca,{size:16})," Open in Wallet App"]}),O&&r&&(p?se(p,{onClick:r,variant:"default",size:"default",className:"w-full",children:[H(Lo,{size:16})," Generate New QR Code"]}):se("button",{onClick:r,className:"inline-flex items-center justify-center gap-2 w-full rounded-lg bg-primary text-primary-foreground px-4 py-2.5 text-sm font-medium hover:bg-primary/90 transition-all duration-200 cursor-pointer border-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[H(Lo,{size:16})," Generate New QR Code"]})),p?H(p,{onClick:n,variant:"outline",size:"default",className:"w-full",children:"Cancel"}):H("button",{onClick:n,className:"inline-flex items-center justify-center w-full rounded-lg border border-input bg-transparent px-4 py-2.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-all duration-200 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:"Cancel"})]})]})})}import{useState as tn}from"react";import{LogIn as pa,Loader2 as fa,CheckCircle2 as on,AlertCircle as ga,X as ha,Copy as ba,Check as ya}from"lucide-react";import{Fragment as Wo,jsx as k,jsxs as F}from"react/jsx-runtime";function rn({className:t,isSignedIn:e=!1,isSigningIn:n=!1,result:o=null,error:r=null,onSignIn:s,onClearError:a,children:i}){let[l,c]=tn(!1),[u,d]=tn(!1),[m,g]=tn(!1),b=B(),f=b.Button,h=b.Dialog,N=b.DialogContent,p=b.DialogHeader,x=b.DialogTitle,T=async()=>{if(o?.signature)try{await navigator.clipboard.writeText(o.signature),g(!1),d(!0),setTimeout(()=>d(!1),2e3)}catch{d(!1),g(!0)}};return!e&&!n&&!r?k(f,{onClick:s,className:t,"aria-label":"Sign In",children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(pa,{size:16}),i??"Sign In"]})}):n?k(f,{disabled:!0,className:t,"aria-label":"Signing In",children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(fa,{size:16,className:"animate-spin"}),"Signing In..."]})}):r&&!e?F("div",{style:{position:"relative",display:"inline-flex",flexDirection:"column"},children:[k(f,{onClick:s,className:t,"aria-label":"Retry Sign In",children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(ga,{size:16,style:{color:"var(--destructive, #ef4444)"}}),i??"Retry Sign In"]})}),k("div",{style:{fontSize:"0.75rem",color:"var(--destructive, #ef4444)",padding:"0.25rem 0.5rem",borderRadius:"0.375rem",background:"var(--destructive-foreground, #fef2f2)",marginTop:"2px",wordBreak:"break-word",maxWidth:"100%",lineHeight:1.4},children:r.message})]}):F("div",{style:{position:"relative",display:"inline-block"},children:[k(f,{onClick:()=>c(S=>!S),className:t,children:F("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.5rem"},children:[k(on,{size:16,style:{color:"#22c55e"}}),k("span",{style:{fontSize:"0.875rem",fontWeight:500},children:"Signed In"})]})}),l&&(h&&N?k(h,{open:!0,onOpenChange:S=>{S||c(!1)},children:k(N,{children:p&&x?F(Wo,{children:[k(p,{children:k(x,{children:"Sign-In Details"})}),k(nn,{result:o,onClose:()=>c(!1),copiedSign:u,copyFailed:m,onCopy:T})]}):F(Wo,{children:[k("div",{style:{fontWeight:600,fontSize:"1.125rem",marginBottom:"0.75rem"},children:"Sign-In Details"}),k(nn,{result:o,onClose:()=>c(!1),copiedSign:u,copyFailed:m,onCopy:T})]})})}):l&&k("div",{style:{position:"absolute",top:"calc(100% + 8px)",right:0,zIndex:100,width:"340px",maxWidth:"90vw",background:"var(--card, #fff)",border:"1px solid var(--border, #e2e8f0)",borderRadius:"0.75rem",boxShadow:"0 10px 25px rgba(0,0,0,0.1)",padding:"1rem"},children:k(nn,{result:o,onClose:()=>c(!1),copiedSign:u,copyFailed:m,onCopy:T})}))]})}function nn({result:t,onClose:e,copiedSign:n,onCopy:o,copyFailed:r}){let a=B().Button;if(!t)return F("div",{style:{textAlign:"center",padding:"1rem 0"},children:[k(on,{size:32,style:{color:"#22c55e",margin:"0 auto 0.75rem"}}),k("p",{style:{fontSize:"0.875rem",color:"var(--muted-foreground, #64748b)"},children:"Authenticated successfully"}),k(a,{variant:"outline",size:"sm",onClick:e,children:"Close"})]});let{message:i,signature:l}=t,c=l.length>20?l.slice(0,14)+"..."+l.slice(-6):l;return F("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:[F("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[F("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[k(on,{size:18,color:"#22c55e"}),k("span",{style:{fontWeight:600,fontSize:"0.9375rem"},children:"Signed In"})]}),k(a,{variant:"ghost",size:"icon",onClick:e,children:k(ha,{size:16})})]}),F("div",{style:{display:"grid",gap:"0.375rem"},children:[F("div",{children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Domain"}),k("p",{style:{fontSize:"0.8125rem",fontFamily:"monospace",marginTop:"0.125rem"},children:i.domain})]}),F("div",{children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Address"}),k("p",{style:{fontSize:"0.8125rem",fontFamily:"monospace",marginTop:"0.125rem",wordBreak:"break-all"},children:i.address})]}),F("div",{children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Chain"}),k("p",{style:{fontSize:"0.8125rem",fontFamily:"monospace",marginTop:"0.125rem"},children:i.chainId})]})]}),i.statement&&k("div",{style:{padding:"0.5rem 0.625rem",borderRadius:"0.375rem",background:"var(--muted, #f1f5f9)",fontSize:"0.8125rem",lineHeight:1.5},children:i.statement}),F("div",{children:[F("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.25rem"},children:[k("span",{className:"text-xs uppercase tracking-wider text-muted-foreground",children:"Signature"}),k(a,{variant:"ghost",size:"icon",onClick:o,title:r?"This browser refused the clipboard \u2014 select the signature and copy it":"Copy signature","aria-label":r?"Copy failed":"Copy signature",children:n?k(ya,{size:12,color:"#22c55e"}):k(ba,{size:12})})]}),k("p",{style:{fontSize:"0.75rem",fontFamily:"monospace",wordBreak:"break-all",lineHeight:1.4,color:"var(--muted-foreground, #64748b)",background:"var(--muted, #f1f5f9)",padding:"0.375rem 0.5rem",borderRadius:"0.375rem"},children:c})]}),k(a,{variant:"outline",className:"w-full",onClick:e,children:"Close"})]})}import{useState as ce,useCallback as Ne,useMemo as Vo}from"react";import{AlertTriangle as xa,Check as sn,Copy as va,Download as Ca,Eye as wa,EyeOff as Na,SkipForward as Ho,ArrowLeft as ka,ArrowRight as Ra,Shield as Sa,X as Ta}from"lucide-react";import{Fragment as ln,jsx as w,jsxs as A}from"react/jsx-runtime";function Pa(t){let e=Math.floor(4294967296/t)*t,n=new Uint32Array(1),o;do crypto.getRandomValues(n),o=n[0];while(o>=e);return o%t}function an(t){let e=[...t];for(let n=e.length-1;n>0;n--){let o=Pa(n+1);[e[n],e[o]]=[e[o],e[n]]}return e}function Uo(t,e=3){let n=t.trim().split(/\s+/);return an(n.map((r,s)=>s)).slice(0,Math.min(e,n.length)).map(r=>{let s=n[r],a=n.filter((c,u)=>u!==r),i=an(a).slice(0,3),l=an([s,...i]);return{index:r,correct:s,options:l}})}function Je({seedPhrase:t,onConfirm:e,onSkip:n,onExportPrivateKey:o,className:r,wordCount:s,inline:a=!1,open:i=!0,onOpenChange:l}){let c=B(),u=c.Button,d=c.Dialog,m=c.DialogContent,g=c.DialogHeader,b=c.DialogTitle,[f,h]=ce("reveal"),[N,p]=ce(!1),[x,T]=ce(!1),[S,O]=ce(!1),[D,ae]=ce(()=>Uo(t,3)),[q,Z]=ce({}),[He,ie]=ce([]),[_,re]=ce(!1),[j,Te]=ce(null),Ct=Vo(()=>t.trim().split(/\s+/),[t]),Sr=Vo(()=>{let L=new Map;return Ct.map(Q=>{let ee=L.get(Q)??0;return L.set(Q,ee+1),{word:Q,key:`${Q}-${ee}`}})},[Ct]),Hl=s??(Ct.length===24?24:12),Tr=Ne(()=>p(!0),[]),Pr=Ne(async()=>{try{await navigator.clipboard.writeText(t),O(!1),T(!0),setTimeout(()=>T(!1),2e3)}catch{T(!1),O(!0)}},[t]),Br=Ne(()=>{ae(Uo(t,3)),Z({}),ie([]),h("confirm")},[t]),Er=Ne((L,Q)=>{Z(ee=>({...ee,[L]:Q})),ie(ee=>ee.filter(wt=>wt!==L))},[]),Ar=Ne(()=>{let L=[];for(let Q of D)q[Q.index]!==Q.correct&&L.push(Q.index);if(L.length>0){ie(L);return}h("done"),e()},[D,q,e]),vn=Ne(()=>{n?.()},[n]),Dr=Ne(()=>{if(o){let L=o();Te(L),re(!0)}},[o]),Mr=D.every(L=>q[L.index]!==void 0),Ir=A("div",{className:"space-y-4",children:[w("div",{className:"rounded-lg border border-amber-200 bg-amber-50 dark:border-amber-800 dark:bg-amber-950/30 px-4 py-3",children:A("div",{className:"flex items-start gap-2",children:[w(xa,{size:16,className:"mt-0.5 shrink-0 text-amber-600 dark:text-amber-400"}),w("p",{className:"text-sm text-amber-800 dark:text-amber-200",children:"Write down these words in order and store them somewhere safe. Never share them with anyone. If you lose your seed phrase, your funds cannot be recovered."})]})}),N?A(ln,{children:[w("div",{className:"grid grid-cols-3 gap-2 sm:grid-cols-4",children:Sr.map(({word:L,key:Q},ee)=>A("div",{className:"flex items-center gap-1.5 rounded-md border bg-card px-2.5 py-1.5 text-sm",children:[w("span",{className:"text-xs text-muted-foreground w-5 shrink-0 text-right",children:ee+1}),w("span",{className:"font-mono font-medium",children:L})]},Q))}),A("div",{className:"flex flex-wrap gap-2",children:[A(u,{onClick:Pr,variant:"outline",size:"sm",children:[x?w(sn,{size:14}):w(va,{size:14}),x?"Copied":S?"Copy failed":"Copy"]}),o&&A(u,{onClick:Dr,variant:"outline",size:"sm",children:[w(Ca,{size:14}),"Export Private Key"]})]}),S&&w("p",{role:"alert",className:"rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive",children:"This browser would not let the page write to your clipboard. Nothing was copied \u2014 select the words above and copy them yourself, or write them down."}),_&&j&&A("div",{className:"rounded-lg border border-border bg-muted p-3 space-y-2",children:[A("div",{className:"flex items-center gap-2",children:[w(Na,{size:14,className:"text-muted-foreground"}),w("span",{className:"text-xs font-medium text-muted-foreground",children:"Private Key (keep secret!)"})]}),w("p",{className:"font-mono text-xs break-all select-all",children:j})]}),A("div",{className:"flex flex-col gap-2 sm:flex-row sm:justify-between",children:[A(u,{onClick:Br,variant:"default",children:["I've Saved It",w(Ra,{size:16})]}),n&&A(u,{onClick:vn,variant:"ghost",size:"sm",children:[w(Ho,{size:14}),"Skip Backup"]})]})]}):A("div",{className:"flex flex-col items-center gap-3 py-6",children:[w(Sa,{size:40,className:"text-muted-foreground"}),w("p",{className:"text-sm text-muted-foreground text-center",children:"Click the button below to reveal your seed phrase. Make sure no one is watching your screen."}),A(u,{onClick:Tr,variant:"default",children:[w(wa,{size:16}),"Reveal Seed Phrase"]})]})]}),Lr=A("div",{className:"space-y-4",children:[w("p",{className:"text-sm text-muted-foreground",children:"Verify your backup by selecting the correct word for each position."}),D.map(L=>{let Q=He.includes(L.index);return A("div",{className:"space-y-2",children:[A("p",{className:y("text-sm font-medium",Q?"text-destructive":"text-foreground"),children:["Word #",L.index+1,Q&&w("span",{className:"ml-2 text-xs text-destructive",children:"(incorrect)"})]}),w("div",{className:"grid grid-cols-2 gap-2",children:L.options.map(ee=>{let wt=q[L.index]===ee;return w("button",{type:"button",onClick:()=>Er(L.index,ee),className:y("rounded-md border px-3 py-2 text-sm font-mono transition-all duration-200 cursor-pointer text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",wt?"border-primary bg-primary/10 text-primary font-medium":Q?"border-destructive/50 bg-destructive/5":"border-border bg-card hover:border-primary/50"),children:ee},`${L.index}-${ee}`)})})]},L.index)}),A("div",{className:"flex flex-col gap-2 sm:flex-row sm:justify-between",children:[A(u,{onClick:Ar,variant:"default",disabled:!Mr,children:[w(sn,{size:16}),"Verify & Confirm"]}),A("div",{className:"flex gap-2",children:[A(u,{onClick:()=>h("reveal"),variant:"ghost",size:"sm",children:[w(ka,{size:14}),"Back"]}),n&&A(u,{onClick:vn,variant:"ghost",size:"sm",children:[w(Ho,{size:14}),"Skip"]})]})]})]}),zr={reveal:Ir,confirm:Lr,done:A("div",{className:"flex flex-col items-center gap-3 py-6 text-center",children:[w("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-green-100 dark:bg-green-900/30",children:w(sn,{size:24,className:"text-green-600 dark:text-green-400"})}),w("p",{className:"font-medium text-foreground",children:"Backup Confirmed"}),w("p",{className:"text-sm text-muted-foreground",children:"Your seed phrase has been backed up successfully."})]})},Wr={reveal:"Backup Seed Phrase",confirm:"Verify Backup",done:"Backup Complete"},ot=zr[f],rt=Wr[f];return a?A("div",{className:y("space-y-4",r),children:[f!=="done"&&w("h3",{className:"text-lg font-semibold",children:rt}),ot]}):i?d&&m?w(d,{open:!0,onOpenChange:L=>{L||l?.(!1)},children:w(m,{children:g&&b?A(ln,{children:[w(g,{children:w(b,{children:rt})}),w("div",{className:"mt-2 max-h-[55vh] overflow-y-auto",children:ot})]}):A(ln,{children:[w("div",{className:"mb-3 text-lg font-semibold",children:rt}),w("div",{className:"max-h-[55vh] overflow-y-auto",children:ot})]})})}):A(Be,{open:!0,onClose:()=>l?.(!1),children:[A("div",{className:"flex items-center justify-between mb-4",children:[w("h2",{className:"text-lg font-semibold m-0",children:rt}),l&&w("button",{onClick:()=>l(!1),type:"button",className:"rounded-md p-1 text-muted-foreground hover:text-foreground transition-all duration-200 cursor-pointer border-none bg-transparent","aria-label":"Close",children:w(Ta,{size:16})})]}),ot]}):null}import Ba from"react";import{Fragment as Oo,jsx as $,jsxs as ge}from"react/jsx-runtime";function Ea({error:t,reset:e,dismiss:n,retryLabel:o="Try Again"}){let r=B(),s=r.Button,a=r.Dialog,i=r.DialogContent,l=r.DialogHeader,c=r.DialogTitle;if(a&&i)return $(a,{open:!0,onOpenChange:()=>{},children:$(i,{children:l&&c?ge(Oo,{children:[$(l,{children:$(c,{children:"Something went wrong"})}),ge("div",{style:{marginTop:"0.5rem"},children:[$("p",{style:{color:"var(--muted-foreground, #666)",fontSize:"0.875rem",lineHeight:"1.5",margin:0},children:t.message||"An unexpected error occurred while connecting your wallet."}),ge("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem"},children:[n&&$(s,{variant:"outline",size:"default",onClick:n,children:"Dismiss"}),$(s,{variant:"default",size:"default",onClick:e,children:o})]})]})]}):ge(Oo,{children:[$("div",{style:{fontWeight:600,fontSize:"1.125rem",marginBottom:"0.75rem"},children:"Something went wrong"}),$("p",{style:{color:"var(--muted-foreground, #666)",fontSize:"0.875rem",lineHeight:"1.5",margin:0},children:t.message||"An unexpected error occurred while connecting your wallet."}),ge("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem"},children:[n&&$(s,{variant:"outline",size:"default",onClick:n,children:"Dismiss"}),$(s,{variant:"default",size:"default",onClick:e,children:o})]})]})})});let u=!0,d=n??void 0;return ge(Be,{open:u,onClose:d,children:[$(Bn,{title:"Something went wrong",onClose:d,showCloseButton:!!n}),ge(En,{children:[$("p",{style:{color:"var(--muted-foreground, #666)",fontSize:"0.875rem",lineHeight:"1.5",margin:0},children:t.message||"An unexpected error occurred while connecting your wallet."}),ge("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem"},children:[n&&$(s,{variant:"outline",size:"default",onClick:n,children:"Dismiss"}),$(s,{variant:"default",size:"default",onClick:e,children:o})]})]})]})}var Xe=class extends Ba.Component{constructor(e){super(e),this.state={hasError:!1,error:null,dismissed:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e,dismissed:!1}}componentDidCatch(e,n){this.props.onError?.(e,n)}handleReset=()=>{this.setState({hasError:!1,error:null,dismissed:!1}),this.props.onReset?.()};handleDismiss=()=>{this.setState(e=>({...e,dismissed:!0})),this.props.onDismiss?.()};render(){return this.state.dismissed?this.props.children:this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback({error:this.state.error,reset:this.handleReset}):$(Ea,{error:this.state.error,reset:this.handleReset,dismiss:this.props.onDismiss?this.handleDismiss:void 0,retryLabel:this.props.retryLabel}):this.props.children}};import{createContext as Ua,useContext as Oa,useMemo as _a}from"react";import{Web3ConnectProvider as Fa}from"@naculus/connect-appkit-react";import{createContext as Da,useContext as Ma,useMemo as yt,useEffect as xt,useCallback as Ia,useState as vt}from"react";var Le={primary:{name:"--primary",fallback:"221.2 83.2% 53.3%"},"primary-foreground":{name:"--primary-foreground",fallback:"210 40% 98%"},background:{name:"--background",fallback:"0 0% 100%"},foreground:{name:"--foreground",fallback:"222.2 84% 4.9%"},card:{name:"--card",fallback:"0 0% 100%"},"card-foreground":{name:"--card-foreground",fallback:"222.2 84% 4.9%"},popover:{name:"--popover",fallback:"0 0% 100%"},"popover-foreground":{name:"--popover-foreground",fallback:"222.2 84% 4.9%"},secondary:{name:"--secondary",fallback:"210 40% 96.1%"},"secondary-foreground":{name:"--secondary-foreground",fallback:"222.2 47.4% 11.2%"},muted:{name:"--muted",fallback:"210 40% 96.1%"},"muted-foreground":{name:"--muted-foreground",fallback:"215.4 16.3% 46.9%"},accent:{name:"--accent",fallback:"210 40% 96.1%"},"accent-foreground":{name:"--accent-foreground",fallback:"222.2 47.4% 11.2%"},destructive:{name:"--destructive",fallback:"0 84.2% 60.2%"},border:{name:"--border",fallback:"214.3 31.8% 91.4%"},input:{name:"--input",fallback:"214.3 31.8% 91.4%"},ring:{name:"--ring",fallback:"221.2 83.2% 53.3%"},radius:{name:"--radius",fallback:"0.5rem"}},Aa=new Map;function cn(){Aa.clear()}import{jsx as Va,jsxs as Ha}from"react/jsx-runtime";var _o=Da({theme:{},isDark:!1,setTheme:()=>{},toggleDarkMode:()=>{}});function La(t){let e=[];for(let[n,o]of Object.entries(t)){let r=Le[n];r&&o&&e.push(" "+r.name+": "+o+";")}return e.length===0?"":`:root {
|
|
9
9
|
`+e.join(`
|
|
10
10
|
`)+`
|
|
11
|
-
}`}function za(t){let e=new Set;if(t!=="computed"||typeof document>"u")return e;for(let n of Object.keys(Le)){let o=Le[n],r=getComputedStyle(document.documentElement).getPropertyValue(o.name).trim();r&&r!==o.fallback&&e.add(n)}return e}function dn({children:t,theme:e={},defaultDark:n=!1,priority:o="fallback"}){let[r,s]=vt(e),[a,i]=vt(n);xt(()=>{cn()},[r]);let[l,c]=vt(new Set);xt(()=>{c(za(o))},[o]);let u=yt(()=>{if(o==="fallback"||l.size===0)return r;let f={};for(let[h,N]of Object.entries(r))!l.has(h)&&N&&(f[h]=N);return f},[r,o,l]),d=yt(()=>La(u),[u]);xt(()=>{if(typeof document>"u")return;let f=document.documentElement;a?f.classList.add("dark"):f.classList.remove("dark"),cn()},[a]);let p=yt(()=>"w3c-theme-"+Math.random().toString(36).slice(2,9),[]),g=Ia(()=>i(f=>!f),[]),b=yt(()=>({theme:r,isDark:a,setTheme:s,toggleDarkMode:g}),[r,a,g]);return Ha(_o.Provider,{value:b,children:[d?Va("style",{id:p,dangerouslySetInnerHTML:{__html:d}}):null,t]})}function Fo(){return Ma(_o)}function Wa(t){let{theme:e}=Fo(),[n,o]=vt("");return xt(()=>{let r=Le[t];if(!r)return;let s=e[t];if(s){o(s);return}if(typeof document>"u"){o(r.fallback);return}let a=getComputedStyle(document.documentElement).getPropertyValue(r.name).trim();o(a||r.fallback)},[t,e]),n||Le[t]?.fallback||""}import{jsx as Ze}from"react/jsx-runtime";var Ko=Ua({mode:"walletconnect"});function Ka(){return Oa(Ko)}function et({config:t,children:e,autoConnect:n=!1,detectionMode:o="walletconnect",theme:r,defaultDark:s=!1,themePriority:a="computed"}){let i=_a(()=>({mode:o}),[o]),l=o==="walletconnect"||o==="auto";return Ze(Ko.Provider,{value:i,children:Ze(dn,{theme:r,defaultDark:s,priority:a,children:Ze(un,{components:{QRCodeModal:Ye},children:Ze(Fa,{config:t,autoConnect:n,children:l?Ze(St,{children:e}):e})})})})}import{jsx as jo}from"react/jsx-runtime";function $a({className:t,variant:e,size:n,...o}){let r=["inline-flex items-center justify-center gap-2 rounded-lg border px-4 py-2","text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50",e==="outline"?"border-input bg-transparent hover:bg-accent":"border-primary bg-primary text-primary-foreground hover:bg-primary/90",n==="sm"?"h-9 px-3":n==="icon"?"h-10 w-10 p-0":"h-10",t].filter(Boolean).join(" ");return jo("button",{type:"button",className:r,...o})}var mn={Button:$a,ConnectButton:ye,AccountButton:Et,ChainSelector:ze,QRCodeModal:Ye,SignInButton:rn,SeedPhraseBackup:Je,ErrorBoundary:Xe,Web3ConnectUI:et},qo=qa({});function un({children:t,components:e={}}){let n=Qa(()=>({...mn,...e}),[e]);return jo(qo.Provider,{value:n,children:t})}function B(){return ja(qo)}function Ga(t){return B()[t]}import{jsx as G,jsxs as ke}from"react/jsx-runtime";function Qo(t){let e=t&&typeof t=="object"&&"details"in t?t.details:void 0,n=e instanceof Error?`${e.name}: ${e.message}`:e;Ja.error("ui/ChainSelector","switchChain failed",t,n)}function tt({chainId:t,className:e}){let n=at(t);return n?G("span",{className:y("inline-flex items-center justify-center shrink-0",e),dangerouslySetInnerHTML:{__html:n}}):null}function ze({className:t,showLabel:e=!0,variant:n="dropdown"}){let{currentChain:o,availableChains:r,switchChain:s,isEvm:a}=ti(),{isConnected:i}=ni(),[l,c]=Xa(!1),d=B().Button,p=Za(null);if(ei(()=>{function f(h){p.current&&!p.current.contains(h.target)&&c(!1)}return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[]),!i)return null;let g=o?.name??"Unknown Chain",b=r.length>1;return n==="minimal"?ke("div",{className:y("inline-flex items-center gap-1.5 text-xs text-muted-foreground",t),children:[o&&G(tt,{chainId:o.caip2,className:"h-3.5 w-3.5"}),g]}):n==="buttons"?G("div",{className:y("flex flex-wrap gap-2",t),children:r.map(f=>{let h=f.caip2,N=h===o?.caip2;return ke(d,{className:N?y("bg-accent","border-primary"):"",onClick:()=>{N||s(h).catch(Qo)},children:[G(tt,{chainId:h,className:"h-4 w-4"}),f.name,f.token&&G("span",{className:"text-xs opacity-60",children:f.token})]},h)})}):b?ke("div",{ref:p,className:y("relative inline-block",t),children:[ke(d,{onClick:()=>c(!l),children:[o&&G(tt,{chainId:o.caip2,className:"h-4 w-4"}),g,G("svg",{className:y("h-3 w-3 transition-transform",l&&"rotate-180"),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:G("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),l&&ke("div",{className:"absolute left-0 top-full mt-1 z-50 min-w-[180px] rounded-lg border bg-card p-1 shadow-lg animate-in fade-in zoom-in-95 duration-200",children:[e&&G("div",{className:"px-2 py-1.5 text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Switch Network"}),r.map(f=>{let h=f.caip2,N=h===o?.caip2;return ke(d,{onClick:()=>{N||s(h).catch(Qo),c(!1)},className:y("flex w-full items-center gap-2 rounded-md px-2 py-2 text-sm transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",N?"bg-accent font-medium":"hover:bg-accent/50"),children:[G(tt,{chainId:h,className:"h-4 w-4"}),G("span",{className:"flex-1 text-left",children:f.name}),f.token&&G("span",{className:"text-xs text-muted-foreground",children:f.token}),N&&G("svg",{className:"h-4 w-4 text-primary",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:G("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})]},h)})]})]}):ke("div",{className:y("inline-flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm opacity-60 cursor-default",t),children:[o&&G(tt,{chainId:o.caip2,className:"h-4 w-4"}),g]})}import{useEmbeddedWallet as oi}from"@naculus/connect-appkit-react";import{Check as $o,Copy as ri,Loader2 as si,Plus as ai}from"lucide-react";import{useCallback as pn,useState as fn}from"react";import{jsx as J,jsxs as We}from"react/jsx-runtime";var ii={eip155:{name:"Ethereum & EVM",detail:"One address across Ethereum, Polygon, Arbitrum and every EVM chain"},solana:{name:"Solana",detail:"A separate key on a different curve"}};function li(t){return t.length<=12?t:`${t.slice(0,6)}...${t.slice(-4)}`}function ci({account:t,isActive:e,onSelect:n}){let[o,r]=fn(!1),s=ii[t.namespace]??{name:t.namespace,detail:""},a=pn(i=>{i.stopPropagation();let l=navigator?.clipboard?.writeText;l&&l.call(navigator.clipboard,t.address).then(()=>{r(!0),setTimeout(()=>r(!1),1500)},()=>{})},[t.address]);return We("div",{role:"radio",tabIndex:0,"aria-checked":e,onClick:n,onKeyDown:i=>{i.target===i.currentTarget&&(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),n())},className:y("flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-left text-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e?"border-primary bg-accent":"border-border hover:bg-accent/50"),children:[We("span",{className:"flex min-w-0 flex-1 flex-col",children:[We("span",{className:"flex items-center gap-2 font-medium",children:[s.name,e&&J("span",{className:"rounded-sm bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-primary",children:"Signing"})]}),J("span",{className:"truncate font-mono text-xs text-muted-foreground",children:li(t.address)})]}),J("button",{type:"button","aria-label":`Copy ${s.name} address`,onClick:a,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground",children:o?J($o,{size:14}):J(ri,{size:14})}),e&&J($o,{size:16,className:"shrink-0 text-primary"})]})}function Go({className:t,hideBackfill:e=!1,onSelect:n,accounts:o,activeNamespace:r,canDerive:s,setActiveNamespace:a,backfillAccounts:i}){let[l,c]=fn(!1),[u,d]=fn(null),p=pn(f=>{if(f!==r)try{a(f),d(null),n?.(f)}catch(h){d(h instanceof Error?h.message:"Could not switch account")}},[r,a,n]),g=pn(async()=>{c(!0),d(null);try{await i()}catch(f){d(f instanceof Error?f.message:"Could not derive accounts")}finally{c(!1)}},[i]);if(o.length===0)return null;let b=!e&&s;return We("div",{className:y("flex flex-col gap-2",t),children:[We("div",{className:"flex items-baseline justify-between",children:[J("span",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"Accounts"}),J("span",{className:"text-[11px] text-muted-foreground",children:"Chooses the signing key, not the network"})]}),J("div",{role:"radiogroup","aria-label":"Wallet accounts",className:"flex flex-col gap-1.5",children:o.map(f=>J(ci,{account:f,isActive:f.namespace===r,onSelect:()=>p(f.namespace)},f.namespace))}),b&&We("button",{type:"button",onClick:g,disabled:l,className:y("flex items-center justify-center gap-2 rounded-md border border-dashed border-border px-3 py-2 text-xs text-muted-foreground","hover:bg-accent/50 disabled:opacity-60"),children:[l?J(si,{size:14,className:"animate-spin"}):J(ai,{size:14}),l?"Deriving\u2026":"Show accounts this phrase already owns"]}),u&&J("p",{role:"alert",className:"text-xs text-destructive",children:u})]})}function di(t){let{wallet:e,accounts:n,activeNamespace:o,setActiveNamespace:r,backfillAccounts:s}=oi();return e?J(Go,{...t,accounts:n,activeNamespace:o,canDerive:e.recoveryAvailable&&n.length<2,setActiveNamespace:r,backfillAccounts:s}):null}import{AlertTriangle as ui,Info as Jo,ShieldAlert as mi,ShieldCheck as pi}from"lucide-react";import{useEmbeddedWallet as fi}from"@naculus/connect-appkit-react";import{jsx as te,jsxs as oe}from"react/jsx-runtime";var gi={critical:mi,warning:ui,info:Jo},hi={critical:"text-destructive",warning:"text-amber-600 dark:text-amber-500",info:"text-muted-foreground"};function Yo(t){return t>=90?"text-emerald-600 dark:text-emerald-500":t>=70?"text-amber-600 dark:text-amber-500":"text-destructive"}function bi({finding:t}){let e=gi[t.severity]??Jo;return oe("li",{className:"flex gap-2.5 rounded-md border border-border px-3 py-2.5",children:[te(e,{size:16,className:y("mt-0.5 shrink-0",hi[t.severity])}),oe("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[oe("div",{className:"flex items-baseline justify-between gap-2",children:[te("span",{className:"text-sm font-medium",children:t.title}),t.deduction>0&&oe("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:["\u2212",t.deduction]})]}),te("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.detail}),t.remedy&&oe("p",{className:"text-xs leading-relaxed",children:[te("span",{className:"font-medium",children:"What helps: "}),te("span",{className:"text-muted-foreground",children:t.remedy})]})]})]})}function Xo({className:t,hideInformational:e=!1,report:n}){if(!n)return null;let{score:o,level:r,findings:s,encrypted:a,backend:i,unlock:l}=n,c=e?s.filter(d=>d.deduction>0):s,u=s.every(d=>d.deduction===0);return oe("div",{className:y("flex flex-col gap-3",t),children:[oe("div",{className:"flex items-center gap-3 rounded-lg border border-border px-4 py-3",children:[te(pi,{size:22,className:y("shrink-0",Yo(o))}),oe("div",{className:"flex min-w-0 flex-1 flex-col",children:[oe("div",{className:"flex items-baseline gap-2",children:[te("span",{className:y("text-2xl font-semibold tabular-nums",Yo(o)),children:o}),te("span",{className:"text-sm text-muted-foreground",children:"/ 100"}),oe("span",{className:"ml-auto text-xs text-muted-foreground",children:["Tier ",r]})]}),oe("span",{className:"text-xs text-muted-foreground",children:[i==="localStorage"?"localStorage":"IndexedDB",a?" \xB7 encrypted":" \xB7 not encrypted",l.sealedWith?.includes("prf")?" \xB7 passkey":""]})]})]}),u?te("p",{className:"text-xs text-muted-foreground",children:"Nothing is holding this score down."}):te("p",{className:"text-xs text-muted-foreground",children:"Scored against this SDK's own published rubric, not an external standard. Each item below names the points it costs."}),te("ul",{className:"flex flex-col gap-1.5",children:c.map(d=>te(bi,{finding:d},d.id))})]})}function yi(t){let{securityReport:e}=fi();return te(Xo,{...t,report:e})}import{useCallback as xi,useEffect as vi,useRef as Ci,useState as gn}from"react";import{Eye as wi,EyeOff as Ni,KeyRound as ki,ShieldAlert as Ri}from"lucide-react";import{usePassphraseGate as Si}from"@naculus/connect-appkit-react";import{jsx as U,jsxs as he}from"react/jsx-runtime";var hn=8,Ti=12;function Zo({className:t,request:e,submit:n,cancel:o}){let[r,s]=gn(""),[a,i]=gn(""),[l,c]=gn(!1),u=Ci(null),d=e?.intent==="create";vi(()=>{if(!e){s(""),i(""),c(!1);return}s(""),i(""),u.current?.focus()},[e]);let p=d&&r.length>0&&r.length<hn,g=d&&a.length>0&&a!==r,b=d?r.length>=hn&&a===r:r.length>0,f=xi(h=>{h.preventDefault(),b&&n(r)},[b,n,r]);return e?U("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",role:"presentation",children:he("form",{role:"dialog","aria-modal":"true","aria-label":d?"Choose a passphrase":"Unlock your wallet",onSubmit:f,className:y("flex w-full max-w-sm flex-col gap-4 rounded-lg border border-border bg-card p-5 shadow-lg",t),children:[he("div",{className:"flex items-center gap-2",children:[U(ki,{size:18,className:"shrink-0 text-primary"}),U("h2",{className:"text-base font-semibold",children:d?"Choose a passphrase":"Unlock your wallet"})]}),e.previousError&&U("p",{role:"alert",className:"rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive",children:e.previousError}),U("p",{className:"text-xs leading-relaxed text-muted-foreground",children:d?"This encrypts your wallet on this device. Without it, anything that can run script on this page can read your keys.":"Your wallet is encrypted on this device. Enter the passphrase you chose to open it."}),he("label",{className:"flex flex-col gap-1.5",children:[U("span",{className:"text-xs font-medium",children:"Passphrase"}),he("span",{className:"relative flex items-center",children:[U("input",{ref:u,type:l?"text":"password",value:r,onChange:h=>s(h.target.value),autoComplete:d?"new-password":"current-password",autoFocus:!0,className:"w-full rounded-md border border-border bg-background px-3 py-2 pr-9 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"}),U("button",{type:"button","aria-label":l?"Hide passphrase":"Show passphrase",onClick:()=>c(h=>!h),className:"absolute right-2 text-muted-foreground hover:text-foreground",children:l?U(Ni,{size:15}):U(wi,{size:15})})]})]}),d&&he("label",{className:"flex flex-col gap-1.5",children:[U("span",{className:"text-xs font-medium",children:"Type it again"}),U("input",{type:l?"text":"password",value:a,onChange:h=>i(h.target.value),autoComplete:"new-password",className:"w-full rounded-md border border-border bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"})]}),p&&he("p",{role:"alert",className:"text-xs text-destructive",children:["At least ",hn," characters."]}),g&&U("p",{role:"alert",className:"text-xs text-destructive",children:"These do not match."}),d&&!p&&r.length>0&&r.length<Ti&&U("p",{className:"text-xs text-muted-foreground",children:"Short. Several ordinary words are far harder to guess than a short one with symbols in it."}),d&&he("p",{className:"flex gap-2 rounded-md bg-amber-500/10 px-3 py-2 text-xs leading-relaxed text-amber-700 dark:text-amber-500",children:[U(Ri,{size:14,className:"mt-0.5 shrink-0"}),U("span",{children:"If you forget this, nothing can open this copy of the wallet \u2014 not us, not your browser. Your recovery phrase is the only thing that gets it back."})]}),he("div",{className:"flex justify-end gap-2 pt-1",children:[U("button",{type:"button",onClick:()=>o(),className:"rounded-md border border-border px-3 py-2 text-sm hover:bg-accent",children:"Cancel"}),U("button",{type:"submit",disabled:!b,className:"rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50",children:d?"Encrypt wallet":"Unlock"})]})]})}):null}function Pi(t){let{request:e,submit:n,cancel:o}=Si();return U(Zo,{...t,request:e,submit:n,cancel:o})}import{useCallback as nr,useState as bn}from"react";import{Fingerprint as er,Loader2 as Bi,ShieldAlert as tr,ShieldCheck as Ei,TriangleAlert as Ai}from"lucide-react";import{useEmbeddedWallet as Di,useWeb3 as Mi}from"@naculus/connect-appkit-react";import{Fragment as Li,jsx as X,jsxs as Ve}from"react/jsx-runtime";function or({className:t,passkeys:e,unlock:n,onRegistered:o}){let[r,s]=bn(!1),[a,i]=bn(null),[l,c]=bn(!1),u=!!e?.hasCredential?.()||l,d=nr(async()=>{if(e){s(!0),i(null);try{await e.createPasskey(),c(!0),await o?.()}catch(f){i(f instanceof Error?f.message:"Could not register a passkey")}finally{s(!1)}}},[e,o]);if(!e)return null;let p=n?.sealedWith?.includes("prf")??!1,g=null;if(u)switch(n?.prf){case"available":g=p?{tone:"good",icon:X(Ei,{size:16}),title:"Your passkey unlocks this wallet",detail:"Opening it needs your fingerprint or face, not a value a script on this page can supply."}:{tone:"warn",icon:X(Ai,{size:16}),title:"Registered, but not applied yet",detail:"This device can produce the key material. The next time the wallet is saved, the record is sealed under it."};break;case"unavailable":g={tone:"bad",icon:X(tr,{size:16}),title:"This passkey cannot unlock the wallet",detail:"The authenticator did not return the key material. Firefox does not implement the extension, and a passkey created before it was requested cannot have it added afterwards \u2014 a new one has to be registered on a browser that supports it."};break;default:g={tone:"neutral",icon:X(er,{size:16}),title:"A passkey is registered",detail:"Whether it can unlock this wallet is not known until the wallet is opened once. It will be used if it works."};break}let b={good:"text-emerald-600 dark:text-emerald-500",warn:"text-amber-600 dark:text-amber-500",bad:"text-destructive",neutral:"text-muted-foreground"};return Ve("div",{className:y("flex flex-col gap-3",t),children:[g?Ve("div",{className:"flex gap-2.5 rounded-md border border-border px-3 py-2.5",children:[X("span",{className:y("mt-0.5 shrink-0",b[g.tone]),children:g.icon}),Ve("div",{className:"flex min-w-0 flex-col gap-1",children:[X("span",{className:"text-sm font-medium",children:g.title}),X("p",{className:"text-xs leading-relaxed text-muted-foreground",children:g.detail})]})]}):Ve(Li,{children:[X("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"A passkey raises what it takes to read your stored keys from \u201Cany script on this page\u201D to your fingerprint or face. The passphrase keeps working, so a broken or replaced authenticator does not cost you this copy."}),Ve("p",{className:"flex gap-2 rounded-md bg-amber-500/10 px-3 py-2 text-xs leading-relaxed text-amber-700 dark:text-amber-500",children:[X(tr,{size:14,className:"mt-0.5 shrink-0"}),X("span",{children:"This protects the copy on this device. It does not back up your wallet \u2014 the recovery phrase is still the only thing that survives losing this device."})]}),Ve("button",{type:"button",onClick:d,disabled:r,className:"flex items-center justify-center gap-2 rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground disabled:opacity-60",children:[r?X(Bi,{size:15,className:"animate-spin"}):X(er,{size:15}),r?"Waiting for your device\u2026":"Protect with a passkey"]})]}),a&&X("p",{role:"alert",className:"text-xs text-destructive",children:a})]})}function Ii(t){let{client:e}=Mi(),{securityReport:n,hasWallet:o}=Di(),r=nr(async()=>{let s=e?.embeddedConnector;s&&o&&await s.save()},[e,o]);return X(or,{...t,passkeys:e?.passkeysConnector??null,unlock:n?.unlock,onRegistered:r})}import{useAccount as sr,useBalance as zi,useChain as Wi,useDisconnect as ar,useEmbeddedWallet as Vi,useWallet as Hi,useWeb3 as Ui}from"@naculus/connect-appkit-react";import{createContext as Oi,useCallback as nt,useContext as _i,useEffect as Fi,useMemo as ir,useState as rr}from"react";import{jsx as Re,jsxs as pr}from"react/jsx-runtime";var lr=Oi(null);function cr(){let t=_i(lr);if(!t)throw new Error("useAppKit must be used within an <AppKit> component");return t}function dr({projectId:t,metadata:e,enableEmbedded:n=!1,enablePasskeys:o=!1,chains:r,embeddedConfig:s,encryptionKey:a,siwx:i,children:l,className:c,autoConnect:u=!1,theme:d,defaultDark:p=!1,themePriority:g="computed",detectionMode:b="auto"}){let[f,h]=rr(!1),[N,m]=rr(!1),x=ir(()=>({projectId:t,metadata:e,enableEmbedded:n,enablePasskeys:o,chains:r,embeddedConfig:s,encryptionKey:a,siwx:i}),[t,e,n,o,r,s,a,i]);return Re(et,{config:x,autoConnect:u,detectionMode:b,theme:d,defaultDark:p,themePriority:g,children:Re(Ki,{className:c,open:f,setOpen:h,backupOpen:N,setBackupOpen:m,children:l})})}function Ki({children:t,className:e,open:n,setOpen:o,backupOpen:r,setBackupOpen:s}){let{isConnected:a,isConnecting:i}=Hi(),{primaryAccount:l}=sr(),{currentChain:c,availableChains:u,switchChain:d}=Wi(),p=Vi(),{disconnect:g}=ar(),{wallets:b,hasWallets:f}=Ue(),{formatted:h}=zi(),N=h??null,m=nt(async()=>{await g()},[g]),x=nt(()=>{p.confirmBackup(),s(!1)},[p,s]),T=nt(()=>{p.confirmBackup(),s(!1)},[p,s]),S=nt(()=>p.getPrivateKey(),[p]),O=ir(()=>({connect:()=>o(!0),disconnect:m,isConnected:a,isConnecting:i,address:l,balance:N,balanceSymbol:c?.token??null,chainName:c?.name??null,availableChains:u.map(D=>({caip2:D.caip2,name:D.name,token:D.token})),switchChain:d,wallets:b,hasWallets:f,backupPending:p.backupPending,seedPhrase:p.seedPhrase,confirmBackup:x,skipBackup:T,open:n,setOpen:o}),[a,i,l,N,c,u,d,b,f,p.backupPending,p.seedPhrase,x,T,m,n,o]);return Fi(()=>{p.seedPhrase&&p.backupPending&&s(!0)},[p.seedPhrase,p.backupPending,s]),pr(lr.Provider,{value:O,children:[t,p.seedPhrase&&r&&Re(Je,{seedPhrase:p.seedPhrase,onConfirm:x,onSkip:T,onExportPrivateKey:S,open:r,onOpenChange:s})]})}function ur({className:t}){let e=cr(),{connectInjected:n}=Ui(),{primaryAccount:o}=sr(),{disconnect:r}=ar(),s=nt(async(a,i,l)=>{a==="injected"&&(await n(l),i())},[n]);return e.isConnected&&o?pr("div",{className:y("inline-flex items-center gap-2",t),children:[Re(ze,{variant:"minimal"}),Re(ye,{isConnected:e.isConnected,address:o,balance:e.balance,balanceSymbol:e.balanceSymbol??void 0,onDisconnect:r,onConnect:s,className:t})]}):Re(ye,{isConnected:e.isConnected,isConnecting:e.isConnecting,address:o,balance:e.balance,balanceSymbol:e.balanceSymbol??void 0,onDisconnect:r,onConnect:s,className:t})}function mr({className:t,variant:e="dropdown"}){return Re(ze,{className:t,variant:e})}try{let t=mn;t&&Object.assign(t,{AppKit:dr,AppKitButton:ur,AppKitChainSelector:mr})}catch{}import{ArrowRight as qi,CheckCircle2 as ji,Clock as Qi,DollarSign as $i,Loader2 as br,XCircle as Gi,AlertCircle as Yi}from"lucide-react";import{Fragment as hr,jsx as v,jsxs as z}from"react/jsx-runtime";function Ji(t){if(t<1e3)return"<1s";if(t<6e4)return`~${Math.round(t/1e3)}s`;let e=Math.floor(t/6e4),n=Math.round(t%6e4/1e3);return n>0?`~${e}m ${n}s`:`~${e}m`}function fr(t){return t.symbol||"UNKNOWN"}function Xi(t){let e=t.toLowerCase();return e.includes("lifi")?"default":e.includes("axelar")?"secondary":"outline"}function Zi(t){return t.length>12?`${t.slice(0,6)}...${t.slice(-6)}`:t}function el({route:t,onSelect:e}){let n=B(),o=n.Button,r=n.Badge,s=t.provider??"Route";return z("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-4 transition-colors hover:bg-accent/30",children:[z("div",{className:"flex flex-col gap-1.5 min-w-0",children:[z("div",{className:"flex items-center gap-2",children:[r?v(r,{variant:Xi(s),children:s}):v("span",{className:"inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-medium",children:s}),t.steps.length>1&&z("span",{className:"text-xs text-muted-foreground",children:[t.steps.length," steps"]})]}),z("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm",children:[z("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[v($i,{className:"h-3.5 w-3.5"}),"$",t.gasCosts.totalUsd]}),z("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[v(Qi,{className:"h-3.5 w-3.5"}),Ji(t.steps.reduce((a,i)=>{let l=t.estimatedTime>0?15e3:0;return a+l},0))]}),z("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[t.gasCosts.totalUsd," cost"]})]})]}),v(o,{variant:"outline",size:"sm",onClick:e,children:"Select"})]})}function tl(){let e=B().Skeleton;return z("div",{className:"flex flex-col gap-3","data-testid":"route-selector-loading",children:[z("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[v(br,{className:"h-4 w-4 animate-spin"}),v("span",{children:"Fetching best routes..."})]}),[1,2,3].map(n=>z("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-4",children:[v("div",{className:"flex flex-col gap-2 flex-1",children:e?z(hr,{children:[v(e,{className:"h-4 w-24"}),v(e,{className:"h-3 w-48"})]}):z(hr,{children:[v("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),v("div",{className:"h-3 w-48 animate-pulse rounded bg-muted"})]})}),e?v(e,{className:"h-8 w-20 rounded-md"}):v("div",{className:"h-8 w-20 animate-pulse rounded-md bg-muted"})]},n))]})}function nl(){return z("div",{className:"flex flex-col items-center justify-center gap-2 py-8 text-sm text-muted-foreground","data-testid":"route-selector-empty",children:[v(Yi,{className:"h-8 w-8 opacity-40"}),v("span",{children:"No routes found for this pair"}),v("span",{className:"text-xs",children:"Try a different token or amount"})]})}function ol({error:t,onRetry:e}){let o=B().Button;return z("div",{className:"flex flex-col items-center justify-center gap-2 py-6","data-testid":"route-selector-error",children:[v(Gi,{className:"h-8 w-8 text-destructive"}),v("p",{className:"text-sm text-destructive font-medium",children:"Failed to fetch routes"}),v("p",{className:"text-xs text-muted-foreground max-w-xs text-center",children:t}),e&&v(o,{variant:"outline",size:"sm",onClick:e,children:"Retry"})]})}function rl(){let e=B().Progress;return z("div",{className:"flex flex-col items-center gap-3 py-6","data-testid":"route-selector-executing",children:[v(br,{className:"h-6 w-6 animate-spin text-primary"}),v("p",{className:"text-sm font-medium",children:"Executing route..."}),v("p",{className:"text-xs text-muted-foreground",children:"Please confirm the transaction in your wallet"}),e?v(e,{value:50,className:"w-48 h-1.5"}):v("div",{className:"h-1.5 w-48 rounded-full bg-muted",children:v("div",{className:"h-full w-1/2 rounded-full bg-primary animate-pulse"})})]})}function sl({txHash:t}){return z("div",{className:"flex flex-col items-center gap-2 py-6","data-testid":"route-selector-success",children:[v(ji,{className:"h-8 w-8 text-green-500"}),v("p",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:"Route executed successfully!"}),z("p",{className:"text-xs text-muted-foreground font-mono",children:["TX: ",Zi(t)]})]})}function gr({chainId:t,className:e}){let n=at(`eip155:${t}`);return n?v("span",{className:y("inline-flex items-center justify-center shrink-0",e),dangerouslySetInnerHTML:{__html:n}}):null}function al({inputToken:t,outputToken:e,amount:n,routes:o=[],loading:r=!1,executing:s=!1,onRouteSelected:a,onCancel:i,successTxHash:l,error:c,className:u}){let d=B(),p=d.Card,g=d.Button;if(l)return v("div",{className:y("rounded-lg border border-border",u),children:v(sl,{txHash:l})});if(s)return v("div",{className:y("rounded-lg border border-border",u),children:v(rl,{})});return p?z(p,{className:y("p-4",u),children:[f(),h(),N()]}):z("div",{className:y("rounded-lg border border-border p-4",u),children:[f(),h(),N()]});function f(){return!t&&!e?null:z("div",{className:"mb-4 flex flex-wrap items-center gap-2 text-sm",children:[t&&z("span",{className:"inline-flex items-center gap-1.5 font-medium",children:[v(gr,{chainId:t.chainId,className:"h-4 w-4"}),n?`${n.toString()} `:"",fr(t)]}),t&&e&&v(qi,{className:"h-3.5 w-3.5 text-muted-foreground"}),e&&z("span",{className:"inline-flex items-center gap-1.5 font-medium",children:[v(gr,{chainId:e.chainId,className:"h-4 w-4"}),fr(e)]})]})}function h(){return r?v(tl,{}):c?v(ol,{error:c}):o.length===0?v(nl,{}):v("div",{className:"flex flex-col gap-2","data-testid":"route-selector-routes",children:o.map((m,x)=>v(el,{route:m,onSelect:()=>a?.(m)},`${m.fromChain}-${m.toChain}-${m.gasCosts.totalUsd}-${x}`))})}function N(){return!r&&o.length===0&&!c?null:v("div",{className:"mt-4 flex justify-end",children:v(g,{variant:"ghost",size:"sm",onClick:i,children:"Cancel"})})}}import il from"react";import{Shield as ll,ShieldCheck as yr,LoaderCircle as cl,Settings as dl,ChevronRight as ul,AlertCircle as ml,RotateCcw as pl,CheckCircle2 as fl,Fuel as xr,Zap as gl,RefreshCw as hl}from"lucide-react";import{Fragment as xl,jsx as R,jsxs as W}from"react/jsx-runtime";function bl(t){let e=Number(t)/1e18;return e<.001?`~${e.toFixed(6)} ETH`:`~${e.toFixed(3)} ETH`}function yl({isDeployed:t=!1,isDeploying:e=!1,estimatedGas:n,error:o=null,onUpgrade:r,onShowSettings:s,onRetry:a}){let i=B(),l=i.Button,c=i.Card,u=i.Badge,d=s?W(l,{variant:"outline",className:"w-full",onClick:s,children:[R(dl,{size:15})," Advanced Settings ",R(ul,{size:14,className:"text-muted-foreground"})]}):null;return t?W(c,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:[R("div",{className:"flex items-start justify-between",children:W("div",{className:"flex items-center gap-3",children:[R("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-green-500/10",children:R(yr,{size:22,className:"text-green-500"})}),W("div",{children:[W("div",{className:"flex items-center gap-2",children:[R("span",{className:"text-base font-semibold text-foreground",children:"Smart Wallet"}),W(u,{variant:"secondary",className:"rounded-full bg-green-500/10 px-2 py-0 text-xs font-medium text-green-500",children:[R(fl,{size:12,className:"mr-0.5 inline"})," Deployed"]})]}),R("p",{className:"mt-0.5 text-sm text-muted-foreground",children:"Your wallet has been upgraded to a smart wallet"})]})]})}),R("div",{className:"mt-4 grid grid-cols-2 gap-3",children:[[xr,"Gas Sponsorship","Enabled"],[hl,"Recovery","Enabled"]].map(([p,g,b],f)=>W("div",{className:"rounded-lg bg-muted/50 p-3",children:[W("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[il.createElement(p,{size:14}),R("span",{children:g})]}),R("div",{className:"mt-1 text-sm font-medium text-foreground",children:b})]},f))}),s&&R("div",{className:"mt-4",children:d})]}):e?R(c,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:W("div",{className:"flex flex-col items-center text-center",children:[R("div",{className:"mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-primary/10",children:R(cl,{size:28,className:"animate-spin text-primary"})}),R("h3",{className:"mb-1 text-base font-semibold text-foreground",children:"Deploying Smart Wallet..."}),R("p",{className:"mb-4 text-sm text-muted-foreground",children:"Please wait, contract deployment may take a few seconds"}),R("div",{className:"h-2 w-full max-w-[200px] overflow-hidden rounded-full bg-muted",children:R("div",{className:"h-full w-full animate-pulse rounded-full bg-primary",style:{animationDuration:"1.5s"}})})]})}):o?W(c,{className:"w-full rounded-xl border border-destructive/30 bg-destructive/5 p-5 shadow-sm",children:[W("div",{className:"flex items-start gap-3",children:[R("div",{className:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-destructive/10",children:R(ml,{size:18,className:"text-destructive"})}),W("div",{className:"min-w-0 flex-1",children:[R("h4",{className:"text-sm font-semibold text-destructive",children:"Deployment Failed"}),R("p",{className:"mt-1 text-xs text-destructive/80 break-words",children:o}),a&&W(l,{variant:"outline",size:"sm",className:"mt-3 border-destructive/30 text-destructive hover:bg-destructive/10",onClick:a,children:[R(pl,{size:13})," Retry"]})]})]}),s&&R("div",{className:"mt-3",children:d})]}):W(c,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:[W("div",{className:"flex items-center gap-3",children:[R("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-amber-500/10",children:R(ll,{size:20,className:"text-amber-500"})}),W("div",{children:[W("div",{className:"flex items-center gap-2",children:[R("span",{className:"text-base font-semibold text-foreground",children:"Smart Wallet"}),R("span",{className:"rounded-full bg-muted px-2 py-0.5 text-[11px] font-medium text-muted-foreground",children:"Not Upgraded"})]}),R("p",{className:"mt-0.5 text-sm text-muted-foreground",children:"Upgrade to a smart wallet for more features"})]})]}),W("div",{className:"mt-4 space-y-2",children:[R(yn,{icon:gl,color:"text-green-500",text:"No ETH needed for transactions \u2014 pay gas with USDC/USDT"}),R(yn,{icon:xr,color:"text-blue-500",text:"Optional dApp sponsorship, zero-cost transactions"}),R(yn,{icon:yr,color:"text-purple-500",text:"Secure recovery mechanism, no fear of losing keys"})]}),r&&W(l,{className:"mt-4 w-full",onClick:r,children:["Upgrade Now",n!==void 0&&W("span",{className:"ml-1 text-xs opacity-80",children:["(Estimated gas fee: ",bl(n),")"]})]}),s&&W(xl,{children:[W("div",{className:"mt-4 mb-3 flex items-center gap-2",children:[R("div",{className:"h-px flex-1 bg-border"}),R("span",{className:"text-xs text-muted-foreground",children:"or"}),R("div",{className:"h-px flex-1 bg-border"})]}),d]})]})}function yn({icon:t,color:e,text:n}){return W("div",{className:"flex items-center gap-2.5 text-sm text-foreground/80",children:[R(t,{size:14,className:`shrink-0 ${e}`}),R("span",{children:n})]})}import{useState as xn,useCallback as vr}from"react";import{ArrowLeft as Cr,Save as vl,Shield as wr,Users as Nr,KeyRound as kr,Fuel as Cl,Wrench as wl,Plus as Nl,X as kl}from"lucide-react";import{jsx as C,jsxs as M}from"react/jsx-runtime";var Rl=[{value:"simple",label:"Single Sign (default)",description:"Single key control, simple and secure",icon:C(wr,{size:16})},{value:"multi-sig",label:"Multi-Sign (2-of-3)",description:"Requires multiple signers to authorize transactions",icon:C(Nr,{size:16})},{value:"social-recovery",label:"Social Recovery",description:"Set guardian accounts to help recover",icon:C(kr,{size:16})}],Sl=[{value:"self",label:"Pay Self (ETH)",description:"Pay gas fees with ETH"},{value:"sponsor",label:"Sponsored by dApp",description:"dApp covers your gas fees"},{value:"erc20",label:"Pay with USDC/USDT",description:"Use ERC-20 tokens for gas"},{value:"custom",label:"Custom Paymaster URL",description:"Use a custom paymaster service"}],Tl=[{value:"pimlico",label:"Pimlico",description:"High-performance bundler service"},{value:"stackup",label:"Stackup",description:"Decentralized bundler network"},{value:"alchemy",label:"Alchemy",description:"Alchemy AA infrastructure"},{value:"custom",label:"Custom Bundler URL",description:"Use custom bundler endpoint"}];function Pl(){return{accountType:"simple",paymasterType:"self",customPaymasterUrl:"",bundlerPreset:"pimlico",customBundlerUrl:"",guardians:[],threshold:2}}function Bl({currentConfig:t,onSave:e,onBack:n}){let o=B(),r=o.Button,s=o.Input,a=o.Card,i=o.Separator,[l,c]=xn({...Pl(),...t}),[u,d]=xn(""),[p,g]=xn(!1),b=m=>y("flex cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-all duration-200",m?"border-primary bg-primary/5":"border-border hover:bg-accent"),f="w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground outline-none focus:border-ring focus:ring-2 focus:ring-ring focus:ring-offset-2 transition-all duration-200",h=vr(()=>{e?.(l),g(!0),setTimeout(()=>g(!1),2e3)},[l,e]),N=vr(()=>{let m=u.trim();!m||l.guardians.includes(m)||(c(x=>({...x,guardians:[...x.guardians,m]})),d(""))},[u,l.guardians]);return M(a,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:[C("div",{className:"flex items-center justify-between mb-5",children:M("div",{className:"flex items-center gap-2",children:[n&&M(r,{variant:"ghost",size:"sm",onClick:n,children:[C(Cr,{size:15}),"Back"]}),C("h2",{className:"text-lg font-semibold text-foreground",children:"Smart Wallet Settings"})]})}),M("section",{className:"mb-6",children:[M("h3",{className:"mb-3 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(wr,{size:15})," Verification Method"]}),C("div",{className:"space-y-2",children:Rl.map(m=>M("label",{className:b(l.accountType===m.value),children:[C("input",{type:"radio",name:"accountType",value:m.value,checked:l.accountType===m.value,onChange:()=>c(x=>({...x,accountType:m.value})),className:"h-4 w-4 text-primary accent-primary"}),C("div",{className:"flex items-center gap-2 text-foreground",children:m.icon}),M("div",{children:[C("div",{className:"text-sm font-medium text-foreground",children:m.label}),C("div",{className:"text-xs text-muted-foreground",children:m.description})]})]},m.value))})]}),l.accountType==="social-recovery"&&M("section",{className:"mb-6 rounded-lg border border-border bg-muted/30 p-4",children:[M("h4",{className:"mb-2 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(kr,{size:14})," Guardian Addresses"]}),C("p",{className:"mb-3 text-xs text-muted-foreground",children:"Set at least one guardian to help recover your wallet if you lose your key"}),l.guardians.length>0&&C("div",{className:"mb-3 space-y-1.5",children:l.guardians.map(m=>M("div",{className:"flex items-center justify-between rounded-md bg-card px-3 py-2 text-sm",children:[M("span",{className:"font-mono text-xs text-foreground",children:[m.slice(0,8),"...",m.slice(-6)]}),C(r,{variant:"ghost",size:"icon",onClick:()=>c(x=>({...x,guardians:x.guardians.filter(T=>T!==m)})),children:C(kl,{size:14})})]},m))}),M("div",{className:"flex gap-2",children:[C(s,{type:"text",placeholder:"Enter guardian address (0x...)",value:u,onChange:m=>d(m.target.value),onKeyDown:m=>{m.key==="Enter"&&(m.preventDefault(),N())},className:"flex-1"}),M(r,{size:"sm",onClick:N,disabled:!u.trim(),children:[C(Nl,{size:14})," Add"]})]})]}),l.accountType==="multi-sig"&&M("section",{className:"mb-6 rounded-lg border border-border bg-muted/30 p-4",children:[M("h4",{className:"mb-2 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(Nr,{size:14})," Signing Threshold"]}),C("p",{className:"mb-3 text-xs text-muted-foreground",children:"Set how many signers are needed to authorize a transaction"}),C("div",{className:"flex items-center gap-3",children:[1,2,3].map(m=>M("label",{className:b(l.threshold===m),children:[C("input",{type:"radio",name:"threshold",value:m,checked:l.threshold===m,onChange:()=>c(x=>({...x,threshold:m})),className:"sr-only"}),m,"-of-3"]},m))})]}),C(i,{className:"my-4"}),M("section",{className:"mb-6",children:[M("h3",{className:"mb-3 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(Cl,{size:15})," Gas Fees"]}),C("div",{className:"space-y-2",children:Sl.map(m=>M("label",{className:b(l.paymasterType===m.value),children:[C("input",{type:"radio",name:"paymasterType",value:m.value,checked:l.paymasterType===m.value,onChange:()=>c(x=>({...x,paymasterType:m.value})),className:"h-4 w-4 text-primary accent-primary"}),M("div",{className:"flex-1",children:[C("div",{className:"text-sm font-medium text-foreground",children:m.label}),C("div",{className:"text-xs text-muted-foreground",children:m.description})]})]},m.value))}),l.paymasterType==="custom"&&C("div",{className:"mt-3",children:C("input",{type:"text",placeholder:"Custom Paymaster URL",value:l.customPaymasterUrl,onChange:m=>c(x=>({...x,customPaymasterUrl:m.target.value})),className:f})})]}),C(i,{className:"my-4"}),M("section",{className:"mb-6",children:[M("h3",{className:"mb-3 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(wl,{size:15})," Bundler"]}),C("div",{className:"space-y-2",children:Tl.map(m=>M("label",{className:b(l.bundlerPreset===m.value),children:[C("input",{type:"radio",name:"bundlerPreset",value:m.value,checked:l.bundlerPreset===m.value,onChange:()=>c(x=>({...x,bundlerPreset:m.value})),className:"h-4 w-4 text-primary accent-primary"}),M("div",{className:"flex-1",children:[C("div",{className:"text-sm font-medium text-foreground",children:m.label}),C("div",{className:"text-xs text-muted-foreground",children:m.description})]})]},m.value))}),l.bundlerPreset==="custom"&&C("div",{className:"mt-3",children:C("input",{type:"text",placeholder:"Custom Bundler URL",value:l.customBundlerUrl,onChange:m=>c(x=>({...x,customBundlerUrl:m.target.value})),className:f})})]}),M("div",{className:"flex items-center gap-3",children:[M(r,{className:"flex-1",onClick:h,children:[C(vl,{size:15}),p?"Saved \u2713":"Save Settings"]}),n&&M(r,{variant:"outline",onClick:n,children:[C(Cr,{size:15}),"\u2190 Back to Simple Mode"]})]})]})}import{AlertTriangle as El,CheckCircle as Al,ShieldAlert as Dl,X as Ml}from"lucide-react";import{useValidateDestination as Il}from"@naculus/connect-appkit-react";import{jsx as K,jsxs as be}from"react/jsx-runtime";var Ll={ok:{icon:K(Al,{size:20}),label:"No problem found",colorClass:"text-muted-foreground",bgClass:"bg-muted",buttonVariant:"default"},warning:{icon:K(El,{size:20}),label:"Warning",colorClass:"text-[hsl(var(--warning,38_92%_50%))]",bgClass:"bg-[hsl(var(--warning)/0.1)]",buttonVariant:"default"},blocked:{icon:K(Dl,{size:20}),label:"Blocked",colorClass:"text-destructive",bgClass:"bg-destructive/10",buttonVariant:"destructive"}};function zl({address:t,open:e,onClose:n,onProceed:o}){let r=B(),s=r.Button,a=r.Dialog,i=r.DialogContent,l=r.DialogHeader,c=r.DialogTitle,{validation:u}=Il({address:t}),{level:d,warning:p}=u,g=Ll[d],b=d==="blocked",f=t.length>12?`${t.slice(0,6)}...${t.slice(-4)}`:t,h=m=>y("inline-flex items-center justify-center whitespace-nowrap rounded-lg","text-sm font-medium transition-all duration-200","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50","h-10 px-4 py-2",m==="outline"&&"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",m==="destructive"&&"bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm",m==="default"&&"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm"),N=be("div",{className:"flex flex-col gap-4",children:[be("div",{className:y("flex items-center gap-3 rounded-lg p-4",g.bgClass),children:[K("span",{className:g.colorClass,children:g.icon}),be("div",{className:"flex flex-col gap-0.5",children:[K("span",{className:y("text-sm font-semibold",g.colorClass),children:g.label}),K("span",{className:"text-xs text-muted-foreground break-all font-mono",children:f})]})]}),p&&K("p",{className:"text-sm text-muted-foreground m-0",children:p}),be("div",{className:"flex gap-2 justify-end pt-2",children:[s?K(s,{onClick:n,variant:"outline",className:"w-full sm:w-auto",children:"Cancel"}):K("button",{type:"button",onClick:n,className:y(h("outline"),"w-full sm:w-auto"),children:"Cancel"}),o&&(s?K(s,{onClick:o,variant:b?"destructive":"default",disabled:b,className:"w-full sm:w-auto",children:"Proceed anyway"}):K("button",{type:"button",onClick:o,disabled:b,className:y(h(b?"destructive":"default"),"w-full sm:w-auto"),children:"Proceed anyway"}))]})]});return a&&i&&l&&c?K(a,{open:e,onOpenChange:m=>{m||n()},children:be(i,{className:"sm:max-w-md",children:[K(l,{children:K(c,{children:"Address Warning"})}),N]})}):e?be("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[K("div",{className:"absolute inset-0 bg-black/80","aria-hidden":"true",onClick:n}),be("div",{role:"dialog","aria-modal":"true",className:"relative z-10 w-full max-w-sm rounded-xl border bg-card text-card-foreground shadow-2xl p-6",children:[be("div",{className:"flex items-center justify-between mb-4",children:[K("h2",{className:"text-lg font-semibold m-0",children:"Address Warning"}),K("button",{onClick:n,type:"button",className:"rounded-md p-1 text-muted-foreground hover:text-foreground transition-colors","aria-label":"Close",children:K(Ml,{size:16})})]}),N]})]}):null}import{Wallet as Rr,AlertCircle as Wl}from"lucide-react";import{jsx as Y,jsxs as Se}from"react/jsx-runtime";function Vl({wallets:t,onSelect:e,loading:n=!1,error:o=null}){let s=B().Card,a=i=>s?Y(s,{className:"p-4",children:i}):Y("div",{className:"rounded-xl border bg-card text-card-foreground shadow-sm p-4",children:i});return n?a(Se("div",{className:"flex flex-col gap-3",children:[Array.from({length:3}).map((i,l)=>Se("div",{className:"flex items-center gap-3 p-3 rounded-lg animate-pulse",children:[Y("div",{className:"h-10 w-10 rounded-full bg-muted"}),Y("div",{className:"h-4 w-32 rounded bg-muted"})]},l)),Y("p",{className:"text-xs text-muted-foreground text-center m-0",children:"Detecting wallets..."})]})):o?a(Se("div",{className:"flex flex-col items-center gap-3 py-4",children:[Y(Wl,{size:24,className:"text-destructive"}),Y("p",{className:"text-sm text-destructive m-0 font-medium",children:o})]})):t.length===0?a(Se("div",{className:"flex flex-col items-center gap-3 py-6",children:[Y(Rr,{size:32,className:"text-muted-foreground"}),Se("p",{className:"text-sm text-muted-foreground m-0 text-center",children:["No wallets detected.",Y("br",{}),"Install a browser wallet extension to get started."]})]})):Y("div",{className:"flex flex-col gap-2",children:t.map(i=>Se("button",{type:"button",onClick:()=>e(i),className:y("flex items-center gap-3 w-full p-3 rounded-lg","border border-input bg-card hover:bg-accent hover:text-accent-foreground","transition-all duration-200 cursor-pointer","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"),children:[i.icon?Y("img",{src:i.icon,alt:i.name,className:"h-10 w-10 rounded-full object-cover shrink-0",onError:l=>{l.target.style.display="none"}}):Y("div",{className:"h-10 w-10 rounded-full bg-muted flex items-center justify-center shrink-0",children:Y(Rr,{size:18,className:"text-muted-foreground"})}),Se("div",{className:"flex flex-col items-start gap-0.5 text-left min-w-0",children:[Y("span",{className:"text-sm font-medium truncate w-full",children:i.name}),Y("span",{className:"text-xs text-muted-foreground truncate w-full",children:i.rdns})]})]},i.id))})}export{Et as AccountButton,di as AccountSelector,Go as AccountSelectorView,zl as AddressWarningDialog,dr as AppKit,ur as AppKitButton,mr as AppKitChainSelector,ze as ChainSelector,ye as ConnectButton,Xe as ErrorBoundary,Ii as PasskeySetup,or as PasskeySetupView,Pi as PassphraseDialog,Zo as PassphraseDialogView,Ye as QRCodeModal,al as RouteSelector,Je as SeedPhraseBackup,rn as SignInButton,Bl as SmartWalletSettings,yl as SmartWalletToggle,dn as ThemeProvider,St as WalletConnectProvider,Vl as WalletPicker,yi as WalletSecurityPanel,Xo as WalletSecurityPanelView,un as Web3ComponentProvider,et as Web3ConnectUI,y as cn,cr as useAppKit,Ga as useComponent,B as useComponentRegistry,Ka as useDetectionMode,Ue as useEIP6963,Oe as useIsMobile,Fo as useTheme,Wa as useThemeVariable,$r as useWalletConnect,Tt as useWalletConnectOptional};
|
|
11
|
+
}`}function za(t){let e=new Set;if(t!=="computed"||typeof document>"u")return e;for(let n of Object.keys(Le)){let o=Le[n],r=getComputedStyle(document.documentElement).getPropertyValue(o.name).trim();r&&r!==o.fallback&&e.add(n)}return e}function dn({children:t,theme:e={},defaultDark:n=!1,priority:o="fallback"}){let[r,s]=vt(e),[a,i]=vt(n);xt(()=>{cn()},[r]);let[l,c]=vt(new Set);xt(()=>{c(za(o))},[o]);let u=yt(()=>{if(o==="fallback"||l.size===0)return r;let f={};for(let[h,N]of Object.entries(r))!l.has(h)&&N&&(f[h]=N);return f},[r,o,l]),d=yt(()=>La(u),[u]);xt(()=>{if(typeof document>"u")return;let f=document.documentElement;a?f.classList.add("dark"):f.classList.remove("dark"),cn()},[a]);let m=yt(()=>"w3c-theme-"+Math.random().toString(36).slice(2,9),[]),g=Ia(()=>i(f=>!f),[]),b=yt(()=>({theme:r,isDark:a,setTheme:s,toggleDarkMode:g}),[r,a,g]);return Ha(_o.Provider,{value:b,children:[d?Va("style",{id:m,dangerouslySetInnerHTML:{__html:d}}):null,t]})}function Fo(){return Ma(_o)}function Wa(t){let{theme:e}=Fo(),[n,o]=vt("");return xt(()=>{let r=Le[t];if(!r)return;let s=e[t];if(s){o(s);return}if(typeof document>"u"){o(r.fallback);return}let a=getComputedStyle(document.documentElement).getPropertyValue(r.name).trim();o(a||r.fallback)},[t,e]),n||Le[t]?.fallback||""}import{jsx as Ze}from"react/jsx-runtime";var Ko=Ua({mode:"walletconnect"});function Ka(){return Oa(Ko)}function et({config:t,children:e,autoConnect:n=!1,detectionMode:o="walletconnect",theme:r,defaultDark:s=!1,themePriority:a="computed"}){let i=_a(()=>({mode:o}),[o]),l=o==="walletconnect"||o==="auto";return Ze(Ko.Provider,{value:i,children:Ze(dn,{theme:r,defaultDark:s,priority:a,children:Ze(un,{components:{QRCodeModal:Ye},children:Ze(Fa,{config:t,autoConnect:n,children:l?Ze(St,{children:e}):e})})})})}import{jsx as jo}from"react/jsx-runtime";function $a({className:t,variant:e,size:n,...o}){let r=["inline-flex items-center justify-center gap-2 rounded-lg border px-4 py-2","text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50",e==="outline"?"border-input bg-transparent hover:bg-accent":"border-primary bg-primary text-primary-foreground hover:bg-primary/90",n==="sm"?"h-9 px-3":n==="icon"?"h-10 w-10 p-0":"h-10",t].filter(Boolean).join(" ");return jo("button",{type:"button",className:r,...o})}var mn={Button:$a,ConnectButton:ye,AccountButton:Et,ChainSelector:ze,QRCodeModal:Ye,SignInButton:rn,SeedPhraseBackup:Je,ErrorBoundary:Xe,Web3ConnectUI:et},qo=qa({});function un({children:t,components:e={}}){let n=Qa(()=>({...mn,...e}),[e]);return jo(qo.Provider,{value:n,children:t})}function B(){return ja(qo)}function Ga(t){return B()[t]}import{jsx as G,jsxs as ke}from"react/jsx-runtime";function Qo(t){let e=t&&typeof t=="object"&&"details"in t?t.details:void 0,n=e instanceof Error?`${e.name}: ${e.message}`:e;Ja.error("ui/ChainSelector","switchChain failed",t,n)}function tt({chainId:t,className:e}){let n=at(t);return n?G("span",{className:y("inline-flex items-center justify-center shrink-0",e),dangerouslySetInnerHTML:{__html:n}}):null}function ze({className:t,showLabel:e=!0,variant:n="dropdown"}){let{currentChain:o,availableChains:r,switchChain:s,isEvm:a}=ti(),{isConnected:i}=ni(),[l,c]=Xa(!1),d=B().Button,m=Za(null);if(ei(()=>{function f(h){m.current&&!m.current.contains(h.target)&&c(!1)}return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[]),!i)return null;let g=o?.name??"Unknown Chain",b=r.length>1;return n==="minimal"?ke("div",{className:y("inline-flex items-center gap-1.5 text-xs text-muted-foreground",t),children:[o&&G(tt,{chainId:o.caip2,className:"h-3.5 w-3.5"}),g]}):n==="buttons"?G("div",{className:y("flex flex-wrap gap-2",t),children:r.map(f=>{let h=f.caip2,N=h===o?.caip2;return ke(d,{className:N?y("bg-accent","border-primary"):"",onClick:()=>{N||s(h).catch(Qo)},children:[G(tt,{chainId:h,className:"h-4 w-4"}),f.name,f.token&&G("span",{className:"text-xs opacity-60",children:f.token})]},h)})}):b?ke("div",{ref:m,className:y("relative inline-block",t),children:[ke(d,{onClick:()=>c(!l),children:[o&&G(tt,{chainId:o.caip2,className:"h-4 w-4"}),g,G("svg",{className:y("h-3 w-3 transition-transform",l&&"rotate-180"),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:G("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),l&&ke("div",{className:"absolute left-0 top-full mt-1 z-50 min-w-[180px] rounded-lg border bg-card p-1 shadow-lg animate-in fade-in zoom-in-95 duration-200",children:[e&&G("div",{className:"px-2 py-1.5 text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Switch Network"}),r.map(f=>{let h=f.caip2,N=h===o?.caip2;return ke(d,{onClick:()=>{N||s(h).catch(Qo),c(!1)},className:y("flex w-full items-center gap-2 rounded-md px-2 py-2 text-sm transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",N?"bg-accent font-medium":"hover:bg-accent/50"),children:[G(tt,{chainId:h,className:"h-4 w-4"}),G("span",{className:"flex-1 text-left",children:f.name}),f.token&&G("span",{className:"text-xs text-muted-foreground",children:f.token}),N&&G("svg",{className:"h-4 w-4 text-primary",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:G("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})]},h)})]})]}):ke("div",{className:y("inline-flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm opacity-60 cursor-default",t),children:[o&&G(tt,{chainId:o.caip2,className:"h-4 w-4"}),g]})}import{useEmbeddedWallet as oi}from"@naculus/connect-appkit-react";import{Check as $o,Copy as ri,Loader2 as si,Plus as ai}from"lucide-react";import{useCallback as pn,useState as fn}from"react";import{jsx as J,jsxs as We}from"react/jsx-runtime";var ii={eip155:{name:"Ethereum & EVM",detail:"One address across Ethereum, Polygon, Arbitrum and every EVM chain"},solana:{name:"Solana",detail:"A separate key on a different curve"}};function li(t){return t.length<=12?t:`${t.slice(0,6)}...${t.slice(-4)}`}function ci({account:t,isActive:e,onSelect:n}){let[o,r]=fn(!1),s=ii[t.namespace]??{name:t.namespace,detail:""},a=pn(i=>{i.stopPropagation();let l=navigator?.clipboard?.writeText;l&&l.call(navigator.clipboard,t.address).then(()=>{r(!0),setTimeout(()=>r(!1),1500)},()=>{})},[t.address]);return We("div",{role:"radio",tabIndex:0,"aria-checked":e,onClick:n,onKeyDown:i=>{i.target===i.currentTarget&&(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),n())},className:y("flex w-full items-center gap-3 rounded-md border px-3 py-2.5 text-left text-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e?"border-primary bg-accent":"border-border hover:bg-accent/50"),children:[We("span",{className:"flex min-w-0 flex-1 flex-col",children:[We("span",{className:"flex items-center gap-2 font-medium",children:[s.name,e&&J("span",{className:"rounded-sm bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-primary",children:"Signing"})]}),J("span",{className:"truncate font-mono text-xs text-muted-foreground",children:li(t.address)})]}),J("button",{type:"button","aria-label":`Copy ${s.name} address`,onClick:a,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground",children:o?J($o,{size:14}):J(ri,{size:14})}),e&&J($o,{size:16,className:"shrink-0 text-primary"})]})}function Go({className:t,hideBackfill:e=!1,onSelect:n,accounts:o,activeNamespace:r,canDerive:s,setActiveNamespace:a,backfillAccounts:i}){let[l,c]=fn(!1),[u,d]=fn(null),m=pn(f=>{if(f!==r)try{a(f),d(null),n?.(f)}catch(h){d(h instanceof Error?h.message:"Could not switch account")}},[r,a,n]),g=pn(async()=>{c(!0),d(null);try{await i()}catch(f){d(f instanceof Error?f.message:"Could not derive accounts")}finally{c(!1)}},[i]);if(o.length===0)return null;let b=!e&&s;return We("div",{className:y("flex flex-col gap-2",t),children:[We("div",{className:"flex items-baseline justify-between",children:[J("span",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"Accounts"}),J("span",{className:"text-[11px] text-muted-foreground",children:"Chooses the signing key, not the network"})]}),J("div",{role:"radiogroup","aria-label":"Wallet accounts",className:"flex flex-col gap-1.5",children:o.map(f=>J(ci,{account:f,isActive:f.namespace===r,onSelect:()=>m(f.namespace)},f.namespace))}),b&&We("button",{type:"button",onClick:g,disabled:l,className:y("flex items-center justify-center gap-2 rounded-md border border-dashed border-border px-3 py-2 text-xs text-muted-foreground","hover:bg-accent/50 disabled:opacity-60"),children:[l?J(si,{size:14,className:"animate-spin"}):J(ai,{size:14}),l?"Deriving\u2026":"Show accounts this phrase already owns"]}),u&&J("p",{role:"alert",className:"text-xs text-destructive",children:u})]})}function di(t){let{wallet:e,accounts:n,activeNamespace:o,setActiveNamespace:r,backfillAccounts:s}=oi();return e?J(Go,{...t,accounts:n,activeNamespace:o,canDerive:e.recoveryAvailable&&n.length<2,setActiveNamespace:r,backfillAccounts:s}):null}import{AlertTriangle as ui,Info as Jo,ShieldAlert as mi,ShieldCheck as pi}from"lucide-react";import{useEmbeddedWallet as fi}from"@naculus/connect-appkit-react";import{jsx as te,jsxs as oe}from"react/jsx-runtime";var gi={critical:mi,warning:ui,info:Jo},hi={critical:"text-destructive",warning:"text-amber-600 dark:text-amber-500",info:"text-muted-foreground"};function Yo(t){return t>=90?"text-emerald-600 dark:text-emerald-500":t>=70?"text-amber-600 dark:text-amber-500":"text-destructive"}function bi({finding:t}){let e=gi[t.severity]??Jo;return oe("li",{className:"flex gap-2.5 rounded-md border border-border px-3 py-2.5",children:[te(e,{size:16,className:y("mt-0.5 shrink-0",hi[t.severity])}),oe("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[oe("div",{className:"flex items-baseline justify-between gap-2",children:[te("span",{className:"text-sm font-medium",children:t.title}),t.deduction>0&&oe("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:["\u2212",t.deduction]})]}),te("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.detail}),t.remedy&&oe("p",{className:"text-xs leading-relaxed",children:[te("span",{className:"font-medium",children:"What helps: "}),te("span",{className:"text-muted-foreground",children:t.remedy})]})]})]})}function Xo({className:t,hideInformational:e=!1,report:n}){if(!n)return null;let{score:o,level:r,findings:s,encrypted:a,backend:i,unlock:l}=n,c=e?s.filter(d=>d.deduction>0):s,u=s.every(d=>d.deduction===0);return oe("div",{className:y("flex flex-col gap-3",t),children:[oe("div",{className:"flex items-center gap-3 rounded-lg border border-border px-4 py-3",children:[te(pi,{size:22,className:y("shrink-0",Yo(o))}),oe("div",{className:"flex min-w-0 flex-1 flex-col",children:[oe("div",{className:"flex items-baseline gap-2",children:[te("span",{className:y("text-2xl font-semibold tabular-nums",Yo(o)),children:o}),te("span",{className:"text-sm text-muted-foreground",children:"/ 100"}),oe("span",{className:"ml-auto text-xs text-muted-foreground",children:["Tier ",r]})]}),oe("span",{className:"text-xs text-muted-foreground",children:[i==="localStorage"?"localStorage":"IndexedDB",a?" \xB7 encrypted":" \xB7 not encrypted",l.sealedWith?.includes("prf")?" \xB7 passkey":""]})]})]}),u?te("p",{className:"text-xs text-muted-foreground",children:"Nothing is holding this score down."}):te("p",{className:"text-xs text-muted-foreground",children:"Scored against this SDK's own published rubric, not an external standard. Each item below names the points it costs."}),te("ul",{className:"flex flex-col gap-1.5",children:c.map(d=>te(bi,{finding:d},d.id))})]})}function yi(t){let{securityReport:e}=fi();return te(Xo,{...t,report:e})}import{useCallback as xi,useEffect as vi,useRef as Ci,useState as gn}from"react";import{Eye as wi,EyeOff as Ni,KeyRound as ki,ShieldAlert as Ri}from"lucide-react";import{usePassphraseGate as Si}from"@naculus/connect-appkit-react";import{jsx as U,jsxs as he}from"react/jsx-runtime";var hn=8,Ti=12;function Zo({className:t,request:e,submit:n,cancel:o}){let[r,s]=gn(""),[a,i]=gn(""),[l,c]=gn(!1),u=Ci(null),d=e?.intent==="create";vi(()=>{if(!e){s(""),i(""),c(!1);return}s(""),i(""),u.current?.focus()},[e]);let m=d&&r.length>0&&r.length<hn,g=d&&a.length>0&&a!==r,b=d?r.length>=hn&&a===r:r.length>0,f=xi(h=>{h.preventDefault(),b&&n(r)},[b,n,r]);return e?U("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",role:"presentation",children:he("form",{role:"dialog","aria-modal":"true","aria-label":d?"Choose a passphrase":"Unlock your wallet",onSubmit:f,className:y("flex w-full max-w-sm flex-col gap-4 rounded-lg border border-border bg-card p-5 shadow-lg",t),children:[he("div",{className:"flex items-center gap-2",children:[U(ki,{size:18,className:"shrink-0 text-primary"}),U("h2",{className:"text-base font-semibold",children:d?"Choose a passphrase":"Unlock your wallet"})]}),e.previousError&&U("p",{role:"alert",className:"rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive",children:e.previousError}),U("p",{className:"text-xs leading-relaxed text-muted-foreground",children:d?"This encrypts your wallet on this device. Without it, anything that can run script on this page can read your keys.":"Your wallet is encrypted on this device. Enter the passphrase you chose to open it."}),he("label",{className:"flex flex-col gap-1.5",children:[U("span",{className:"text-xs font-medium",children:"Passphrase"}),he("span",{className:"relative flex items-center",children:[U("input",{ref:u,type:l?"text":"password",value:r,onChange:h=>s(h.target.value),autoComplete:d?"new-password":"current-password",autoFocus:!0,className:"w-full rounded-md border border-border bg-background px-3 py-2 pr-9 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"}),U("button",{type:"button","aria-label":l?"Hide passphrase":"Show passphrase",onClick:()=>c(h=>!h),className:"absolute right-2 text-muted-foreground hover:text-foreground",children:l?U(Ni,{size:15}):U(wi,{size:15})})]})]}),d&&he("label",{className:"flex flex-col gap-1.5",children:[U("span",{className:"text-xs font-medium",children:"Type it again"}),U("input",{type:l?"text":"password",value:a,onChange:h=>i(h.target.value),autoComplete:"new-password",className:"w-full rounded-md border border-border bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"})]}),m&&he("p",{role:"alert",className:"text-xs text-destructive",children:["At least ",hn," characters."]}),g&&U("p",{role:"alert",className:"text-xs text-destructive",children:"These do not match."}),d&&!m&&r.length>0&&r.length<Ti&&U("p",{className:"text-xs text-muted-foreground",children:"Short. Several ordinary words are far harder to guess than a short one with symbols in it."}),d&&he("p",{className:"flex gap-2 rounded-md bg-amber-500/10 px-3 py-2 text-xs leading-relaxed text-amber-700 dark:text-amber-500",children:[U(Ri,{size:14,className:"mt-0.5 shrink-0"}),U("span",{children:"If you forget this, nothing can open this copy of the wallet \u2014 not us, not your browser. Your recovery phrase is the only thing that gets it back."})]}),he("div",{className:"flex justify-end gap-2 pt-1",children:[U("button",{type:"button",onClick:()=>o(),className:"rounded-md border border-border px-3 py-2 text-sm hover:bg-accent",children:"Cancel"}),U("button",{type:"submit",disabled:!b,className:"rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50",children:d?"Encrypt wallet":"Unlock"})]})]})}):null}function Pi(t){let{request:e,submit:n,cancel:o}=Si();return U(Zo,{...t,request:e,submit:n,cancel:o})}import{useCallback as nr,useState as bn}from"react";import{Fingerprint as er,Loader2 as Bi,ShieldAlert as tr,ShieldCheck as Ei,TriangleAlert as Ai}from"lucide-react";import{useEmbeddedWallet as Di,useWeb3 as Mi}from"@naculus/connect-appkit-react";import{Fragment as Li,jsx as X,jsxs as Ve}from"react/jsx-runtime";function or({className:t,passkeys:e,unlock:n,onRegistered:o}){let[r,s]=bn(!1),[a,i]=bn(null),[l,c]=bn(!1),u=!!e?.hasCredential?.()||l,d=nr(async()=>{if(e){s(!0),i(null);try{await e.createPasskey(),c(!0),await o?.()}catch(f){i(f instanceof Error?f.message:"Could not register a passkey")}finally{s(!1)}}},[e,o]);if(!e)return null;let m=n?.sealedWith?.includes("prf")??!1,g=null;if(u)switch(n?.prf){case"available":g=m?{tone:"good",icon:X(Ei,{size:16}),title:"Your passkey unlocks this wallet",detail:"Opening it needs your fingerprint or face, not a value a script on this page can supply."}:{tone:"warn",icon:X(Ai,{size:16}),title:"Registered, but not applied yet",detail:"This device can produce the key material. The next time the wallet is saved, the record is sealed under it."};break;case"unavailable":g={tone:"bad",icon:X(tr,{size:16}),title:"This passkey cannot unlock the wallet",detail:"The authenticator did not return the key material. Firefox does not implement the extension, and a passkey created before it was requested cannot have it added afterwards \u2014 a new one has to be registered on a browser that supports it."};break;default:g={tone:"neutral",icon:X(er,{size:16}),title:"A passkey is registered",detail:"Whether it can unlock this wallet is not known until the wallet is opened once. It will be used if it works."};break}let b={good:"text-emerald-600 dark:text-emerald-500",warn:"text-amber-600 dark:text-amber-500",bad:"text-destructive",neutral:"text-muted-foreground"};return Ve("div",{className:y("flex flex-col gap-3",t),children:[g?Ve("div",{className:"flex gap-2.5 rounded-md border border-border px-3 py-2.5",children:[X("span",{className:y("mt-0.5 shrink-0",b[g.tone]),children:g.icon}),Ve("div",{className:"flex min-w-0 flex-col gap-1",children:[X("span",{className:"text-sm font-medium",children:g.title}),X("p",{className:"text-xs leading-relaxed text-muted-foreground",children:g.detail})]})]}):Ve(Li,{children:[X("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"A passkey raises what it takes to read your stored keys from \u201Cany script on this page\u201D to your fingerprint or face. The passphrase keeps working, so a broken or replaced authenticator does not cost you this copy."}),Ve("p",{className:"flex gap-2 rounded-md bg-amber-500/10 px-3 py-2 text-xs leading-relaxed text-amber-700 dark:text-amber-500",children:[X(tr,{size:14,className:"mt-0.5 shrink-0"}),X("span",{children:"This protects the copy on this device. It does not back up your wallet \u2014 the recovery phrase is still the only thing that survives losing this device."})]}),Ve("button",{type:"button",onClick:d,disabled:r,className:"flex items-center justify-center gap-2 rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground disabled:opacity-60",children:[r?X(Bi,{size:15,className:"animate-spin"}):X(er,{size:15}),r?"Waiting for your device\u2026":"Protect with a passkey"]})]}),a&&X("p",{role:"alert",className:"text-xs text-destructive",children:a})]})}function Ii(t){let{client:e}=Mi(),{securityReport:n,hasWallet:o}=Di(),r=nr(async()=>{let s=e?.embeddedConnector;s&&o&&await s.save()},[e,o]);return X(or,{...t,passkeys:e?.passkeysConnector??null,unlock:n?.unlock,onRegistered:r})}import{useAccount as sr,useBalance as zi,useChain as Wi,useDisconnect as ar,useEmbeddedWallet as Vi,useWallet as Hi,useWeb3 as Ui}from"@naculus/connect-appkit-react";import{createContext as Oi,useCallback as nt,useContext as _i,useEffect as Fi,useMemo as ir,useState as rr}from"react";import{jsx as Re,jsxs as pr}from"react/jsx-runtime";var lr=Oi(null);function cr(){let t=_i(lr);if(!t)throw new Error("useAppKit must be used within an <AppKit> component");return t}function dr({projectId:t,metadata:e,enableEmbedded:n=!1,enablePasskeys:o=!1,chains:r,embeddedConfig:s,encryptionKey:a,siwx:i,children:l,className:c,autoConnect:u=!1,theme:d,defaultDark:m=!1,themePriority:g="computed",detectionMode:b="auto"}){let[f,h]=rr(!1),[N,p]=rr(!1),x=ir(()=>({projectId:t,metadata:e,enableEmbedded:n,enablePasskeys:o,chains:r,embeddedConfig:s,encryptionKey:a,siwx:i}),[t,e,n,o,r,s,a,i]);return Re(et,{config:x,autoConnect:u,detectionMode:b,theme:d,defaultDark:m,themePriority:g,children:Re(Ki,{className:c,open:f,setOpen:h,backupOpen:N,setBackupOpen:p,children:l})})}function Ki({children:t,className:e,open:n,setOpen:o,backupOpen:r,setBackupOpen:s}){let{isConnected:a,isConnecting:i}=Hi(),{primaryAccount:l}=sr(),{currentChain:c,availableChains:u,switchChain:d}=Wi(),m=Vi(),{disconnect:g}=ar(),{wallets:b,hasWallets:f}=Ue(),{formatted:h}=zi(),N=h??null,p=nt(async()=>{await g()},[g]),x=nt(()=>{m.confirmBackup(),s(!1)},[m,s]),T=nt(()=>{m.confirmBackup(),s(!1)},[m,s]),S=nt(()=>m.getPrivateKey(),[m]),O=ir(()=>({connect:()=>o(!0),disconnect:p,isConnected:a,isConnecting:i,address:l,balance:N,balanceSymbol:c?.token??null,chainName:c?.name??null,availableChains:u.map(D=>({caip2:D.caip2,name:D.name,token:D.token})),switchChain:d,wallets:b,hasWallets:f,backupPending:m.backupPending,seedPhrase:m.seedPhrase,confirmBackup:x,skipBackup:T,open:n,setOpen:o}),[a,i,l,N,c,u,d,b,f,m.backupPending,m.seedPhrase,x,T,p,n,o]);return Fi(()=>{m.seedPhrase&&m.backupPending&&s(!0)},[m.seedPhrase,m.backupPending,s]),pr(lr.Provider,{value:O,children:[t,m.seedPhrase&&r&&Re(Je,{seedPhrase:m.seedPhrase,onConfirm:x,onSkip:T,onExportPrivateKey:S,open:r,onOpenChange:s})]})}function ur({className:t}){let e=cr(),{connectInjected:n}=Ui(),{primaryAccount:o}=sr(),{disconnect:r}=ar(),s=nt(async(a,i,l)=>{a==="injected"&&(await n(l),i())},[n]);return e.isConnected&&o?pr("div",{className:y("inline-flex items-center gap-2",t),children:[Re(ze,{variant:"minimal"}),Re(ye,{isConnected:e.isConnected,address:o,balance:e.balance,balanceSymbol:e.balanceSymbol??void 0,onDisconnect:r,onConnect:s,className:t})]}):Re(ye,{isConnected:e.isConnected,isConnecting:e.isConnecting,address:o,balance:e.balance,balanceSymbol:e.balanceSymbol??void 0,onDisconnect:r,onConnect:s,className:t})}function mr({className:t,variant:e="dropdown"}){return Re(ze,{className:t,variant:e})}try{let t=mn;t&&Object.assign(t,{AppKit:dr,AppKitButton:ur,AppKitChainSelector:mr})}catch{}import{ArrowRight as qi,CheckCircle2 as ji,Clock as Qi,DollarSign as $i,Loader2 as br,XCircle as Gi,AlertCircle as Yi}from"lucide-react";import{Fragment as hr,jsx as v,jsxs as z}from"react/jsx-runtime";function Ji(t){if(t<1e3)return"<1s";if(t<6e4)return`~${Math.round(t/1e3)}s`;let e=Math.floor(t/6e4),n=Math.round(t%6e4/1e3);return n>0?`~${e}m ${n}s`:`~${e}m`}function fr(t){return t.symbol||"UNKNOWN"}function Xi(t){let e=t.toLowerCase();return e.includes("lifi")?"default":e.includes("axelar")?"secondary":"outline"}function Zi(t){return t.length>12?`${t.slice(0,6)}...${t.slice(-6)}`:t}function el({route:t,onSelect:e}){let n=B(),o=n.Button,r=n.Badge,s=t.provider??"Route";return z("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-4 transition-colors hover:bg-accent/30",children:[z("div",{className:"flex flex-col gap-1.5 min-w-0",children:[z("div",{className:"flex items-center gap-2",children:[r?v(r,{variant:Xi(s),children:s}):v("span",{className:"inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-medium",children:s}),t.steps.length>1&&z("span",{className:"text-xs text-muted-foreground",children:[t.steps.length," steps"]})]}),z("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-sm",children:[z("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[v($i,{className:"h-3.5 w-3.5"}),"$",t.gasCosts.totalUsd]}),z("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[v(Qi,{className:"h-3.5 w-3.5"}),Ji(t.steps.reduce((a,i)=>{let l=t.estimatedTime>0?15e3:0;return a+l},0))]}),z("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[t.gasCosts.totalUsd," cost"]})]})]}),v(o,{variant:"outline",size:"sm",onClick:e,children:"Select"})]})}function tl(){let e=B().Skeleton;return z("div",{className:"flex flex-col gap-3","data-testid":"route-selector-loading",children:[z("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[v(br,{className:"h-4 w-4 animate-spin"}),v("span",{children:"Fetching best routes..."})]}),[1,2,3].map(n=>z("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-4",children:[v("div",{className:"flex flex-col gap-2 flex-1",children:e?z(hr,{children:[v(e,{className:"h-4 w-24"}),v(e,{className:"h-3 w-48"})]}):z(hr,{children:[v("div",{className:"h-4 w-24 animate-pulse rounded bg-muted"}),v("div",{className:"h-3 w-48 animate-pulse rounded bg-muted"})]})}),e?v(e,{className:"h-8 w-20 rounded-md"}):v("div",{className:"h-8 w-20 animate-pulse rounded-md bg-muted"})]},n))]})}function nl(){return z("div",{className:"flex flex-col items-center justify-center gap-2 py-8 text-sm text-muted-foreground","data-testid":"route-selector-empty",children:[v(Yi,{className:"h-8 w-8 opacity-40"}),v("span",{children:"No routes found for this pair"}),v("span",{className:"text-xs",children:"Try a different token or amount"})]})}function ol({error:t,onRetry:e}){let o=B().Button;return z("div",{className:"flex flex-col items-center justify-center gap-2 py-6","data-testid":"route-selector-error",children:[v(Gi,{className:"h-8 w-8 text-destructive"}),v("p",{className:"text-sm text-destructive font-medium",children:"Failed to fetch routes"}),v("p",{className:"text-xs text-muted-foreground max-w-xs text-center",children:t}),e&&v(o,{variant:"outline",size:"sm",onClick:e,children:"Retry"})]})}function rl(){let e=B().Progress;return z("div",{className:"flex flex-col items-center gap-3 py-6","data-testid":"route-selector-executing",children:[v(br,{className:"h-6 w-6 animate-spin text-primary"}),v("p",{className:"text-sm font-medium",children:"Executing route..."}),v("p",{className:"text-xs text-muted-foreground",children:"Please confirm the transaction in your wallet"}),e?v(e,{value:50,className:"w-48 h-1.5"}):v("div",{className:"h-1.5 w-48 rounded-full bg-muted",children:v("div",{className:"h-full w-1/2 rounded-full bg-primary animate-pulse"})})]})}function sl({txHash:t}){return z("div",{className:"flex flex-col items-center gap-2 py-6","data-testid":"route-selector-success",children:[v(ji,{className:"h-8 w-8 text-green-500"}),v("p",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:"Route executed successfully!"}),z("p",{className:"text-xs text-muted-foreground font-mono",children:["TX: ",Zi(t)]})]})}function gr({chainId:t,className:e}){let n=at(`eip155:${t}`);return n?v("span",{className:y("inline-flex items-center justify-center shrink-0",e),dangerouslySetInnerHTML:{__html:n}}):null}function al({inputToken:t,outputToken:e,amount:n,routes:o=[],loading:r=!1,executing:s=!1,onRouteSelected:a,onCancel:i,successTxHash:l,error:c,className:u}){let d=B(),m=d.Card,g=d.Button;if(l)return v("div",{className:y("rounded-lg border border-border",u),children:v(sl,{txHash:l})});if(s)return v("div",{className:y("rounded-lg border border-border",u),children:v(rl,{})});return m?z(m,{className:y("p-4",u),children:[f(),h(),N()]}):z("div",{className:y("rounded-lg border border-border p-4",u),children:[f(),h(),N()]});function f(){return!t&&!e?null:z("div",{className:"mb-4 flex flex-wrap items-center gap-2 text-sm",children:[t&&z("span",{className:"inline-flex items-center gap-1.5 font-medium",children:[v(gr,{chainId:t.chainId,className:"h-4 w-4"}),n?`${n.toString()} `:"",fr(t)]}),t&&e&&v(qi,{className:"h-3.5 w-3.5 text-muted-foreground"}),e&&z("span",{className:"inline-flex items-center gap-1.5 font-medium",children:[v(gr,{chainId:e.chainId,className:"h-4 w-4"}),fr(e)]})]})}function h(){return r?v(tl,{}):c?v(ol,{error:c}):o.length===0?v(nl,{}):v("div",{className:"flex flex-col gap-2","data-testid":"route-selector-routes",children:o.map((p,x)=>v(el,{route:p,onSelect:()=>a?.(p)},`${p.fromChain}-${p.toChain}-${p.gasCosts.totalUsd}-${x}`))})}function N(){return!r&&o.length===0&&!c?null:v("div",{className:"mt-4 flex justify-end",children:v(g,{variant:"ghost",size:"sm",onClick:i,children:"Cancel"})})}}import il from"react";import{Shield as ll,ShieldCheck as yr,LoaderCircle as cl,Settings as dl,ChevronRight as ul,AlertCircle as ml,RotateCcw as pl,CheckCircle2 as fl,Fuel as xr,Zap as gl,RefreshCw as hl}from"lucide-react";import{Fragment as xl,jsx as R,jsxs as W}from"react/jsx-runtime";function bl(t){let e=Number(t)/1e18;return e<.001?`~${e.toFixed(6)} ETH`:`~${e.toFixed(3)} ETH`}function yl({isDeployed:t=!1,isDeploying:e=!1,estimatedGas:n,error:o=null,onUpgrade:r,onShowSettings:s,onRetry:a}){let i=B(),l=i.Button,c=i.Card,u=i.Badge,d=s?W(l,{variant:"outline",className:"w-full",onClick:s,children:[R(dl,{size:15})," Advanced Settings ",R(ul,{size:14,className:"text-muted-foreground"})]}):null;return t?W(c,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:[R("div",{className:"flex items-start justify-between",children:W("div",{className:"flex items-center gap-3",children:[R("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-green-500/10",children:R(yr,{size:22,className:"text-green-500"})}),W("div",{children:[W("div",{className:"flex items-center gap-2",children:[R("span",{className:"text-base font-semibold text-foreground",children:"Smart Wallet"}),W(u,{variant:"secondary",className:"rounded-full bg-green-500/10 px-2 py-0 text-xs font-medium text-green-500",children:[R(fl,{size:12,className:"mr-0.5 inline"})," Deployed"]})]}),R("p",{className:"mt-0.5 text-sm text-muted-foreground",children:"Your wallet has been upgraded to a smart wallet"})]})]})}),R("div",{className:"mt-4 grid grid-cols-2 gap-3",children:[[xr,"Gas Sponsorship","Enabled"],[hl,"Recovery","Enabled"]].map(([m,g,b],f)=>W("div",{className:"rounded-lg bg-muted/50 p-3",children:[W("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[il.createElement(m,{size:14}),R("span",{children:g})]}),R("div",{className:"mt-1 text-sm font-medium text-foreground",children:b})]},f))}),s&&R("div",{className:"mt-4",children:d})]}):e?R(c,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:W("div",{className:"flex flex-col items-center text-center",children:[R("div",{className:"mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-primary/10",children:R(cl,{size:28,className:"animate-spin text-primary"})}),R("h3",{className:"mb-1 text-base font-semibold text-foreground",children:"Deploying Smart Wallet..."}),R("p",{className:"mb-4 text-sm text-muted-foreground",children:"Please wait, contract deployment may take a few seconds"}),R("div",{className:"h-2 w-full max-w-[200px] overflow-hidden rounded-full bg-muted",children:R("div",{className:"h-full w-full animate-pulse rounded-full bg-primary",style:{animationDuration:"1.5s"}})})]})}):o?W(c,{className:"w-full rounded-xl border border-destructive/30 bg-destructive/5 p-5 shadow-sm",children:[W("div",{className:"flex items-start gap-3",children:[R("div",{className:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-destructive/10",children:R(ml,{size:18,className:"text-destructive"})}),W("div",{className:"min-w-0 flex-1",children:[R("h4",{className:"text-sm font-semibold text-destructive",children:"Deployment Failed"}),R("p",{className:"mt-1 text-xs text-destructive/80 break-words",children:o}),a&&W(l,{variant:"outline",size:"sm",className:"mt-3 border-destructive/30 text-destructive hover:bg-destructive/10",onClick:a,children:[R(pl,{size:13})," Retry"]})]})]}),s&&R("div",{className:"mt-3",children:d})]}):W(c,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:[W("div",{className:"flex items-center gap-3",children:[R("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-amber-500/10",children:R(ll,{size:20,className:"text-amber-500"})}),W("div",{children:[W("div",{className:"flex items-center gap-2",children:[R("span",{className:"text-base font-semibold text-foreground",children:"Smart Wallet"}),R("span",{className:"rounded-full bg-muted px-2 py-0.5 text-[11px] font-medium text-muted-foreground",children:"Not Upgraded"})]}),R("p",{className:"mt-0.5 text-sm text-muted-foreground",children:"Upgrade to a smart wallet for more features"})]})]}),W("div",{className:"mt-4 space-y-2",children:[R(yn,{icon:gl,color:"text-green-500",text:"No ETH needed for transactions \u2014 pay gas with USDC/USDT"}),R(yn,{icon:xr,color:"text-blue-500",text:"Optional dApp sponsorship, zero-cost transactions"}),R(yn,{icon:yr,color:"text-purple-500",text:"Secure recovery mechanism, no fear of losing keys"})]}),r&&W(l,{className:"mt-4 w-full",onClick:r,children:["Upgrade Now",n!==void 0&&W("span",{className:"ml-1 text-xs opacity-80",children:["(Estimated gas fee: ",bl(n),")"]})]}),s&&W(xl,{children:[W("div",{className:"mt-4 mb-3 flex items-center gap-2",children:[R("div",{className:"h-px flex-1 bg-border"}),R("span",{className:"text-xs text-muted-foreground",children:"or"}),R("div",{className:"h-px flex-1 bg-border"})]}),d]})]})}function yn({icon:t,color:e,text:n}){return W("div",{className:"flex items-center gap-2.5 text-sm text-foreground/80",children:[R(t,{size:14,className:`shrink-0 ${e}`}),R("span",{children:n})]})}import{useState as xn,useCallback as vr}from"react";import{ArrowLeft as Cr,Save as vl,Shield as wr,Users as Nr,KeyRound as kr,Fuel as Cl,Wrench as wl,Plus as Nl,X as kl}from"lucide-react";import{jsx as C,jsxs as M}from"react/jsx-runtime";var Rl=[{value:"simple",label:"Single Sign (default)",description:"Single key control, simple and secure",icon:C(wr,{size:16})},{value:"multi-sig",label:"Multi-Sign (2-of-3)",description:"Requires multiple signers to authorize transactions",icon:C(Nr,{size:16})},{value:"social-recovery",label:"Social Recovery",description:"Set guardian accounts to help recover",icon:C(kr,{size:16})}],Sl=[{value:"self",label:"Pay Self (ETH)",description:"Pay gas fees with ETH"},{value:"sponsor",label:"Sponsored by dApp",description:"dApp covers your gas fees"},{value:"erc20",label:"Pay with USDC/USDT",description:"Use ERC-20 tokens for gas"},{value:"custom",label:"Custom Paymaster URL",description:"Use a custom paymaster service"}],Tl=[{value:"pimlico",label:"Pimlico",description:"High-performance bundler service"},{value:"stackup",label:"Stackup",description:"Decentralized bundler network"},{value:"alchemy",label:"Alchemy",description:"Alchemy AA infrastructure"},{value:"custom",label:"Custom Bundler URL",description:"Use custom bundler endpoint"}];function Pl(){return{accountType:"simple",paymasterType:"self",customPaymasterUrl:"",bundlerPreset:"pimlico",customBundlerUrl:"",guardians:[],threshold:2}}function Bl({currentConfig:t,onSave:e,onBack:n}){let o=B(),r=o.Button,s=o.Input,a=o.Card,i=o.Separator,[l,c]=xn({...Pl(),...t}),[u,d]=xn(""),[m,g]=xn(!1),b=p=>y("flex cursor-pointer items-center gap-3 rounded-lg border px-4 py-3 transition-all duration-200",p?"border-primary bg-primary/5":"border-border hover:bg-accent"),f="w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground outline-none focus:border-ring focus:ring-2 focus:ring-ring focus:ring-offset-2 transition-all duration-200",h=vr(()=>{e?.(l),g(!0),setTimeout(()=>g(!1),2e3)},[l,e]),N=vr(()=>{let p=u.trim();!p||l.guardians.includes(p)||(c(x=>({...x,guardians:[...x.guardians,p]})),d(""))},[u,l.guardians]);return M(a,{className:"w-full rounded-xl border border-border bg-card p-5 shadow-sm",children:[C("div",{className:"flex items-center justify-between mb-5",children:M("div",{className:"flex items-center gap-2",children:[n&&M(r,{variant:"ghost",size:"sm",onClick:n,children:[C(Cr,{size:15}),"Back"]}),C("h2",{className:"text-lg font-semibold text-foreground",children:"Smart Wallet Settings"})]})}),M("section",{className:"mb-6",children:[M("h3",{className:"mb-3 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(wr,{size:15})," Verification Method"]}),C("div",{className:"space-y-2",children:Rl.map(p=>M("label",{className:b(l.accountType===p.value),children:[C("input",{type:"radio",name:"accountType",value:p.value,checked:l.accountType===p.value,onChange:()=>c(x=>({...x,accountType:p.value})),className:"h-4 w-4 text-primary accent-primary"}),C("div",{className:"flex items-center gap-2 text-foreground",children:p.icon}),M("div",{children:[C("div",{className:"text-sm font-medium text-foreground",children:p.label}),C("div",{className:"text-xs text-muted-foreground",children:p.description})]})]},p.value))})]}),l.accountType==="social-recovery"&&M("section",{className:"mb-6 rounded-lg border border-border bg-muted/30 p-4",children:[M("h4",{className:"mb-2 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(kr,{size:14})," Guardian Addresses"]}),C("p",{className:"mb-3 text-xs text-muted-foreground",children:"Set at least one guardian to help recover your wallet if you lose your key"}),l.guardians.length>0&&C("div",{className:"mb-3 space-y-1.5",children:l.guardians.map(p=>M("div",{className:"flex items-center justify-between rounded-md bg-card px-3 py-2 text-sm",children:[M("span",{className:"font-mono text-xs text-foreground",children:[p.slice(0,8),"...",p.slice(-6)]}),C(r,{variant:"ghost",size:"icon",onClick:()=>c(x=>({...x,guardians:x.guardians.filter(T=>T!==p)})),children:C(kl,{size:14})})]},p))}),M("div",{className:"flex gap-2",children:[C(s,{type:"text",placeholder:"Enter guardian address (0x...)",value:u,onChange:p=>d(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),N())},className:"flex-1"}),M(r,{size:"sm",onClick:N,disabled:!u.trim(),children:[C(Nl,{size:14})," Add"]})]})]}),l.accountType==="multi-sig"&&M("section",{className:"mb-6 rounded-lg border border-border bg-muted/30 p-4",children:[M("h4",{className:"mb-2 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(Nr,{size:14})," Signing Threshold"]}),C("p",{className:"mb-3 text-xs text-muted-foreground",children:"Set how many signers are needed to authorize a transaction"}),C("div",{className:"flex items-center gap-3",children:[1,2,3].map(p=>M("label",{className:b(l.threshold===p),children:[C("input",{type:"radio",name:"threshold",value:p,checked:l.threshold===p,onChange:()=>c(x=>({...x,threshold:p})),className:"sr-only"}),p,"-of-3"]},p))})]}),C(i,{className:"my-4"}),M("section",{className:"mb-6",children:[M("h3",{className:"mb-3 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(Cl,{size:15})," Gas Fees"]}),C("div",{className:"space-y-2",children:Sl.map(p=>M("label",{className:b(l.paymasterType===p.value),children:[C("input",{type:"radio",name:"paymasterType",value:p.value,checked:l.paymasterType===p.value,onChange:()=>c(x=>({...x,paymasterType:p.value})),className:"h-4 w-4 text-primary accent-primary"}),M("div",{className:"flex-1",children:[C("div",{className:"text-sm font-medium text-foreground",children:p.label}),C("div",{className:"text-xs text-muted-foreground",children:p.description})]})]},p.value))}),l.paymasterType==="custom"&&C("div",{className:"mt-3",children:C("input",{type:"text",placeholder:"Custom Paymaster URL",value:l.customPaymasterUrl,onChange:p=>c(x=>({...x,customPaymasterUrl:p.target.value})),className:f})})]}),C(i,{className:"my-4"}),M("section",{className:"mb-6",children:[M("h3",{className:"mb-3 flex items-center gap-1.5 text-sm font-semibold text-foreground",children:[C(wl,{size:15})," Bundler"]}),C("div",{className:"space-y-2",children:Tl.map(p=>M("label",{className:b(l.bundlerPreset===p.value),children:[C("input",{type:"radio",name:"bundlerPreset",value:p.value,checked:l.bundlerPreset===p.value,onChange:()=>c(x=>({...x,bundlerPreset:p.value})),className:"h-4 w-4 text-primary accent-primary"}),M("div",{className:"flex-1",children:[C("div",{className:"text-sm font-medium text-foreground",children:p.label}),C("div",{className:"text-xs text-muted-foreground",children:p.description})]})]},p.value))}),l.bundlerPreset==="custom"&&C("div",{className:"mt-3",children:C("input",{type:"text",placeholder:"Custom Bundler URL",value:l.customBundlerUrl,onChange:p=>c(x=>({...x,customBundlerUrl:p.target.value})),className:f})})]}),M("div",{className:"flex items-center gap-3",children:[M(r,{className:"flex-1",onClick:h,children:[C(vl,{size:15}),m?"Saved \u2713":"Save Settings"]}),n&&M(r,{variant:"outline",onClick:n,children:[C(Cr,{size:15}),"\u2190 Back to Simple Mode"]})]})]})}import{AlertTriangle as El,CheckCircle as Al,ShieldAlert as Dl,X as Ml}from"lucide-react";import{useValidateDestination as Il}from"@naculus/connect-appkit-react";import{jsx as K,jsxs as be}from"react/jsx-runtime";var Ll={ok:{icon:K(Al,{size:20}),label:"No problem found",colorClass:"text-muted-foreground",bgClass:"bg-muted",buttonVariant:"default"},warning:{icon:K(El,{size:20}),label:"Warning",colorClass:"text-[hsl(var(--warning,38_92%_50%))]",bgClass:"bg-[hsl(var(--warning)/0.1)]",buttonVariant:"default"},blocked:{icon:K(Dl,{size:20}),label:"Blocked",colorClass:"text-destructive",bgClass:"bg-destructive/10",buttonVariant:"destructive"}};function zl({address:t,open:e,onClose:n,onProceed:o}){let r=B(),s=r.Button,a=r.Dialog,i=r.DialogContent,l=r.DialogHeader,c=r.DialogTitle,{validation:u}=Il({address:t}),{level:d,warning:m}=u,g=Ll[d],b=d==="blocked",f=t.length>12?`${t.slice(0,6)}...${t.slice(-4)}`:t,h=p=>y("inline-flex items-center justify-center whitespace-nowrap rounded-lg","text-sm font-medium transition-all duration-200","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50","h-10 px-4 py-2",p==="outline"&&"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",p==="destructive"&&"bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm",p==="default"&&"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm"),N=be("div",{className:"flex flex-col gap-4",children:[be("div",{className:y("flex items-center gap-3 rounded-lg p-4",g.bgClass),children:[K("span",{className:g.colorClass,children:g.icon}),be("div",{className:"flex flex-col gap-0.5",children:[K("span",{className:y("text-sm font-semibold",g.colorClass),children:g.label}),K("span",{className:"text-xs text-muted-foreground break-all font-mono",children:f})]})]}),m&&K("p",{className:"text-sm text-muted-foreground m-0",children:m}),be("div",{className:"flex gap-2 justify-end pt-2",children:[s?K(s,{onClick:n,variant:"outline",className:"w-full sm:w-auto",children:"Cancel"}):K("button",{type:"button",onClick:n,className:y(h("outline"),"w-full sm:w-auto"),children:"Cancel"}),o&&(s?K(s,{onClick:o,variant:b?"destructive":"default",disabled:b,className:"w-full sm:w-auto",children:"Proceed anyway"}):K("button",{type:"button",onClick:o,disabled:b,className:y(h(b?"destructive":"default"),"w-full sm:w-auto"),children:"Proceed anyway"}))]})]});return a&&i&&l&&c?K(a,{open:e,onOpenChange:p=>{p||n()},children:be(i,{className:"sm:max-w-md",children:[K(l,{children:K(c,{children:"Address Warning"})}),N]})}):e?be("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[K("div",{className:"absolute inset-0 bg-black/80","aria-hidden":"true",onClick:n}),be("div",{role:"dialog","aria-modal":"true",className:"relative z-10 w-full max-w-sm rounded-xl border bg-card text-card-foreground shadow-2xl p-6",children:[be("div",{className:"flex items-center justify-between mb-4",children:[K("h2",{className:"text-lg font-semibold m-0",children:"Address Warning"}),K("button",{onClick:n,type:"button",className:"rounded-md p-1 text-muted-foreground hover:text-foreground transition-colors","aria-label":"Close",children:K(Ml,{size:16})})]}),N]})]}):null}import{Wallet as Rr,AlertCircle as Wl}from"lucide-react";import{jsx as Y,jsxs as Se}from"react/jsx-runtime";function Vl({wallets:t,onSelect:e,loading:n=!1,error:o=null}){let s=B().Card,a=i=>s?Y(s,{className:"p-4",children:i}):Y("div",{className:"rounded-xl border bg-card text-card-foreground shadow-sm p-4",children:i});return n?a(Se("div",{className:"flex flex-col gap-3",children:[Array.from({length:3}).map((i,l)=>Se("div",{className:"flex items-center gap-3 p-3 rounded-lg animate-pulse",children:[Y("div",{className:"h-10 w-10 rounded-full bg-muted"}),Y("div",{className:"h-4 w-32 rounded bg-muted"})]},l)),Y("p",{className:"text-xs text-muted-foreground text-center m-0",children:"Detecting wallets..."})]})):o?a(Se("div",{className:"flex flex-col items-center gap-3 py-4",children:[Y(Wl,{size:24,className:"text-destructive"}),Y("p",{className:"text-sm text-destructive m-0 font-medium",children:o})]})):t.length===0?a(Se("div",{className:"flex flex-col items-center gap-3 py-6",children:[Y(Rr,{size:32,className:"text-muted-foreground"}),Se("p",{className:"text-sm text-muted-foreground m-0 text-center",children:["No wallets detected.",Y("br",{}),"Install a browser wallet extension to get started."]})]})):Y("div",{className:"flex flex-col gap-2",children:t.map(i=>Se("button",{type:"button",onClick:()=>e(i),className:y("flex items-center gap-3 w-full p-3 rounded-lg","border border-input bg-card hover:bg-accent hover:text-accent-foreground","transition-all duration-200 cursor-pointer","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"),children:[i.icon?Y("img",{src:i.icon,alt:i.name,className:"h-10 w-10 rounded-full object-cover shrink-0",onError:l=>{l.target.style.display="none"}}):Y("div",{className:"h-10 w-10 rounded-full bg-muted flex items-center justify-center shrink-0",children:Y(Rr,{size:18,className:"text-muted-foreground"})}),Se("div",{className:"flex flex-col items-start gap-0.5 text-left min-w-0",children:[Y("span",{className:"text-sm font-medium truncate w-full",children:i.name}),Y("span",{className:"text-xs text-muted-foreground truncate w-full",children:i.rdns})]})]},i.id))})}export{Et as AccountButton,di as AccountSelector,Go as AccountSelectorView,zl as AddressWarningDialog,dr as AppKit,ur as AppKitButton,mr as AppKitChainSelector,ze as ChainSelector,ye as ConnectButton,Xe as ErrorBoundary,Ii as PasskeySetup,or as PasskeySetupView,Pi as PassphraseDialog,Zo as PassphraseDialogView,Ye as QRCodeModal,al as RouteSelector,Je as SeedPhraseBackup,rn as SignInButton,Bl as SmartWalletSettings,yl as SmartWalletToggle,dn as ThemeProvider,St as WalletConnectProvider,Vl as WalletPicker,yi as WalletSecurityPanel,Xo as WalletSecurityPanelView,un as Web3ComponentProvider,et as Web3ConnectUI,y as cn,cr as useAppKit,Ga as useComponent,B as useComponentRegistry,Ka as useDetectionMode,Ue as useEIP6963,Oe as useIsMobile,Fo as useTheme,Wa as useThemeVariable,$r as useWalletConnect,Tt as useWalletConnectOptional};
|
|
12
12
|
//# sourceMappingURL=index.js.map
|