1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BR3wCb5i.js","./F03OOAfT.js","./entry.B9hqgRZP.css","./tT5QldXV.js","./Co-pL8Ja.js","./CzM0zS8h.js","./CO4aMo7O.js"])))=>i.map(i=>d[i]); 2import{_ as ge}from"./CO4aMo7O.js";import{a as Y,b as ve,_ as _e}from"./Co-pL8Ja.js";import{b as he,_ as ke,a as we}from"./CzM0zS8h.js";import{aQ as G,aU as d,b0 as R,b1 as s,aW as t,aX as r,aY as Q,bk as J,bj as l,bI as Ce,bl as C,bP as X,aS as Pe,bp as Te,aT as ze,bQ as E,b2 as n,d6 as Se,bm as K,bh as b,aV as p,bi as j,bn as L,b9 as w,aZ as D,bN as je,bu as Re}from"./F03OOAfT.js";import{_ as $e}from"./BR3wCb5i.js";import{a as Ue,b as Ie,t as B,d as W,c as N}from"./Bx1VBLQi.js";import{u as Oe,d as Ee,a as Le}from"./g3UUAR5D.js";import"./tT5QldXV.js";import"./DbB-iIp_.js";import"./Baprkw1w.js";import"./CPYSRk3B.js";(function(){try{var c=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};c.SENTRY_RELEASE={id:"27db2591ca04660ca1662c5972b7001472b80eec"};var u=new c.Error().stack;u&&(c._sentryDebugIds=c._sentryDebugIds||{},c._sentryDebugIds[u]="9a9aae61-d574-471a-8424-11c6cef65c5f",c._sentryDebugIdIdentifier="sentry-dbid-9a9aae61-d574-471a-8424-11c6cef65c5f")}catch{}})();const De={class:"p-6"},Be={class:"flex items-center gap-3 mb-4"},Ne={class:"p-2 bg-warning-100 dark:bg-warning-900/30 rounded-lg"},Me={class:"flex justify-end gap-3"},Ae=G({__name:"ReplaceProjectModal",props:{open:{type:Boolean}},emits:["update:open","confirm","cancel"],setup(c,{emit:u}){const m=u;return(_,i)=>{const z=Q,P=J,h=Y;return d(),R(h,{open:c.open,title:"Replace Current Project",description:"Loading a template will replace your current project","onUpdate:open":i[2]||(i[2]=f=>m("update:open",f))},{content:s(()=>[t("div",De,[t("div",Be,[t("div",Ne,[r(z,{name:"i-heroicons-exclamation-triangle",class:"w-6 h-6 text-warning-600 dark:text-warning-400"})]),i[3]||(i[3]=t("div",null,[t("h3",{class:"text-lg font-semibold text-neutral-900 dark:text-neutral-50"},"Replace Current Project?"),t("p",{class:"text-sm text-neutral-500 dark:text-neutral-400"}," This action cannot be undone. ")],-1))]),i[6]||(i[6]=t("p",{class:"text-sm text-neutral-600 dar
2k:text-neutral-300 mb-6"}," Loading this template will replace all files in your current project. Make sure you've saved any work you want to keep. ",-1)),t("div",Me,[r(P,{color:"neutral",variant:"ghost",onClick:i[0]||(i[0]=f=>m("cancel"))},{default:s(()=>[...i[4]||(i[4]=[l(" Cancel ",-1)])]),_:1}),r(P,{color:"primary",onClick:i[1]||(i[1]=f=>m("confirm"))},{default:s(()=>[...i[5]||(i[5]=[l(" Replace Project ",-1)])]),_:1})])])]),_:1},8,["open"])}}}),Ve=Object.assign(Ae,{__name:"ReplaceProjectModal"}),qe="revx-ide-project";function He(){const c=C(!1),u=C(!1);let m=null;async function _(){try{const{get:h}=await Ce(async()=>{const{get:y}=await import("./BR3wCb5i.js").then(g=>g.i);return{get:y}},__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url),f=await h(qe);c.value=!!f}catch{}}function i(h){c.value?(m=h,u.value=!0):h()}function z(){u.value=!1,m?.(),m=null}function P(){u.value=!1,m=null}return{hasExistingProject:c,showReplaceModal:u,navigateOrConfirm:i,handleReplaceConfirm:z,handleReplaceCancel:P,refresh:_}}const Xe={class:"relative min-h-full hub-bg overflow-y-auto"},Ke={class:"!hidden lg:!block absolute top-4 right-4 z-20"},We={class:"relative z-10 max-w-5xl mx-auto px-6 py-10"},Ye={class:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4 mb-8"},Ge={class:"flex items-center justify-center w-10 h-10 rounded-lg bg-primary-100 dark:bg-primary-900/50 text-primary-600 dark:text-primary-400 shrink-0"},Qe={class:"flex-1 min-w-0"},Je={class:"flex items-center gap-2"},Ze={class:"flex items-center gap-1 mb-6 border-b border-neutral-200 dark:border-neutral-700"},Fe={class:"flex flex-wrap gap-2 mb-6"},et={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"},tt=["onClick"],at={class:"flex items-start justify-between mb-3"},rt={class:"flex items-center gap-2.5"},ot={class:"flex items-center justify-center w-9 h-9 rounded-lg bg-primary-50 dark:bg-primary-950/50 text-primary-600 dark:text-primary-400"},nt={class:"font-medium text-neutral-900 dark:text-neutral-50 group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors"},st={class:"text-sm text-neutral-500 dark:text-neutral-400 mb-4 flex-1"},lt={class:"flex items-center gap-1.5"},it={key:0,class:"text-center py-16"},dt={key:0,class:"flex items-center justify-center py-24"},ut={key:1,class:"flex flex-col items-center justify-center py-24 text-center"},ct={key:2,class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"},mt={class:"flex items-start justify-between mb-3"},pt={class:"flex items-center gap-2.5"},ft={class:"flex items-center justify-center w-9 h-9 rounded-lg bg-emerald-50 dark:bg-emerald-950/50 text-emerald-600 dark:text-emerald-400"},xt={class:"min-w-0"},bt={class:"font-medium text-neutral-900 dark:text-neutral-50 truncate"},yt={class:"text-[10px] text-neutral-400"}
2,gt={class:"text-sm text-neutral-600 dark:text-neutral-400 mb-4 flex-1 line-clamp-2"},vt={class:"flex items-center gap-1.5"},_t=["onClick"],ht={key:0,class:"absolute inset-0 z-10 flex flex-col items-center justify-center rounded-xl bg-white/95 dark:bg-neutral-900/95 backdrop-blur-sm"},kt={class:"flex items-center gap-2"},wt={key:3,class:"text-center py-16"},Ct={class:"text-neutral-500 dark:text-neutral-400"},Pt={class:"space-y-4"},Tt={class:"flex items-start gap-3 p-3 rounded-lg bg-primary-50 dark:bg-primary-950/30 border border-primary-200 dark:border-primary-800"},zt={class:"flex items-center gap-3"},St=G({__name:"hub",setup(c){X({title:"Polkadot Smart Contract Templates - RevX"}),X({meta:[{name:"description",content:"Browse and share Polkadot smart contract templates. Official and community templates for building on Polkadot."},{property:"og:title",content:"Polkadot Smart Contract Templates - RevX"},{property:"og:description",content:"Browse and share Polkadot smart contract templates. Official and community templates for building on Polkadot."},{name:"twitter:card",content:"summary_large_image"}]}),Oe([Ee({name:"Polkadot Smart Contract Templates - RevX"})]),Le("NuxtSeo",{title:"Contract Hub",description:"Polkadot Smart Contract Templates"});const u=Pe(),m=Te(),{communityTemplates:_,isLoading:i,loadCommunityTemplates:z,deleteCommunityTemplate:P,submitToPublic:h}=Ie(),f=C("official"),y=C(""),g=C(null),$=C(null),{showReplaceModal:O,navigateOrConfirm:U,handleReplaceConfirm:Z,handleReplaceCancel:F,refresh:ee}=He();ze(async()=>{z(),await ee()});const M=D(()=>B.filter(o=>{if(g.value&&o.category!==g.value)return!1;if(y.value){const e=y.value.toLowerCase();return o.name.toLowerCase().includes(e)||o.description.toLowerCase().includes(e)}return!0})),A=D(()=>{if(!y.value)return _.value;const o=y.value.toLowerCase();return _.value.filter(e=>e.name.toLowerCase().includes(o)||e.description.toLowerCase().includes(o))}),te=D(()=>[...new Set(B.map(e=>e.category))].map(e=>({key:e,label:N[e]})));function ae(o){g.value=g.value===o?null:o}const{isAuthenticated:re,guardedAction:oe}=Ue(),T=C(!1);let S=null;function ne(o){const{gcloudCompilerEnabled:e}=je().public;if(e&&!re.value){S=o,T.value=!0;return}U(()=>{u.push({path:"/editor",query:{example:o.exampleKey}})})}function se(){T.value=!1;const o=S;S=null,o&&oe(async()=>{U(()=>{u.push({path:"/editor",query:{example:o.exampleKey}})})},"Connect your wallet for faster builds")}function le(){T.value=!1;const o=S;S=null,o&&U(()=>{u.push({path:"/editor",query:{example:o.exampleKey}})})}function V(o){U(()=>{sessionStorage.setItem("revx-load-community-template",JSON.stringify({name:o.name,files:o.files})),u.push({path:"/editor",query:{fresh:"1",communityTemplate:"1"}})})}async function ie(o){await P(o),$.value=null,m.add({title:"Template deleted",color:"success",duration:3e3})}async function de(o){try{await h(o),m.add({title:"Template submitted!",description:"Your template has been submitted for review. If approved, it will appear in the Official templates.",color:"success",duration:6e3})}catch{m.add({title:"Submission failed",description:"Please try again later.",color:"error",duration:4e3})}}function q(o){return o==="beginner"?"success":o==="intermediate"?"warning":"error"}return(o,e)=>{const ue=ge,x=_e,H=ke,ce=we,me=ve,v=Q,pe=Se,k=J,fe=$e,xe=Ve,be=Y,ye=he;return d(),R(ye,{id:"marketplace"},{header:s(()=>[r(ce,{class:"lg:!hidden",ui:{root:"relative",title:"absolute left-1/2 -translate-x-1/2"}},{title:s(()=>[r(ue,{size:20,color:"currentColor"}),e[8]||(e[8]=l(" RevX ",-1)),r(x,{color:"primary",variant:"subtle",size:"xs"},{default:s(()=>[...e[7]||(e[7]=[l("BETA",-1)])]),_:1})]),right:s(()=>[r(H,{size:"sm",color:"neutral",variant:"ghost"})]),_:1})]),body:s(()=>[t("div",Xe,[e[24]||(e[24]=t("div",{class:"hub-noise","aria-hidden":"true"},null,-1)),t("div",Ke,[r(H,{size:"sm",color:"neutral",variant:"ghost"})]),t("div",We,[t("div",Ye,[e[9]||(e[9]=t("div",null,[t("h1",{class:"text-2xl font-bold text-neutral-900 dark:text-neutral-50"},"Contract Hub"),t("p",{class:"text-sm text-neutral-500 dark:text-neutral-400 mt-1"}," Browse official and community templates to start building faster ")],-1)),r(me,{modelValue:n(y),"onUpdate:modelValue":e[0]||(e[0]=a=>E(y)?y.value=a:null),size:"sm",placeholder:"Search templates...",icon:"i-heroicons-magnifying-glass",class:"w-56"},null,8,["modelValue"])]),r(pe,{to:"/builder",class:"group flex items-center gap-4 p-4 mb-8 rounded-xl border border-primary-200 dark:border-primary-800 bg-primary-50 dark:bg-primary-950/30 hover:border-primary-400 dark:hover:border-primary-600 transition-all"},{default:s(()=>[t("div",Ge,[r(v,{name:"i-heroicons-sparkles",class:"w-5 h-5"})]),t("div",Qe,[t("div",Je,[e[11]||(e[11]=t("span",{class:"font-semibold text-sm text-neutral-900 dark:text-neutral-50 group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors"}," Build a Polkadot App with AI ",-1)),r(x,{color:"warning",variant:"subtle",size:"xs"},{default:s(()=>[...e[10]||(e[10]=[l("ALPHA",-1)])]),_:1})]),e[12]||(e[12]=t("p",{class:"text-xs text-neutral-500 dark:text-neutral-400 mt-0.5"}," Describe your app and AI generates it live â Vite + Vue + polkadot-api
2with instant preview ",-1))]),r(v,{name:"i-heroicons-arrow-right",class:"w-4 h-4 text-neutral-400 group-hover:text-primary-500 transition-colors shrink-0"})]),_:1}),t("div",Ze,[t("button",{class:K(["px-4 py-2 text-sm font-medium border-b-2 transition-colors -mb-px",n(f)==="official"?"border-primary-500 text-primary-600 dark:text-primary-400":"border-transparent text-neutral-500 hover:text-neutral-700 dark:hover:text-neutral-300"]),onClick:e[1]||(e[1]=a=>f.value="official")},[e[13]||(e[13]=l(" Official ",-1)),r(x,{color:"neutral",variant:"subtle",size:"xs",class:"ml-1.5"},{default:s(()=>[l(b(n(B).length),1)]),_:1})],2),t("button",{class:K(["px-4 py-2 text-sm font-medium border-b-2 transition-colors -mb-px",n(f)==="community"?"border-primary-500 text-primary-600 dark:text-primary-400":"border-transparent text-neutral-500 hover:text-neutral-700 dark:hover:text-neutral-300"]),onClick:e[2]||(e[2]=a=>f.value="community")},[e[14]||(e[14]=l(" My Templates ",-1)),r(x,{color:"neutral",variant:"subtle",size:"xs",class:"ml-1.5"},{default:s(()=>[l(b(n(_).length),1)]),_:1})],2)]),n(f)==="official"?(d(),p(j,{key:0},[t("div",Fe,[(d(!0),p(j,null,L(n(te),a=>(d(),R(k,{key:a.key,size:"xs",color:n(g)===a.key?"primary":"neutral",variant:n(g)===a.key?"solid":"subtle",label:a.label,onClick:I=>ae(a.key)},null,8,["color","variant","label","onClick"]))),128))]),t("div",et,[(d(!0),p(j,null,L(n(M),a=>(d(),p("button",{key:a.id,class:"group relative flex flex-col text-left p-5 rounded-xl border border-neutral-200 dark:border-neutral-600 bg-white dark:bg-neutral-700 hover:border-primary-500 dark:hover:border-primary-500 hover:shadow-md transition-all",onClick:I=>ne(a)},[t("div",at,[t("div",rt,[t("div",ot,[r(v,{name:a.icon,class:"w-5 h-5"},null,8,["name"])]),t("h3",nt,b(a.name),1)]),r(x,{color:q(a.difficulty),variant:"subtle",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[l(b(n(W)[a.difficulty]),1)]),_:2},1032,["color"])]),t("p",st,b(a.description),1),t("div",lt,[r(x,{color:"neutral",variant:"subtle",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[l(b(n(N)[a.category]),1)]),_:2},1024),r(x,{color:"neutral",variant:"outline",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[...e[15]||(e[15]=[l("Rust",-1)])]),_:1}),r(x,{color:"primary",variant:"subtle",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[...e[16]||(e[16]=[l("Official",-1)])]),_:1})])],8,tt))),128))]),n(M).length===0?(d(),p("div",it,[r(v,{name:"i-heroicons-magnifying-glass",class:"w-10 h-10 mx-auto mb-3 text-neutral-400"}),e[17]||(e[17]=t("p",{class:"text-neutral-500 dark:text-neutral-400"},"No templates match your search.",-1)),r(k,{color:"neutral",variant:"ghost",size:"sm",label:"Clear filters",class:"mt-2",onClick:e[3]||(e[3]=a=>{y.value="",g.value=null})})])):w("",!0)],64)):w("",!0),n(f)==="community"?(d(),p(j,{key:1},[n(i)?(d(),p("div",dt,[r(v,{name:"i-heroicons-arrow-path",class:"w-6 h-6 animate-spin text-neutral-400"})])):n(_).length===0?(d(),p("div",ut,[r(v,{name:"i-heroicons-puzzle-piece",class:"w-16 h-16 mb-4 text-neutral-300 dark:text-neutral-600"}),e[18]||(e[18]=t("h2",{class:"text-lg font-medium text-neutral-700 dark:text-neutral-300 mb-2"},"No custom templates yet",-1)),e[19]||(e[19]=t("p",{class:"text-sm text-neutral-500 dark:text-neutral-400 max-w-sm mb-6"},' Open a project in the IDE and use "Save as Template" from the command palette to create reusable templates. ',-1)),r(k,{color:"primary",icon:"i-heroicons-code-bracket",label:"Open Editor",to:"/editor"})])):(d(),p("div",ct,[(d(!0),p(j,null,L(n(A),a=>(d(),p("div",{key:a.id,class:"group relative flex flex-col p-5 rounded-xl border border-neutral-200 dark:border-neutral-600 bg-white dark:bg-neutral-700 hover:border-primary-500 dark:hover:border-primary-500 hover:shadow-md transition-all"},[t("div",mt,[t("div",pt,[t("div",ft,[r(v,{name:a.icon,class:"w-5 h-5"},null,8,["name"])]),t("div",xt,[t("h3",bt,b(a.name),1),t("p",yt,b(a.fileCount)+" files",1)])]),r(fe,{items:[[{label:"Use Template",icon:"i-heroicons-play",onSelect:()=>V(a)},...a.submissionStatus!=="pending_review"?[{label:"Submit to Public",icon:"i-heroicons-globe-alt",onSelect:()=>de(a.id)}]:[]],[{label:"Delete",icon:"i-heroicons-trash",onSelect:()=>{$.value=a.id}}]],content:{align:"end",sideOffset:4}},{default:s(()=>[r(k,{color:"neutral",variant:"ghost",size:"xs",icon:"i-heroicons-ellipsis-vertical",class:"relative z-10 opacity-0 group-hover:opacity-100 transition-opacity"})]),_:1},8,["items"])]),t("p",gt,b(a.description),1),t("div",vt,[r(x,{color:q(a.difficulty),variant:"subtle",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[l(b(n(W)[a.difficulty]),1)]),_:2},1032,["color"]),r(x,{color:"neutral",variant:"subtle",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[l(b(n(N)[a.category]),1)]),_:2},1024),a.cidUrl?(d(),R(x,{key:0,color:"info",variant:"subtle",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[...e[20]||(e[20]=[l("Shared",-1)])]),_:1})):w("",!0),a.submissionStatus==="pending_review"?(d(),R(x,{key:1,color:"warning",variant:"subtle",size:"xs",class:"px-2 py-0.5"},{default:s(()=>[...e[21]||(e[21]=[l("Pending Review",-1)])]),_:1})):w("",!0)]),t("button",{class:"absolute inset-0 rounded-xl","aria-label":"Use template",onClick:I=>V(a)},null,8,_t),n($)===a.id?(d(),p("div",ht,[e[22]||(e[22]=t("p",{class:"text-sm font-medium text-neutral-900 dark:text-neutral-50 mb
2-1"},"Delete this template?",-1)),e[23]||(e[23]=t("p",{class:"text-xs text-neutral-500 dark:text-neutral-400 mb-4"},"This cannot be undone.",-1)),t("div",kt,[r(k,{size:"xs",color:"error",label:"Delete",onClick:I=>ie(a.id)},null,8,["onClick"]),r(k,{size:"xs",color:"neutral",variant:"subtle",label:"Cancel",onClick:e[4]||(e[4]=I=>$.value=null)})])])):w("",!0)]))),128))])),n(A).length===0&&n(_).length>0?(d(),p("div",wt,[r(v,{name:"i-heroicons-magnifying-glass",class:"w-10 h-10 mx-auto mb-3 text-neutral-400"}),t("p",Ct,'No templates match "'+b(n(y))+'"',1)])):w("",!0)],64)):w("",!0)])]),r(xe,{open:n(O),"onUpdate:open":e[5]||(e[5]=a=>E(O)?O.value=a:null),onConfirm:n(Z),onCancel:n(F)},null,8,["open","onConfirm","onCancel"]),r(be,{open:n(T),"onUpdate:open":e[6]||(e[6]=a=>E(T)?T.value=a:null),title:"Get a faster build experience",ui:{content:"sm:max-w-md"}},{body:s(()=>[t("div",Pt,[t("div",Tt,[r(v,{name:"i-heroicons-bolt",class:"w-5 h-5 text-primary shrink-0 mt-0.5"}),e[25]||(e[25]=t("div",null,[t("p",{class:"text-sm font-medium text-gray-900 dark:text-white"}," Connect your wallet for instant builds "),t("p",{class:"text-xs text-gray-500 dark:text-gray-400 mt-1"}," We'll pre-warm a build container while you explore the code. When you're ready to compile, it'll be instant. ")],-1))]),t("div",zt,[r(k,{color:"primary",block:"",class:"flex-1",icon:"i-heroicons-wallet",onClick:se},{default:s(()=>[...e[26]||(e[26]=[l(" Connect & Start ",-1)])]),_:1}),r(k,{color:"neutral",variant:"outline",block:"",class:"flex-1 justify-center",onClick:le},{default:s(()=>[...e[27]||(e[27]=[l(" Skip for now ",-1)])]),_:1})])])]),_:1},8,["open"])]),_:1})}}}),Mt=Re(St,[["__scopeId","data-v-675545ad"]]);export{Mt 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.