1import{r as s,j as e}from"./vendor-react-CkAEG1v6.js";import{s as V,W as se,u as ae}from"./index-CU6USRIU.js";import{G as re,H as ie,h as ne,J as ce,n as oe,q as le}from"./vendor-libs-BYen1ZuI.js";import"./vendor-zustand-B0FSMdkL.js";import"./vendor-supabase-7qsFzxb4.js";import"./vendor-router-B9kCQ5V7.js";function de(){const[n,i]=s.useState(new Map),[y,m]=s.useState(null),[C,f]=s.useState(!0),[v,q]=s.useState(null),g=s.useCallback(async()=>{f(!0),q(null);try{const{data:_}=await V.from("inscription_config").select("status, total_inscriptions, total_nfts_assigned, total_cw_minted").eq("id",1).single();_&&m({status:_.status,totalInscriptions:_.total_inscriptions,totalNfts:_.total_nfts_assigned,nftsRemaining:1e3-_.total_nfts_assigned,totalCwMinted:Number(_.total_cw_minted)});const{data:l,error:u}=await V.rpc("rpc_gallery_summary");if(u){console.warn("rpc_gallery_summary not available, falling back to full scan:",u.message),await x();return}const d=new Map;for(const h of l||[])d.set(h.token_id,{count:h.inscription_count,hit:h.hit,hitAgent:h.hit_agent||void 0,cwTotal:Number(h.cw_total),postVerified:!!h.post_verified,claimed:!!h.claimed});i(d)}catch(_){console.error("Failed to load inscription data:",_),q("Failed to load inscription data")}finally{f(!1)}},[]);async function x(){let l=[],u=0;for(;;){const{data:c}=await V.from("inscriptions").select("token_id, hit, agent_id, cw_amount").neq("status","invalid").range(u,u+1e3-1);if(!c||c.length===0||(l=l.concat(c),c.length<1e3))break;u+=1e3}const d=new Map;for(const c of l){const k=d.get(c.token_id);k?(k.count++,k.cwTotal+=c.cw_amount,c.hit&&(k.hit=!0,k.hitAgent=c.agent_id)):d.set(c.token_id,{count:1,hit:c.hit,hitAgent:c.hit?c.agent_id:void 0,cwTotal:c.cw_amount,claimed:!1,postVerified:!1})}const h=[...new Set(l.filter(c=>c.hit).map(c=>c.agent_id))];if(h.length>0){const{data:c}=await V.from("agents").select("id, genesis_post_verified").in("id",h);if(c){const k=new Set(c.filter(p=>p.genesis_post_verified).map(p=>p.id));for(const[,p]of d)p.hitAgent&&k.has(p.hitAgent)&&(p.postVerified=!0)}}i(d)}const B=s.useRef(!1);return s.useEffect(()=>{B.current||(B.current=!0,g())},[g]),s.useEffect(()=>{const _=setInterval(()=>g(),3e5);return()=>clearInterval(_)},[g]),{tokenMap:n,config:y,loading:C,error:v,retry:g}}const _e=1,me=8,X=.5;function ge(){const[n,i]=s.useState(null),[y,m]=s.useState(!0),[C,f]=s.useState(null),[v,q]=s.useState(!1),[g,x]=s.useState({rarity:"",search:""}),[B,_]=s.useState(""),[l,u]=s.useState(1),[d,h]=s.useState(null),[c,k]=s.useState(!1),p=s.useRef(null),{tokenMap:j,config:b,loading:z,error:L,retry:$}=de(),I=s.useCallback(a=>
1{if(a>=1&&a<=24)return"team";const o=j.get(a);return o!=null&&o.claimed?"claimed":o!=null&&o.hit?"taken":"available"},[j]);s.useEffect(()=>{fetch("/gallery-index.json").then(a=>{if(!a.ok)throw new Error(`HTTP ${a.status}`);return a.json()}).then(a=>{i(a),m(!1)}).catch(a=>{f(a.message),m(!1)})},[]),s.useEffect(()=>{if(!(n!=null&&n.spritesheet))return;const a=new Image;a.onload=()=>q(!0),a.onerror=()=>q(!0),a.src=n.spritesheet},[n==null?void 0:n.spritesheet]);const{filteredItems:A,dimmedIds:R}=s.useMemo(()=>{if(!n)return{filteredItems:[],dimmedIds:new Set};const a=new Set;for(const w of n.items){let T=!0;if(g.rarity&&w.rarity!==g.rarity&&(T=!1),g.search){const K=g.search.replace("#","");String(w.id).includes(K)||(T=!1)}B&&I(w.id)!==B&&(T=!1),T&&a.add(w.id)}const o=new Set;for(const w of n.items)a.has(w.id)||o.add(w.id);return{filteredItems:n.items.filter(w=>a.has(w.id)),dimmedIds:o}},[n,g,B,I]),U=g.rarity!==""||g.search!==""||B!=="",Q=s.useCallback((a,o)=>{x(w=>({...w,[a]:o}))},[]),G=s.useCallback(()=>{x({rarity:"",search:""}),_("")},[]),N=a=>Math.min(me,Math.max(_e,a)),H=s.useCallback(a=>u(N(a)),[]),E=s.useCallback(()=>u(a=>N(a+X)),[]),P=s.useCallback(()=>u(a=>N(a-X)),[]),Z=s.useCallback(a=>h(a),[]),F=s.useCallback(()=>{if(!d||!n)return;const a=n.items.findIndex(o=>o.id===d.id);a>0&&h(n.items[a-1])},[d,n]),r=s.useCallback(()=>{if(!d||!n)return;const a=n.items.findIndex(o=>o.id===d.id);a<n.items.length-1&&h(n.items[a+1])},[d,n]),M=s.useCallback(()=>{p.current&&(document.fullscreenElement?document.exitFullscreen():p.current.requestFullscreen())},[]);return s.useEffect(()=>{const a=()=>k(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[]),s.useEffect(()=>{const a=o=>{if(!(o.target instanceof HTMLInputElement))switch(o.key){case"Escape":d&&(h(null),o.preventDefault());break;case"ArrowLeft":d&&(F(),o.preventDefault());break;case"ArrowRight":d&&(r(),o.preventDefault());break;case"f":case"F":M(),o.preventDefault();break;case"=":case"+":E(),o.preventDefault();break;case"-":P(),o.preventDefault();break}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[d,F,r,M,E,P]),{index:n,loading:y,error:C,spritesheetLoaded:v,filteredItems:A,dimmedIds:R,filters:g,setFilter:Q,clearFilters:G,hasActiveFilters:U,zoom:l,setZoom:H,zoomIn:E,zoomOut:P,selectedNFT:d,selectNFT:Z,selectPrev:F,selectNext:r,viewportRef:p,isFullscreen:c,toggleFullscreen:M,statusFilter:B,setStatusFilter:_,tokenMap:j,inscriptionConfig:b,inscriptionLoading:z,inscriptionError:L,retryInscription:$,getTokenMiningStatus:I}}const O="https://clawplaza.ai",ue=`${O}/icons/og-banner.png`;function S(n,i,y){let m=document.querySelector(`meta[${n}="${i}"]`);m||(m=document.createElement("meta"),m.setAttribute(n,i),document.head.appendChild(m)),m.setAttribute("content",y)}function he(n){let i=document.querySelector('link[rel="canonical"]');i||(i=document.createElement("link"),i.setAttribute("rel","canonical"),document.head.appendChild(i)),i.setAttribute("href",n)}function pe({title:n,description:i,path:y,image:m,type:C="website"}){const f=`${n} | ClawPlaza`,v=y?`${O}${y}`:O,q=m?m.startsWith("http")?m:`${O}${m}`:ue;return s.useEffect(()=>{const g=document.title;return document.title=f,S("name","description",i),he(v),S("property","og:title",n),S("property","og:description",i),S("property","og:url",v),S("property","og:image",q),S("property","og:type",C),S("name","twitter:title",n),S("name","twitter:description",i),S("name","twitter:image",q),()=>{document.title=g}},[f,n,i,v,q,C]),null}
1const ye="_container_cygrq_5",fe="_hero_cygrq_15",Be="_badge_cygrq_21",ve="_title_cygrq_34",qe="_subtitle_cygrq_43",xe="_dot_cygrq_54",ke="_statTaken_cygrq_62",be="_statAvailable_cygrq_63",we="_statInscriptions_cygrq_64",Ce="_toolbar_cygrq_68",je="_toolbarLeft_cygrq_81",Ne="_toolbarRight_cygrq_87",Se="_chips_cygrq_94",Le="_chip_cygrq_94",Me="_chipActive_cygrq_117",Ie="_chip_rare_cygrq_123",Te="_chip_legendary_cygrq_129",Ae="_chip_available_cygrq_135",Ee="_chip_taken_cygrq_141",Pe="_chip_team_cygrq_147",Fe="_chip_claimed_cygrq_153",ze="_search_cygrq_160",$e="_clearBtn_cygrq_181",Re="_matchCount_cygrq_198",Ge="_zoomControls_cygrq_206",He="_zoomBtn_cygrq_212",Ve="_zoomLevel_cygrq_230",We="_fullscreenBtn_cygrq_238",De="_mainArea_cygrq_258",Oe="_refreshBtn_cygrq_266",Ue="_refreshBtnSpinning_cygrq_294",Qe="_spin_cygrq_1",Ze="_canvasViewport_cygrq_300",Ke="_canvasLoading_cygrq_313",Je="_canvasLoadingSpinner_cygrq_325",Xe="_canvasLoadingText_cygrq_334",Ye="_canvasScalerHidden_cygrq_340",et="_canvasScaler_cygrq_340",tt="_spriteGrid_cygrq_351",nt="_cell_cygrq_357",st="_cellDimmed_cygrq_370",at="_cellSelected_cygrq_375",rt="_cell_taken_cygrq_382",it="_cell_team_cygrq_390",ct="_cell_rare_cygrq_396",ot="_cell_legendary_cygrq_400",lt="_tooltip_cygrq_406",dt="_fullscreenToolbar_cygrq_424",_t="_detailPanel_cygrq_450",mt="_backdrop_cygrq_458",gt="_detailContent_cygrq_462",ut="_detailHeader_cygrq_466",ht="_detailNav_cygrq_473",pt="_navBtn_cygrq_478",yt="_closeBtn_cygrq_496",ft="_detailImage_cygrq_514",Bt="_spritePreview_cygrq_524",vt="_fullImage_cygrq_531",qt="_detailInfo_cygrq_542",xt="_detailBadgeRow_cygrq_546",kt="_badgeErc8004_cygrq_554",bt="_badgeErc8183_cygrq_565",wt="_detailTitle_cygrq_576",Ct="_rarityBadge_cygrq_584",jt="_ownerRow_cygrq_595",Nt="_ownerInfo_cygrq_601",St="_ownerLabel_cygrq_608",Lt="_ownerName_cygrq_617",Mt="_teamBadge_cygrq_624",It="_takenBadge_cygrq_636",Tt="_verifiedBadge_cygrq_648",At="_onChainBadge_cygrq_660",Et="_unverifiedBadge_cygrq_672",Pt="_availableBadge_cygrq_684",Ft="_ownerAddr_cygrq_696",zt="_mintLink_cygrq_707",$t="_miningGrid_cygrq_724",Rt="_miningStat_cygrq_730",Gt="_miningLabel_cygrq_738",Ht="_miningValue_cygrq_746",Vt="_mineBtnWrap_cygrq_754",Wt="_copyToast_cygrq_758",Dt="_toastFadeUp_cygrq_1",Ot="_mineBtn_cygrq_754",Ut="_basescanBtn_cygrq_803",Qt="_stepsToggle_cygrq_838",Zt="_mineSteps_cygrq_856",Kt="_stepItem_cygrq_866",Jt="_stepNum_cygrq_874",Xt="_stepLink_cygrq_881",Yt="_detailSection_cygrq_890",en="_sectionLabel_cygrq_894",tn="_traitGrid_cygrq_904",nn="_trait_cygrq_904",sn="_traitLabel_cygrq_918",an="_traitValue_cygrq_926",rn="_statsGrid_cygrq_933",cn="_statRow_cygrq_939",on="_statLabel_cygrq_945",ln="_statBar_cygrq_953",dn="_statFill_cygrq_961",_n="_statValue_cygrq_968",mn="_ipfsGrid_cygrq_977",gn="_ipfsRow_cygrq_983",un="_ipfsLabel_cygrq_989",hn="_ipfsHash_cygrq_999",pn="_detailLinks_cygrq_1012",yn="_detailLink_cygrq_1012",fn="_skeleton_cygrq_1038",Bn="_skelBlock_cygrq_1046",vn="_skelPulse_cygrq_1",qn="_skelHero_cygrq_1053",xn="_skelGrid_cygrq_1054",kn="_errorState_cygrq_1063",bn="_errorStateMsg_cygrq_1072",wn="_retryBtn_cygrq_1078",Cn="_mintBar_cygrq_1145",jn="_mintBarInner_cygrq_1159",Nn="_mintBarLeft_cygrq_1165",Sn="_mintBarTitle_cygrq_11
172",Ln="_mintBarProgress_cygrq_1182",Mn="_mintBarTrack_cygrq_1188",In="_mintBarFill_cygrq_1196",Tn="_mintBarSep_cygrq_1203",An="_mintBarCount_cygrq_1208",En="_mintBarRight_cygrq_1215",Pn="_mintBarConnect_cygrq_1222",Fn="_mintBarControls_cygrq_1239",zn="_mintBarAddr_cygrq_1245",$n="_mintBarQty_cygrq_1251",Rn="_qtyBtn_cygrq_1259",Gn="_qtyNum_cygrq_1275",Hn="_mintBarPrice_cygrq_1286",Vn="_mintBarBtn_cygrq_1293",Wn="_mintBarTx_cygrq_1311",Dn="_mintBarError_cygrq_1318",On="_cellMinted_cygrq_1330",Un="_cellUnminted_cygrq_1332",Qn="_mintedBadge_cygrq_1340",Zn="_externalLinks_cygrq_1361",Kn="_extLink_cygrq_1366",t={container:ye,hero:fe,badge:Be,title:ve,subtitle:qe,dot:xe,statTaken:ke,statAvailable:be,statInscriptions:we,toolbar:Ce,toolbarLeft:je,toolbarRight:Ne,chips:Se,chip:Le,chipActive:Me,chip_rare:Ie,chip_legendary:Te,chip_available:Ae,chip_taken:Ee,chip_team:Pe,chip_claimed:Fe,search:ze,clearBtn:$e,matchCount:Re,zoomControls:Ge,zoomBtn:He,zoomLevel:Ve,fullscreenBtn:We,mainArea:De,refreshBtn:Oe,refreshBtnSpinning:Ue,spin:Qe,canvasViewport:Ze,canvasLoading:Ke,canvasLoadingSpinner:Je,canvasLoadingText:Xe,canvasScalerHidden:Ye,canvasScaler:et,spriteGrid:tt,cell:nt,cellDimmed:st,cellSelected:at,cell_taken:rt,cell_team:it,cell_rare:ct,cell_legendary:ot,tooltip:lt,fullscreenToolbar:dt,detailPanel:_t,backdrop:mt,detailContent:gt,detailHeader:ut,detailNav:ht,navBtn:pt,closeBtn:yt,detailImage:ft,spritePreview:Bt,fullImage:vt,detailInfo:qt,detailBadgeRow:xt,badgeErc8004:kt,badgeErc8183:bt,detailTitle:wt,rarityBadge:Ct,ownerRow:jt,ownerInfo:Nt,ownerLabel:St,ownerName:Lt,teamBadge:Mt,takenBadge:It,verifiedBadge:Tt,onChainBadge:At,unverifiedBadge:Et,availableBadge:Pt,ownerAddr:Ft,mintLink:zt,miningGrid:$t,miningStat:Rt,miningLabel:Gt,miningValue:Ht,mineBtnWrap:Vt,copyToast:Wt,toastFadeUp:Dt,mineBtn:Ot,basescanBtn:Ut,stepsToggle:Qt,mineSteps:Zt,stepItem:Kt,stepNum:Jt,stepLink:Xt,detailSection:Yt,sectionLabel:en,traitGrid:tn,trait:nn,traitLabel:sn,traitValue:an,statsGrid:rn,statRow:cn,statLabel:on,statBar:ln,statFill:dn,statValue:_n,ipfsGrid:mn,ipfsRow:gn,ipfsLabel:un,ipfsHash:hn,detailLinks:pn,detailLink:yn,skeleton:fn,skelBlock:Bn,skelPulse:vn,skelHero:qn,skelGrid:xn,errorState:kn,errorStateMsg:bn,retryBtn:wn,mintBar:Cn,mintBarInner:jn,mintBarLeft:Nn,mintBarTitle:Sn,mintBarProgress:Ln,mintBarTrack:Mn,mintBarFill:In,mintBarSep:Tn,mintBarCount:An,mintBarRight:En,mintBarConnect:Pn,mintBarControls:Fn,mintBarAddr:zn,mintBarQty:$n,qtyBtn:Rn,qtyNum:Gn,mintBarPrice:Hn,mintBarBtn:Vn,mintBarTx:Wn,mintBarError:Dn,cellMinted:On,cellUnminted:Un,mintedBadge:Qn,externalLinks:Zn,extLink:Kn},W="0x39B34468C34c1a111Ac0ea20D8eAA26F01204078",Jn=ce("0.02"),D=[{name:"mint",type:"function",stateMutability:"payable",inputs:[{name:"quantity",type:"uint256"}],outputs:[]},{name:"saleActive",type:"function",stateMutability:"view",inputs:[],outputs:[{type:"bool"}]},{name:"totalSupply",type:"function",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]},{name:"mintPrice",type:"function",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]}],J=oe({chain:ne,transport:le("https://ethereum.publicnode.com")});function Xn(){const{address:n,isConnected:i}=ae(),[y,m]=s.useState(1),[C,f]=s.useState("idle"),[v,q]=s.useState(null),[g,x]=s.useState(null),[B,_]=s.useState(0),[l,u]=s.useState(null),[d,h]=s.useState(Jn),c=s.useCallback(async()=>{try{const[p,j,b]=await Promise.all([J.readContract({address:W,abi:D,functionName:"totalSupply"}),J.readContract({address:W,abi:D,functionName:"saleActive"}),J.readContract({address:W,abi:D,functionName:"mintPrice"})]);_(Number(p)),u(j),h(b)}catch{}},[]);s.useEffect(()=>{c()},[c]);const k=s.useCallback(async()=>{if(!i||!n)return;const p=window.ethereum;if(!p){x("No wallet detected");return}f("minting"),x(null);try{const b=await re({chain:ne,transport:ie(p)}).writeContract({address:W,abi:D,functionName:"mint",args:[BigInt(y)],value:d*BigInt(y),account:n});q(b),f("success"),await c()}catch(j){const b=j.shortMessage??j.message??"Transaction failed";x(b.length>100?b.slice(0,100)+"â¦":b),f("idle")}},[i,n,y,d,c]);return{address:n,isConnected:i,quantity:y,setQuantity:m,status:C,txHash:v,errorMsg:g,mintedCount:B,saleActive:l,mintPrice:d,mint:k}}function ds(){const{index:n,loading:i,error:y,spritesheetLoaded:m,dimmedIds:C,filters:f,setFilter:v,clearFilters:q,hasActiveFilters:g,zoom:x,zoomIn:B,zoomOut:_,selectedNFT:l,selectNFT:u,selectPrev:d,selectNext:h,viewportRef:c,isFullscreen:k,toggleFullscreen:p}=ge(),{isConnected:j,quantity:b,setQuantity:z,status:L,txHash:$,errorMsg:I,mintedCount:A,saleActive:R,mint:U}=Xn(),[Q,G]=s.useState(!1),[N,H]=s.useState(null),E=s.useRef(null),P=s.useCallback((r,M)=>{const a=r.currentTarget.getBoundingClientRect();H({x:a.left+a.width/2,y:a.top-8,nft:M})},[]),Z=s.useCallback(()=>H(null),[]),F=s.useCallback(r=>{!r.ctrlKey&&!r.metaKey||(r.preventDefault(),r.deltaY<0?B():_())},[B,_]);return i?e.jsx("div",{className:t.container,children:e.jsxs("div",{className:t.
1skeleton,children:[e.jsx("div",{className:`${t.skelBlock} ${t.skelHero}`}),e.jsx("div",{className:`${t.skelBlock} ${t.skelGrid}`})]})}):y||!n?e.jsx("div",{className:t.container,children:e.jsxs("div",{className:t.errorState,children:[e.jsx("p",{className:t.errorStateMsg,children:y||"Failed to load gallery"}),e.jsx("button",{className:t.retryBtn,onClick:()=>window.location.reload(),children:"Retry"})]})}):e.jsxs("div",{className:t.container,children:[e.jsx(pe,{title:"ClawPlaza Genesis",description:"1,024 unique pixel characters. Mint your Claw.",path:"/"}),e.jsx("div",{className:t.mintBar,children:e.jsxs("div",{className:t.mintBarInner,children:[e.jsx("span",{className:t.mintBarTitle,children:"ClawPlaza Genesis"}),e.jsx("span",{className:t.mintBarSep,children:"·"}),e.jsxs("span",{className:t.mintBarCount,children:[A.toLocaleString()," / 1,024"]}),L==="success"&&$?e.jsx("a",{href:`https://etherscan.io/tx/${$}`,target:"_blank",rel:"noopener noreferrer",className:t.mintBarTx,children:"View tx â"}):j?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:t.mintBarQty,children:[e.jsx("button",{className:t.qtyBtn,onClick:()=>z(r=>Math.max(1,r-1)),disabled:b<=1||L==="minting",children:"â"}),e.jsx("span",{className:t.qtyNum,children:b}),e.jsx("button",{className:t.qtyBtn,onClick:()=>z(r=>Math.min(10,r+1)),disabled:b>=10||L==="minting",children:"+"})]}),e.jsx("button",{className:t.mintBarBtn,onClick:U,disabled:L==="minting"||R===!1,children:L==="minting"?"Mintingâ¦":R===!1?"Not Active":"Mint"})]}):e.jsx("button",{className:t.mintBarConnect,onClick:()=>G(!0),children:"Connect Wallet"}),I&&e.jsx("span",{className:t.mintBarError,children:I})]})}),e.jsxs("div",{className:t.toolbar,children:[e.jsxs("div",{className:t.toolbarLeft,children:[e.jsx("div",{className:t.chips,children:["","common","rare","legendary"].map(r=>e.jsx("button",{className:`${t.chip} ${f.rarity===r?t.chipActive:""} ${r?t[`chip_${r}`]:""}`,onClick:()=>v("rarity",r),children:r||"All"},r||"all"))}),e.jsx("input",{type:"text",className:t.search,placeholder:"# ID",value:f.search,onChange:r=>v("search",r.target.value)}),g&&e.jsx("button",{className:t.clearBtn,onClick:q,children:"Clear"})]}),e.jsxs("div",{className:t.toolbarRight,children:[e.jsxs("div",{className:t.zoomControls,children:[e.jsx("button",{className:t.zoomBtn,onClick:_,children:e.jsx(Y,{})}),e.jsxs("span",{className:t.zoomLevel,children:[x.toFixed(1),"x"]}),e.jsx("button",{className:t.zoomBtn,onClick:B,children:e.jsx(ee,{})})]}),e.jsx("button",{className:t.fullscreenBtn,onClick:p,children:k?e.jsx(te,{}):e.jsx(es,{})})]})]}),e.jsxs("div",{className:t.mainArea,children:[e.jsxs("div",{className:t.canvasViewport,ref:c,onWheel:F,children:[k&&e.jsxs("div",{className:t.fullscreenToolbar,children:[e.jsxs("div",{className:t.zoomControls,children:[e.jsx("button",{className:t.zoomBtn,onClick:_,children:e.jsx(Y,{})}),e.jsxs("span",{className:t.zoomLevel,children:[x.toFixed(1),"x"]}),e.jsx("button",{className:t.zoomBtn,onClick:B,children:e.jsx(ee,{})})]}),e.jsx("button",{className:t.fullscreenBtn,onClick:p,children:e.jsx(te,{})})]}),!m&&e.jsxs("div",{className:t.canvasLoading,children:[e.jsx("div",{className:t.canvasLoadingSpinner}),e.jsx("span",{className:t.canvasLoadingText,children:"Loadingâ¦"})]}),e.jsx("div",{className:`${t.canvasScaler} ${m?"":t.canvasScalerHidden}`,style:{transform:`scale(${x})`},children:e.jsx("div",{className:t.spriteGrid,style:{gridTemplateColumns:`repeat(${n.gridCols}, ${n.cellSize}px)`},children:n.items.map(r=>{const M=(r.id-1)%n.gridCols,a=Math.floor((r.id-1)/n.gridCols),o=C.has(r.id),w=r.id>A,T=(l==null?void 0:l.id)===r.id;return e.jsx("div",{className:[t.cell,o?t.cellDimmed:"",w?t.cellUnminted:t.cellMinted,t[`cell_${r.rarity}`]||"",T?t.cellSelected:""].join(" "),style:{width:n.cellSize,height:n.cellSize,backgroundImage:`url(${n.spritesheet})`,backgroundSize:`${n.gridCols*n.cellSize}px ${Math.ceil(n.total/n.gridCols)*n.cellSize}px`,backgroundPosition:`${-M*n.cellSize}px ${-a*n.cellSize}px`},onClick:()=>u(o?null:r),onMouseEnter:K=>!o&&P(K,r),onMouseLeave:Z},r.id)})})}),N&&e.jsxs("div",{ref:E,className:t.tooltip,style:{left:N.x,top:N.y},children:["#",N.nft.id," · ",N.nft.rarity," · ",N.nft.id<=A?"Minted":"Available"]})]}),l&&e.jsx("div",{className:t.detailPanel,children:e.jsx(Yn,{nft:l,index:n,onClose:()=>u(null),onPrev:d,onNext:h})})]}),l&&e.jsx("div",{className:t.backdrop,onClick:()=>u(null)}),Q&&e.jsx(se,{onClose:()=>G(!1)})]})}function Yn({nft:n,index:i,onClose:y,onPrev:m,onNext:C}){const[f,v]=s.useState(!1),q=(n.id-1)%i.gridCols,g=Math.floor((n.id-1)/i.gridCols),x={common:"var(--text-muted)",rare:"#00d4ff",legendary:"#ffaa00"},B=[["Pose",n.pose],["Eyes",n.eyes],["Prop",n.prop],["Accessory",n.accessory],["Clothing",n.clothing],["Backgroun
1d",n.background]],_=[["Armor",n.armor],["Agility",n.agility],["Claw Power",n.clawPower]];return e.jsxs("div",{className:t.detailContent,children:[e.jsxs("div",{className:t.detailHeader,children:[e.jsxs("div",{className:t.detailNav,children:[e.jsx("button",{className:t.navBtn,onClick:m,children:e.jsx(ns,{})}),e.jsx("button",{className:t.navBtn,onClick:C,children:e.jsx(ss,{})})]}),e.jsx("button",{className:t.closeBtn,onClick:y,children:e.jsx(ts,{})})]}),e.jsxs("div",{className:t.detailImage,children:[e.jsx("div",{className:t.spritePreview,style:{backgroundImage:`url(${i.spritesheet})`,backgroundSize:`${i.gridCols*240}px ${Math.ceil(i.total/i.gridCols)*240}px`,backgroundPosition:`${-q*240}px ${-g*240}px`,opacity:f?0:1}}),e.jsx("img",{src:`${i.imageBase}/${n.id}.png`,alt:`ClawPlaza Genesis #${n.id}`,className:t.fullImage,style:{opacity:f?1:0},onLoad:()=>v(!0),ref:l=>{l&&v(!1)}},n.id)]}),e.jsxs("div",{className:t.detailInfo,children:[e.jsxs("h2",{className:t.detailTitle,children:["ClawPlaza Genesis #",n.id]}),e.jsx("div",{className:t.detailBadgeRow,children:e.jsx("span",{className:t.rarityBadge,style:{color:x[n.rarity],borderColor:x[n.rarity]},children:n.rarity})})]}),e.jsxs("div",{className:t.detailSection,children:[e.jsx("h3",{className:t.sectionLabel,children:"Traits"}),e.jsx("div",{className:t.traitGrid,children:B.map(([l,u])=>e.jsxs("div",{className:t.trait,children:[e.jsx("span",{className:t.traitLabel,children:l}),e.jsx("span",{className:t.traitValue,children:u})]},l))})]}),e.jsxs("div",{className:t.detailSection,children:[e.jsx("h3",{className:t.sectionLabel,children:"Stats"}),e.jsx("div",{className:t.statsGrid,children:_.map(([l,u])=>e.jsxs("div",{className:t.statRow,children:[e.jsx("span",{className:t.statLabel,children:l}),e.jsx("div",{className:t.statBar,children:e.jsx("div",{className:t.statFill,style:{width:`${u/1e3*100}%`}})}),e.jsx("span",{className:t.statValue,children:u})]},l))})]})]})}function Y(){return e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:e.jsx("path",{d:"M5 12h14"})})}function ee(){return e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:e.jsx("path",{d:"M12 5v14M5 12h14"})})}function es(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3"})})}function te(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"M4 14h6v6M20 10h-6V4M14 10l7-7M3 21l7-7"})})}function ts(){return e.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:e.jsx("path",{d:"M18 6L6 18M6 6l12 12"})})}function ns(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"m15 18-6-6 6-6"})})}function ss(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("path",{d:"m9 18 6-6-6-6"})})}export{ds as GalleryPage};
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.