1import{bv as E,j as e,H as A,z,A as k}from"./index-DMbmUYN9.js";import{r as l}from"./vendor-DliuPpH9.js";const M=` 2.wd{background:#F4EFE4;color:#17150F;font-family:'Source Serif 4',Georgia,serif;min-height:70vh} 3.wd *{box-sizing:border-box} 4.wd .wrap{max-width:1180px;margin:0 auto;padding:0 24px} 5 6/* masthead: the profile card's palette (#141416, white/10 border, gold gradient title) */ 7.wd .masthead{padding:28px 0 0} 8.wd .mast{background:#141416;border:1px solid rgba(255,255,255,.1);border-radius:22px;color:#f5f5f5;position:relative;overflow:hidden;box-shadow:0 24px 60px rgba(20,14,4,.14)} 9.wd .mast .inner{padding:44px 44px 36px} 10.wd .kicker{font-family:'IBM Plex Mono',Menlo,monospace;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:#F0A800;display:flex;align-items:center;gap:12px;margin:0 0 18px} 11.wd .kicker img{width:22px;height:22px;object-fit:contain} 12.wd .kicker i{display:inline-block;width:28px;height:1px;background:rgba(240,168,0,.55)} 13.wd .mast h1{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:58px;line-height:1;letter-spacing:-.025em;margin:0 0 18px;color:#f5f5f5;text-shadow:none;font-variation-settings:"opsz" 58} 14.wd .mast h1 em{font-style:normal;background:linear-gradient(90deg,#FFE55C,#FF8C00);-webkit-background-clip:text;background-clip:text;color:transparent} 15.wd .lede{max-width:60ch;margin:0;font-size:17.5px;line-height:1.6;color:#c9c5bd} 16.wd .bar{border-top:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);padding:14px 44px;display:flex;align-items:center;justify-content:space-between;gap:20px} 17.wd .bar .note{font-family:'IBM Plex Mono',Menlo,monospace;font-size:11.5px;letter-spacing:.06em;color:#9a958b} 18.wd .search{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:9px 16px;min-width:260px;max-width:340px;flex:0 1 340px} 19.wd .search:focus-within{border-color:rgba(240,168,0,.6)} 20.wd .search svg{flex:0 0 auto;color:#9a958b} 21.wd .search input{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:14.5px;color:#f5f5f5;min-width:0} 22.wd .search input::placeholder{color:#8a867d} 23
24/* body */ 25.wd .body{padding:6px 0 90px} 26.wd h2{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:30px;letter-spacing:-.015em;margin:56px 0 4px;font-variation-settings:"opsz" 30} 27.wd .sub{color:#6B655A;margin:0 0 22px;font-size:15.5px;display:flex;gap:14px;align-items:baseline;flex-wrap:wrap} 28.wd .sub .k{font-family:'IBM Plex Mono',Menlo,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8A6A1F} 29.wd .grid{display:grid;gap:18px} 30.wd .grid.lg{grid-template-columns:repeat(3,minmax(0,1fr))} 31.wd .listhead h2{margin-top:44px} 32.wd .tier{align-self:flex-start;margin:0 0 12px;font-family:'IBM Plex Mono',Menlo,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#8A6A1F;border:1px solid #E6D3A3;border-radius:999px;padding:3px 8px;background:#FFFBF0;line-height:1.2} 33.wd .card.t-laureate .tier{color:#FFF8E6;border-color:#B8891B;background:linear-gradient(180deg,#D9A93A,#B8891B)} 34.wd .card.t-honour .tier{color:#7A5C14;border-color:#D9C89A;background:#FFF6DD} 35.wd .card.t-distinguished .tier,.wd .card.t-finalist .tier,.wd .card.t-seasoned .tier{color:#7A5C14;border-color:#E6D3A3;background:#FFFBF0} 36.wd .card.t-rising .tier,.wd .card.t-new .tier{color:#8A8272;border-color:#EFE8D6;background:#fff} 37.wd .tier .st{font-style:normal;margin-left:6px;color:#8A8272} 38.wd .card.md::before{content:"";position:absolute;left:22px;right:22px;top:0;height:2px;border-radius:0 0 2px 2px;background:#E4DCC8} 39.wd .pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:34px} 40.wd .pg{font-family:'IBM Plex Mono',Menlo,monospace;font-size:12.5px;min-width:38px;height:38px;padding:0 12px;border-radius:999px;border:1px solid #E4DCC8;background:#FFFDF8;color:#4A443A;cursor:pointer} 41.wd .pg:disabled{opacity:.4;cursor:default} 42.wd .pg.on{background:#17150F;color:#F7F3EA;border-color:#17150F} 43.wd .pg-el{color:#9A927F;padding:0 2px} 44.wd .pg-note{flex-basis:100%;text-align:center;font-family:'IBM Plex Mono',Menlo,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#9A927F;margin-top:6px} 45.wd .grid.md{grid-template-columns:repeat(4,minmax(0,1fr))} 46.wd .grid.sm{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px} 47.wd .card{position:relative;display:flex;flex-direction:column;background:#FFFDF8;border:1px solid #E7DFCB;border-radius:20px;padding:22px 22px 18px;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;min-width:0} 48.wd .card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(60,44,10,.12);border-color:#D9C89A} 49.wd .card.lg::before{content:"";position:absolute;left:22px;right:22px;top:0;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,#E9C766,#B8891B)} 50.wd .top{display:flex;align-items:center;gap:16px;min-width:0} 51.wd .dp,.wd .dp0{border-radius:50%;object-fit:cover;flex:0 0 auto;border:1px solid #E4DCC8;background:#fff} 52.wd .card.lg .dp,.wd .card.lg .dp0{width:76px;height:76px} 53.wd .card.md .dp,.wd .card.md .dp0{width:64px;height:64px} 54.wd .dp0{display:flex;align-items:center;justify-content:center;font-family:'Fraunces',Georgia,serif;color:#8A6A1F;background:linear-gradient(180deg,#FFF6DD,#F3E4B8);font-size:26px} 55.wd .card.md .dp0{font-size:20px} 56.wd .who{min-width:0;flex:1} 57.wd .name{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:22px;line-height:1.12;letter-spacing:-.012em;margin:0;overflow-wrap:anywhere} 58.wd .card.md .name{font-size:20px} 59.wd .where{font-family:'IBM Plex Mono',Menlo,monospace;font-size:12px;color:#6B655A;margin-top:6px;display:flex;align-items:center;gap:6px} 60.wd .head{margin:14px 0 0;color:#4A443A;font-size:15px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden} 61.wd .rec{margin-top:16px;padding-top:12px;border-top:1px solid #EFE8D6;font-family:'IBM Plex Mono',Menlo,monospace;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#7A5C14;display:flex;flex-wrap:wrap;gap:6px 0} 62.wd .rec span+span::before{content:"·";margin:0 8px;color:#C9B98C} 63.wd .rec .q{color:#8A8272} 64.wd .card.md .rec{margin-top:12px;font-size:11px} 65.wd .row{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:16px;background:#FFFDF8;border:1px solid #EFE8D6;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s;min-width:0} 66.wd .row:hover{border-color:#D9C89A;transform:translateY(-1px)} 67.wd .row .dp,.wd .row .dp0{width:44px;height:44px;font-size:17px} 68.wd .row .nm{font-family:'Fraunces',Georgia,serif;font-size:17px;line-height:1.15;min-width:0;overflow-wrap:anywhere} 69.wd .row .hl{display:block;font-family:'IBM Plex Mono',Menlo,monospace;font-size:11.5px;color:#8A8272;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em} 70.wd .empty{padding:48px 0;color:#6B655A;font-size:17px} 71.wd .own{margin-top:72px;border-radius:24px;padding:34px 34px;background:#0F0E0C;color:#F4EFE4;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;position:relative;overflow:hidden} 72.wd .own::after{content:"";position:absolute;right:-10%;top:-60%;width:50%;height:220%;background:radial-gradient(ellipse at center,rgba(233,199,102,.14),rgba(233,199,102,0) 60%);pointer-events:none} 73.wd .own h2{margin:0 0 8px;color:#F4EFE4;font-size:28px;font-weight:400} 74.wd .own p{margin:0;color:#CFC6B2;font-size:16px;max-width:58ch;line-height:1.55} 75.wd .own a{position:relative;flex:0 0 auto;background:linear-gradient(180deg,#FFE55C,#E0A100);color:#2A2000;font-weight:700;border-radius:999px;padding:14px 26px;text-decoration:none;font-size:15px;white-space:nowrap} 76@media (max-width:1024px){ 77 .wd .grid.lg{grid-template-columns:repeat(2,minmax(0,1fr))} 78 .wd .grid.md{grid-template-columns:repeat(3,minmax(0,1fr))} 79 .wd .grid.sm{grid-template-columns:repeat(2,minmax(0,1fr))} 80} 81@media (max-width:720px){ 82 .wd .wrap{padding:0 18px} 83 .wd .masthead{padding-top:16px}
84 .wd .mast .inner{padding:28px 22px 26px} 85 .wd .bar{flex-direction:column;align-items:stretch;gap:10px;padding:14px 18px} 86 .wd .kicker{margin-bottom:16px} 87 .wd .mast h1{font-size:38px;margin-bottom:14px} 88 .wd .lede{font-size:16px} 89 .wd .search{max-width:none;flex:1 1 auto;min-width:0} 90 .wd .bar .note{text-align:center} 91 .wd h2{font-size:25px;margin-top:40px} 92 .wd .grid.lg,.wd .grid.md,.wd .grid.sm{grid-template-columns:1fr} 93 .wd .card{padding:18px 18px 16px} 94 .wd .card.lg .dp,.wd .card.lg .dp0{width:64px;height:64px} 95 .wd .name{font-size:20px} 96 .wd .own{grid-template-columns:1fr;padding:26px 22px;margin-top:52px} 97 .wd .own a{justify-self:start} 98} 99`;function C(t,i){const s=new Set([1,i,t-1,t,t+1].filter(d=>d>=1&&d<=i)),a=[];for(let d=1;d<=i;d++)s.has(d)?a.push(d):a[a.length-1]!=="â¦"&&a.push("â¦");return a}const B=t=>(t||"?").trim().charAt(0).toUpperCase();function P({w:t}){const[i,s]=l.useState(!1);return!t.avatarUrl||i?e.jsx("span",{className:"dp0","aria-hidden":!0,children:B(t.name)}):e.jsx("img",{className:"dp",src:t.avatarUrl,alt:"",width:76,height:76,loading:"lazy",referrerPolicy:"no-referrer",onError:()=>s(!0)})}function D(t){const i=[];return t.wins&&i.push({text:t.wins===1?"Placed":`Placed ${t.wins}Ã`}),t.honours&&i.push({text:"National Honour"}),t.top10&&i.push({text:t.top10===1?"Top 10":`Top 10 ${t.top10}Ã`,quiet:!!(t.wins||t.honours)}),t.rounds>1&&i.push({text:`${t.rounds} rounds`,quiet:!0}),t.stories&&i.push({text:"Stories",quiet:!0}),i.slice(0,4)}const I={laureate:"Writory Laureate",laurelled:"Laurelled Writorian",honour:"National Honour",distinguished:"Distinguished Writorian",finalist:"Finalist",seasoned:"Seasoned Quill",rising:"Rising Writorian",new:"New Writorian"};function W({w:t,size:i,tier:s}){return e.jsxs(k,{href:`/writer/${t.handle}`,className:`card ${i} t-${s}`,children:[e.jsxs("span",{className:"tier",children:[I[s],t.stories?e.jsx("i",{className:"st",children:"· Stories"}):null]}),e.jsxs("div",{className:"top",children:[e.jsx(P,{w:t}),e.jsxs("div",{className:"who",children:[e.jsx("h3",{className:"name",children:t.name}),t.country&&e.jsxs("div",{className:"where",children:[t.countryFlag&&e.jsx("span",{"aria-hidden":!0,children:t.countryFlag}),t.country]})]})]}),t.headline&&e.jsx("p",{className:"head",children:t.headline}),e.jsx("div",{className:"rec",children:D(t).map(a=>e.jsx("span",{className:a.quiet?"q":"",children:a.text},a.text))})]})}function R(){const[t]=E(),[i,s]=l.useState(null),[a,d]=l.useState("");l.useEffect(()=>
99{fetch("/api/writers?per=400").then(r=>r.ok?r.json():null).then(r=>s(r)).catch(()=>s({writers:[],total:0}))},[t]);const m=(i==null?void 0:i.writers)||[],f=l.useMemo(()=>{const r=a.trim().toLowerCase();return m.filter(o=>!r||o.name.toLowerCase().includes(r))},[m,a]),u=r=>r.wins>=2||r.wins>=1&&r.honours>=1?"laureate":r.wins?"laurelled":r.honours?"honour":r.top10>=2?"distinguished":r.top10?"finalist":r.rounds>=3?"seasoned":r.rounds>=2||r.stories&&r.rounds?"rising":"new",w=r=>r.honours*30+r.wins*26+r.top10*8+r.rounds*3+r.stories*4+(r.avatarUrl?10:0)+(r.ownHeadline?6:0)+(r.hasAbout?6:0)+(r.hasLinks?4:0)+(r.country&&r.country!=="India"?24:0),b=r=>r.country&&r.country!=="India"?1:0,x=l.useMemo(()=>[...f].sort((r,o)=>b(o)-b(r)||(o.avatarUrl?1:0)-(r.avatarUrl?1:0)||w(o)-w(r)||r.name.localeCompare(o.name)),[f]),h=12,p=Math.max(1,Math.ceil(x.length/h)),[v,y]=l.useState(()=>{if(typeof window=="undefined")return 1;const r=parseInt(new URLSearchParams(window.location.search).get("page")||"1",10);return Number.isFinite(r)&&r>0?r:1}),n=Math.min(v,p),N=x.slice((n-1)*h,n*h),g=r=>{const o=Math.min(Math.max(1,r),p);y(o);try{const c=new URL(window.location.href);o===1?c.searchParams.delete("page"):c.searchParams.set("page",String(o)),window.history.replaceState(null,"",c.pathname+(c.search||""))}catch(c){}const F=document.getElementById("register-list");F&&F.scrollIntoView({behavior:"smooth",block:"start"})},j=l.useRef(!0);return l.useEffect(()=>{if(j.current){j.current=!1;return}y(1)},[a]),e.jsxs("div",{className:"wd",children:[e.jsx("style",{children:M}),e.jsxs(A,{children:[e.jsx("title",{children:"Writers on Writory: verified poet and story writer portfolios | Writory"}),e.jsx("meta",{name:"description",content:"The public record of Writory's writers: verified contest placements, National Honours, top-10 finishes, certificates with verify pages and published work, from writers in more than 20 countries."}),e.jsx("link",{rel:"canonical",href:"https://writoryofficial.com/writers"})]}),e.jsx("div",{className:"masthead",children:e.jsx("div",{className:"wrap",children:e.jsxs("section",{className:"mast",children:[e.jsxs("div",{className:"inner",children:[e.jsxs("p",{className:"kicker",children:[e.jsx("img",{src:z,alt:""}),"The Writory Register",e.jsx("i",{"aria-hidden":!0})]}),e.jsxs("h1",{children:["The writers ",e.jsx("em",{children:"on record."})]}),e.jsx("p",{className:"lede",children:"Poets and story writers who have entered Writory's blind-judged contests. Each page is built from the record itself, not a bio: placements, National Honours, certificates that can be verified, and the work that earned them."})]}),e.jsxs("div",{className:"bar",children:[e.jsx("span",{className:"note",children:"Every line on these pages is verified by Writory. Ranks beyond the top ten and scores stay private."}),e.jsxs("label",{className:"search",children:[e.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[e.jsx("circle",{cx:"11",cy:"11",r:"7"}),e.jsx("path",{d:"M20 20l-3.5-3.5"})]}),e.jsx("input",{value:a,onChange:r=>d(r.target.value),placeholder:"Find a writer by name","aria-label":"Search writers by name"})]})]})]})})}),e.jsx("div",{className:"body",children:e.jsxs("div",{className:"wrap",children:[i?x.length===0?e.jsx("p",{className:"empty",children:"No writer by that name yet."}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"listhead",id:"register-list",children:[e.jsx("h2",{children:a.trim()?"Matches":"The record"}),e.jsxs("p",{className:"sub",children:[e.jsx("span",{className:"k",children:"The record"}),"Writory Laureates, Laurelled Writorians and National Honours lead; every writer with entries follows."]})]}),e.jsx("div",{className:"grid lg",children:N.map(r=>e.jsx(W,{w:r,size:["laureate","laurelled","honour","distinguished","finalist"].includes(u(r))?"lg":"md",tier:u(r)},r.handle))}),p>1&&e.jsxs("nav",{className:"pager","aria-label":"Pages",children:[e.jsx("button",{type:"button",className:"pg",disabled:n<=1,onClick:()=>g(n-1),"aria-label":"Previous page",children:"â¹ Prev"}),C(n,p).map((r,o)=>r==="â¦"?e.jsx("span",{className:"pg-el",children:"â¦"},`e${o}`):e.jsx("button",{type:"button",className:`pg${r===n?" on":""}`,"aria-current":r===n?"page":void 0,onClick:()=>g(r),children:r},r)),e.jsx("button",{type:"button",className:"pg",disabled:n>=p,onClick:()=>g(n+1),"aria-label":"Next page",children:"Next âº"}),e.jsxs("span",{className:"pg-note",children:["Page ",n," of ",p]})]})]}):e.jsx("p",{className:"empty",children:"Opening the record"}),e.jsxs("div",{className:"own",children:[e.jsxs("div",{children:[e.jsx("h2",{children:"Your page is already here, or one entry away."}),e.jsx("p",{children:"Every Writory writer has a portfolio built from their record. Enter a contest and it fills itself: score, certificate, rank and the verify links that go with them."})]}),e.jsx(k,{href:"/profile?utm_source=writers&utm_medium=directory",children:"Open my portfolio"})]})]})})]})}export{R 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.