1import{l as N,j as e,h as E,B as i,b as a,U as w,a8 as M,aE as I,u as L,r as d,s as B,L as R,S as A,aa as T,P as F,ah as g,a2 as U,w as D,n as j,a6 as H,f as $}from"./index-BuBUSqyv.js";import{I as O}from"./input-BjoFBvT2.js";import{g as q,h as V,i as G}from"./useMarketplace-vAOjM_yZ.js";import{j as W,S as z,f as Q}from"./marketplace-C-MwE8Do.js";import{u as Y}from"./useMarketplaceUnlock-BInAS3L0.js";import{M as J}from"./MarketplaceUnlockProgress-BfNmdTYG.js";import{E as b}from"./EmptyStateIllustration-DtbDxaGh.js";import{N as K}from"./NetworkGraphic-gc_iH14g.js";import{S as v}from"./ServiceCard-B7B3UFQR.js";import{l as y}from"./marketplaceTrust-DyX8mIie.js";import{L as k}from"./loader-circle-CpsBIJ5f.js";import"./ServiceCover-CKl7MTc3.js";import"./TrustBits-Dp-kBrLz.js";import"./bookmark-C_qhqTpf.js";import"./clock-GtNg1BN4.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const X=N("ClipboardList",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Z=N("UsersRound",[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]]),ee=[{icon:w,title:"Find Talent",body:"Discover people by proven skills, not self-reported titles."},{icon:M,title:"Offer Services",body:"Turn what you can do into clear, priced offers."},{icon:X,title:"Post Projects",body:"Describe the work and let matched talent come to you."},{icon:Z,title:"Build Teams",body:"Assemble a group with complementary, verified skills."},{icon:I,title:"Earn Reputation",body:"Completed work becomes verified professional history."}];function re(){const{locked:o}=Y();return o?e.jsx("div",{className:"rounded-2xl border border-primary/30 bg-primary/5 p-6 md:p-8",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-[minmax(0,1fr)_360px]",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"inline-flex items-center gap-2 text-xs font-semibold text-primary",children:[e.jsx(E,{className:"h-3.5 w-3.5","aria-hidden":!0})," Marketplace locked"]}),e.jsx("h2",{className:"mt-3 font-display text-2xl font-black tracking-tight md:text-3xl",children:"The Marketplace unlocks at 100 Passports."}),e.jsx("p",{className:"mt-3 max-w-2xl text-sm leading-relaxed text-muted-foreground md:text-base",children:"Commercial activity â services, projects, quotes and orders â is not open yet. Browse how it will work, explore talent, and claim your Passport to help unlock it."}),e.jsx("div",{className:"mt-6 grid gap-4 sm:grid-cols-2",children:ee.map(({icon:t,title:l,body:n})=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(t,{className:"mt-0.5 h-5 w-5 shrink-0 text-primary","aria-hidden":!0}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-foreground",children:l}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n})]})]},l))}),e.jsxs("div",{className:"mt-7 flex flex-wrap gap-3",children:[e.jsx(i,{asChild:!0,children:e.jsx(a,{to:"/passport/claim",children:"Claim Your Passport"})}),e.jsx(i,{asChild:!0,variant:"outline",children:e.jsx(a,{to:"/marketplace/talent",children:"Explore Talent"})})]})]}),e.jsx("div",{className:"rounded-xl border border-border bg-card/60 p-5",children:e.jsx(J,{variant:"compact",showCta:!1})})]})}):null}function ge(){const o=L(),t=q(),[l,n]=d.useState(""),{results:m,loading:S}=V({sort:"reputation"}),{talent:p,loading:C}=G(8),[x,_]=d.useState([]);d.useEffect(()=>{B.rpc("marketplace_promoted_services",{_category:null,_limit:3}).then(({data:r})=>_((r??[]).map(s=>({...s,promoted:!0}))))},[]),d.useEffect(()=>{y("category_view",{context:{surface:"landing"}})},[]);function h(r){y("search",{context:{query:r,from:"landing"}}),o(`/marketplace/search?q=${encodeURIComponent(r)}`)}return e.jsxs(R,{children:[e.jsx(A,{title:"Talent Marketplace Hire Proven Freelancers | Skill Stacker",description:"Explore Skill Stacker's freelance marketplace to hire freelancers and agencies with verified skills, proof of work, and trusted delivery history.",path:"/marketplace",image:"/og-marketplace.png"}),e.jsx("div",{className:"editorial-container editorial-gutter pt-8",children:e.jsx(re,{})}),e.jsxs("section",{className:"relative overflow-hidden",children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.35] [mask-image:radial-gradient(70%_60%_at_70%_40%,black,transparent)]",children:e.jsx(K,{variant:"network",animated:!1,className:"h-full w-full"})}),e.jsx("div",{className:"editorial-container editorial-gutter relative py-12 md:py-16",children:e.jsxs("div",{className:"grid items-center gap-10 lg:grid-cols-[minmax(0,1fr)_420px]",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"max-w-3xl font-display text-4xl font-black leading-[1.05] tracking-tight md:text-6xl",children:"A talent marketplace built on proof."}),e.jsx("p",{className:"mt-5 max-w-2xl text-base leading-relaxed text-muted-foreground md:text-lg",children:"Hire freelancers and agencies through a freelance marketplace where skills, work history, and credentials are verifiedânot just claimed. Browse freely without a wallet."}),e.jsxs("form",{className:"mt-8 flex flex-col gap-3 sm:flex-row",onSubmit:r=>{r.preventDefault(),h(l)},children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(T,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}
11),e.jsx(O,{value:l,onChange:r=>n(r.target.value),placeholder:"What do you need done? e.g. logo design, website, video editing",className:"h-12 pl-9","aria-label":"Search services"})]}),e.jsx(i,{type:"submit",className:"h-12 font-display tracking-wide",children:"SEARCH"})]}),e.jsxs("div",{className:"mt-4 flex flex-wrap items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:"Popular:"}),W.map(r=>e.jsx("button",{onClick:()=>h(r),className:"rounded-full border border-border px-3 py-1.5 text-muted-foreground transition hover:border-foreground/40 hover:text-foreground",children:r},r))]}),t&&e.jsxs("div",{className:"mt-6 flex flex-wrap gap-6 text-sm text-muted-foreground",children:[e.jsxs("span",{children:[e.jsx("span",{className:"font-semibold text-foreground",children:t.services})," service",t.services===1?"":"s"]}),e.jsxs("span",{children:[e.jsx("span",{className:"font-semibold text-foreground",children:t.providers})," provider",t.providers===1?"":"s"]}),e.jsxs("span",{children:[e.jsx("span",{className:"font-semibold text-foreground",children:t.open_projects})," open project",t.open_projects===1?"":"s"]})]})]}),e.jsx("div",{className:"hidden lg:block",children:e.jsx(F,{className:"h-[380px] w-full"})})]})})]}),e.jsxs("section",{className:"editorial-container editorial-gutter py-12 md:py-16",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"font-display text-2xl font-black tracking-tight md:text-3xl",children:"Browse freelance talent by category"}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Find specialists in branding, website development, AI automation, Web3, and more."})]}),e.jsxs(a,{to:"/marketplace/search",className:"inline-flex items-center gap-1 text-sm text-primary hover:underline",children:["See all services ",e.jsx(g,{className:"h-4 w-4"})]})]}),e.jsx("div",{className:"mt-8 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:z.filter(r=>r.value!=="other").map(r=>e.jsxs(a,{to:`/marketplace/${r.slug}`,className:"group flex items-center gap-3 rounded-2xl border border-border bg-card/60 p-5 transition hover:border-primary/60 hover:bg-card",children:[e.jsx("span",{className:"inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-border bg-background transition group-hover:border-primary/50",children:e.jsx(U,{category:r.value,size:"sm"})}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block truncate text-sm font-semibold",children:r.label}),e.jsx("span",{className:"block text-xs text-muted-foreground",children:(()=>{var u,f;const s=((f=(u=t==null?void 0:t.categories)==null?void 0:u.find(P=>P.category===r.value))==null?void 0:f.count)??0;return`${s} service${s===1?"":"s"}`})()})]})]},r.value))})]}),x.length>0&&e.jsxs("section",{className:"editorial-container editorial-gutter pb-4",children:[e.jsx("div",{className:"flex flex-wrap items-end justify-between gap-4 border-t border-border pt-12",children:e.jsxs("div",{children:[e.jsx("h2",{className:"font-display text-2xl font-black tracking-tight md:text-3xl",children:"Sponsored"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Paid placement by the seller. It does not affect scores, reviews or search ranking."})]})}),e.jsx("div",{className:"mt-8 grid gap-5 sm:grid-cols-2 xl:grid-cols-3",children:x.slice(0,3).map(r=>e.jsx(v,{service:r},r.id))})]}),e.jsxs("section",{className:"editorial-container editorial-gutter pb-4",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4 border-t border-border pt-12",children:[e.jsx("h2",{className:"font-display text-2xl font-black tracking-tight md:text-3xl",children:"Freelance services available now"}),e.jsxs(a,{to:"/marketplace/search",className:"inline-flex items-center gap-1 text-sm text-primary hover:underline",children:["Browse all ",e.jsx(g,{className:"h-4 w-4"})]})]}),e.jsx("div",{className:"mt-8",children:S?e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(k,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):m.length===0?e.jsx(b,{kind:"services",title:"The first listings are being published",description:"Skill Stacker is running on Solana Devnet. If you sell a service, you can be one of the first providers people find here.",action:e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsx(i,{asChild:!0,children:e.jsx(a,{to:"/marketplace/onboarding",children:"Start selling"})}),e.jsx(i,{asChild:!0,variant:"outline",children:e.jsx(a,{to:"/marketplace/post-project",children:"Post a project"})})]})}):e.jsx("div",{className:"grid gap-5 sm:grid-cols-2 xl:grid-cols-3",children:m.slice(0,6).map((r,s)=>e.jsx(v,{service:r,priority:s<3},r.id))})})]}),e.jsx("section",{className:"editorial-container editorial-gutter py-12 md:py-16",children:e.jsxs("div",{className:"border-t border-border pt-12",children:[e.jsx("h2",{className:"font-display text-2xl font-black tracking-tight md:text-3xl",children:"Find proven talent"}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm text-muted-foreground",children:"Compare freelancers and agencies by verified skills, completed work, and reputationân
11ot by paid placement."}),e.jsx("div",{className:"mt-8",children:C?e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(k,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):p.length===0?e.jsx(b,{kind:"services",title:"No providers listed publicly yet",description:"Early providers are still completing their profiles. Check back soon, or claim your Passport and be one of the first.",action:e.jsx(i,{asChild:!0,children:e.jsx(a,{to:"/passport/claim",children:"Claim your free Passport"})})}):e.jsx("div",{className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:p.map(r=>e.jsxs(a,{to:`/marketplace/provider/${r.username}`,className:"group flex flex-col rounded-2xl border border-border bg-card/60 p-5 transition hover:border-primary/60",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(D,{src:r.avatar_url,name:r.display_name??r.username,alt:`${r.display_name??r.username} avatar`,className:"h-11 w-11 rounded-full border border-border object-cover"}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block truncate text-sm font-semibold",children:r.display_name??r.username}),e.jsxs("span",{className:"block truncate text-xs text-muted-foreground",children:["@",r.username]})]})]}),r.headline&&e.jsx("p",{className:"mt-3 line-clamp-2 text-sm text-muted-foreground",children:r.headline}),r.skills.length>0&&e.jsx("div",{className:"mt-3 flex flex-wrap gap-1.5",children:r.skills.map(s=>e.jsx("span",{className:"rounded-full border border-border px-2 py-0.5 text-[11px] text-muted-foreground",children:s},s))}),e.jsxs("div",{className:"mt-auto flex flex-wrap items-center gap-x-3 gap-y-1 pt-4 text-xs text-muted-foreground",children:[r.verified_skills>0&&e.jsxs("span",{className:"inline-flex items-center gap-1 text-primary",children:[e.jsx(j,{className:"h-3.5 w-3.5"}),r.verified_skills," verified"]}),(r.rating_count??0)>0&&e.jsxs("span",{className:"inline-flex items-center gap-1 text-foreground",children:[e.jsx(H,{className:"h-3 w-3 fill-current"}),Number(r.rating_avg??0).toFixed(1)]}),(r.orders_completed??0)>0&&e.jsxs("span",{children:[r.orders_completed," delivered"]}),r.hourly_rate_cents?e.jsxs("span",{children:[Q(r.hourly_rate_cents),"/hr"]}):null]})]},r.provider_id))})})]})}),e.jsx("section",{className:"editorial-container editorial-gutter pb-16",children:e.jsxs("div",{className:"border-t border-border pt-12",children:[e.jsx("h2",{className:"font-display text-2xl font-black tracking-tight md:text-3xl",children:"Why this talent marketplace is different"}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm text-muted-foreground",children:"Many freelance websites rely on self-reported profiles. Skill Stacker helps buyers compare talent through verified skills, proof of work, and platform reputation."}),e.jsx("div",{className:"mt-8 grid gap-5 md:grid-cols-3",children:[{icon:$,title:"Verified, not claimed",body:"Skills and credentials can be reviewed and attached to a Passport, turning a profile into evidence rather than a list of claims."},{icon:j,title:"Proof of real work",body:"Delivery history, ratings, and completed orders reflect work performed through the freelance marketplace."},{icon:w,title:"Hire one person or a whole team",body:"Hire one freelancer or build a full team around one project brief, with proof that helps you compare each person."}].map(r=>e.jsxs("div",{className:"rounded-2xl border border-border bg-card/60 p-6",children:[e.jsx(r.icon,{className:"h-5 w-5 text-primary","aria-hidden":!0}),e.jsx("h3",{className:"mt-4 text-base font-semibold",children:r.title}),e.jsx("p",{className:"mt-2 text-sm leading-relaxed text-muted-foreground",children:r.body})]},r.title))})]})}),e.jsx("section",{className:"editorial-container editorial-gutter pb-24",children:e.jsxs("div",{className:"grid gap-5 border-t border-border pt-12 md:grid-cols-3",children:[e.jsx(c,{title:"Post a project",body:"Describe the work, set a budget, and receive proposals from freelancers who can show relevant proof.",cta:"Post a project",to:"/marketplace/post-project"}),e.jsx(c,{title:"Get matched automatically",body:"Describe the outcome and get matched with talent using verified skills, proof, and completed work.",cta:"Find best-fit talent",to:"/intelligence/talent"}),e.jsx(c,{title:"Build my team",body:"Build a team by roleâdesigner, developer, copywriter, or editorâand manage the search from one talent marketplace.",cta:"Build my team",to:"/intelligence/team"}),e.jsx(c,{title:"Start selling",body:"Create a freelance profile, list services and rates, and get discovered by clients looking for proven work.",cta:"Start selling",to:"/marketplace/onboarding"})]})})]})}function c({title:o,body:t,cta:l,to:n}){return e.jsxs("div",{className:"flex flex-col rounded-2xl border border-border bg-card/60 p-6",children:[e.jsx("h3",{className:"font-display text-xl font-black tracking-tight",children:o}),e.jsx("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:t}),e.jsx(i,{asChild:!0,variant:"outline",className:"mt-6 self-start",children:e.jsx(a,{to:n,children:l})})]})}export{ge 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.