1import{ot as e,rt as t,t as n,w as r}from"./jsx-runtime-vlDczagz.js";import{Nn as i,r as a,t as o}from"./layout-1UWg9V41.js";import{o as s}from"./constants-Hr0ije_t.js";import{t as c}from"./get-meta-CJ8PcTDR.js";import{n as l,t as u}from"./call-to-action-primary-CP7YCyUO.js";import{t as d}from"./stablecoin-revenue-Dsz1mB-h.js";var f=e(t(),1),p=n(),{desc:m,title:h}=s.stablecoinRevenueEarlyProgram,g=({loaderData:e})=>e?c({desc:m,title:h,urls:e.urls}):[],_=e=>e>=1e3?`$${(e/1e3).toFixed(1)}M`:`$${e.toFixed(1)}K`,v=[{key:`monthlyVolume`,label:`Monthly Volume`,min:50,max:1e4,step:50,formatValue:e=>`${_(e)} monthly`},{key:`baseGrowthRate`,label:`Base Growth Rate`,min:0,max:100,step:1,formatValue:e=>`${e}% annually`},{key:`aggressiveGrowthRate`,label:`Aggressive Growth Rate`,min:0,max:100,step:1,formatValue:e=>`${e}% annually`},{key:`monthlyRedemptionRate`,label:`Redemption Rate`,min:5,max:95,step:1,formatValue:e=>`${e}% monthly`},{key:`reserveYield`,label:`Reserve Yield`,min:0,max:10,step:.1,formatValue:e=>`${e.toFixed(1)}% annually`}],y=[{header:`Year`,key:`year`,render:e=>`Year ${e}`},{header:`Annual Volume`,key:`yearlyVolume`,render:_},{header:`Reserve Balance`,key:`reserveBalance`,render:_},{header:`Base Revenue`,key:`baseRevenue`,render:_},{header:`Aggressive Revenue`,key:`aggressiveRevenue`,render:_}],b=r(function(){let[e,t]=(0,f.useState)({monthlyVolume:100,baseGrowthRate:25,aggressiveGrowthRate:50,monthlyRedemptionRate:90,reserveYield:4}),n=(0,f.useMemo)(()=>d(e),[e]),r=(0,f.useMemo)(()=>({base:n.reduce((e,t)=>e+t.baseRevenue,0),aggressive:n.reduce((e,t)=>e+t.aggressiveRevenue,0)}),[n]);return(0,p.jsxs)(o,{children:[(0,p.jsx)(`section`,{className:`section-first`,children:(0,p.jsxs)(i.div,{variants:a,className:`container`,children:[(0,p.jsx)(`div`,{className:`eyebrow`,children:`Calculator`}),(0,p.jsx)(`h1`,{className:`h2 m-0`,children:`Stablecoin Revenue - Early Program`})]})}),(0,p.jsx)(`section`,{className:`section-sub`,children:(0,p.jsx)(`div`,{className:`container`,children:(0,p.jsxs)(i.div,{variants:a,children:[(0,p.jsx)(`div`,{className:`mb-12 grid gap-x-12 gap-y-6 md:grid-cols-2`,children:v.map((n,r)=>(0,p.jsx)(`div`,{className:r===0?`md:col-span-2`:``,children:(0,p.jsx)(l,{label:n.label,value:e[n.key],min:n.min,max:n.max,step:n.step,formatValue:n.formatValue,onChange:r=>t({...e,[n.key]:r})})},n.key))}),(0,p.jsxs)(`div`,{className:`round border-border grid overflow-clip border md:grid-cols-12`,children:[(0,p.jsxs)(`div`,{className:`overflow-x-auto p-6 md:col-span-8`,children:[(0,p.jsx)(`h3`,{className:`mt-0 mb-6`,children:`Annual Revenue`}),(0,p.jsxs)(`table`,{className:`m-0`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsx)(`tr`,{children:y.map(({header:e},t)=>(0,p.jsx)(`th`,{className:`px-4 text-base leading-snug ${t===0?`w-1/8`:`max-w-full`} ${t>0?`text-right`:``}`,children:e},e))})}),(0,p.jsx)(`tbody`,{children:n.map(e=>(0,p.jsx)(`tr`,{className:`border-border border-t`,children:y.map(({key:t,render:n},r)=>(0,p.jsx)(`td`,{className:`px-4 align-middle text-base whitespace-nowrap ${r===0?`w-1/8`:`w-5/32`} ${r>0?`text-right`:``}`,children:n?n(e[t]):e[t]},t))},e.year))})]})]}),(0,p.jsxs)(`div`,{className:`border-border bg-fill border-t p-6 md:col-span-4 md:border-t-0 md:border-l`,children:[(0,p.jsx)(`h3`,{className:`mt-0 mb-6`,children:`Total Revenue (5 Years)`}),(0,p.jsxs)(`div`,{className:`xs:grid-cols-2 grid gap-8 md:!grid-cols-1`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`p`,{className:`text-foreground-muted mt-0 mb-3`,children:`Base`}),(0,p.jsx)(`p`,{className:`text-foreground m-0 !text-4xl font-semibold`,children:_(r.base)})]}),(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`p`,{className:`text-foreground-muted mt-0 mb-3`,children:`Aggressive`}),(0,p.jsx)(`p`,{className:`text-foreground m-0 !text-4xl font-semibold`,children:_(r.aggressive)})]})]})]})]})]})})}),(0,p.jsx)(i.div,{variants:a,initial:`hidden`,whileInView:`visible`,viewport:{once:!0},children:(0,p.jsx)(u,{heading:`Create a stablecoin. Together.`,subheading:`Collaborate, plan, and build with us.`,primaryBtn:`Talk to sales`,primaryBtnUrl:`/contact`,secondaryBtn:`View product`,secondaryBtnUrl:`/platform`})})]})});export{b as default,g as meta};
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.