PageSourceSearch

https://radreport.com.br/assets/NFTMarketplace-4xp5PCoe.js

js radreport.com.br collected 2026-10-02 01:20:18 UTC 100,349 bytes, 11 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/getNFT-CZA8ssN7.js","assets/index-BZSaBQD0.js","assets/vendor-query-CmFN4-M1.js","assets/vendor-react-7PyNDetJ.js","assets/vendor-supabase-BfoV2C50.js","assets/vendor-ui-DjI1iuvA.js","assets/index-DpOihv20.css","assets/fetchTokenMetadata-fnXtbgmI.js","assets/web3Wallets-K9HfWoRJ.js","assets/useWeb3ChainConfig-BLzBZRXm.js","assets/utils-BnNtzvC2.js","assets/type-guards-BQcmFalx.js","assets/bundler-B52HULgj.js","assets/extends-CF3RwP-h.js","assets/decimals-BiEYJLtQ.js","assets/TypedData-DsWOCT-t.js","assets/fuse-CcLD0YPK.js","assets/arweave-CAGvOb64.js","assets/getNFT-pxZk-b2K.js","assets/totalSupply-Sqyu_UU1.js","assets/isApprovedForAll-BdJOCsHf.js","assets/getApproved-P6EMIzAA.js","assets/ownerOf-_c2TpZPJ.js","assets/balanceOf-BDMqVqy6.js","assets/convert-erc20-amount-DO7T5se4.js"])))=>i.map(i=>d[i]);
2import{u as te,j as e,a as Ta}from"./vendor-query-CmFN4-M1.js";import{r as p,u as it}from"./vendor-react-7PyNDetJ.js";import{aJ as Y,u as Aa,b as re,ab as M,av as Ie,aG as Pe,at as G,p as z,I as ne,c as P,aB as ot,aL as Qe,a5 as ka,a7 as Sa,aa as Ia,aw as ea,ax as aa,ay as ta,az as sa,aI as ra,aN as Pa,aO as La,aP as xe,aA as ve,r as pa,v as ha,x as ga,y as fa,z as me,aC as Fa,a4 as Ea,aS as lt,aQ as Te}from"./index-BZSaBQD0.js";import{aO as dt,Q as Ba,u as Ra,a as $e,aP as Oa,t as k,C as De,r as qe,g as ze,aQ as Ve,aR as ut,aS as mt,aT as xt}from"./web3Wallets-K9HfWoRJ.js";import{useWeb3ChainConfig as ce,RADC_CONTRACT_ADDRESS as pt}from"./useWeb3ChainConfig-BLzBZRXm.js";import{u as ge}from"./useNFTPricingMode-BBtet9q8.js";import{u as ht}from"./useFeatureGate-BLDqcRA4.js";import{F as gt}from"./FeatureGate-COh4Q17I.js";import{S as ft,f as yt,a as vt,b as bt,c as Nt}from"./sheet-kCUyucS4.js";import{H as wt}from"./HeaderWalletButton-DkvDEURE.js";import{u as jt}from"./useAICredits-CuY3rfXY.js";import{k as H,q as Ne,y as fe}from"./type-guards-BQcmFalx.js";import{dI as $a,bk as Da,bl as qa,L as ie,af as na,aR as Ct,a5 as _t,ae as pe,aF as we,aA as ca,S as ia,aj as oa,k as Xe,o as za,q as Va,aJ as oe,ab as Ua,dJ as Ma,R as ya,dK as le,i as Ga,a7 as Ue,bm as Wa,Y as Me,bd as Re,dL as Tt,aE as At,r as kt,F as la,by as St,_ as It,b as Pt,c0 as Lt}from"./vendor-ui-DjI1iuvA.js";import{a as Ft}from"./MarketplaceBanner-CGO-rji7.js";import{R as Et,a as Bt}from"./radio-group-BZoBIVHH.js";import{C as Ae,a as ke,b as Se}from"./collapsible-C-Fi5ax-.js";import{r as Z,q as Le,a8 as je,n as de,o as ye,k as he,l as be,a9 as Oe,e as Rt,d as Ot,Z as $t,x as Dt}from"./bundler-B52HULgj.js";import{m as Ka}from"./bigint-D9thKSKf.js";import{d as qt}from"./decimals-BiEYJLtQ.js";import{A as zt,a as Vt}from"./alert-DnJNKZbQ.js";import{getNFT as Ut}from"./getNFT-pxZk-b2K.js";import{p as Mt}from"./pt-BR-DOx-ZqcW.js";import{P as Gt}from"./progress-DnyAYI4Y.js";import{u as Wt}from"./useUserSessionData-D77KvUsU.js";import{a as Kt}from"./approve-DpyCBC2H.js";import"./vendor-supabase-BfoV2C50.js";import"./utils-BnNtzvC2.js";import"./extends-CF3RwP-h.js";import"./TypedData-DsWOCT-t.js";import"./fuse-CcLD0YPK.js";import"./arweave-CAGvOb64.js";import"./upgradeBridge-DxSiXl64.js";import"./PlansSelectionSheet-AIY5e4Xb.js";import"./edgeFunctionClient-DsSOOeYY.js";import"./errorTranslations-lTGRyFpS.js";import"./sessionTelemetry-X-Vnv8Qs.js";import"./useTrialStatus-BHA4YoRQ.js";import"./TrialCTAButton-UPNQaK_P.js";import"./PromotionalNotice-CVj_MkvF.js";import"./fetchTokenMetadata-fnXtbgmI.js";import"./totalSupply-Sqyu_UU1.js";const Yt="0x01ffc9a7",Qt=[{name:"interfaceId",type:"bytes4"}],Ht=[{type:"bool"}];async function Ya(t){return Z({contract:t.contract,method:[Yt,Qt,Ht],params:[t.interfaceId]})}function Ge(t){return Ya({contract:t.contract,interfaceId:"0x80ac58cd"})}const Zt="0x4e1273f4",Jt=[{name:"_owners",type:"address[]"},{name:"tokenIds",type:"uint256[]"}],Xt=[{type:"uint256[]"}];async function es(t){return Z({contract:t.contract,method:[Zt,Jt,Xt],params:[t.owners,t.tokenIds]})}const as="0x3b1475a7",ts=[],ss=[{type:"uint256"}];async function rs(t){return Z({contract:t.contract,method:[as,ts,ss],params:[]})}const ns="0x75794a3c",cs=[],is=[{type:"uint256"}];async function os(t){return Z({contract:t.contract,method:[ns,cs,is],params:[]})}const ls=100;async function ds(t){const s=await Promise.allSettled([rs(t),os(t)]).then(([n,u])=>{if(n.status==="fulfilled")return n.value;if(u.status==="fulfilled")return u.value;throw Error("Contract doesn't have required extension")}),a=[],l=[];for(let n=0n;n<s;n++)a.push(t.address),l.push(n);let i=(await es({...t,owners:a,tokenIds:l})).map((n,u)=>({balance:n,tokenId:BigInt(u)})).filter(n=>n.balance>0);if(t.start||t.count){const n=(t==null?void 0:t.start)||0,u=(t==null?void 0:t.count)||ls;i=i.slice(n,n+u)}return i}async function us(t){const{useIndexer:s=!0}=t;if(s)try{return await ms(t)}catch{return await va(t)}return await va(t)}async function ms(t){const a=[];let l=0,c=!0;for(;c;){const n=await dt({chains:[t.contract.chain],client:t.contract.client,ownerAddress:t.address,contractAddresses:[t.contract.address],queryOptions:{limit:50,page:l}});a.push(...n),n.length<50?c=!1:l++}return a.filter(n=>n.tokenAddress.toLowerCase()===t.contract.address.toLowerCase()).map(n=>({...n,owner:t.address}))}async function va(t){const s=await ds(t);return(await Promise.all(s.map(l=>Ut({...t,tokenId:l.tokenId,useIndexer:!1})))).map((l,c)=>{var i;return{...l,owner:t.address,quantityOwned:((i=s[c])==null?void 0:i.balance)||0n}})}function We(t){return Ya({contract:t.contract,interfaceId:"0xd9b67a26"})}const xs="0x107a274a",ps=[{name:"_listingId",type:"uint256"}],hs=[{components:[{name:"listingId",type:"uint256"},{name:"tokenId",type:"uint256"},{name:"quantity",type:"uint256"},{name:"pricePerToken",type:"uint256"},{name:"startTimestamp",type:"uint128"},{name:"endTimestamp",type:"uint128"},{name:"listingCreator",type:"address"},{name:"assetContract",type:"address"},{name:"currency",type:"address"},{name:"tokenType",type:"uint8"},{name:"status",type:"uint8"},{name:"reserved",type:"bool"}],name:"listing",type:"tuple"}];async function gs(t){return Z({contract:t.contract,method:[xs,ps,hs],params:[t.listingId]})}async function Qa(t){const[s,a]=await Promise.all([Ge(t),We(t)]);switch(!0){case s:{const{getNFT:l}=await Y(async()=>{const{getNFT:c}=await import("./getNFT-CZA8ssN7.js");return{getNFT:c}}
2,__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]));return l(t)}case a:{const{getNFT:l}=await Y(async()=>{const{getNFT:c}=await import("./getNFT-pxZk-b2K.js");return{getNFT:c}},__vite__mapDeps([18,8,3,1,2,4,5,6,9,10,11,12,13,14,15,16,17,7,19]));return l(t)}default:throw new Error("Contract is neither ERC721 nor ERC1155.")}}function Ha(t){switch(t.listingStatus){case 1:return t.startTimestamp>t.blockTimeStamp?"CREATED":t.endTimestamp<t.blockTimeStamp?"EXPIRED":"ACTIVE";case 2:return"COMPLETED";case 3:return"CANCELLED";default:throw new Error(`Invalid listing status: "${t.listingStatus}"`)}}async function Za(t,s){let a=s.start;const l=[];for(;s.end-a>s.maxSize;)l.push(t(a,a+s.maxSize-1n)),a+=s.maxSize;return l.push(t(a,s.end-1n)),await Promise.all(l)}async function Ja(t){const{latestBlock:s,rawListing:a}=t,l=Ha({blockTimeStamp:s.timestamp,endTimestamp:a.endTimestamp,listingStatus:a.status,startTimestamp:a.startTimestamp}),c=H({...t.contract,address:a.currency}),[i,n]=await Promise.all([Ba({contract:c}),Qa({...t,contract:H({...t.contract,address:a.assetContract}),tokenId:a.tokenId})]);return{asset:n,assetContractAddress:a.assetContract,creatorAddress:a.listingCreator,currencyContractAddress:a.currency,currencyValuePerToken:{...i,chainId:c.chain.id,displayValue:Le(a.pricePerToken,i.decimals),tokenAddress:c.address,value:a.pricePerToken},endTimeInSeconds:a.endTimestamp,id:a.listingId,isReservedListing:a.reserved,pricePerToken:a.pricePerToken,quantity:a.quantity,startTimeInSeconds:a.startTimestamp,status:l,tokenId:a.tokenId,type:"direct-listing"}}async function fs(t){const s=H({...t.contract,address:t.listing.assetContractAddress}),[a,l]=await Promise.all([Ge({contract:s}),We({contract:s})]);if(a){const[{isApprovedForAll:c},{getApproved:i},{ownerOf:n}]=await Promise.all([Y(()=>import("./isApprovedForAll-BdJOCsHf.js"),__vite__mapDeps([20,12,11,3,2,10,4,1,5,6,14])),Y(()=>import("./getApproved-P6EMIzAA.js"),__vite__mapDeps([21,12,11,3,2,10,4,1,5,6,14])),Y(()=>import("./ownerOf-_c2TpZPJ.js"),__vite__mapDeps([22,12,11,3,2,10,4,1,5,6,14]))]),[u,r,d]=await Promise.all([c({contract:s,operator:t.contract.address,owner:t.listing.creatorAddress}),i({contract:s,tokenId:t.listing.tokenId}).catch(()=>""),n({contract:s,tokenId:t.listing.tokenId})]);return!u&&r!==t.contract.address?{reason:"Asset not approved for marketplace.",valid:!1}:d!==t.listing.creatorAddress?{reason:"Listing creator no longer owns this token.",valid:!1}:{valid:!0}}if(l){const[{isApprovedForAll:c},{balanceOf:i}]=await Promise.all([Y(()=>Promise.resolve().then(()=>As),void 0),Y(()=>import("./balanceOf-BDMqVqy6.js"),__vite__mapDeps([23,12,11,3,2,10,4,1,5,6,14]))]),[n,u]=await Promise.all([c({contract:s,operator:t.contract.address,owner:t.listing.creatorAddress}),i({contract:s,owner:t.listing.creatorAddress,tokenId:t.listing.tokenId})]);if(!n)return{reason:"Asset not approved for marketplace.",valid:!1};const r=t.quantity||t.listing.quantity;return u<r?{reason:"Seller does not have enough balance of token to fulfill order.",valid:!1}:{valid:!0}}return{reason:"AssetContract must implement ERC 1155 or ERC 721.",valid:!1}}async function ys(t){const s=Ne(t.contract),[a,l]=await Promise.all([gs(t),je(s,{blockTag:"latest"})]);return Ja({contract:t.contract,latestBlock:l,rawListing:a})}const vs="0x746415b5",bs=[{components:[{name:"assetContract",type:"address"},{name:"tokenId",type:"uint256"},{name:"quantity",type:"uint256"},{name:"currency",type:"address"},{name:"pricePerToken",type:"uint256"},{name:"startTimestamp",type:"uint128"},{name:"endTimestamp",type:"uint128"},{name:"reserved",type:"bool"}],name:"_params",type:"tuple"}],Ns=[{name:"listingId",type:"uint256"}];function ws(t){const s=ye(async()=>"asyncParams"in t?await t.asyncParams():t);return de({accessList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.accessList},authorizationList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.authorizationList},contract:t.contract,erc20Value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.erc20Value},extraGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.extraGas},gas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gas},gasPrice:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gasPrice},maxFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxFeePerGas},maxPriorityFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxPriorityFeePerGas},method:[vs,bs,Ns],nonce:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.nonce},params:async()=>[(await s()).params],value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.value}})}function js(t){return ws({asyncParams:async()=>{const s=H({...t.contract,address:t.assetContractAddress}),a=Ne(t.contract),[l,c,i]=await Promise.all([Ge({contract:s}),We({contract:s}),je(a,{blockTag:"latest"})]);if(!l&&!c)throw new Error("AssetContract must implement ERC 1155 or ERC 721.");let n=BigInt(Math.floor((t.startTimestamp??new Date).getTime()/1e3));const u=BigInt(Math.floor((t.endTimestamp??new Date(Date.now()+10*365*24*60*60*1e3)).getTime()/1e3));if(n<=i.timestamp&&(n=i.timestamp+1n),n>=u)throw new Error("Start time must be before end time.");let r;l?r=1n:r=t.quantity??1n;const d=t.currencyContractAddress??Oe;let g;if("pricePerToken"in t)if(he(d))g=be(t.pricePerToken,18);else{const h=H({...t.contract,address:d}),{decimals:f}=await Y(async()=>{const{decimals:b}=await import("./decimals-BiEYJLtQ.js").then(o=>
2o.c);return{decimals:b}},__vite__mapDeps([14,10,4,12,11,3,2,1,5,6])),m=await f({contract:h});g=be(t.pricePerToken,m)}else g=BigInt(t.pricePerTokenWei);return{overrides:{extraGas:50000n},params:{assetContract:t.assetContractAddress,currency:t.currencyContractAddress??Oe,endTimestamp:u,pricePerToken:g,quantity:r,reserved:t.isReservedListing??!1,startTimestamp:n,tokenId:t.tokenId}}},contract:t.contract})}const Ke="0xe985e9c5",da=[{name:"_owner",type:"address"},{name:"_operator",type:"address"}],ua=[{type:"bool"}];function Cs(t){return qt({availableSelectors:t,method:[Ke,da,ua]})}function Xa(t){return Rt(da,[t.owner,t.operator])}function _s(t){return Ke+Xa(t).slice(2)}function Ts(t){return Ot(ua,t)[0]}async function et(t){return Z({contract:t.contract,method:[Ke,da,ua],params:[t.owner,t.operator]})}const As=Object.freeze(Object.defineProperty({__proto__:null,FN_SELECTOR:Ke,decodeIsApprovedForAllResult:Ts,encodeIsApprovedForAll:_s,encodeIsApprovedForAllParams:Xa,isApprovedForAll:et,isIsApprovedForAllSupported:Cs},Symbol.toStringTag,{value:"Module"})),ks="0xa22cb465",Ss=[{name:"_operator",type:"address"},{name:"_approved",type:"bool"}],Is=[];function Ps(t){const s=ye(async()=>"asyncParams"in t?await t.asyncParams():t);return de({accessList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.accessList},authorizationList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.authorizationList},contract:t.contract,erc20Value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.erc20Value},extraGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.extraGas},gas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gas},gasPrice:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gasPrice},maxFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxFeePerGas},maxPriorityFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxPriorityFeePerGas},method:[ks,Ss,Is],nonce:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.nonce},params:async()=>{const a=await s();return[a.operator,a.approved]},value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.value}})}function Ls(){const{user:t}=Aa(),{balance:s,refreshBalance:a}=jt(),{requestWithdraw:l,requestDeposit:c,checkPendingTransactions:i}=Ra(),{defaultChain:n,defaultChainId:u,getExplorer:r}=ce(),{radcContractAddress:d}=ge(),{handleConnect:g}=$e(),h=fe(),[f,m]=p.useState("withdraw"),[b,o]=p.useState(""),[x,q]=p.useState(!1),[T,E]=p.useState(!1),j=p.useRef(null),C=d||pt||void 0,{data:I,isLoading:O,refetch:$}=Oa({chain:n,address:h==null?void 0:h.address,client:k,tokenAddress:C}),Q=I?Number(I.displayValue):0,{data:N=[],isLoading:w}=te({queryKey:["bridge-history",t==null?void 0:t.id],queryFn:async()=>{if(!(t!=null&&t.id))return[];const{data:_,error:R}=await re.from("web3_mint_log").select("id, amount, status, tx_hash, minted_at, metadata").eq("user_id",t.id).eq("token_type","erc20").order("minted_at",{ascending:!1}).limit(20);if(R)throw R;return _??[]},enabled:!!(t!=null&&t.id),staleTime:15e3}),L=N.some(_=>_.status==="pending");p.useEffect(()=>{if(!L){j.current&&clearInterval(j.current),j.current=null;return}const _=async()=>{E(!0);try{await i()>0&&(a(),$())}finally{E(!1)}},R=setTimeout(_,2e3);return j.current=setInterval(_,15e3),()=>{clearTimeout(R),j.current&&clearInterval(j.current)}},[L,i]);const F=parseInt(b),A=f==="withdraw"?10:1,v=!isNaN(F)&&F>=A&&F<=1e3&&(f==="withdraw"?F<=s:!0),B=async()=>{if(v){q(!0);try{f==="withdraw"?await l(F)&&(P.success(`Saque de ${F} RADC iniciado!`),o("")):await c(F)&&(P.success(`Depósito de ${F} RADC concluído!`),o("")),a(),$()}finally{q(!1)}}},U=u?r(u):void 0,V=_=>{switch(_){case"confirmed":return e.jsx(M,{className:"bg-emerald-500/15 text-emerald-600 border-emerald-500/20 text-[10px] px-2 py-0",children:"Concluído"});case"pending":return e.jsxs(M,{className:"bg-amber-500/15 text-amber-600 border-amber-500/20 text-[10px] px-2 py-0 gap-1",children:[T&&e.jsx(Ct,{className:"h-2.5 w-2.5 animate-spin"}),"Pendente"]});case"failed":return e.jsx(M,{variant:"destructive",className:"text-[10px] px-2 py-0",children:"Falhou"});default:return e.jsx(M,{variant:"secondary",className:"text-[10px] px-2 py-0",children:_})}},W=_=>{const R=_==null?void 0:_.type;return R==="withdraw"?"Saque":R==="deposit"?"Depósito":"Transferência"};
2return e.jsxs("div",{className:"max-w-2xl mx-auto space-y-5 py-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx($a,{className:"h-5 w-5 text-primary"}),e.jsx("h3",{className:"text-base font-semibold text-foreground",children:"RadCredit Bridge"}),e.jsx(M,{variant:"secondary",className:"text-[10px]",children:"RADC"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Transfira RADC entre seus créditos internos (off-chain) e sua carteira blockchain (on-chain)."}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(Ie,{className:f==="withdraw"?"ring-1 ring-primary/40":"",children:e.jsxs(Pe,{className:"p-4 space-y-1",children:[e.jsx("p",{className:"text-[11px] text-muted-foreground font-medium uppercase tracking-wide",children:"Off-chain"}),e.jsx("p",{className:"text-2xl font-bold font-mono text-foreground",children:s.toLocaleString("pt-BR")}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Créditos internos"})]})}),e.jsx(Ie,{className:f==="deposit"?"ring-1 ring-primary/40":"",children:e.jsxs(Pe,{className:"p-4 space-y-1",children:[e.jsx("p",{className:"text-[11px] text-muted-foreground font-medium uppercase tracking-wide",children:"On-chain"}),O?e.jsx(G,{className:"h-8 w-20"}):h?e.jsx("p",{className:"text-2xl font-bold font-mono text-foreground",children:Q.toLocaleString("pt-BR")}):e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm text-muted-foreground italic",children:"Conecte a wallet"}),k&&e.jsx(De,{client:k,wallets:qe,chain:n,supportedTokens:ze(u,d),onConnect:g,connectButton:{label:"Conectar",style:{width:"100%",height:"28px",fontSize:"11px",fontWeight:600}},theme:"dark"})]}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Tokens na wallet"})]})})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(z,{variant:f==="withdraw"?"default":"outline",size:"sm",className:"flex-1 gap-2",onClick:()=>{m("withdraw"),o("")},children:[e.jsx(Da,{className:"h-4 w-4"}),"Sacar (Off → On)"]}),e.jsxs(z,{variant:f==="deposit"?"default":"outline",size:"sm",className:"flex-1 gap-2",onClick:()=>{m("deposit"),o("")},children:[e.jsx(qa,{className:"h-4 w-4"}),"Depositar (On → Off)"]})]}),e.jsx(Ie,{children:e.jsxs(Pe,{className:"p-4 space-y-3",children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:"Quantidade (RADC)"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ne,{type:"number",placeholder:String(A),min:A,max:1e3,step:1,value:b,onChange:_=>o(_.target.value),disabled:x,className:"font-mono"}),e.jsx(z,{onClick:B,disabled:!v||x||!h&&f==="deposit",className:"shrink-0 min-w-[120px]",children:x?e.jsxs(e.Fragment,{children:[e.jsx(ie,{className:"h-4 w-4 animate-spin mr-1"})," Processando"]}):f==="withdraw"?"Sacar":"Depositar"})]}),b&&!v&&e.jsx("p",{className:"text-xs text-destructive",children:f==="withdraw"&&F>s?`Saldo insuficiente (${s.toLocaleString("pt-BR")} disponíveis)`:`Inteiro entre ${A} e 1.000 RADC`}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:f==="withdraw"?"Seus créditos internos serão debitados e tokens RADC mintados na sua wallet. Gas patrocinado.":"Transfira tokens RADC da sua wallet para créditos internos. Requer 2 transações (approve + transfer)."})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"text-sm font-semibold text-foreground",children:"Histórico de Transferências"}),w?e.jsx("div",{className:"space-y-2",children:Array.from({length:3}).map((_,R)=>e.jsx(G,{className:"h-10 w-full rounded-lg"},R))}):N.length===0?e.jsx("p",{className:"text-xs text-muted-foreground text-center py-6",children:"Nenhuma transferência realizada ainda."}):e.jsx("div",{className:"space-y-1.5",children:N.map(_=>{var R,J,X;return e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg border border-border/30 bg-card/50 text-sm",children:[V(_.status),e.jsx("span",{className:"text-xs font-medium text-foreground min-w-[70px]",children:W(_.metadata)}),e.jsxs("span",{className:`text-xs font-mono font-bold ${((R=_.metadata)==null?void 0:R.type)==="deposit"?"text-green-600":"text-amber-600"}`,children:[((J=_.metadata)==null?void 0:J.type)==="deposit"?"+":"-",(X=_.amount)==null?void 0:X.toLocaleStr
2ing("pt-BR")," RADC"]}),e.jsx("span",{className:"text-[10px] text-muted-foreground ml-auto",children:new Date(_.minted_at).toLocaleDateString("pt-BR")}),_.tx_hash&&U&&e.jsx("a",{href:`${U}/tx/${_.tx_hash}`,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-primary transition-colors",children:e.jsx(na,{className:"h-3 w-3"})})]},_.id)})})]})]})}const Fs=[{value:"achievement",label:"Conquista"},{value:"league",label:"Liga"},{value:"blog",label:"Blog"},{value:"level",label:"Nível"},{value:"event",label:"Evento"}],Es=[{value:"common",label:"Common",icon:we,stars:1},{value:"rare",label:"Rare",icon:ca,stars:2},{value:"epic",label:"Epic",icon:ia,stars:3},{value:"legendary",label:"Legendary",icon:oa,stars:4}],Bs=[{value:"available",label:"Disponível"},{value:"pending",label:"Processando"},{value:"minted",label:"Mintado"},{value:"locked",label:"Bloqueado"},{value:"exhausted",label:"Esgotado"}],Rs=[{value:"rarity",label:"Raridade"},{value:"newest",label:"Mais Recentes"},{value:"name",label:"Nome"},{value:"price",label:"Preço"}],He=(t,s)=>t.includes(s)?t.filter(a=>a!==s):[...t,s];function ba({categories:t,setCategories:s,rarities:a,setRarities:l,statuses:c,setStatuses:i,sort:n,setSort:u,priceRange:r,setPriceRange:d,maxPrice:g,onClear:h,activeFilterCount:f}){return e.jsxs("div",{className:"space-y-1",children:[f>0&&e.jsx("div",{className:"px-3 py-2",children:e.jsxs(z,{variant:"ghost",size:"sm",onClick:h,className:"w-full h-7 text-[10px] font-medium text-muted-foreground hover:text-foreground gap-1",children:[e.jsx(_t,{size:10})," Limpar filtros (",f,")"]})}),e.jsxs(Ae,{defaultOpen:!0,children:[e.jsxs(ke,{className:"group/trigger flex items-center justify-between w-full px-3 py-2.5 text-[10px] font-bold uppercase tracking-widest text-muted-foreground hover:text-foreground transition-colors",children:["Preço (RADC)",e.jsx(pe,{size:12,className:"transition-transform duration-200 group-data-[state=open]/trigger:rotate-180"})]}),e.jsxs(Se,{className:"px-3 pb-3 space-y-2",children:[e.jsx(ot,{min:0,max:g,step:1,value:r,onValueChange:m=>d(m),className:"mt-1"}),e.jsxs("div",{className:"flex justify-between text-[10px] text-muted-foreground tabular-nums",children:[e.jsxs("span",{children:[r[0]," RADC"]}),e.jsxs("span",{children:[r[1]," RADC"]})]})]})]}),e.jsx("div",{className:"border-t border-border/20 mx-3"}),e.jsxs(Ae,{defaultOpen:!0,children:[e.jsxs(ke,{className:"group/trigger flex items-center justify-between w-full px-3 py-2.5 text-[10px] font-bold uppercase tracking-widest text-muted-foreground hover:text-foreground transition-colors",children:["Categoria",e.jsx(pe,{size:12,className:"transition-transform duration-200 group-data-[state=open]/trigger:rotate-180"})]}),e.jsx(Se,{className:"px-3 pb-3 space-y-2",children:Fs.map(m=>e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer group",children:[e.jsx(Qe,{checked:t.includes(m.value),onCheckedChange:()=>s(He(t,m.value)),className:"h-3.5 w-3.5"}),e.jsx("span",{className:"text-xs text-muted-foreground group-hover:text-foreground transition-colors",children:m.label})]},m.value))})]}),e.jsx("div",{className:"border-t border-border/20 mx-3"}),e.jsxs(Ae,{defaultOpen:!0,children:[e.jsxs(ke,{className:"group/trigger flex items-center justify-between w-full px-3 py-2.5 text-[10px] font-bold uppercase tracking-widest text-muted-foreground hover:text-foreground transition-colors",children:["Raridade",e.jsx(pe,{size:12,className:"transition-transform duration-200 group-data-[state=open]/trigger:rotate-180"})]}),e.jsx(Se,{className:"px-3 pb-3 space-y-2",children:Es.map(m=>{const b=m.icon;return e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer group",children:[e.jsx(Qe,{checked:a.includes(m.value),onCheckedChange:()=>l(He(a,m.value)),className:"h-3.5 w-3.5"}),e.jsx(b,{size:11,className:"text-muted-foreground"}),e.jsx("span",{className:"text-xs text-muted-foreground group-hover:text-foreground transition-colors flex-1",children:m.label}),e.jsx("span",{className:"flex gap-0.5",children:Array.from({length:m.stars}).map((o,x)=>
2e.jsx(we,{size:8,className:"fill-muted-foreground/50 text-muted-foreground/50"},x))})]},m.value)})})]}),e.jsx("div",{className:"border-t border-border/20 mx-3"}),e.jsxs(Ae,{defaultOpen:!0,children:[e.jsxs(ke,{className:"group/trigger flex items-center justify-between w-full px-3 py-2.5 text-[10px] font-bold uppercase tracking-widest text-muted-foreground hover:text-foreground transition-colors",children:["Status",e.jsx(pe,{size:12,className:"transition-transform duration-200 group-data-[state=open]/trigger:rotate-180"})]}),e.jsx(Se,{className:"px-3 pb-3 space-y-2",children:Bs.map(m=>e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer group",children:[e.jsx(Qe,{checked:c.includes(m.value),onCheckedChange:()=>i(He(c,m.value)),className:"h-3.5 w-3.5"}),e.jsx("span",{className:"text-xs text-muted-foreground group-hover:text-foreground transition-colors",children:m.label})]},m.value))})]}),e.jsx("div",{className:"border-t border-border/20 mx-3"}),e.jsxs(Ae,{defaultOpen:!0,children:[e.jsxs(ke,{className:"group/trigger flex items-center justify-between w-full px-3 py-2.5 text-[10px] font-bold uppercase tracking-widest text-muted-foreground hover:text-foreground transition-colors",children:["Ordenar por",e.jsx(pe,{size:12,className:"transition-transform duration-200 group-data-[state=open]/trigger:rotate-180"})]}),e.jsx(Se,{className:"px-3 pb-3",children:e.jsx(Et,{value:n,onValueChange:u,className:"space-y-2",children:Rs.map(m=>e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer group",children:[e.jsx(Bt,{value:m.value,className:"h-3.5 w-3.5"}),e.jsx("span",{className:"text-xs text-muted-foreground group-hover:text-foreground transition-colors",children:m.label})]},m.value))})})]})]})}const Na={common:{border:"border-border/60",glow:"",hoverGlow:"hover:shadow-[0_0_12px_rgba(100,100,120,0.15)]",gradient:"from-muted to-muted-foreground/20",text:"text-muted-foreground",stars:1,icon:we,badgeBg:"bg-muted/60"},rare:{border:"border-[hsl(0,0%,75%)]",glow:"shadow-[0_0_16px_rgba(192,192,192,0.2)]",hoverGlow:"hover:shadow-[0_0_24px_rgba(192,192,192,0.35)]",gradient:"from-[hsl(0,0%,63%)] to-[hsl(0,0%,88%)]",text:"text-[hsl(0,0%,88%)]",stars:2,icon:ca,badgeBg:"bg-[hsl(0,0%,75%)]/20"},epic:{border:"border-[hsl(51,100%,50%)]",glow:"shadow-[0_0_20px_rgba(255,215,0,0.25)]",hoverGlow:"hover:shadow-[0_0_30px_rgba(255,215,0,0.4)]",gradient:"from-[hsl(43,74%,49%)] to-[hsl(54,100%,50%)]",text:"text-[hsl(51,100%,50%)]",stars:3,icon:ia,badgeBg:"bg-[hsl(51,100%,50%)]/20"},legendary:{border:"border-[hsl(180,100%,50%)]",glow:"shadow-[0_0_24px_rgba(0,255,255,0.3)]",hoverGlow:"hover:shadow-[0_0_36px_rgba(0,255,255,0.45)]",gradient:"from-[hsl(181,100%,41%)] to-[hsl(180,100%,50%)]",text:"text-[hsl(180,100%,50%)]",stars:4,icon:oa,badgeBg:"bg-[hsl(180,100%,50%)]/20"}},Os={achievement:"Conquista",league:"Liga",blog:"Blog",level:"Nível",event:"Evento"};function $s({title:t,mintStatus:s,isMinting:a,eligibility:l,onClaim:c,explorerBaseUrl:i,pricingMode:n="offchain"}){const u=(t.rarity||"common").toLowerCase(),r=Na[u]||Na.common,d=r.icon,g=s==="confirmed",h=s==="pending",f=t.onchain_token_id!=null,m=t.max_supply!=null&&(t.claimed_count??0)>=t.max_supply,b=t.max_supply!=null?Math.max(0,t.max_supply-(t.claimed_count??0)):null,o=n==="onchain",x=t.onchain_token_id!=null&&t.contract_address?i?`${i}/token/${t.contract_address}?a=${t.onchain_token_id}`:`https://testnets.opensea.io/assets/sepolia/${t.contract_address}/${t.onchain_token_id}`:null,q=o&&t.radc_price>0?`Claim (${t.radc_price} RADC)`:"Claim NFT";return e.jsxs("div",{className:`
3        group relative flex flex-col rounded-2xl border transition-shadow duration-300
4        will-change-transform
5        bg-card
6        ${r.border} ${r.glow} ${r.hoverGlow}
7        ${u==="legendary"?"animate-pulse-subtle":""}
8        ${g?"ring-1 ring-primary/30":""}
9        ${!l.eligible&&f&&!h?"opacity-50 grayscale-[40%]":""}
10        overflow-hidden
11      `,style:{transform:"translateZ(0)"},children:[e.jsxs("div",{className:"relative aspect-[3/4] overflow-hidden rounded-t-xl",children:[t.image_url&&k?e.jsx(Ve,{client:k,src:t.image_url,alt:t.name,className:"w-full h-full object-cover",style:{objectFit:"cover",width:"100%",height:"100%"}}):t.image_url?e.jsx("img",{src:t.image_url,alt:t.name,className:"w-full h-full object-cover",loading:"lazy"}):e.jsx("div",{className:`w-full h-full flex items-center justify-center bg-gradient-to-br ${r.gradient}
11`,children:e.jsx(d,{size:64,className:"text-foreground/20"})}),e.jsxs("div",{className:"absolute top-0 inset-x-0 flex items-start justify-between p-2.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("div",{className:`flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-bold uppercase tracking-wider ${r.badgeBg} ${r.text} backdrop-blur-sm border border-white/20`,children:u}),g&&e.jsx("div",{className:"w-5 h-5 rounded-full bg-primary/90 flex items-center justify-center backdrop-blur-sm shadow-md",children:e.jsx(Xe,{size:10,className:"text-primary-foreground"})})]}),e.jsx("div",{className:"flex gap-0.5",children:Array.from({length:r.stars}).map((T,E)=>e.jsx(we,{size:12,className:`fill-current ${r.text} drop-shadow-md`},E))})]}),e.jsxs("div",{className:"absolute bottom-2 right-2 flex items-center gap-1",children:[o&&e.jsx("span",{className:"px-1.5 py-0.5 rounded-md bg-primary/80 backdrop-blur-sm text-[9px] font-bold text-primary-foreground border border-primary/30",children:"ON-CHAIN"}),e.jsx("span",{className:"px-2 py-0.5 rounded-md bg-background/80 backdrop-blur-sm text-[11px] font-bold text-foreground border border-border/50",children:t.radc_price>0?`${t.radc_price} RADC`:"Grátis"})]})]}),e.jsxs("div",{className:"flex flex-col gap-1.5 px-3 py-2.5",children:[e.jsx("h3",{className:"text-xs font-bold text-foreground uppercase tracking-wide leading-tight line-clamp-2",children:t.name}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(M,{variant:"secondary",className:"text-[9px] px-1.5 py-0 bg-muted/20 text-muted-foreground border-border/20",children:Os[t.category]||t.category}),b!==null&&e.jsxs("span",{className:"text-[10px] text-muted-foreground tabular-nums",children:[b,"/",t.max_supply]})]}),e.jsx("div",{className:"pt-0.5",children:g?e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-[10px] text-primary font-medium flex items-center gap-1",children:[e.jsx(Xe,{size:10})," Mintado"]}),x&&e.jsx("a",{href:x,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-primary transition-colors",children:e.jsx(na,{size:12})})]}):h?e.jsxs("div",{className:"text-[10px] text-accent font-medium flex items-center justify-center gap-1 animate-pulse",children:[e.jsx(za,{size:10})," Processando..."]}
11):f?m?e.jsxs("div",{className:"text-center py-0.5 space-y-0.5",children:[e.jsx("div",{className:"text-[10px] text-destructive font-medium",children:"Esgotado"}),e.jsx("div",{className:"text-[9px] text-muted-foreground",children:"Adquira no Mercado P2P"})]}):l.eligible?e.jsxs(z,{size:"sm",className:`w-full h-7 text-[11px] font-bold bg-gradient-to-r ${r.gradient} hover:opacity-90 transition-opacity`,disabled:a,onClick:()=>c(t.category,t.code),children:[a&&e.jsx(ie,{className:"h-3 w-3 animate-spin mr-1"}),a?"Processando...":q]}):e.jsxs(ka,{children:[e.jsx(Sa,{asChild:!0,children:e.jsxs("div",{className:"flex items-center justify-center gap-1 cursor-help py-0.5",children:[e.jsx(Va,{size:10,className:"text-muted-foreground"}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:"Bloqueado"})]})}),e.jsx(Ia,{side:"top",className:"max-w-[200px]",children:e.jsx("p",{className:"text-xs",children:l.reason})})]}):e.jsx("div",{className:"text-[10px] text-muted-foreground text-center py-0.5",children:"Em breve"})})]})]})}const Ds="0xc78b616c",qs=[],zs=[{type:"uint256"}];async function Vs(t){return Z({contract:t.contract,method:[Ds,qs,zs],params:[]})}const Us="0x305a67a8",Ms=[{name:"_listingId",type:"uint256"}],Gs=[];function Ws(t){const s=ye(async()=>"asyncParams"in t?await t.asyncParams():t);return de({accessList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.accessList},authorizationList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.authorizationList},contract:t.contract,erc20Value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.erc20Value},extraGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.extraGas},gas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gas},gasPrice:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gasPrice},maxFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxFeePerGas},maxPriorityFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxPriorityFeePerGas},method:[Us,Ms,Gs],nonce:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.nonce},params:async()=>[(await s()).listingId],value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.value}})}const Ks="0x31654b4d",Ys=[{name:"_startId",type:"uint256"},{name:"_endId",type:"uint256"}],Qs=[{components:[{name:"listingId",type:"uint256"},{name:"tokenId",type:"uint256"},{name:"quantity",type:"uint256"},{name:"pricePerToken",type:"uint256"},{name:"startTimestamp",type:"uint128"},{name:"endTimestamp",type:"uint128"},{name:"listingCreator",type:"address"},{name:"assetContract",type:"address"},{name:"currency",type:"address"},{name:"tokenType",type:"uint8"},{name:"status",type:"uint8"},{name:"reserved",type:"bool"}],name:"listings",type:"tuple[]"}];async function Hs(t){return Z({contract:t.contract,method:[Ks,Ys,Qs],params:[t.startId,t.endId]})}const wa=100n;async function Zs(t){const s=await Vs(t);if(s===0n)return[];const a=BigInt(0),l=BigInt(t.count||wa),c=Ka(s,a+l),i=Ne(t.contract),[n,u]=await Promise.all([Za((d,g)=>Hs({contract:t.contract,endId:g,startId:d}),{end:c,maxSize:wa,start:a}).then(d=>d.flat()),je(i,{blockTag:"latest"})]);return(await Promise.all(n.map(d=>Ja({contract:t.contract,latestBlock:u,rawListing:d}).catch(()=>null)))).filter(d=>d!==null)}const Js="0x704232dc",Xs=[{name:"_listingId",type:"uint256"},{name:"_buyFor",type:"address"},{name:"_quantity",type:"uint256"},{name:"_currency",type:"address"},{name:"_expectedTotalPrice",type:"uint256"}],er=[];function ar(t){const s=ye(async()=>"asyncParams"in t?await t.asyncParams():t);return de({accessList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.accessList},authorizationList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.authorizationList},contract:t.contract,erc20Value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.erc20Value},extraGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.extraGas},gas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gas},gasPrice:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gasPrice},maxFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxFeePerGas},maxPriorityFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxPriorityFeePerGas},method:[Js,Xs,er],nonce:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.nonce},params:async()=>{const a=await s();return[a.listingId,a.buyFor,a.quantity,a.currency,a.expectedTotalPrice]},value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.value}})}function tr(t){return ar({asyncParams:async()=>{const s=await ys({contract:t.contract,listingId:t.listingId}),a=await fs({contract:t.contract,listing:s,quantity:t.quantity});
11if(!a.valid)throw new Error(a.reason);return{buyFor:t.recipient,currency:s.currencyContractAddress,expectedTotalPrice:s.pricePerToken*t.quantity,listingId:t.listingId,overrides:{erc20Value:he(s.currencyContractAddress)?void 0:{amountWei:s.pricePerToken*t.quantity,tokenAddress:s.currencyContractAddress},extraGas:50000n,value:he(s.currencyContractAddress)?s.pricePerToken*t.quantity:0n},quantity:t.quantity}},contract:t.contract})}const sr="0x2eb566bd",rr=[{name:"_auctionId",type:"uint256"},{name:"_bidAmount",type:"uint256"}],nr=[{type:"bool"}];async function cr(t){return Z({contract:t.contract,method:[sr,rr,nr],params:[t.auctionId,t.bidAmount]})}const ir="0x16002f4a",or=[],lr=[{type:"uint256"}];async function dr(t){return Z({contract:t.contract,method:[ir,or,lr],params:[]})}async function at(t){const{latestBlock:s,rawAuction:a}=t,l=Ha({blockTimeStamp:s.timestamp,endTimestamp:a.endTimestamp,listingStatus:a.status,startTimestamp:a.startTimestamp}),c=H({...t.contract,address:a.currency}),[i,n]=await Promise.all([Ba({contract:c}),Qa({...t,contract:H({...t.contract,address:a.assetContract}),tokenId:a.tokenId})]);return{asset:n,assetContractAddress:a.assetContract,bidBufferBps:a.bidBufferBps,buyoutBidAmount:a.buyoutBidAmount,buyoutCurrencyValue:{...i,chainId:c.chain.id,displayValue:Le(a.buyoutBidAmount,i.decimals),tokenAddress:c.address,value:a.buyoutBidAmount},creatorAddress:a.auctionCreator,currencyContractAddress:a.currency,endTimeInSeconds:a.endTimestamp,id:a.auctionId,minimumBidAmount:a.minimumBidAmount,minimumBidCurrencyValue:{...i,chainId:c.chain.id,displayValue:Le(a.minimumBidAmount,i.decimals),tokenAddress:c.address,value:a.minimumBidAmount},quantity:a.quantity,startTimeInSeconds:a.startTimestamp,status:l,timeBufferInSeconds:a.timeBufferInSeconds,tokenId:a.tokenId,type:"english-auction"}}const ur="0x7b063801",mr=[{name:"_startId",type:"uint256"},{name:"_endId",type:"uint256"}],xr=[{components:[{name:"auctionId",type:"uint256"},{name:"tokenId",type:"uint256"},{name:"quantity",type:"uint256"},{name:"minimumBidAmount",type:"uint256"},{name:"buyoutBidAmount",type:"uint256"},{name:"timeBufferInSeconds",type:"uint64"},{name:"bidBufferBps",type:"uint64"},{name:"startTimestamp",type:"uint64"},{name:"endTimestamp",type:"uint64"},{name:"auctionCreator",type:"address"},{name:"assetContract",type:"address"},{name:"currency",type:"address"},{name:"tokenType",type:"uint8"},{name:"status",type:"uint8"}],name:"auctions",type:"tuple[]"}];async function pr(t){return Z({contract:t.contract,method:[ur,mr,xr],params:[t.startId,t.endId]})}const ja=100n;async function hr(t){const s=await dr(t);if(s===0n)return[];const a=BigInt(0),l=BigInt(t.count||ja),c=Ka(s,a+l),i=Ne(t.contract),[n,u]=await Promise.all([Za((d,g)=>pr({contract:t.contract,endId:g,startId:d}),{end:c,maxSize:ja,start:a}).then(d=>d.flat()),je(i,{blockTag:"latest"})]);return(await Promise.all(n.map(d=>at({contract:t.contract,latestBlock:u,rawAuction:d})))).filter(d=>d!==null)}const gr="0x78bd7935",fr=[{name:"_auctionId",type:"uint256"}],yr=[{components:[{name:"auctionId",type:"uint256"},{name:"tokenId",type:"uint256"},{name:"quantity",type:"uint256"},{name:"minimumBidAmount",type:"uint256"},{name:"buyoutBidAmount",type:"uint256"},{name:"timeBufferInSeconds",type:"uint64"},{name:"bidBufferBps",type:"uint64"},{name:"startTimestamp",type:"uint64"},{name:"endTimestamp",type:"uint64"},{name:"auctionCreator",type:"address"},{name:"assetContract",type:"address"},{name:"currency",type:"address"},{name:"tokenType",type:"uint8"},{name:"status",type:"uint8"}],name:"auction",type:"tuple"}];async function vr(t){return Z({contract:t.contract,method:[gr,fr,yr],params:[t.auctionId]})}async function br(t){const s=Ne(t.contract),[a,l]=await Promise.all([vr(t),je(s,{blockTag:"latest"})]);return at({contract:t.contract,latestBlock:l,rawAuction:a})}async function Nr(t){var i,n,u;if(he(t.currencyAddress)){const[r,d,g]=await Promise.all([((i=t.chain.nativeCurrency)==null?void 0:i.name)??Y(async()=>{const{getChainNativeCurrencyName:h}=await import("./utils-BnNtzvC2.js").then(f=>f.u);return{getChainNativeCurrencyName:h}},__vite__mapDeps([10,4])).then(({getChainNativeCurrencyName:h})=>h(t.chain)),((n=t.chain.nativeCurrency)==null?void 0:n.decimals)??Y(async()=>{const{getChainDecimals:h}=await import("./utils-BnNtzvC2.js").then(f=>f.u);return{getChainDecimals:h}},__vite__mapDeps([10,4])).then(({getChainDecimals:h})=>h(t.chain)),((u=t.chain.nativeCurrency)==null?void 0:u.symbol)??Y(async()=>{const{getChainSymbol:h}=await import("./utils-BnNtzvC2.js").then(f=>f.u);return{getChainSymbol:h}},__vite__mapDeps([10,4])).then(({getChainSymbol:h})=>h(t.chain))]);return{decimals:d,displayValue:Le(t.wei,d),name:r,symbol:g,value:t.wei}}const[{getContract:s},{getCurrencyMetadata:a}]=await Promise.all([Y(()=>import("./type-guards-BQcmFalx.js").then(r=>r.bO),__vite__mapDeps([11,3,2,10,4,1,5,6])),Y(()=>import("./web3Wallets-K9HfWoRJ.js").then(r=>r.bt),__vite__mapDeps([8,3,1,2,4,5,6,9,10,11,12,13,14,15,16,17])
11)]),l=s({address:t.currencyAddress,chain:t.chain,client:t.client}),c=await a({contract:l});return{decimals:c.decimals,displayValue:Le(t.wei,c.decimals),name:c.name,symbol:c.symbol,value:t.wei}}const wr="0x6891939d",jr=[{name:"_auctionId",type:"uint256"}],Cr=[{name:"bidder",type:"address"},{name:"currency",type:"address"},{name:"bidAmount",type:"uint256"}];async function _r(t){return Z({contract:t.contract,method:[wr,jr,Cr],params:[t.auctionId]})}async function tt(t){const[s,a,l]=await _r(t);if(s!==$t)return{bidAmountWei:l,bidderAddress:s,currencyAddress:a,currencyValue:await Nr({chain:t.contract.chain,client:t.contract.client,currencyAddress:a,wei:l})}}const Tr="0x0858e5ad",Ar=[{name:"_auctionId",type:"uint256"},{name:"_bidAmount",type:"uint256"}],kr=[];function Sr(t){const s=ye(async()=>"asyncParams"in t?await t.asyncParams():t);return de({accessList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.accessList},authorizationList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.authorizationList},contract:t.contract,erc20Value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.erc20Value},extraGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.extraGas},gas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gas},gasPrice:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gasPrice},maxFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxFeePerGas},maxPriorityFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxPriorityFeePerGas},method:[Tr,Ar,kr],nonce:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.nonce},params:async()=>{const a=await s();return[a.auctionId,a.bidAmount]},value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.value}})}function Ir(t){return Sr({asyncParams:async()=>{const s=await br({auctionId:t.auctionId,contract:t.contract}),a=await(async()=>{if("bidAmountWei"in t)return t.bidAmountWei;const{convertErc20Amount:c}=await Y(async()=>{const{convertErc20Amount:i}=await import("./convert-erc20-amount-DO7T5se4.js");return{convertErc20Amount:i}},__vite__mapDeps([24,1,2,3,4,5,6,12,11,10]));return await c({amount:t.bidAmount,chain:t.contract.chain,client:t.contract.client,erc20Address:s.currencyContractAddress})})();if(a===0n)throw new Error("Bid amount is zero");if(a>s.buyoutCurrencyValue.value)throw new Error("Bid amount is above the buyout amount");if(await tt({auctionId:t.auctionId,contract:t.contract})){if(!await cr({auctionId:t.auctionId,bidAmount:a,contract:t.contract}))throw new Error("Bid amount is too low to outbid the existing winning bid")}else if(a<s.minimumBidCurrencyValue.value)throw new Error("Bid amount is below the minimum bid amount");return{auctionId:t.auctionId,bidAmount:a,overrides:{extraGas:50000n,value:he(s.currencyContractAddress)?a:void 0}}},contract:t.contract})}const Pr="0x96b5a755",Lr=[{name:"_auctionId",type:"uint256"}],Fr=[];function Er(t){const s=ye(async()=>"asyncParams"in t?await t.asyncParams():t);return de({accessList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.accessList},authorizationList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.authorizationList},contract:t.contract,erc20Value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.erc20Value},extraGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.extraGas},gas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gas},gasPrice:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gasPrice},maxFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxFeePerGas},maxPriorityFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxPriorityFeePerGas},method:[Pr,Lr,Fr],nonce:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.nonce},params:async()=>[(await s()).auctionId],value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.value}})}function Br(t){return Er({asyncParams:async()=>{if(await tt({auctionId:t.auctionId,contract:t.contract}))throw new Error("Cannot cancel an auction with an existing bid");return{auctionId:t.auctionId,overrides:{extraGas:50000n}}},contract:t.contract})}const Rr="0x16654d40",Or=[{components:[{name:"assetContract",type:"address"},{name:"tokenId",type:"uint256"},{name:"quantity",type:"uint256"},{name:"currency",type:"address"},{name:"minimumBidAmount",type:"uint256"},{name:"buyoutBidAmount",type:"uint256"},{name:"timeBufferInSeconds",type:"uint64"},{name:"bidBufferBps",type:"uint64"},{name:"startTimestamp",type:"uint64"},{name:"endTimestamp",type:"uint64"}],name:"_params",type:"tuple"}],$r=[{name:"auctionId",type:"uint256"}];function Dr(t){const s=ye(async()=>"asyncParams"in t?await t.asyncParams():t);return de({accessList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.accessList},authorizationList:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.authorizationList},contract:t.contract,erc20Value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.erc20Value},extraGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.extraGas},gas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gas},gasPrice:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.gasPrice},maxFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxFeePerGas},maxPriorityFeePerGas:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.maxPriorityFeePerGas},method:[Rr,Or,$r],nonce:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.nonce},params:async()=>[(await s()).params],value:async()=>{var a;return(a=(await s()).overrides)==null?void 0:a.value}})}function qr(t){return Dr({...t,asyncParams:async()=>{const s=H({...t.contract,address:t.assetContractAddress}),a=Ne(t.contract),[l,c,i]=await Promise.all([Ge({contract:s}),We({contract:s}),je(a,{blockTag:"latest"})]);if(!l&&!c)throw new Error("AssetContract must implement ERC 1155 or ERC 721.");let n=BigInt(Math.floor((t.startTimestamp??new Date).getTime()/1e3));const u=BigInt(Math.floor((t.endTimestamp??new Date(Date.now()+10*365*24*60*60*1e3)).getTime()/1e3));if(n<=i.timestamp&&(n=i.timestamp+1n),n>=u)throw new Error("Start time must be before end time.");let r;l?r=1n:r=t.quantity??1n;const d=t.currencyContractAddress??Oe;let g;if("buyoutBidAmount"in t)if(he(d))g=be(t.buyoutBidAmount,18);else{const f=H({...t.contract,address:d}),{decimals:m}=await Y(async()=>{const{decimals:o}=await import("./decimals-BiEYJLtQ.js").then(x=>x.c);return{decimals:o}},__vite__mapDeps([14,10,4,12,11,3,2,1,5,6])),b=await m({contract:f});g=be(t.buyoutBidAmount,b)}else g=BigInt(t.buyoutBidAmountWei);let h;if("minimumBidAmount"in t)if(he(d))h=be(t.minimumBidAmount,18);else{const f=H({...t.contract,address:d}),{decimals:m}=await Y(async()=>{const{decimals:o}=await import("./decimals-BiEYJLtQ.js").then(x=>x.c);return{decimals:o}},__vite__mapDeps([14,10,4,12,11,3,2,1,5,6])),b=await m({contract:f});h=be(t.minimumBidAmount,b)}else h=BigInt(t.minimumBidAmountWei);return{overrides:{extraGas:50000n},params:{assetContract:t.assetContractAddress,bidBufferBps:BigInt(t.bidBufferBps??500),buyoutBidAmount:g,currency:t.currencyContractAddress??Oe,endTimestamp:u,minimumBidAmount:h,quantity:r,startTimestamp:n,timeBufferInSeconds:BigInt(t.timeBufferInSeconds??900),tokenId:t.tokenId}}}})}const Be={contract_address:"0x93C667E4ad2e9827e494B90Cdf138Ecbf1d84e49",chain_id:84532,platform_fee_bps:250,platform_fee_recipient:"0xCFa8d642bA3b6cA206A3951d4801dDc04d96fE8E",enabled:!0};function Ca(t,s){return s!=null&&s.length?t.map(a=>{const l=s.find(c=>{var i,n;return c.onchain_token_id===Number(a.tokenId)&&((i=c.contract_address)==null?void 0:i.toLowerCase())===((n=a.assetContractAddress)==null?void 0:n.toLowerCase())});return l?{...a,catalogData:l}:a}):t}const st=()=>{const{defaultChain:t,getExplorer:s}=ce(),a=fe();Ta();const{radcContractAddress:l}=ge(),{mutateAsync:c}=ut(),{data:i=Be,isLoading:n}=te({queryKey:["marketplace-v3-config"],queryFn:async()=>{const{data:N,error:w}=await re.from("system_settings").select("setting_value").eq("setting_key","marketplace_v3_config").single();if(w||!N)return Be;try{const L=typeof N.setting_value=="string"?JSON.parse(N.setting_value):N.setting_value;return{...Be,...L}}catch{return Be}},staleTime:5*60*1e3}),u=i.enabled&&!!i.contract_address&&!!k,r=p.useCallback(()=>!k||!t?null:H({client:k,chain:t,address:i.contract_address}),[i.contract_address,t]),{data:d=[],isLoading:g,refetch:h}=te({queryKey:["marketplace-v3-listings",i.contract_address],queryFn:async()=>{const N=r();if(!N)return[];try{return await Zs({contract:N,start:0,count:100n})}catch(w){return console.error("Failed to fetch listings:",w),[]}},enabled:u,staleTime:3e4,refetchInterval:6e4}),{data:f=[],isLoading:m,refetch:b}=te({queryKey:["marketplace-v3-auctions",i.contract_address],queryFn:async()=>{const N=r();if(!N)return[];try{return await hr({contract:N,start:0,count:100n})}catch(w){return console.error("Failed to fetch auctions:",w),[]}},enabled:u,staleTime:3e4,refetchInterval:6e4}),{data:o}=te({queryKey:["nft-catalog-for-marketplace"],queryFn:async()=>{const{data:N}=await re.from("nft_catalog").select("onchain_token_id, contract_address, name, image_url, rarity, category").eq("is_active",!0).not("onchain_token_id","is",null);return N??[]},staleTime:5*60*1e3}),x=Ca(d,o),q=Ca(f,o),T=p.useCallback(async N=>{if(!a||!k||!t)throw new Error("Wallet não conectada");const w=H({client:k,chain:t,address:N});if(!await et({contract:w,owner:a.address,operator:i.contract_address})){P.info("Aprovando marketplace para gerenciar seus NFTs...");const F=Ps({contract:w,operator:i.contract_address,approved:!0});await c(F),P.success("Marketplace aprovado!")}}
11,[a,i.contract_address,t,c]),E=l||"0xCac247d78BF6197579597609419975e7A12bE3B4",j=p.useCallback(async(N,w,L,F=30)=>{var v;if(!a||!k||!t){P.error("Conecte sua wallet primeiro");return}const A=r();if(A)try{await T(N),P.info("Criando listagem...");const B=js({contract:A,assetContractAddress:N,tokenId:w,quantity:1n,currencyContractAddress:E,pricePerToken:L,startTimestamp:new Date,endTimestamp:new Date(Date.now()+F*24*60*60*1e3)});await c(B),P.success("NFT listado para venda com sucesso!"),h()}catch(B){console.error("Create listing failed:",B),P.error((v=B==null?void 0:B.message)!=null&&v.includes("user rejected")?"Transação cancelada":"Falha ao criar listagem")}},[a,t,r,T,h,c]),C=p.useCallback(async(N,w,L,F,A=7)=>{var B;if(!a||!k||!t){P.error("Conecte sua wallet primeiro");return}const v=r();if(v)try{await T(N),P.info("Criando leilão...");const U=qr({contract:v,assetContractAddress:N,tokenId:w,quantity:1n,currencyContractAddress:E,minimumBidAmount:L,buyoutBidAmount:F,startTimestamp:new Date,endTimestamp:new Date(Date.now()+A*24*60*60*1e3)});await c(U),P.success("Leilão criado com sucesso!"),b()}catch(U){console.error("Create auction failed:",U),P.error((B=U==null?void 0:U.message)!=null&&B.includes("user rejected")?"Transação cancelada":"Falha ao criar leilão")}},[a,t,r,T,b,c]),I=p.useCallback(async(N,w=1n)=>{var F;if(!a||!k||!t){P.error("Conecte sua wallet primeiro");return}const L=r();if(L)try{P.info("Processando compra...");const A=tr({contract:L,listingId:N,recipient:a.address,quantity:w});await c(A),P.success("NFT comprado com sucesso!"),h()}catch(A){console.error("Buy listing failed:",A),P.error((F=A==null?void 0:A.message)!=null&&F.includes("user rejected")?"Transação cancelada":"Falha na compra")}},[a,t,r,h,c]),O=p.useCallback(async(N,w)=>{var F;if(!a||!k||!t){P.error("Conecte sua wallet primeiro");return}const L=r();if(L)try{P.info("Enviando lance...");const A=Ir({contract:L,auctionId:N,bidAmount:w});await c(A),P.success("Lance enviado com sucesso!"),b()}catch(A){console.error("Bid failed:",A),P.error((F=A==null?void 0:A.message)!=null&&F.includes("user rejected")?"Transação cancelada":"Falha ao enviar lance")}},[a,t,r,b,c]),$=p.useCallback(async N=>{if(!a||!k||!t)return;const w=r();if(w)try{const L=Ws({contract:w,listingId:N});await c(L),P.success("Listagem cancelada"),h()}catch{P.error("Falha ao cancelar listagem")}},[a,t,r,h,c]),Q=p.useCallback(async N=>{if(!a||!k||!t)return;const w=r();if(w)try{const L=Br({contract:w,auctionId:N});await c(L),P.success("Leilão cancelado"),b()}catch{P.error("Falha ao cancelar leilão")}},[a,t,r,b,c]);return{config:i,isEnabled:u,isLoadingConfig:n,listings:x,auctions:q,isLoadingListings:g,isLoadingAuctions:m,createDirectListing:j,createEnglishAuction:C,buyListing:
11I,placeBid:O,cancelDirectListing:$,cancelEnglishAuction:Q,refetchListings:h,refetchAuctions:b,getExplorer:s,defaultChain:t}},zr={legendary:"bg-yellow-500/90 text-yellow-950",epic:"bg-purple-500/90 text-white",rare:"bg-blue-500/90 text-white",common:"bg-muted text-muted-foreground"},Vr=({listing:t,onBuy:s,onCancel:a,isOwner:l,isBuying:c})=>{var f,m,b,o,x;const i=t.currencyValuePerToken?`${t.currencyValuePerToken.displayValue} RADC`:"—",n=t.creatorAddress?`${t.creatorAddress.slice(0,6)}...${t.creatorAddress.slice(-4)}`:"—",u=t.catalogData,r=((f=t.asset)==null?void 0:f.name)||(u==null?void 0:u.name)||`NFT #${((m=t.tokenId)==null?void 0:m.toString())??"?"}`,d=((b=t.asset)==null?void 0:b.image)||(u==null?void 0:u.image_url),g=(o=u==null?void 0:u.rarity)==null?void 0:o.toLowerCase(),h=d&&(d.startsWith("http://")||d.startsWith("https://"));return e.jsxs(Ie,{className:"overflow-hidden border-border/30 bg-card/50 backdrop-blur-sm hover:border-primary/30 transition-all duration-300 group",children:[e.jsxs("div",{className:"relative aspect-square overflow-hidden bg-muted/30",children:[d?h?e.jsx("img",{src:d,alt:r,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500",loading:"lazy"}):k?e.jsx(Ve,{client:k,src:d,alt:r,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"}):null:e.jsx("div",{className:"w-full h-full flex items-center justify-center text-muted-foreground",children:e.jsx(oe,{className:"h-10 w-10"})}),e.jsxs("div",{className:"absolute top-2 right-2 flex flex-col gap-1 items-end",children:[e.jsx(M,{className:"text-[10px] bg-primary/90 text-primary-foreground",children:"Venda Direta"}),g&&e.jsx(M,{className:`text-[10px] capitalize ${zr[g]||""}`,children:g})]})]}),e.jsxs(Pe,{className:"p-3 space-y-2",children:[e.jsx("h3",{className:"font-semibold text-sm truncate text-foreground",children:r}),e.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(Ua,{className:"h-3 w-3"}),e.jsx("span",{className:"font-mono",children:n})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(oe,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-sm font-bold text-foreground",children:i})]}),e.jsxs("span",{className:"text-[10px] text-muted-foreground",children:["Qty: ",((x=t.quantity)==null?void 0:x.toString())??"1"]})]}),l?e.jsx(z,{variant:"outline",size:"sm",className:"w-full text-xs",onClick:()=>a==null?void 0:a(t.id),children:"Cancelar Listagem"}):e.jsxs(z,{size:"sm",className:"w-full text-xs gap-1.5",onClick:()=>s(t.id),disabled:c,children:[e.jsx(Ma,{className:"h-3.5 w-3.5"}),c?"Comprando...":"Comprar"]})]})]})},rt=({open:t,onOpenChange:s,onCreateListing:a,onCreateAuction:l,activeListings:c=[],activeAuctions:i=[]})=>{const n=fe(),{defaultChain:u}=ce(),[r,d]=p.useState("listing"),[g,h]=p.useState(""),[f,m]=p.useState(""),[b,o]=p.useState(""),[x,q]=p.useState(""),[T,E]=p.useState("30"),[j,C]=p.useState(!1),{data:I=[]}=te({queryKey:["nft-contract-addresses"],queryFn:async()=>{const{data:v}=await re.from("nft_catalog").select("contract_address").not("contract_address","is",null);return v!=null&&v.length?[...new Set(v.map(U=>U.contract_address).filter(Boolean))]:[]},staleTime:5*6e4}),{data:O=[],isLoading:$}=te({queryKey:["owned-nfts-onchain",n==null?void 0:n.address,I],queryFn:async()=>{var B,U;if(!(n!=null&&n.address)||!k||!u||!I.length)return[];const v=[];for(const V of I)try{const W=H({client:k,chain:u,address:V}),_=await us({contract:W,address:n.address});for(const R of _){const J=R.supply??0n;J>0n&&v.push({key:`${V}:${R.id.toString()}`,contractAddress:V,tokenId:R.id,name:((B=R.metadata)==null?void 0:B.name)||`Token #${R.id.toString()}`,image:((U=R.metadata)==null?void 0:U.image)||null,supply:J})}}catch(W){console.error(`Failed to fetch owned NFTs from ${V}:`,W)}return v},enabled:t&&!!(n!=null&&n.address)&&!!u&&I.length>0,staleTime:3e4}),Q=p.useMemo(()=>{var B,U;const v=new Set;for(const V of c){const W=V.assetContractAddress||V.assetContract,_=V.tokenId??((B=V.asset)==null?void 0:B.id);W&&_!==void 0&&v.add(`${W.toLowerCase()}:${_.toString()}`)}for(const V of i){const W=V.assetContractAddress||V.assetContract,_=V.tokenId??((U=V.asset)==null?void 0:U.id);W&&_!==void 0&&v.add(`${W.toLowerCase()}:${_.toString()}`)}return v},[c,i]),N=p.useMemo(()=>O.filter(v=>!Q.has(`${v.contractAddress.toLowerCase()}:${v.tokenId.toString()}`)),[O,Q]),w=p.useMemo(()=>N.find(v=>v.key===g),[N,g]),L=async()=>
11{if(w){C(!0);try{const v=parseInt(T,10);if(r==="listing"){if(!f||parseFloat(f)<=0){C(!1);return}await a(w.contractAddress,w.tokenId,f,v)}else{if(!b||!x||parseFloat(b)<=0||parseFloat(x)<=0){C(!1);return}await l(w.contractAddress,w.tokenId,b,x,v)}s(!1),F()}catch{}finally{C(!1)}}},F=()=>{h(""),m(""),o(""),q(""),E("30"),d("listing")},A=!!n;return e.jsx(ea,{open:t,onOpenChange:s,children:e.jsxs(aa,{className:"sm:max-w-md",children:[e.jsxs(ta,{children:[e.jsxs(sa,{className:"flex items-center gap-2",children:[r==="listing"?e.jsx(ya,{className:"h-5 w-5 text-primary"}):e.jsx(le,{className:"h-5 w-5 text-primary"}),r==="listing"?"Vender NFT":"Criar Leilão"]}),e.jsx(ra,{children:"Selecione um NFT da sua carteira para listar no marketplace."})]}),A?e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground bg-muted/50 rounded-lg px-3 py-2",children:[e.jsx(Ue,{className:"h-3.5 w-3.5"}),e.jsx("span",{className:"font-mono truncate",children:n.address})]}),e.jsx(Pa,{value:r,onValueChange:v=>d(v),children:e.jsxs(La,{className:"w-full",children:[e.jsxs(xe,{value:"listing",className:"flex-1 text-xs gap-1",children:[e.jsx(ya,{className:"h-3.5 w-3.5"})," Venda Direta"]}),e.jsxs(xe,{value:"auction",className:"flex-1 text-xs gap-1",children:[e.jsx(le,{className:"h-3.5 w-3.5"})," Leilão"]})]})}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(ve,{className:"text-xs",children:"NFT"}),$?e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ie,{className:"h-4 w-4 animate-spin"})," Buscando NFTs na blockchain..."]}):N.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:O.length>0?"Todos os seus NFTs já estão listados no marketplace.":"Nenhum NFT encontrado na sua carteira on-chain."}):e.jsxs(pa,{value:g,onValueChange:h,children:[e.jsx(ha,{children:e.jsx(ga,{placeholder:"Selecione um NFT"})}),e.jsx(fa,{children:N.map(v=>e.jsx(me,{value:v.key,children:e.jsxs("span",{className:"flex items-center gap-2",children:[v.name,e.jsxs(M,{variant:"secondary",className:"text-[10px]",children:["x",v.supply.toString()]})]})},v.key))})]})]}),(w==null?void 0:w.image)&&e.jsxs("div",{className:"flex items-center gap-3 p-2 rounded-lg bg-muted/30 border border-border/30",children:[e.jsx("img",{src:w.image.replace("ipfs://","https://ipfs.io/ipfs/"),alt:w.name,className:"h-12 w-12 rounded-md object-cover"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-sm font-medium truncate",children:w.name}),e.jsxs("p",{className:"text-[11px] text-muted-foreground font-mono truncate",children:["Token #",w.tokenId.toString()]})]})]}),r==="listing"?e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(ve,{className:"text-xs",children:"Preço (RADC)"}),e.jsxs("div",{className:"relative",children:[e.jsx(oe,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(ne,{type:"number",min:"0",step:"0.01",value:f,onChange:v=>m(v.target.value),placeholder:"0.00",className:"pl-9"})]})]}):e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(ve,{className:"text-xs",children:"Lance Mínimo (RADC)"}),e.jsx(ne,{type:"number",min:"0",step:"0.01",value:b,onChange:v=>o(v.target.value),placeholder:"0.00"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(ve,{className:"text-xs",children:"Buyout (RADC)"}),e.jsx(ne,{type:"number",min:"0",step:"0.01",value:x,onChange:v=>q(v.target.value),placeholder:"0.00"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(ve,{className:"text-xs",children:"Duração (dias)"}),e.jsxs(pa,{value:T,onValueChange:E,children:[e.jsx(ha,{children:e.jsx(ga,{})}),e.jsxs(fa,{children:[e.jsx(me,{value:"1",children:"1 dia"}),e.jsx(me,{value:"3",children:"3 dias"}),e.jsx(me,{value:"7",children:"7 dias"}),e.jsx(me,{value:"14",children:"14 dias"}),e.jsx(me,{value:"30",children:"30 dias"}),e.jsx(me,{value:"90",children:"90 dias"})]})]})]})]}):e.jsxs(zt,{variant:"destructive",children:[e.jsx(Ga,{className:"h-4 w-4"}),e.jsx(Vt,{children:"Conecte sua wallet para listar NFTs no marketplace."})]}),e.jsxs(Fa,{children:[e.jsx(z,{variant:"outline",onClick:()=>s(!1),disabled:j,children:"Cancelar"}),e.jsxs(z,{onClick:L,disabled:!A||!g||j||(r==="listing"?!f:!b||!x),className:"gap-1.5",children:[j&&e.jsx(ie,{className:"h-4 w-4 animate-spin"}),r==="listing"?"Criar Listagem":"Criar Leilão"]})]})]})})},Ur=()=>{const{listings:t,isLoadingListings:s,isEnabled:a,auctions:l,buyListing:c,createDirectListing:i,createEnglishAuction:n,cancelDirectListing:u}=st(),r=fe(),{defaultChain:d,defaultChainId:g}=ce(),{radcContractAddress:h}=ge(),{handleConnect:f}=$e(),[m,b]=p.useState(""),[o,x]=p.useState(!1),[q,T]=p.useState(null);if(!a)return e.jsxs("div",{className:"flex flex-col items-center justify-center py-20 text-center space-y-3",children:[e.jsx(Wa,{className:"h-12 w-12 text-muted-foreground
11/50"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"Mercado P2P"}),e.jsx("p",{className:"text-sm text-muted-foreground max-w-md",children:"O marketplace P2P ainda não está configurado. O administrador precisa ativar o contrato MarketplaceV3."})]});const E=m.trim()?t.filter(C=>{var O,$;return((($=(O=C.asset)==null?void 0:O.name)==null?void 0:$.toLowerCase())??"").includes(m.toLowerCase())}):t,j=async C=>{T(C.toString()),await c(C),T(null)};return e.jsxs("div",{className:"space-y-4",children:[!r&&e.jsxs("div",{className:"flex flex-col gap-3 px-3 py-3 rounded-lg bg-muted/50 border border-border/30",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Ue,{size:14}),"Conecte sua wallet para comprar ou vender NFTs no mercado P2P."]}),k&&e.jsx(De,{client:k,wallets:qe,chain:d,supportedTokens:ze(g,h),onConnect:f,connectButton:{label:"Conectar Wallet",style:{width:"100%",height:"32px",fontSize:"12px",fontWeight:600}},theme:"dark"})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{className:"relative flex-1 min-w-[200px]",children:[e.jsx(Me,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.jsx(ne,{placeholder:"Buscar listagens...",value:m,onChange:C=>b(C.target.value),className:"pl-9 h-9 text-sm bg-card/50"})]}),e.jsxs(M,{variant:"secondary",className:"text-[11px] shrink-0",children:[E.length," listagem(ns)"]}),r&&e.jsxs(z,{size:"sm",onClick:()=>x(!0),className:"gap-1.5 text-xs",children:[e.jsx(Re,{className:"h-3.5 w-3.5"})," Vender NFT"]})]}),s?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4",children:Array.from({length:4}).map((C,I)=>e.jsxs("div",{className:"rounded-2xl overflow-hidden border border-border/30",children:[e.jsx(G,{className:"aspect-square w-full"}),e.jsxs("div",{className:"p-3 space-y-2",children:[e.jsx(G,{className:"h-4 w-3/4"}),e.jsx(G,{className:"h-3 w-1/2"}),e.jsx(G,{className:"h-8 w-full"})]})]},I))}):E.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center space-y-2",children:[e.jsx(Tt,{className:"h-10 w-10 text-muted-foreground/40"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:m?"Nenhuma listagem encontrada.":"Nenhum NFT à venda no momento."}),r&&!m&&e.jsxs(z,{variant:"outline",size:"sm",onClick:()=>x(!0),className:"text-xs gap-1.5 mt-2",children:[e.jsx(Re,{className:"h-3.5 w-3.5"})," Seja o primeiro a listar"]})]}):e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4",children:E.map(C=>{var I,O,$,Q;return e.jsx(Vr,{listing:C,onBuy:j,onCancel:u,isOwner:((I=r==null?void 0:r.address)==null?void 0:I.toLowerCase())===((O=C.creatorAddress)==null?void 0:O.toLowerCase()),isBuying:q===(($=C.id)==null?void 0:$.toString())},(Q=C.id)==null?void 0:Q.toString())})}),e.jsx(rt,{open:o,onOpenChange:x,onCreateListing:i,onCreateAuction:n,activeListings:t,activeAuctions:l})]})},Mr={legendary:"bg-yellow-500/90 text-yellow-950",epic:"bg-purple-500/90 text-white",rare:"bg-blue-500/90 text-white",common:"bg-muted text-muted-foreground"};function Gr(t){const[s,a]=p.useState(""),[l,c]=p.useState(!1);return p.useEffect(()=>{const i=()=>{const u=Math.floor(Date.now()/1e3),d=Number(t)-u;if(d<=0){a("Encerrado"),c(!1);return}c(d<3600);const g=Math.floor(d/86400),h=Math.floor(d%86400/3600),f=Math.floor(d%3600/60),m=d%60;g>0?a(`${g}d ${h}h`):h>0?a(`${h}h ${f}m`):a(`${f}m ${m}s`)};i();const n=setInterval(i,1e3);return()=>clearInterval(n)},[t]),{timeLeft:s,isUrgent:l}}const Wr=({auction:t,onBid:s,onCancel:a,isOwner:l})=>{var b,o,x,q,T,E;const{timeLeft:c,isUrgent:i}=Gr(t.endTimeInSeconds??0n),n=((b=t.minimumBidCurrencyValue)==null?void 0:b.displayValue)??"—",u=((o=t.buyoutCurrencyValue)==null?void 0:o.displayValue)??"—",r=t.catalogData,d=((x=t.asset)==null?void 0:x.name)||(r==null?void 0:r.name)||`NFT #${((q=t.tokenId)==null?void 0:q.toString())??"?"}`,g=((T=t.asset)==null?void 0:T.image)||(r==null?void 0:r.image_url),h=(E=r==null?void 0:r.rarity)==null?void 0:E.toLowerCase(),f=g&&(g.startsWith("http://")||g.startsWith("https://")),m=t.creatorAddress?`${t.creatorAddress.slice(0,6)}...${t.creatorAddress.slice(-4)}`:"—";return e.jsxs(Ie,{className:"overflow-hidden border-border/30 bg-card/50 backdrop-blur-sm hover:border-accent/50 transition-all duration-300 group",children:[e.jsxs("div",{className:"relative aspect-square overflow-hidden bg-muted/30",children:[g?f?e.jsx("img",{src:g,alt:d,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500",loading:"lazy"}):k?e.jsx(Ve,{client:k,src:g,alt:d,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"}):null:e.jsx("div",{className:"w-full h-full flex items-center justify-center text-muted-foreground",children:e.jsx(le,{className:"h-10 w-10"})}),e.jsxs("div",{className:"absolute top-2 right-2 flex flex-col gap-1 items-end",children:[e.jsxs(M,{className:`text-[10px] ${i?"bg-destructive text-destructive-foreground":"bg-
11accent text-accent-foreground"}`,children:[i&&e.jsx(At,{className:"h-3 w-3 mr-0.5"}),"Leilão"]}),h&&e.jsx(M,{className:`text-[10px] capitalize ${Mr[h]||""}`,children:h})]})]}),e.jsxs(Pe,{className:"p-3 space-y-2",children:[e.jsx("h3",{className:"font-semibold text-sm truncate text-foreground",children:d}),e.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(Ua,{className:"h-3 w-3"}),e.jsx("span",{className:"font-mono",children:m})]}),e.jsxs("div",{className:`flex items-center gap-1 text-xs font-mono ${i?"text-destructive":"text-muted-foreground"}`,children:[e.jsx(za,{className:"h-3 w-3"}),e.jsx("span",{children:c})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:"Lance mín."}),e.jsxs("span",{className:"font-semibold text-foreground flex items-center gap-1",children:[e.jsx(oe,{className:"h-3 w-3 text-primary"})," ",n," RADC"]})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:"Buyout"}),e.jsxs("span",{className:"font-semibold text-foreground flex items-center gap-1",children:[e.jsx(oe,{className:"h-3 w-3 text-primary"})," ",u," RADC"]})]})]}),l?e.jsx(z,{variant:"outline",size:"sm",className:"w-full text-xs",onClick:()=>a==null?void 0:a(t.id),children:"Cancelar Leilão"}):e.jsxs(z,{size:"sm",className:"w-full text-xs gap-1.5",onClick:()=>s(t.id),disabled:c==="Encerrado",children:[e.jsx(le,{className:"h-3.5 w-3.5"}),c==="Encerrado"?"Encerrado":"Dar Lance"]})]})]})},Kr=({open:t,onOpenChange:s,auction:a,onPlaceBid:l})=>{var f,m,b,o;const[c,i]=p.useState(""),[n,u]=p.useState(!1),r=((f=a==null?void 0:a.minimumBidCurrencyValue)==null?void 0:f.displayValue)??"0",d=((m=a==null?void 0:a.buyoutCurrencyValue)==null?void 0:m.displayValue)??"—",g=((b=a==null?void 0:a.asset)==null?void 0:b.name)||`NFT #${((o=a==null?void 0:a.tokenId)==null?void 0:o.toString())??"?"}`,h=async()=>{if(!(!c||parseFloat(c)<=0||!a)){u(!0);try{await l(a.id,c),s(!1),i("")}catch{}finally{u(!1)}}};return e.jsx(ea,{open:t,onOpenChange:s,children:e.jsxs(aa,{className:"sm:max-w-sm",children:[e.jsxs(ta,{children:[e.jsxs(sa,{className:"flex items-center gap-2",children:[e.jsx(le,{className:"h-5 w-5 text-primary"}),"Dar Lance"]}),e.jsxs(ra,{children:['Lance no leilão de "',g,'"']})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsxs("div",{className:"p-2 rounded-lg bg-muted/30 space-y-0.5",children:[e.jsx("span",{className:"text-muted-foreground",children:"Lance mínimo"}),e.jsxs("p",{className:"font-semibold text-foreground flex items-center gap-1",children:[e.jsx(oe,{className:"h-3 w-3 text-primary"})," ",r," RADC"]})]}),e.jsxs("div",{className:"p-2 rounded-lg bg-muted/30 space-y-0.5",children:[e.jsx("span",{className:"text-muted-foreground",children:"Buyout"}),e.jsxs("p",{className:"font-semibold text-foreground flex items-center gap-1",children:[e.jsx(oe,{className:"h-3 w-3 text-primary"})," ",d," RADC"]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(ve,{className:"text-xs",children:"Valor do Lance (RADC)"}),e.jsxs("div",{className:"relative",children:[e.jsx(oe,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(ne,{type:"number",min:"0",step:"0.01",value:c,onChange:x=>i(x.target.value),placeholder:`Mínimo: ${r}`,className:"pl-9"})]})]})]}),e.jsxs(Fa,{children:[e.jsx(z,{variant:"outline",onClick:()=>s(!1),disabled:n,children:"Cancelar"}),e.jsxs(z,{onClick:h,disabled:!c||n,className:"gap-1.5",children:[n&&e.jsx(ie,{className:"h-4 w-4 animate-spin"}),"Enviar Lance"]})]})]})})},Yr=()=>{const{auctions:t,isLoadingAuctions:s,isEnabled:a,listings:l,placeBid:c,createDirectListing:i,createEnglishAuction:n,cancelEnglishAuction:u}=st(),r=fe(),{defaultChain:d,defaultChainId:g}=ce(),{radcContractAddress:h}=ge(),{handleConnect:f}=$e(),[m,b]=p.useState(""),[o,x]=p.useState(null),[q,T]=p.useState(!1);if(!a)return e.jsxs("div",{className:"flex flex-col items-center justify-center py-20 text-center space-y-3",children:[e.jsx(le,{className:"h-12 w-12 text-muted-foreground
11/50"}),e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"Leilões"}),e.jsx("p",{className:"text-sm text-muted-foreground max-w-md",children:"O sistema de leilões ainda não está configurado. O administrador precisa ativar o contrato MarketplaceV3."})]});const E=m.trim()?t.filter(j=>{var I,O;return(((O=(I=j.asset)==null?void 0:I.name)==null?void 0:O.toLowerCase())??"").includes(m.toLowerCase())}):t;return e.jsxs("div",{className:"space-y-4",children:[!r&&e.jsxs("div",{className:"flex flex-col gap-3 px-3 py-3 rounded-lg bg-muted/50 border border-border/30",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Ue,{size:14}),"Conecte sua wallet para participar de leilões e dar lances."]}),k&&e.jsx(De,{client:k,wallets:qe,chain:d,supportedTokens:ze(g,h),onConnect:f,connectButton:{label:"Conectar Wallet",style:{width:"100%",height:"32px",fontSize:"12px",fontWeight:600}},theme:"dark"})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{className:"relative flex-1 min-w-[200px]",children:[e.jsx(Me,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.jsx(ne,{placeholder:"Buscar leilões...",value:m,onChange:j=>b(j.target.value),className:"pl-9 h-9 text-sm bg-card/50"})]}),e.jsxs(M,{variant:"secondary",className:"text-[11px] shrink-0",children:[E.length," leilão(ões)"]}),r&&e.jsxs(z,{size:"sm",onClick:()=>T(!0),className:"gap-1.5 text-xs",children:[e.jsx(Re,{className:"h-3.5 w-3.5"})," Criar Leilão"]})]}),s?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4",children:Array.from({length:4}).map((j,C)=>e.jsxs("div",{className:"rounded-2xl overflow-hidden border border-border/30",children:[e.jsx(G,{className:"aspect-square w-full"}),e.jsxs("div",{className:"p-3 space-y-2",children:[e.jsx(G,{className:"h-4 w-3/4"}),e.jsx(G,{className:"h-3 w-1/2"}),e.jsx(G,{className:"h-8 w-full"})]})]},C))}):E.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center space-y-2",children:[e.jsx(le,{className:"h-10 w-10 text-muted-foreground/40"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:m?"Nenhum leilão encontrado.":"Nenhum leilão ativo no momento."}),r&&!m&&e.jsxs(z,{variant:"outline",size:"sm",onClick:()=>T(!0),className:"text-xs gap-1.5 mt-2",children:[e.jsx(Re,{className:"h-3.5 w-3.5"})," Criar primeiro leilão"]})]}):e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4",children:E.map(j=>{var C,I,O;return e.jsx(Wr,{auction:j,onBid:$=>{const Q=t.find(N=>N.id===$);x(Q)},onCancel:u,isOwner:((C=r==null?void 0:r.address)==null?void 0:C.toLowerCase())===((I=j.creatorAddress)==null?void 0:I.toLowerCase())},(O=j.id)==null?void 0:O.toString())})}),e.jsx(Kr,{open:!!o,onOpenChange:j=>!j&&x(null),auction:o,onPlaceBid:c}),e.jsx(rt,{open:q,onOpenChange:T,onCreateListing:i,onCreateAuction:n,activeListings:l,activeAuctions:t})]})},Ze=20,Qr=()=>{const{getExplorer:t,getChainName:s}=ce(),[a,l]=p.useState(""),[c,i]=p.useState(Ze),{data:n=[],isLoading:u}=te({queryKey:["onchain-articles"],queryFn:async()=>{const{data:o,error:x}=await re.from("blog_posts_public").select("id, title, type, cover_image_url, author_name, modality, body_region, nft_tx_hash, nft_token_id, nft_contract_address, nft_chain_id, nft_minted_at, published_at, profiles:author_id(full_name)").not("nft_tx_hash","is",null).order("nft_minted_at",{ascending:!1});if(x)throw x;return o??[]},staleTime:12e4}),r=p.useMemo(()=>{if(!a.trim())return n;const o=a.toLowerCase();return n.filter(x=>{var q;return x.title.toLowerCase().includes(o)||(x.author_name||((q=x.profiles)==null?void 0:q.full_name)||"").toLowerCase().includes(o)||(x.modality||"").toLowerCase().includes(o)})},[n,a]),d=p.useMemo(()=>r.slice(0,c),[r,c]),g=c<r.length,h=o=>o.nft_tx_hash?`${o.nft_chain_id?t(o.nft_chain_id):"https://sepolia.basescan.org"}/tx/${o.nft_tx_hash}`:null,f=o=>{var x;return o.author_name||((x=o.profiles)==null?void 0:x.full_name)||"Autor desconhecido"},m=o=>o==="case_report"?"Caso Clínico":"Artigo",b=o=>o==="case_report"?e.jsx(It,{className:"h-3 w-3"}):e.jsx(la,{className:"h-3 w-3"});return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-xl border border-border/30 bg-card/50 p-4 flex items-start gap-3",children:[e.jsx("div",{className:"shrink-0 mt-0.5 h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center",children:e.jsx(kt,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"Publicações On-Chain — NFTs Soulbound"}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:["Artigos acadêmicos e casos clínicos publicados como NFTs Soulbound na blockchain. Estas NFTs são ",e.jsx("strong",{children:"únicas e intransferíveis"}),", vinculadas permanentemente ao autor original."]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(Me,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.jsx(ne,{placeholder:"Buscar por título, autor ou modalidade...",value:a,onChange:o=>{l(o.target.value),i(Ze)},className:"pl-9 h-9 text-sm bg-card/50"})]}),e.jsxs(M,{variant:"secondary",className:"text-[11px] shrink-0",children:[r.length," publicação",r.length!==1?"ões":""]})]}),u?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4",children:Array.from({length:8}).map((o,x)=>e.jsxs("div",{className:"rounded-2xl overflow-hidden border border-border/30",children:[e.jsx(G,{className:"aspect-[3/4] w-full"}),e.jsxs("div",{className:"p-3 space-y-2",children:[e.jsx(G,{className:"h-4 w-3/4"}),e.jsx(G,{className:"h-3 w-1/2"}),e.jsx(G,{className:"h-3 w-2/3"})]})]},x))}):r.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-16",children:a.trim()?"Nenhuma publicação on-chain encontrada com esse termo.":"Nenhuma publicação on-chain registrada ainda."}):e.jsxs(Ea,{children:[e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4",children:d.map(o=>e.jsx(Hr,{article:o,explorerUrl:h(o),authorDisplay:f(o),typeLabel:m(o.type),typeIcon:b(o.type),chainName:o.nft_chain_id?s(o.nft_chain_id):void 0},o.id))}),g&&e.jsx("div",{className:"flex justify-center pt-4",children:e.jsxs(z,{variant:"outline",size:"sm",onClick:()=>i(o=>o+Ze),className:"gap-2 text-xs",children:[e.jsx(pe,{size:14}),"Carregar mais (",r.length-c," restantes)"]})})]})]})},Hr=({article:t,explorerUrl:s,authorDisplay:a,typeLabel:l,typeIcon:c,chainName:i})=>{const n=t.nft_minted_at?lt(new Date(t.nft_minted_at),"dd MMM yyyy",{locale:Mt}):null;return e.jsxs("div",{className:"group rounded-2xl overflow-hidden border border-border/30 bg-card/60 backdrop-blur-sm hover:border-primary/30 transition-all duration-300 hover:shadow-lg hover:shadow-
11primary/5",children:[e.jsxs("div",{className:"relative aspect-[3/4] overflow-hidden",children:[t.cover_image_url?e.jsx("img",{src:t.cover_image_url,alt:t.title,className:"w-full h-full object-cover transition-transform duration-500 group-hover:scale-105",loading:"lazy"}):e.jsx("div",{className:"w-full h-full bg-gradient-to-br from-primary/20 via-accent/10 to-secondary/20 flex items-center justify-center",children:e.jsx(la,{className:"h-12 w-12 text-muted-foreground/30"})}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-transparent to-transparent"}),e.jsxs("div",{className:"absolute top-2 left-2 right-2 flex items-start justify-between",children:[e.jsxs(M,{className:"bg-amber-500/90 text-white border-0 text-[9px] uppercase tracking-wider font-bold gap-1 backdrop-blur-sm",children:[e.jsx(Va,{className:"h-2.5 w-2.5"}),"Soulbound"]}),e.jsxs(M,{variant:"secondary",className:"text-[9px] gap-1 backdrop-blur-sm bg-background/70",children:[c,l]})]}),e.jsx("div",{className:"absolute bottom-2 right-2",children:e.jsx(M,{className:"bg-emerald-500/90 text-white border-0 text-[9px] uppercase tracking-wider font-bold backdrop-blur-sm",children:"On-Chain ✓"})}),t.modality&&e.jsx("div",{className:"absolute bottom-2 left-2",children:e.jsx(M,{variant:"outline",className:"text-[9px] bg-background/60 backdrop-blur-sm border-white/20 text-white",children:t.modality})})]}),e.jsxs("div",{className:"p-3 space-y-2",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground line-clamp-2 leading-tight",children:t.title}),e.jsx("p",{className:"text-[11px] text-muted-foreground truncate",children:a}),n&&e.jsxs("p",{className:"text-[10px] text-muted-foreground/70",children:["Publicado on-chain em ",n]}),s&&e.jsxs("a",{href:s,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 text-[11px] text-primary hover:text-primary/80 transition-colors font-medium",children:[e.jsx(na,{className:"h-3 w-3"}),"Ver na blockchain",i&&e.jsxs("span",{className:"text-muted-foreground font-normal",children:["(",i,")"]})]}),e.jsxs(ka,{children:[e.jsx(Sa,{asChild:!0,children:e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-muted-foreground/60 cursor-help",children:[e.jsx(St,{className:"h-3 w-3"}),e.jsx("span",{children:"NFT intransferível"})]})}),e.jsx(Ia,{side:"top",className:"max-w-[220px] text-xs",children:"Esta NFT Soulbound é vinculada permanentemente ao autor e não pode ser transferida, vendida ou leiloada."})]})]})]})};function Zr(){const[t,s]=p.useState(!1),a=fe(),{defaultChain:l}=ce(),{radcContractAddress:c}=ge();return{ensureApproval:p.useCallback(async(n,u)=>{if(!a||!k)return P.error("Conecte sua wallet primeiro."),!1;if(!c||!u)return P.error("Endereços de contrato não configurados."),!1;s(!0);try{const r=H({client:k,chain:l,address:c}),d=await Z({contract:r,method:"function allowance(address owner, address spender) view returns (uint256)",params:[a.address,u]});if(d>=n)return console.info("✅ [Approve] Allowance sufficient:",d.toString()),!0;console.info(`🔄 [Approve] Requesting approval of ${n} for ${u}`),P.info("Aprovando RadCoins...",{duration:5e3});const g=Kt({contract:r,spender:u,amountWei:n});return await Dt({transaction:g,account:a}),P.success("RadCoins aprovados! Prosseguindo..."),!0}catch(r){const d=r instanceof Error?r.message:"Erro ao aprovar RadCoins";return console.error("❌ [Approve] Error:",d),d.includes("rejected")||d.includes("denied")?P.error("Aprovação rejeitada pelo usuário"):P.error(`Falha na aprovação: ${d.slice(0,80)}`),!1}finally{s(!1)}},[a,l,c]),isApproving:t}}const Jr={common:we,rare:ca,epic:ia,legendary:oa},Xr={common:"text-muted-foreground",rare:"text-[hsl(0,0%,88%)]",epic:"text-[hsl(51,100%,50%)]",legendary:"text-[hsl(180,100%,50%)]"},en={achievement:"Conquista",league:"Liga",blog:"Blog",level:"Nível",event:"Evento"};function an({open:t,onOpenChange:s,title:a,onConfirmOffchain:l,pricingMode:c}){var R,J;const i=fe(),{defaultChain:n,defaultChainId:u}=ce(),{radcContractAddress:r}=ge(),{credits:d}=Wt(),{handleConnect:g}=$e(),{ensureApproval:h,isApproving:f}=Zr(),{mutateAsync:m}=mt(),b=Ta(),[o,x]=p.useState("idle"),[q,T]=p.useState(""),E=!!(i!=null&&i.address),j=c==="onchain",C=(a==null?void 0:a.radc_price)??0,I=((a==null?void 0:a.rarity)||"common").toLowerCase(),O=Jr[I]||we,{data:$,isLoading:Q}=Oa({chain:n,address:i==null?void 0:i.address,client:k,tokenAddress:r||void 0}),N=$?Number($.displayValue):0,w=j?N:d.ai_balance,L=j?Q:!1,F=w>=C,A=o==="approving"||o==="claiming"||o==="registering",v=o==="done",B=j?o==="approving"?25:o==="claiming"?50:o==="registering"?75:o==="done"?100:0:o==="claiming"?50:o==="done"?100:0,U={idle:"",approv
11ing:"1/3 — Aprovando RadCoins na wallet...",claiming:j?"2/3 — Confirme o claim na wallet...":"Processando claim...",registering:"3/3 — Registrando no sistema...",done:"Sucesso!",error:"Falha no claim"};p.useEffect(()=>{t&&(x("idle"),T(""))},[t]),p.useEffect(()=>{if(v){const X=setTimeout(()=>s(!1),2500);return()=>clearTimeout(X)}},[v,s]);const V=p.useCallback(async()=>{if(!a||!i||!k)return;const X=a.contract_address,Ce=a.onchain_token_id;if(!X||Ce==null){T("NFT não implantado on-chain. Token ID ou contrato ausente."),x("error");return}try{if(C>0&&r){x("approving");const ee=BigInt(C)*BigInt(10**18);if(!await h(ee,X)){T("Aprovação de RadCoins rejeitada ou falhou."),x("error");return}}x("claiming");const ue=H({client:k,chain:n,address:X});let K;try{K=xt({contract:ue,to:i.address,tokenId:BigInt(Ce),quantity:1n})}catch(ee){console.warn("⚠️ [ClaimModal] claimTo extension failed, using explicit ABI fallback:",ee),K=de({contract:ue,method:"function claim(address _receiver, uint256 _tokenId, uint256 _quantity)",params:[i.address,BigInt(Ce),1n]})}const Ee=(await m(K)).transactionHash;console.info("✅ [ClaimModal] Claim tx sent:",Ee),x("registering");try{await re.functions.invoke("web3-mint-nft",{body:{titleType:a.category,titleId:a.code,walletAddress:i.address,chainId:u,logOnchainMint:!0,txHash:Ee}})}catch(ee){console.warn("Failed to log on-chain mint:",ee),P.warning("Claim on-chain confirmado, mas registro no banco falhou.")}x("done"),P.success(`NFT "${a.name}" resgatado com sucesso! 🎉`),b.invalidateQueries({queryKey:["web3-mint-logs"]}),b.invalidateQueries({queryKey:["ai-credits"]}),b.invalidateQueries({queryKey:["nft-catalog-marketplace"]})}catch(ue){const K=ue instanceof Error?ue.message:"Erro na transação on-chain";console.error("❌ [ClaimModal] Error:",K),K.includes("rejected")||K.includes("denied")?T("Transação rejeitada pelo usuário."):K.includes("insufficient funds")?T("Saldo insuficiente para gas ou RadCoins."):T(K.slice(0,120)),x("error")}},[a,i,C,r,n,u,h,m,b]),W=p.useCallback(()=>{a&&(j?V():(x("claiming"),l(a)))},[a,j,V,l]);if(!a)return null;const _=E&&F&&!A&&!v&&o!=="error";return e.jsx(ea,{open:t,onOpenChange:A?void 0:s,children:e.jsxs(aa,{className:"sm:max-w-md",children:[e.jsxs(ta,{children:[e.jsx(sa,{className:"text-base",children:"Confirmar Claim"}),e.jsx(ra,{className:"text-xs text-muted-foreground",children:"Revise os detalhes antes de confirmar"})]}),e.jsxs("div",{className:"flex gap-3 items-start",children:[e.jsx("div",{className:"w-20 h-[106px] rounded-lg overflow-hidden shrink-0 border border-border/40 bg-muted/30",children:a.image_url&&k?e.jsx(Ve,{client:k,src:a.image_url,alt:a.name,className:"w-full h-full object-cover",style:{objectFit:"cover",width:"100%",height:"100%"}}):a.image_url?e.jsx("img",{src:a.image_url,alt:a.name,className:"w-full h-full object-cover"}):e.jsx("div",{className:"w-full h-full flex items-center justify-center",children:e.jsx(O,{size:28,className:"text-muted-foreground/30"})})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-1.5",children:[e.jsx("h3",{className:"text-sm font-bold text-foreground leading-tight line-clamp-2",children:a.name}),e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[e.jsx(M,{variant:"secondary",className:"text-[9px] px-1.5 py-0",children:en[a.category]||a.category}),e.jsx("span",{className:`text-[10px] font-bold uppercase ${Xr[I]}`,children:I})]}),a.description&&e.jsx("p",{className:"text-[11px] text-muted-foreground line-clamp-2",children:a.description})]})]}),e.jsxs("div",{className:"rounded-lg border border-border/40 bg-muted/20 p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:"Preço"}),e.jsx("span",{className:"font-bold text-foreground",children:C>0?`${C} RADC`:"Grátis"})]}),C>0&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:["Seu saldo ",j?"(on-chain)":""]}),L?e.jsx(ie,{className:"h-3.5 w-3.5 animate-spin text-muted-foreground"}):e.jsxs("span",{className:`font-bold ${F?"text-primary":"text-destructive"}
11`,children:[w.toLocaleString("pt-BR",{maximumFractionDigits:2})," RADC"]})]}),C>0&&!L&&!F&&e.jsxs("div",{className:"space-y-2 pt-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-destructive text-[11px]",children:[e.jsx(Ga,{size:12}),e.jsx("span",{children:"Saldo insuficiente para este NFT"})]}),e.jsx(z,{variant:"outline",size:"sm",className:"w-full h-7 text-[11px] gap-1.5",onClick:()=>{s(!1),window.location.href="/web3"},children:j?e.jsxs(e.Fragment,{children:[e.jsx(qa,{size:12})," Depositar créditos (On→Off)"]}):e.jsxs(e.Fragment,{children:[e.jsx(Da,{size:12})," Transferir créditos"]})})]})]}),!E&&e.jsxs("div",{className:"rounded-lg border border-[hsl(var(--accent))]/30 bg-[hsl(var(--accent))]/10 p-3 space-y-2.5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-foreground",children:[e.jsx(Ue,{size:14,className:"text-accent-foreground"}),e.jsx("span",{className:"font-medium",children:"Wallet não conectada"})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Conecte sua wallet para realizar o claim deste NFT."}),k&&e.jsx(De,{client:k,wallets:qe,chain:n,supportedTokens:ze(u,r),onConnect:g,connectButton:{label:"Conectar Wallet",style:{width:"100%",height:"32px",fontSize:"12px",fontWeight:600}},theme:"dark"})]}),E&&!A&&!v&&o!=="error"&&e.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-primary",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-primary animate-pulse"}),e.jsxs("span",{children:["Conectado: ",(R=i==null?void 0:i.address)==null?void 0:R.slice(0,6),"...",(J=i==null?void 0:i.address)==null?void 0:J.slice(-4)]})]}),A&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(Gt,{value:B,className:"h-2"}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-primary",children:[e.jsx(ie,{className:"h-4 w-4 animate-spin"}),e.jsx("span",{children:U[o]})]})]}),v&&e.jsxs("div",{className:"flex items-center justify-center gap-2 text-primary text-sm font-medium py-2",children:[e.jsx(Xe,{size:18}),e.jsx("span",{children:"NFT mintado com sucesso!"})]}),o==="error"&&e.jsxs("div",{className:"text-center space-y-2 py-1",children:[e.jsx("p",{className:"text-destructive text-sm",children:q||"Tente novamente ou verifique sua wallet."}),e.jsx("button",{onClick:()=>{x("idle"),T("")},className:"text-xs text-muted-foreground underline hover:text-foreground",children:"Tentar novamente"})]}),!v&&o!=="error"&&e.jsxs("div",{className:"flex gap-2 pt-1",children:[e.jsx(z,{variant:"outline",size:"sm",className:"flex-1 h-9 text-xs",onClick:()=>s(!1),disabled:A,children:"Cancelar"}),e.jsxs(z,{size:"sm",className:"flex-1 h-9 text-xs font-bold",disabled:!_,onClick:W,children:[A&&e.jsx(ie,{className:"h-3.5 w-3.5 animate-spin mr-1"}),j&&C>0?`Approve & Claim (${C} RADC)`:"Confirmar Claim"]})]})]})})}const _a={legendary:0,epic:1,rare:2,common:3},Je=20,Mn=()=>{const t=it(),{user:s}=Aa(),{hasAccess:a}=ht("feature_nft_marketplace"),{mintLogs:l,isConfigured:c,primaryWallet:i,requestMintNFT:n}=Ra(),{defaultChain:u,getExplorer:r}=ce(),{mode:d}=ge(),[g,h]=p.useState(null),[f,m]=p.useState(null),[b,o]=p.useState(!1),[x,q]=p.useState(""),[T,E]=p.useState([]),[j,C]=p.useState([]),[I,O]=p.useState([]),[$,Q]=p.useState("rarity"),[N,w]=p.useState([0,1e3]),[L,F]=p.useState(Je),[A,v]=p.useState("catalog"),{data:B=[],isLoading:U}=te({queryKey:["nft-catalog-marketplace"],queryFn:async()=>{const{data:y,error:S}=await re.from("nft_catalog").select("id, code, name, category, rarity, radc_price, description, image_url, onchain_token_id, contract_address, max_supply, claimed_count, eligibility_rules").eq("is_active",!0).order("category").order("rarity").order("name");if(S)throw S;return y??[]},staleTime:12e4}),{data:V=[]}=te({queryKey:["user-achievements-web3",s==null?void 0:s.id],queryFn:async()=>{if(!(s!=null&&s.id))return[];const{data:y}=await re.from("user_achievements").select("achievement_type, achievement_value").eq("user_id",s.id);return y||[]},enabled:!!(s!=null&&s.id),staleTime:12e4}),{data:W=0}=te({queryKey:["user-level-web3",s==null?void 0:s.id],queryFn:async()=>{if(!(s!=null&&s.id))return 0;const{data:y}=await re.from("user_study_progress").select("current_level").eq("user_id",s.id).maybeSingle();return(y==null?void 0:y.current_level)||0},enabled:!!(s!=null&&s.id),staleTime:12e4}),{data:_=0}=te({queryKey:["user-blog-count-web3",s==null?void 0:s.id],queryFn:async()=>
11{if(!(s!=null&&s.id))return 0;const{count:y}=await re.from("blog_posts").select("id",{count:"exact",head:!0}).eq("author_id",s.id).eq("status","published");return y||0},enabled:!!(s!=null&&s.id),staleTime:12e4}),R=p.useCallback(y=>{if(!s)return{eligible:!1,reason:"Faça login para verificar elegibilidade"};const S=y.eligibility_rules;if(!S||!S.requirement)return{eligible:!0,reason:""};const{requirement:D,threshold:ae}=S;switch(y.category){case"achievement":return V.some(_e=>_e.achievement_type===D||_e.achievement_type===y.code)?{eligible:!0,reason:""}:{eligible:!1,reason:`Necessário: conquista "${D||y.code}"`};case"level":{const se=typeof ae=="number"?ae:parseInt(D,10)||1;return W>=se?{eligible:!0,reason:""}:{eligible:!1,reason:`Necessário: nível ${se} (atual: ${W})`}}case"blog":{const se=typeof ae=="number"?ae:1;return _>=se?{eligible:!0,reason:""}:{eligible:!1,reason:`Necessário: ${se} post(s) publicado(s)`}}case"league":return{eligible:!0,reason:""};case"event":return{eligible:!1,reason:"Evento especial — disponibilidade limitada"};default:return{eligible:!0,reason:""}}},[s,V,W,_]),J=p.useMemo(()=>{var S;const y=new Map;for(const D of l){if(D.token_type!=="erc1155")continue;const ae=(S=D.token_id)!=null&&S.includes(":")?D.token_id.split(":").pop():D.token_id;ae&&y.set(ae,D.status)}return y},[l]),X=p.useCallback(y=>J.get(y)??"available",[J]),Ce=(y,S)=>{if(!s){t("/login");return}const D=B.find(ae=>ae.code===S);D&&(m(D),o(!0))},ue=async y=>{h(y.code),await n(y.category,y.code),h(null),o(!1)},K=p.useMemo(()=>Math.max(100,...B.map(y=>y.radc_price)),[B]);p.useEffect(()=>{N[1]===1e3&&K!==1e3&&w([0,K])},[K]);const Fe=T.length+j.length+I.length+(N[0]>0||N[1]<K?1:0),Ee=()=>{E([]),C([]),O([]),w([0,K])},ee=p.useMemo(()=>{let y=[...B];if(x.trim()){const S=x.toLowerCase();y=y.filter(D=>D.name.toLowerCase().includes(S)||D.code.toLowerCase().includes(S))}return y=y.filter(S=>S.radc_price>=N[0]&&S.radc_price<=N[1]),T.length>0&&(y=y.filter(S=>T.includes(S.category))),j.length>0&&(y=y.filter(S=>j.includes((S.rarity||"common").toLowerCase()))),I.length>0&&(y=y.filter(S=>{const D=X(S.code),ae=S.onchain_token_id!=null,se=S.max_supply!=null&&(S.claimed_count??0)>=S.max_supply,_e=R(S);return I.some(ct=>{switch(ct){case"minted":return D==="confirmed";case"pending":return D==="pending";case"available":return D==="available"&&ae&&_e.eligible&&!se;case"locked":return D==="available"&&ae&&!_e.eligible&&!se;case"exhausted":return se;default:return!1}})})),y.sort((S,D)=>$==="rarity"?(_a[(S.rarity||"common").toLowerCase()]??3)-(_a[(D.rarity||"common").toLowerCase()]??3):$==="price"?D.radc_price-S.radc_price:$==="newest"?0:S.name.localeCompare(D.name)),y},[B,x,T,j,I,$,N,X,R]);p.useEffect(()=>{F(Je)},[x,T,j,I,$,N]);const Ye=p.useMemo(()=>ee.slice(0,L),[ee,L]),ma=L<ee.length,nt=u?r(u.id):void 0,xa={categories:T,setCategories:E,rarities:j,setRarities:C,statuses:I,setStatuses:O,sort:$,setSort:Q,priceRange:N,setPriceRange:w,maxPrice:K,onClear:Ee,activeFilterCount:Fe};return a?e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx("header",{className:"border-b border-border/40 bg-card/50 backdrop-blur-sm sticky top-0 z-20",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center gap-3",children:[e.jsx(z,{variant:"ghost",size:"icon",onClick:()=>t(-1),className:"h-8 w-8",children:e.jsx(Pt,{size:16})}),e.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"NFT Marketplace"}),e.jsx("div",{className:"ml-auto",children:e.jsx(wt,{})})]})}),e.jsxs("main",{className:"max-w-7xl mx-auto px-4 py-6 space-y-6",children:[e.jsx(Ft,{}),e.jsxs(Pa,{value:A,onValueChange:v,children:[e.jsxs(La,{className:"w-full sm:w-auto",children:[e.jsxs(xe,{value:"catalog",className:"gap-1.5 text-xs",children:[e.jsx(Wa,{className:"h-3.5 w-3.5"})," Catálogo"]}),e.jsxs(xe,{value:"articles",className:"gap-1.5 text-xs",children:[e.jsx(la,{className:"h-3.5 w-3.5"})," Publicações"]}),e.jsxs(xe,{value:"p2p",className:"gap-1.5 text-xs",children:[e.jsx(Ma,{className:"h-3.5 w-3.5"})," Mercado P2P"]}),e.jsxs(xe,{value:"auctions",className:"gap-1.5 text-xs",children:[e.jsx(le,{className:"h-3.5 w-3.5"})," Leilões"]}),e.jsxs(xe,{value:"bridge",className:"gap-1.5 text-xs",children:[e.jsx($a,{className:"h-3.5 w-3.5"})," Bridge"]})]}),e.jsx(Te,{value:"catalog",children:e.jsxs("div",{className:"flex gap-4",children:[e.jsx("aside",{className:"hidden lg:block w-[240px] shrink-0 rounded-xl border border-border/30 bg-card/50 py-2 self-start sticky top-20",children:e.jsx(ba,{...xa})}),e.jsxs("div",{className:"flex-1 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(Me,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.jsx(ne,{placeholder:"Buscar NFTs...",value:x,onChange:y=>q(y.target.value),className:"pl-9 h-9 text-sm bg-card/50"})]}),e.jsxs(M,{variant:"secondary",className:"text-[11px] shrink-0",children:[Ye.length,ma?"+":""," / ",ee.length]}),e.jsxs(ft,{children:[e.jsx(yt,{asChild:!0,children:e.jsxs("button",{className:"lg:hidden flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border/40 text-xs font-medium text-muted-foreground hover:text-foreground transition-all relative",children:[e.jsx(Lt,{size:14}),"Filtros",Fe>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 w-4 h-4 rounded-full bg-primary text-primary-foreground text-[9px] flex items-center justify-center font-bold",children:Fe})]})}),e.jsxs(vt,{side:"left",className:"w-[280px] p-0",children:[e.jsx(bt,{className:"px-4 pt-4 pb-2",children:e.jsx(Nt,{className:"text-sm",children:"Filtros"})}),e.jsx(ba,{...xa})]})]})]}),U?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4 sm:gap-4",children:Array.from({length:8}).map((y,S)=>e.jsxs("div",{className:"rounded-2xl overflow-hidden border border-border/30",children:[e.jsx(G,{className:"aspect-[3/4] w-full"}),e.jsxs("div",{className:"p-3 space-y-2",children:[e.jsx(G,{className:"h-4 w-3/4"}),e.jsx(G,{className:"h-3 w-1/2"}),e.jsx(G,{className:"h-7 w-full"})]})]},S))}):ee.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-16",children:"Nenhum NFT encontrado com os filtros selecionados."}):e.jsxs(Ea,{children:[e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 gap-4 sm:gap-4",children:Ye.map(y=>e.jsx($s,{title:y,mintStatus:X(y.code),isMinting:g===y.code,eligibility:R(y),onClaim:Ce,explorerBaseUrl:nt,pricingMode:d},y.id))}),ma&&e.jsx("div",{className:"flex justify-center pt-4",children:e.jsxs(z,{variant:"outline",size:"sm",onClick:()=>F(y=>y+Je),className:"gap-2 text-xs",children:[e.jsx(pe,{size:14}),"Carregar mais (",ee.length-L," restantes)"]})})]})]})]})}),e.jsx(Te,{value:"articles",children:e.jsx(Qr,{})}),e.jsx(Te,{value:"p2p",children:e.jsx(Ur,{})}),e.jsx(Te,{value:"auctions",children:e.jsx(Yr,{})}),e.jsx(Te,{value:"bridge",children:e.jsx(Ls,{})})]}),e.jsx(an,{open:b,onOpenChange:y=>{y||(o(!1),m(null))},title:f,onConfirmOffchain:ue,pricingMode:d})]})]}):e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center p-4",children:e.jsx(gt,{feature:"feature_nft_marketplace",children:e.jsx("div",{})})})};export{Mn as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.