PageSourceSearch

https://textcoder.ai/build/assets/Landing-MOPZERSS.js

js textcoder.ai collected 2026-10-05 14:36:53 UTC 23,426 bytes, 1 lines download raw bytes

1import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{n as t}from"./monaco-editor-CF3z0tSx.js";import{t as n}from"./react-vendor-ChED6jHy.js";import{t as r}from"./earth-Di092kbv.js";import{t as i}from"./layers-BAEu6qp4.js";import{t as a}from"./wand-sparkles-BjzC7cq8.js";import{t as o}from"./arrow-right-BgdKx3vE.js";import{t as s}from"./PublicShell-mzHlp3HW.js";import{t as c}from"./send-Bx7pc8Zy.js";import{B as l,L as u,M as d,R as f,ft as p,gt as m,ht as h,i as g,l as _,o as v,p as y,pt as b,v as x,vt as S}from"./app-Bqi1UXum.js";var C=e(t(),1),w=n();function T({authenticated:e,canRegister:t}){let[n,r]=(0,C.useState)(!1),[i,a]=(0,C.useState)(null),[s,l]=(0,C.useState)(``),[d,p]=(0,C.useState)(!1),[h,_]=(0,C.useState)(null),v=(0,C.useRef)(null);(0,C.useEffect)(()=>{let e=()=>r(!0);return window.addEventListener(`textcoder:open-public-studio`,e),()=>window.removeEventListener(`textcoder:open-public-studio`,e)},[]),(0,C.useEffect)(()=>{v.current?.scrollTo({top:v.current.scrollHeight,behavior:`smooth`})},[i?.messages,d]);let b=async()=>{p(!0),_(null);try{let{data:e}=await S.post(`/studio-preview/sessions`);a(e)}catch{_(`Studio could not start. Please try again.`)}finally{p(!1)}};return(0,C.useEffect)(()=>{n&&!i&&!d&&b()},[n]),(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>r(!0),className:`fixed bottom-5 right-5 z-[80] flex items-center gap-2 rounded-full border border-black/10 bg-[#171216] px-4 py-3 text-sm font-extrabold text-white shadow-[0_18px_55px_rgba(23,18,22,.28)] transition hover:-translate-y-0.5 hover:bg-[#2a2027]`,children:[(0,w.jsx)(u,{className:`h-4 w-4 text-[#ff75b7]`}),` Plan your first build`]}),n&&(0,w.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-end justify-end bg-black/20 p-0 sm:p-5`,onMouseDown:e=>{e.currentTarget===e.target&&r(!1)},children:(0,w.jsxs)(`section`,{className:`flex h-[min(720px,92vh)] w-full flex-col overflow-hidden border border-black/10 bg-[#fffdf9] shadow-[0_30px_100px_rgba(23,18,22,.28)] sm:max-w-[410px] sm:rounded-[24px]`,children:[(0,w.jsxs)(`header`,{className:`flex items-center justify-between border-b border-black/10 px-5 py-4`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(`span`,{className:`grid h-9 w-9 place-items-center rounded-xl bg-[#171216] text-white`,children:(0,w.jsx)(u,{className:`h-4 w-4 text-[#ff75b7]`})}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`b`,{className:`block text-sm text-[#171216]`,children:`TextCoder Studio Assistant`}),(0,w.jsx)(`span`,{className:`text-xs text-[#7b7076]`,children:`Create a stronger first prompt`})]})]}),(0,w.jsx)(`button`,{type:`button`,onClick:()=>r(!1),className:`rounded-lg p-2 text-[#776c72] hover:bg-black/5`,children:(0,w.jsx)(g,{className:`h-4 w-4`})})]}),(0,w.jsxs)(`div`,{ref:v,className:`flex-1 space-y-4 overflow-y-auto px-5 py-5`,children:[i?.messages.map((e,t)=>(0,w.jsx)(`div`,{className:e.role===`user`?`ml-auto max-w-[88%] rounded-2xl rounded-br-md bg-[#171216] px-4 py-3 text-sm leading-6 text-white`:`max-w-[92%] rounded-2xl rounded-bl-md border border-black/10 bg-white px-4 py-3 text-sm leading-6 text-[#3f353b]`,children:e.content},`${e.role}-${t}`)),d&&(0,w.jsxs)(`div`,{className:`flex max-w-[92%] items-center gap-2 rounded-2xl border border-black/10 bg-white px-4 py-3 text-sm text-[#776c72]`,children:[(0,w.jsx)(f,{className:`h-4 w-4 animate-spin`}),` Studio is thinking…`]}),h&&(0,w.jsx)(`div`,{className:`rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700`,children:h}),i?.complete&&(0,w.jsxs)(`div`,{className:`rounded-2xl border border-[#ffb5d6] bg-[#fff0f7] p-4`,children:[(0,w.jsx)(`p`,{className:`text-xs font-extrabold uppercase tracking-[.12em] text-[#8d315d]`,children:`Prompt preview`}),(0,w.jsx)(`p`,{className:`mt-3 whitespace-pre-wrap text-sm leading-6 text-[#3f353b]`,children:i.prompt_preview}),(0,w.jsxs)(`button`,{type:`button`,onClick:()=>{i?.final_prompt&&(sessionStorage.setItem(`landing_prompt`,i.final_prompt),sessionStorage.setItem(`studio_preview_token`,i.token),m.visit(e?`/create`:t?`/register`:`/login`))},className:`mt-4 flex w-full items-center justify-center gap-2 rounded-full bg-[#171216] px-4 py-3 text-sm font-extrabold text-white`,children:[e?`Continue in TextCoder`:`Create free account`,` `,(0,w.jsx)(o,{className:`h-4 w-4`})]}),(0,w.jsx)(`p`,{className:`mt-3 text-center text-xs text-[#776c72]`,children:`Keep the full prompt, continue planning, generate copy and architecture, and start the build.`})]})]}),!i?.complete&&(0,w.jsxs)(`form`,{onSubmit:async e=>{if(e.preventDefault(),!i||!s.trim()||d)return;let t=s.trim();l(``),p(!0),_(null),a({...i,messages:[...i.messages,{role:`user`,content:t}]});try{let{data:e}=await S.post(`/studio-preview/sessions/${i.token}/message`,{message:t});a(e)}catch(e){_(e?.response?.data?.message||`Studio could not send that message.`)}finally{p(!1)}},className:`border-t border-black/10 bg-white p-4`,children:[i?.ready_to_generate&&(0,w.jsx)(`button`,{type:`button`,onClick:async()=>
1{if(!(!i||d)){p(!0),_(null);try{let{data:e}=await S.post(`/studio-preview/sessions/${i.token}/generate`);a(e)}catch(e){_(e?.response?.data?.message||`Studio could not generate the prompt.`)}finally{p(!1)}}},disabled:d,className:`mb-3 w-full rounded-full border border-[#d9b4c7] bg-[#fff0f7] px-4 py-2.5 text-sm font-bold text-[#7d3155] hover:bg-[#ffe4f0]`,children:`Generate my prompt`}),(0,w.jsxs)(`div`,{className:`flex items-end gap-2 rounded-2xl border border-black/10 bg-[#fffdf9] p-2 focus-within:border-[#c75b8d]`,children:[(0,w.jsx)(`textarea`,{value:s,onChange:e=>l(e.target.value),rows:2,maxLength:2500,placeholder:`Type your answer…`,className:`min-h-[52px] flex-1 resize-none bg-transparent px-2 py-2 text-sm leading-6 outline-none`}),(0,w.jsx)(`button`,{type:`submit`,disabled:d||!s.trim(),className:`grid h-10 w-10 shrink-0 place-items-center rounded-xl bg-[#171216] text-white disabled:opacity-40`,children:(0,w.jsx)(c,{className:`h-4 w-4`})})]}),(0,w.jsxs)(`div`,{className:`mt-3 flex items-center justify-between`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>{a(null),_(null),b()},className:`flex items-center gap-1.5 text-xs font-semibold text-[#776c72]`,children:[(0,w.jsx)(y,{className:`h-3.5 w-3.5`}),` Start over`]}),(0,w.jsx)(`span`,{className:`text-[11px] text-[#9a8f95]`,children:`Up to 6 answers`})]})]})]})})]})}var E=[`A booking website for a two-location music school`,`A polished website for a luxury remodeling company`,`A SaaS dashboard with users, billing, and reports`,`A complete redesign of my existing business website`],D=[[`01`,`Plan`,`TextCoder Studio turns a rough idea into a project brief, architecture, copy plan, and clear acceptance criteria.`],[`02`,`Build`,`The AI Builder creates and edits the project inside a real workspace with files, history, and preview.`],[`03`,`Review`,`Inspect elements, refine the design, select project media, and test responsive behavior.`],[`04`,`Publish`,`Connect one or more domains, provision SSL, and keep improving after launch.`]],O=[[`TextCoder Studio`,`Plan the complete project through conversation before building.`,`/studio`,u],[`AI Builder`,`Create and revise websites and applications with AI.`,`/builder`,l],[`Website Rebuild`,`Analyze an existing website and plan a complete rebuild.`,`/website-rebuild`,r],[`Project Importer`,`Bring supported AI-generated and existing projects into TextCoder.`,`/importer`,v],[`Design & Media`,`Use design systems, project assets, Pexels, Inspect, and Media.`,`/media`,x],[`Domains & Hosting`,`Publish on multiple domains with independently managed SSL.`,`/domains`,i]];function k({auth:e,canLogin:t,canRegister:n,canCreateProject:r=!0,plans:i=[],suggestions:c=[]}){let{appSettings:l}=h().props,[f,g]=(0,C.useState)(``),[v,y]=(0,C.useState)(0);return(0,C.useEffect)(()=>{let e=setInterval(()=>y(e=>(e+1)%E.length),3600);return()=>clearInterval(e)},[]),(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(p,{title:l?.site_tagline||`TextCoder — Your AI Product Team`,children:(0,w.jsx)(`meta`,{name:`description`,content:`Plan, build, import, visually edit, publish, and improve websites and applications with TextCoder Studio and the AI Builder.`})}),(0,w.jsxs)(s,{auth:e,canLogin:t,canRegister:n,children:[(0,w.jsxs)(`main`,{children:[(0,w.jsxs)(`section`,{className:`relative overflow-hidden bg-[#171216] px-5 pb-24 pt-20 text-white sm:pt-28`,children:[(0,w.jsx)(`div`,{className:`pointer-events-none absolute -right-40 -top-40 h-[680px] w-[680px] rounded-full bg-[#ff4fa3]/25 blur-3xl`}),(0,w.jsx)(`div`,{className:`pointer-events-none absolute -bottom-56 -left-36 h-[520px] w-[520px] rounded-full bg-[#6b365a]/30 blur-3xl`}),(0,w.jsxs)(`div`,{className:`relative mx-auto grid max-w-[1240px] items-center gap-14 lg:grid-cols-[1.02fr_.98fr]`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`p`,{className:`font-mono text-[11px] uppercase tracking-[.17em] text-[#ff9fca]`,children:`Your AI product team`}),(0,w.jsx)(`h1`,{className:`mt-6 font-serif text-[55px] font-semibold leading-[.88] tracking-[-.075em] sm:text-7xl lg:text-[88px]`,children:`Plan it. Build it. Make it real.`}),(0,w.jsx)(`p`,{className:`mt-7 max-w-xl text-lg leading-8 text-[#d8ccd2]`,children:`TextCoder combines an AI strategist, architect, copywriter, builder, visual editor, project importer, asset workspace, and publishing system.`}),(0,w.jsxs)(`div`,{className:`mt-9 flex flex-wrap gap-3`,children:[(0,w.jsxs)(b,{href:`/register`,className:`rounded-full bg-[#ff4fa3] px-6 py-3.5 text-sm font-extrabold text-[#24131d]`,children:[`Start building `,(0,w.jsx)(o,{className:`ml-1 inline h-4 w-4`})]}),(0,w.jsx)(b,{href:`/studio`,className:`rounded-full border border-white/15 bg-white/10 px-6 py-3.5 text-sm font-bold`,children:`Explore TextCoder Studio`})]})]}),(0,w.jsxs)(`form`,{onSubmit:t=>{t?.preventDefault();let n=f.trim();if(n){if(!e.user){sessionStorage.setItem(`landing_prompt`,n),m.visit(`/register`);return}r&&m.post(`/projects`,{prompt:n})}},className:`rounded-[28px] border border-white/15 bg-white/[.08] p-4 shadow-[0_32px_100px_rgba(0,0,0,.34)] backdrop-blur-xl`,children:[(0,w.jsxs)(`div`,{className:`rounded-[22px] bg-[#fffdf9] p-5 text-[#171216]`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsx)(`b`,{className:`text-sm`,children:`What would you like to create?`}),(0,w.jsx)(`span`,{className:`rounded-full bg-[#f3e9ee] px-2.5 py-1 font-mono text-[9px] uppercase tracking-[.1em]`,children:`Live product entry`})]}),(0,w.jsx)(`textarea`,{id:`hero-prompt`,value:f,onChange:e=>g(e.target.value),rows:5,placeholder:c.length?c[v%c.length]:E[v],className:`mt-4 w-full resize-none bg-transparent text-lg leading-8 outline-none placeholder:text-[#9d9097]`}),(0,w.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-black/10 pt-4`,children:[(0,w.jsxs)(`div`,{className:`flex gap-2`,children:[(0,w.jsx)(`span`,{className:`rounded-full bg-[#f2e9e4] px-3 py-2 text-xs font-bold`,children:`Website`}),(0,w.jsxs)(`button`,{type:`button`,onClick:()=>window.dispatchEvent(new Event(`textcoder:open-public-studio`)),className:`rounded-full bg-[#fff0f7] px-3 py-2 text-xs font-bold text-[#7d3155]`,children:[(0,w.jsx)(a,{className:`mr-1 inline h-3.5 w-3.5`}),` Plan with Studio`]})]}),(0,w.jsx)(`button`,{className:`rounded-full bg-[#171216] px-5 py-3 text-sm font-extrabold text-white`,children:`Start →`})]})]}),(0,w.jsx)(`p`,{className:`px-2 pt-3 text-center text-xs text-[#aaa0a6]`,children:`Describe the project directly or plan it with Studio first.`})]})]})]}),(0,w.jsx)(`section`,{className:`border-b border-black/10 bg-[#f1e8e2] px-5 py-7`,children:(0,w.jsx)(`div`,{className:`mx-auto flex max-w-[1240px] flex-wrap justify-center gap-x-10 gap-y-3 text-xs font-bold uppercase tracking-[.1em] text-[#776a70]`,children:[`Studio planning`,`React project workspace`,`
1Visual inspect & design`,`Project imports`,`Multiple domains`,`Managed SSL`].map(e=>(0,w.jsxs)(`span`,{children:[`✓ `,e]},e))})}),(0,w.jsx)(`section`,{className:`px-5 py-24`,children:(0,w.jsxs)(`div`,{className:`mx-auto max-w-[1240px]`,children:[(0,w.jsxs)(`div`,{className:`max-w-3xl`,children:[(0,w.jsx)(`p`,{className:`font-mono text-[11px] uppercase tracking-[.15em] text-[#8d4567]`,children:`One continuous workflow`}),(0,w.jsx)(`h2`,{className:`mt-4 font-serif text-5xl font-semibold leading-[.92] tracking-[-.065em] sm:text-6xl`,children:`The work before and after code matters.`}),(0,w.jsx)(`p`,{className:`mt-6 text-lg leading-8 text-[#71666c]`,children:`TextCoder helps define the project, implement it, review the result, manage the assets, and publish it—without turning every step into a separate tool.`})]}),(0,w.jsx)(`div`,{className:`mt-12 grid gap-4 lg:grid-cols-4`,children:D.map(([e,t,n])=>(0,w.jsxs)(`article`,{className:`rounded-[22px] border border-black/10 bg-white p-6`,children:[(0,w.jsx)(`span`,{className:`font-mono text-xs text-[#b04d7c]`,children:e}),(0,w.jsx)(`h3`,{className:`mt-5 font-serif text-3xl font-semibold tracking-[-.05em]`,children:t}),(0,w.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-[#71666c]`,children:n})]},e))})]})}),(0,w.jsx)(`section`,{className:`bg-[#171216] px-5 py-24 text-white`,children:(0,w.jsxs)(`div`,{className:`mx-auto max-w-[1240px]`,children:[(0,w.jsxs)(`div`,{className:`grid items-end gap-6 lg:grid-cols-2`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`p`,{className:`font-mono text-[11px] uppercase tracking-[.15em] text-[#ff9fca]`,children:`Meet TextCoder Studio`}),(0,w.jsx)(`h2`,{className:`mt-4 font-serif text-5xl font-semibold leading-[.92] tracking-[-.065em] sm:text-6xl`,children:`Stop trying to guess the perfect prompt.`})]}),(0,w.jsx)(`p`,{className:`text-lg leading-8 text-[#d8ccd2]`,children:`Studio talks through the idea, finds missing requirements, builds a project brief, creates the architecture and copy plan, and prepares a cleaner handoff to Builder.`})]}),(0,w.jsxs)(`div`,{className:`mt-12 grid gap-4 lg:grid-cols-[1.1fr_.9fr]`,children:[(0,w.jsxs)(`div`,{className:`rounded-[26px] border border-white/15 bg-white/[.07] p-7`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`span`,{className:`h-2.5 w-2.5 rounded-full bg-[#ff4fa3]`}),(0,w.jsx)(`b`,{children:`TextCoder Studio`})]}),(0,w.jsxs)(`div`,{className:`mt-7 space-y-4`,children:[(0,w.jsx)(`div`,{className:`max-w-[82%] rounded-2xl bg-white/10 p-4 text-sm leading-6`,children:`What are you building, and what should the finished product help people accomplish?`}),(0,w.jsx)(`div`,{className:`ml-auto max-w-[82%] rounded-2xl bg-[#ff4fa3] p-4 text-sm leading-6 text-[#24131d]`,children:`A website for a music school with two locations. The main goal is lesson inquiries.`}),(0,w.jsx)(`div`,{className:`max-w-[82%] rounded-2xl bg-white/10 p-4 text-sm leading-6`,children:`Great. Which programs, audiences, and locations must be represented?`})]})]}),(0,w.jsxs)(`div`,{className:`rounded-[26px] bg-[#f1e8e2] p-7 text-[#171216]`,children:[(0,w.jsx)(`p`,{className:`font-mono text-[10px] uppercase tracking-[.13em] text-[#8d4567]`,children:`Live project brief`}),[`Business`,`Audience`,`Primary goal`,`Locations`,`Programs`,`Pages`,`Brand direction`,`SEO`].map((e,t)=>(0,w.jsxs)(`div`,{className:`mt-4 flex items-center justify-between border-b border-black/10 pb-3 text-sm font-semibold`,children:[(0,w.jsx)(`span`,{children:e}),(0,w.jsx)(`span`,{className:t<5?`text-[#8d315d]`:`text-[#a89ba2]`,children:t<5?`Complete`:`Needed`})]},e)),(0,w.jsxs)(`div`,{className:`mt-6`,children:[(0,w.jsxs)(`div`,{className:`flex justify-between text-xs font-bold`,children:[(0,w.jsx)(`span`,{children:`Build readiness`}),(0,w.jsx)(`span`,{children:`68%`})]}),(0,w.jsx)(`div`,{className:`mt-2 h-2 rounded-full bg-black/10`,children:(0,w.jsx)(`div`,{className:`h-2 w-[68%] rounded-full bg-[#ff4fa3]`})})]})]})]}
1),(0,w.jsxs)(b,{href:`/studio`,className:`mt-8 inline-flex items-center gap-2 rounded-full bg-[#ff4fa3] px-5 py-3 text-sm font-extrabold text-[#24131d]`,children:[`Explore Studio `,(0,w.jsx)(o,{className:`h-4 w-4`})]})]})}),(0,w.jsx)(`section`,{className:`bg-[#f1e8e2] px-5 py-24`,children:(0,w.jsxs)(`div`,{className:`mx-auto max-w-[1240px]`,children:[(0,w.jsxs)(`div`,{className:`max-w-3xl`,children:[(0,w.jsx)(`p`,{className:`font-mono text-[11px] uppercase tracking-[.15em] text-[#8d4567]`,children:`The platform`}),(0,w.jsx)(`h2`,{className:`mt-4 font-serif text-5xl font-semibold tracking-[-.065em] sm:text-6xl`,children:`Built for the complete project lifecycle.`})]}),(0,w.jsx)(`div`,{className:`mt-12 grid gap-4 md:grid-cols-2 lg:grid-cols-3`,children:O.map(([e,t,n,r])=>(0,w.jsxs)(b,{href:n,className:`rounded-[22px] border border-black/10 bg-white p-6 shadow-sm transition hover:-translate-y-1 hover:shadow-xl`,children:[(0,w.jsx)(`span`,{className:`grid h-11 w-11 place-items-center rounded-xl bg-[#171216] text-white`,children:(0,w.jsx)(r,{className:`h-5 w-5`})}),(0,w.jsx)(`h3`,{className:`mt-5 text-xl font-bold tracking-[-.03em]`,children:e}),(0,w.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-[#71666c]`,children:t}),(0,w.jsx)(`span`,{className:`mt-6 block text-sm font-bold`,children:`Learn more →`})]},n))})]})}),(0,w.jsx)(`section`,{className:`px-5 py-24`,children:(0,w.jsxs)(`div`,{className:`mx-auto grid max-w-[1240px] gap-12 lg:grid-cols-2`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`p`,{className:`font-mono text-[11px] uppercase tracking-[.15em] text-[#8d4567]`,children:`Bring what already exists`}),(0,w.jsx)(`h2`,{className:`mt-4 font-serif text-5xl font-semibold leading-[.94] tracking-[-.065em]`,children:`Rebuild a website or import the project.`}),(0,w.jsx)(`p`,{className:`mt-6 text-lg leading-8 text-[#71666c]`,children:`Use Website Intelligence to map a public site, or import supported project code and normalize it into the TextCoder workflow.`}),(0,w.jsx)(`div`,{className:`mt-8 grid gap-3`,children:[`Analyze navigation, pages, copy, forms, assets, and SEO`,`Choose preserve, modernize, redesign, or optimize`,`Import supported React and Vite project exports`,`Use Builder, Inspect, Media, File Manager, domains, and deployment after import`].map(e=>(0,w.jsxs)(`div`,{className:`flex gap-3`,children:[(0,w.jsx)(`span`,{className:`mt-1 grid h-6 w-6 place-items-center rounded-full bg-[#ff4fa3]`,children:(0,w.jsx)(d,{className:`h-3.5 w-3.5`})}),(0,w.jsx)(`p`,{className:`text-sm font-semibold leading-6`,children:e})]},e))})]}),(0,w.jsxs)(`div`,{className:`rounded-[28px] bg-[#171216] p-7 text-white`,children:[(0,w.jsx)(`div`,{className:`rounded-2xl border border-white/15 bg-white/[.07] p-5`,children:(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(_,{className:`h-5 w-5 text-[#ff9fca]`}),(0,w.jsx)(`span`,{className:`text-sm text-[#bfb2b9]`,children:`https://your-existing-site.com`})]})}),(0,w.jsx)(`div`,{className:`mt-5 grid grid-cols-2 gap-3`,children:[[`Pages`,`18`],[`Images`,`74`],[`Forms`,`3`],[`SEO issues`,`12`]].map(([e,t])=>(0,w.jsxs)(`div`,{className:`rounded-xl bg-white/10 p-4`,children:[(0,w.jsx)(`b`,{className:`font-serif text-3xl`,children:t}),(0,w.jsx)(`span`,{className:`mt-1 block text-xs text-[#c5b9bf]`,children:e})]},e))}),(0,w.jsxs)(`div`,{className:`mt-5 rounded-xl bg-[#ff4fa3] p-5 text-[#24131d]`,children:[(0,w.jsx)(`b`,{children:`Ready to create a rebuild plan`}),(0,w.jsx)(`p`,{className:`mt-1 text-sm`,children:`Preserve the business facts. Modernize the design. Improve mobile conversion.`})]})]})]})}),(0,w.jsx)(`section`,{className:`px-5 py-24`,children:(0,w.jsxs)(`div`,{className:`mx-auto grid max-w-[1240px] items-center gap-10 rounded-[30px] border border-black/10 bg-[#fff0f7] p-8 sm:p-12 lg:grid-cols-[1fr_auto]`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`p`,{className:`font-mono text-[11px] uppercase tracking-[.15em] text-[#8d4567]`,children:`Not sure what to write?`}),(0,w.jsx)(`h2`,{className:`mt-4 font-serif text-4xl font-semibold tracking-[-.055em] sm:text-5xl`,children:`Turn a rough idea into a better first build prompt.`}),(0,w.jsx)(`p`,{className:`mt-4 max-w-2xl text-base leading-7 text-[#71666c]`,children:`The public TextCoder Studio Assistant asks a few focused questions, prepares a prompt preview, and carries the complete plan into your free account.`})]}),(0,w.jsxs)(`button`,{type:`button`,onClick:()=>window.dispatchEvent(new Event(`textcoder:open-public-studio`)),className:`inline-flex items-center justify-center gap-2 rounded-full bg-[#171216] px-6 py-3.5 text-sm font-extrabold text-white`,children:[(0,w.jsx)(u,{className:`h-4 w-4 text-[#ff75b7]`}),` Start planning free`]})]})}),(0,w.jsx)(`section`,{id:`pricing`,className:`bg-[#f1e8e2] px-5 py-24`,children:(0,w.jsxs)(`div`,{className:`mx-auto max-w-[1240px]`,children:[(0,w.jsxs)(`div`,{className:`text-center`,children:[(0,w.jsx)(`p`,{className:`font-mono text-[11px] uppercase tracking-[.15em] text-[#8d4567]`,children:`Pricing`}),(0,w.jsx)(`h2`,{className:`mt-4 font-serif text-5xl font-semibold tracking-[-.065em]`,children:`Choose the plan that matches how y
1ou build.`})]}),(0,w.jsx)(`div`,{className:`mt-12 grid gap-4 sm:grid-cols-2 xl:grid-cols-4`,children:i.length?i.map(t=>(0,w.jsxs)(`article`,{className:`rounded-[24px] border p-7 ${t.is_popular?`border-[#171216] bg-[#171216] text-white shadow-2xl lg:-translate-y-3`:`border-black/10 bg-white`}`,children:[(0,w.jsx)(`span`,{className:`rounded-full px-3 py-1.5 font-mono text-[10px] uppercase tracking-[.1em] ${t.is_popular?`bg-[#ff4fa3] text-[#24131d]`:`bg-[#f1e8e2]`}`,children:t.is_popular?`Most popular`:`Flexible plan`}),(0,w.jsx)(`h3`,{className:`mt-6 font-serif text-4xl font-semibold tracking-[-.055em]`,children:t.name}),(0,w.jsx)(`p`,{className:`mt-3 min-h-12 text-sm leading-6 ${t.is_popular?`text-[#d8ccd2]`:`text-[#71666c]`}`,children:t.description||`Build with TextCoder.`}),(0,w.jsxs)(`p`,{className:`mt-7 font-serif text-5xl font-semibold tracking-[-.07em]`,children:[`$`,t.price,(0,w.jsxs)(`span`,{className:`ml-1 font-sans text-sm tracking-normal`,children:[`/`,t.billing_period===`monthly`?`month`:t.billing_period]})]}),(0,w.jsxs)(b,{href:e.user?`/create`:`/register`,className:`mt-8 block rounded-full px-5 py-3 text-center text-sm font-bold ${t.is_popular?`bg-[#ff4fa3] text-[#24131d]`:`bg-[#171216] text-white`}`,children:[`Choose `,t.name]})]},t.id)):(0,w.jsxs)(`div`,{className:`col-span-full rounded-2xl border border-black/10 bg-white p-8 text-center`,children:[(0,w.jsx)(`h3`,{className:`font-serif text-3xl`,children:`Plans are being configured.`}),(0,w.jsx)(b,{href:`/register`,className:`mt-5 inline-block rounded-full bg-[#171216] px-5 py-3 text-sm font-bold text-white`,children:`Create an account`})]})})]})}),(0,w.jsx)(`section`,{className:`bg-[#ff4fa3] px-5 py-24 text-center`,children:(0,w.jsxs)(`div`,{className:`mx-auto max-w-3xl`,children:[(0,w.jsx)(`h2`,{className:`font-serif text-6xl font-semibold leading-[.9] tracking-[-.075em]`,children:`Your next project deserves more than one lucky prompt.`}),(0,w.jsx)(`p`,{className:`mx-auto mt-6 max-w-xl text-lg leading-8 text-[#51213b]`,children:`Plan it with Studio. Build it with AI. Review it visually. Publish it on your domains.`}
1),(0,w.jsx)(b,{href:`/register`,className:`mt-8 inline-block rounded-full bg-[#171216] px-6 py-4 text-sm font-extrabold text-white`,children:`Start building with TextCoder ↗`})]})})]}),(0,w.jsx)(T,{authenticated:!!e.user,canRegister:n})]})]})}export{k 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.