1var __TWEAKS_STYLE=` 2 .twk-panel{position:fixed;right:16px;bottom:16px;z-index:2147483646;width:280px; 3 max-height:calc(100vh - 32px);display:flex;flex-direction:column; 4 transform:scale(var(--dc-inv-zoom,1));transform-origin:bottom right; 5 background:rgba(250,249,247,.78);color:#29261b; 6 -webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%); 7 border:.5px solid rgba(255,255,255,.6);border-radius:14px; 8 box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 12px 40px rgba(0,0,0,.18); 9 font:11.5px/1.4 ui-sans-serif,system-ui,-apple-system,sans-serif;overflow:hidden} 10 .twk-hd{display:flex;align-items:center;justify-content:space-between; 11 padding:10px 8px 10px 14px;cursor:move;user-select:none} 12 .twk-hd b{font-size:12px;font-weight:600;letter-spacing:.01em} 13 .twk-x{appearance:none;border:0;background:transparent;color:rgba(41,38,27,.55); 14 width:22px;height:22px;border-radius:6px;cursor:default;font-size:13px;line-height:1} 15 .twk-x:hover{background:rgba(0,0,0,.06);color:#29261b} 16 .twk-body{padding:2px 14px 14px;display:flex;flex-direction:column;gap:10px; 17 overflow-y:auto;overflow-x:hidden;min-height:0; 18 scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent} 19 .twk-body::-webkit-scrollbar{width:8px} 20 .twk-body::-webkit-scrollbar-track{background:transparent;margin:2px} 21 .twk-body::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:4px; 22 border:2px solid transparent;background-clip:content-box} 23 .twk-body::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.25); 24 border:2px solid transparent;background-clip:content-box} 25 .twk-row{display:flex;flex-direction:column;gap:5px} 26 .twk-row-h{flex-direction:row;align-items:center;justify-content:space-between;gap:10px} 27 .twk-lbl{display:flex;justify-content:space-between;align-items:baseline; 28 color:rgba(41,38,27,.72)} 29 .twk-lbl>span:first-child{font-weight:500} 30 .twk-val{color:rgba(41,38,27,.5);font-variant-numeric:tabular-nums} 31 32 .twk-sect{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase; 33 color:rgba(41,38,27,.45);padding:10px 0 0} 34 .twk-sect:first-child{padding-top:0} 35 36 .twk-field{appearance:none;box-sizing:border-box;width:100%;min-width:0;height:26px;padding:0 8px; 37 border:.5px solid rgba(0,0,0,.1);border-radius:7px; 38 background:rgba(255,255,255,.6);color:inherit;font:inherit;outline:none} 39 .twk-field:focus{border-color:rgba(0,0,0,.25);background:rgba(255,255,255,.85)} 40 select.twk-field{padding-right:22px; 41 background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='rgba(0,0,0,.5)' d='M0 0h10L5 6z'/></svg>"); 42 background-repeat:no-repeat;background-position:right 8px center} 43 44 .twk-slider{appearance:none;-webkit-appearance:none;width:100%;height:4px;margin:6px 0; 45 border-radius:999px;background:rgba(0,0,0,.12);outline:none} 46 .twk-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none; 47 width:14px;height:14px;border-radius:50%;background:#fff; 48 border:.5px solid rgba(0,0,0,.12);box-shadow:0 1px 3px rgba(0,0,0,.2);cursor:default} 49 .twk-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%; 50 background:#fff;border:.5px solid rgba(0,0,0,.12);box-shadow:0 1px 3px rgba(0,0,0,.2);cursor:default} 51 52 .twk-seg{position:relative;display:flex;padding:2px;border-radius:8px; 53 background:rgba(0,0,0,.06);user-select:none} 54 .twk-seg-thumb{position:absolute;top:2px;bottom:2px;border-radius:6px; 55 background:rgba(255,255,255,.9);box-shadow:0 1px 2px rgba(0,0,0,.12); 56 transition:left .15s cubic-bezier(.3,.7,.4,1),width .15s} 57 .twk-seg.dragging .twk-seg-thumb{transition:none} 58 .twk-seg button{appearance:none;position:relative;z-index:1;flex:1;border:0; 59 background:transparent;color:inherit;font:inherit;font-weight:500;min-height:22px; 60 border-radius:6px;cursor:default;padding:4px 6px;line-height:1.2; 61 overflow-wrap:anywhere} 62 63 .twk-toggle{position:relative;width:32px;height:18px;border:0;border-radius:999px; 64 background:rgba(0,0,0,.15);transition:background .15s;cursor:default;padding:0} 65 .twk-toggle[data-on="1"]{background:#34c759} 66 .twk-toggle i{position:absolute;top:2px;left:2px;width:14px;
66height:14px;border-radius:50%; 67 background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s} 68 .twk-toggle[data-on="1"] i{transform:translateX(14px)} 69 70 .twk-num{display:flex;align-items:center;box-sizing:border-box;min-width:0;height:26px;padding:0 0 0 8px; 71 border:.5px solid rgba(0,0,0,.1);border-radius:7px;background:rgba(255,255,255,.6)} 72 .twk-num-lbl{font-weight:500;color:rgba(41,38,27,.6);cursor:ew-resize; 73 user-select:none;padding-right:8px} 74 .twk-num input{flex:1;min-width:0;height:100%;border:0;background:transparent; 75 font:inherit;font-variant-numeric:tabular-nums;text-align:right;padding:0 8px 0 0; 76 outline:none;color:inherit;-moz-appearance:textfield} 77 .twk-num input::-webkit-inner-spin-button,.twk-num input::-webkit-outer-spin-button{ 78 -webkit-appearance:none;margin:0} 79 .twk-num-unit{padding-right:8px;color:rgba(41,38,27,.45)} 80 81 .twk-btn{appearance:none;height:26px;padding:0 12px;border:0;border-radius:7px; 82 background:rgba(0,0,0,.78);color:#fff;font:inherit;font-weight:500;cursor:default} 83 .twk-btn:hover{background:rgba(0,0,0,.88)} 84 .twk-btn.secondary{background:rgba(0,0,0,.06);color:inherit} 85 .twk-btn.secondary:hover{background:rgba(0,0,0,.1)} 86 87 .twk-swatch{appearance:none;-webkit-appearance:none;width:56px;height:22px; 88 border:.5px solid rgba(0,0,0,.1);border-radius:6px;padding:0;cursor:default; 89 background:transparent;flex-shrink:0} 90 .twk-swatch::-webkit-color-swatch-wrapper{padding:0} 91 .twk-swatch::-webkit-color-swatch{border:0;border-radius:5.5px} 92 .twk-swatch::-moz-color-swatch{border:0;border-radius:5.5px} 93 94 .twk-chips{display:flex;gap:6px} 95 .twk-chip{position:relative;appearance:none;flex:1;min-width:0;height:46px; 96 padding:0;border:0;border-radius:6px;overflow:hidden;cursor:default; 97 box-shadow:0 0 0 .5px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.06); 98 transition:transform .12s cubic-bezier(.3,.7,.4,1),box-shadow .12s} 99 .twk-chip:hover{transform:translateY(-1px); 100 box-shadow:0 0 0 .5px rgba(0,0,0,.18),0 4px 10px rgba(0,0,0,.12)} 101 .twk-chip[data-on="1"]{box-shadow:0 0 0 1.5px rgba(0,0,0,.85), 102 0 2px 6px rgba(0,0,0,.15)} 103 .twk-chip>span{position:absolute;top:0;bottom:0;right:0;width:34%; 104 display:flex;flex-direction:column;box-shadow:-1px 0 0 rgba(0,0,0,.1)} 105 .twk-chip>span>i{flex:1;box-shadow:0 -1px 0 rgba(0,0,0,.1)} 106 .twk-chip>span>i:first-child{box-shadow:none} 107 .twk-chip svg{position:absolute;top:6px;left:6px;width:13px;height:13px; 108 filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))} 109`;function useTweaks(a){var[e,t]=React.useState(a),r=React.useCallback((n,l)=>{var s=typeof n=="object"&&n!==null?n:{[n]:l};t(i=>({...i,...s})),window.parent.postMessage({type:"__edit_mode_set_keys",edits:s},"*"),window.dispatchEvent(new CustomEvent("tweakchange",{detail:s}))},[]);return[e,r]}function TweaksPanel({title:a="Tweaks",children:e}){var[t,r]=React.useState(!1),n=React.useRef(null),l=React.useRef({x:16,y:16}),s=16,i=React.useCallback(()=>{var c=n.current;if(c){var d=c.offsetWidth,u=c.offsetHeight,g=Math.max(s,window.innerWidth-d-s),h=Math.max(s,window.innerHeight-u-s);l.current={x:Math.min(g,Math.max(s,l.current.x)),y:Math.min(h,Math.max(s,l.current.y))},c.style.right=l.current.x+"px",c.style.bottom=l.current.y+"px"}},[]);React.useEffect(()=>{if(t){if(i(),typeof ResizeObserver=="undefined")return window.addEventListener("resize",i),()=>window.removeEventListener("resize",i);var c=new ResizeObserver(i);return c.observe(document.documentElement),()=>c.disconnect()}},[t,i]),React.useEffect(()=>{var c=d=>{var g;var u=(g=d==null?void 0:d.data)==null?void 0:g.type;u==="__activate_edit_mode"?r(!0):u==="__deactivate_edit_mode"&&r(!1)};return window.addEventListener("message",c),window.parent.postMessage({type:"__edit_mode_available"},"*"),()=>window.removeEventListener("message",c)},[]);var o=()=>{r(!1),window.parent.postMessage({type:"__edit_mode_dismissed"},"*")},m=c=>{var d=n.current;if(d){var u=d.getBoundingClientRect(),g=c.clientX,h=c.clientY,w=window.innerWidth-u.right,f=window.innerHeight-u.bottom,v=b=>{l.current={x:w-(b.clientX-g),y:f-(b.clientY-h)},i()},p=()=>{window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",p)};window.addEventListener("mousemove",v),window.addEventListener("mouseup",p)}};return t?React.createElement(React.Fragment,null,React.createElement("style",null,__TWEAKS_STYLE),React.createElement("div",{ref:n,className:"twk-panel","data-omelette-chrome":"",style:{right:l.current.x,bottom:l.current.y}},React.createElement("div",{className:"twk-hd",onMouseDown:m},React.createElement("b",null,a),React.createElement("button",{className:"twk-x","aria-label":"Close tweaks",onMouseDown:c=>c.stopPropagation(),onClick:o},"\u2715")),React.createElement("div",{className:"twk-body"},e))):null}function TweakSection({label:a,children:e}){return React.createElement(React.Fragment,null,React.createElement("div",{className:"twk-sect"},a),e)}function TweakRow({label:a,value:e,children:t,inline:r=!1}){return React.createElement("div",{className:r?"twk-row twk-row-h":"twk-row"},React.createElement("div",{className:"twk-lbl"},React.createElement("span",null,a),e!=null&&React.createElement("span",{className:"twk-val"},e)),t)}function TweakSlider({label:a,value:e,min:t=0,max:r=100,step:n=1,unit:l="",onChange:s}){return React.createElement(TweakRow,{label:a,value:`${e}${l}`},React.createElement("input",{type:"range",className:"twk-slider",min:t,max:r,step:n,value:e,onCh
109ange:i=>s(Number(i.target.value))}))}function TweakToggle({label:a,value:e,onChange:t}){return React.createElement("div",{className:"twk-row twk-row-h"},React.createElement("div",{className:"twk-lbl"},React.createElement("span",null,a)),React.createElement("button",{type:"button",className:"twk-toggle","data-on":e?"1":"0",role:"switch","aria-checked":!!e,onClick:()=>t(!e)},React.createElement("i",null)))}function TweakRadio({label:a,value:e,options:t,onChange:r}){var v;var n=React.useRef(null),[l,s]=React.useState(!1),i=React.useRef(e);i.current=e;var o=p=>String(typeof p=="object"?p.label:p).length,m=t.reduce((p,b)=>Math.max(p,o(b)),0),c=m<=((v={2:16,3:10}[t.length])!=null?v:0);if(!c){var d=p=>{var b=t.find(E=>String(typeof E=="object"?E.value:E)===p);return b===void 0?p:typeof b=="object"?b.value:b};return React.createElement(TweakSelect,{label:a,value:e,options:t,onChange:p=>r(d(p))})}var u=t.map(p=>typeof p=="object"?p:{value:p,label:p}),g=Math.max(0,u.findIndex(p=>p.value===e)),h=u.length,w=p=>{var b=n.current.getBoundingClientRect(),E=b.width-4,y=Math.floor((p-b.left-2)/E*h);return u[Math.max(0,Math.min(h-1,y))].value},f=p=>{s(!0);var b=w(p.clientX);b!==i.current&&r(b);var E=k=>{if(n.current){var R=w(k.clientX);R!==i.current&&r(R)}},y=()=>{s(!1),window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",y)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",y)};return React.createElement(TweakRow,{label:a},React.createElement("div",{ref:n,role:"radiogroup",onPointerDown:f,className:l?"twk-seg dragging":"twk-seg"},React.createElement("div",{className:"twk-seg-thumb",style:{left:`calc(2px + ${g} * (100% - 4px) / ${h})`,width:`calc((100% - 4px) / ${h})`}}),u.map(p=>React.createElement("button",{key:p.value,type:"button",role:"radio","aria-checked":p.value===e},p.label))))}function TweakSelect({label:a,value:e,options:t,onChange:r}){return React.createElement(TweakRow,{label:a},React.createElement("select",{className:"twk-field",value:e,onChange:n=>r(n.target.value)},t.map(n=>{var l=typeof n=="object"?n.value:n,s=typeof n=="object"?n.label:n;return React.createElement("option",{key:l,value:l},s)})))}function TweakText({label:a,value:e,placeholder:t,onChange:r}){return React.createElement(TweakRow,{label:a},React.createElement("input",{className:"twk-field",type:"text",value:e,placeholder:t,onChange:n=>r(n.target.value)}))}function TweakNumber({label:a,value:e,min:t,max:r,step:n=1,unit:l="",onChange:s}){var i=c=>t!=null&&c<t?t:r!=null&&c>r?r:c,o=React.useRef({x:0,val:0}),m=c=>{c.preventDefault(),o.current={x:c.clientX,val:e};var d=(String(n).split(".")[1]||"").length,u=h=>{var w=h.clientX-o.current.x,f=o.current.val+w*n,v=Math.round(f/n)*n;s(i(Number(v.toFixed(d))))},g=()=>{window.removeEventListener("pointermove",u),window.removeEventListener("pointerup",g)};window.addEventListener("pointermove",u),window.addEventListener("pointerup",g)};return React.createElement("div",{className:"twk-num"},React.createElement("span",{className:"twk-num-lbl",onPointerDown:m},a),React.createElement("input",{type:"number",value:e,min:t,max:r,step:n,onChange:c=>s(i(Number(c.target.value)))}),l&&React.createElement("span",{className:"twk-num-unit"},l))}function __twkIsLight(a){var e=String(a).replace("#",""),t=e.length===3?e.replace(/./g,i=>i+i):e.padEnd(6,"0"),r=parseInt(t.slice(0,6),16);if(Number.isNaN(r))return!0;var n=r>>16&255,l=r>>8&255,s=r&255;return n*299+l*587+s*114>148e3}var __TwkCheck=({light:a})=>React.createElement("svg",{viewBox:"0 0 14 14","aria-hidden":"true"},React.createElement("path",{d:"M3 7.2 5.8 10 11 4.2",fill:"none",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",stroke:a?"rgba(0,0,0,.78)":"#fff"}));function TweakColor({label:a,value:e,options:t,onChange:r}){if(!t||!t.length)return React.createElement("div",{className:"twk-row twk-row-h"},React.createElement("div",{className:"twk-lbl"},React.createElement("span",null,a)),React.createElement("input",{type:"color",className:"twk-swatch",value:e,onChange:s=>r(s.target.value)}));var n=s=>String(JSON.stringify(s)).toLowerCase(),l=n(e);return React.createElement(TweakRow,{label:a},React.createElement("div",{className:"twk-chips",role:"radiogroup"},t.map((s,i)=>{var o=Array.isArray(s)?s:[s],[m,...c]=o,d=c.slice(0,4),u=n(s)===l;return React.createElement("button",{key:i,type:"button",className:"twk-chip",role:"radio","aria-checked":u,"data-on":u?"1":"0","aria-label":o.join(", "),title:o.join(" \xB7 "),style:{background:m},onClick:()=>r(s)},d.length>0&&React.createElement("span",null,d.map((g,h)=>React.createElement("i",{key:h,style:{background:g}}))),u&&React.createElement(__TwkCheck,{light:__twkIsLight(m)}))})))}function TweakButton({label:a,onClick:e,secondary:t=!1}){return React.createElement("button",{type:"button",className:t?"twk-btn secondary":"twk-btn",onClick:e},a)}Object.assign(window,{useTweaks,TweaksPanel,TweakSection,TweakRow,TweakSlider,TweakToggle,TweakRadio,TweakSelect,TweakText,TweakNumber,TweakColor,TweakButton});var{useState,useEffect,useRef,useMemo}=React,lobe=a=>
109"images/"+a+".svg",EH_SUPPORT="[email protected]";function ehMailto(a,e){return"mailto:"+EH_SUPPORT+"?subject="+encodeURIComponent(a)+"&body="+encodeURIComponent(e)}var EH_MAIL={sales:ehMailto("Sales enquiry \u2014 Electron Hub",`Hi Electron Hub team, 110 111We're evaluating Electron Hub and would like to talk to sales. 112 113Company: 114Team size: 115Expected monthly usage: 116Models / providers of interest: 117Anything else: 118 119Thanks,`),custom:ehMailto("Custom plan enquiry \u2014 Electron Hub",`Hi Electron Hub team, 120 121I'd like to discuss a Custom plan. 122 123Company: 124Team size: 125Expected monthly usage: 126Rate-limit / proxy-key needs: 127Compliance or data-retention requirements: 128 129Thanks,`),contact:ehMailto("Electron Hub \u2014 question",`Hi Electron Hub team, 130 131`)},PROVIDERS=[{name:"OpenAI",slug:"openai",inv:!0},{name:"Anthropic",slug:"claude-color"},{name:"Google",slug:"gemini-color"},{name:"Meta",slug:"meta-color"},{name:"Mistral",slug:"mistral-color"},{name:"xAI",slug:"grok",inv:!0},{name:"DeepSeek",slug:"deepseek-color"},{name:"Qwen",slug:"qwen-color"},{name:"Perplexity",slug:"perplexity-color"},{name:"Cohere",slug:"cohere-color"},{name:"Moonshot",slug:"moonshot",inv:!0},{name:"Z.ai",slug:"zhipu-color"}];function Ic({d:a,size:e=15,sw:t=1.7}){return React.createElement("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:t,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},a.split("|").map((r,n)=>React.createElement("path",{key:n,d:r})))}var IC={arrow:"M5 12h14|M13 6l6 6-6 6",cpu:"M6 6h12v12H6z|M9 9h6v6H9z|M9 2v2|M15 2v2|M9 20v2|M15 20v2|M2 9h2|M2 15h2|M20 9h2|M20 15h2",sparkle:"M12 3l1.9 5.6a2 2 0 0 0 1.5 1.5L21 12l-5.6 1.9a2 2 0 0 0-1.5 1.5L12 21l-1.9-5.6a2 2 0 0 0-1.5-1.5L3 12l5.6-1.9a2 2 0 0 0 1.5-1.5z",speed:"M4 15a8 8 0 0 1 16 0|M12 15l4-3",chev:"M6 9l6 6 6-6",copy:"M8 8h12v12H8z|M16 8V4H4v12h4",check:"M20 6L9 17l-5-5",route:"M4 19c6 0 4-14 10-14h6|M17 2l3 3-3 3|M4 5h4",shield:"M12 22s8-3.6 8-10V5l-8-3-8 3v7c0 6.4 8 10 8 10z",chart:"M3 3v18h18|M7 14l4-4 3 3 5-6",key:"M21 2l-9.6 9.6|M15.5 7.5l3 3|M7 22a5 5 0 1 1 5-5 5 5 0 0 1-5 5z",zap:"M13 2L3 14h7l-1 8 10-12h-7l1-8z",wallet:"M20 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z|M16 3H6a2 2 0 0 0-2 2v2|M16 14h2",code:"M16 18l6-6-6-6|M8 6l-6 6 6 6",split:"M4 4h16v16H4z|M12 4v16",branch:"M6 3v12|M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z|M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z|M18 9a9 9 0 0 1-9 9",agent:"M12 8V4|M8 4h8|M5 8h14a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z|M9 13v2|M15 13v2",layers:"M12 2L2 7l10 5 10-5-10-5z|M2 12l10 5 10-5|M2 17l10 5 10-5",term:"M4 17l6-5-6-5|M12 19h8",eye:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z|M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",gauge:"M12 15l4-4|M12 21a9 9 0 1 1 9-9",inf:"M12 12c-2-2.67-4-4-6-4a4 4 0 1 0 0 8c2 0 4-1.33 6-4Zm0 0c2 2.67 4 4 6 4a4 4 0 0 0 0-8c-2 0-4 1.33-6 4Z",dots:"M5 12h.01|M12 12h.01|M19 12h.01",filter:"M22 3H2l8 9.5V19l4 2v-8.5L22 3z",spark:"M12 3v4|M12 17v4|M3 12h4|M17 12h4|M6.3 6.3l2.8 2.8|M14.9 14.9l2.8 2.8|M17.7 6.3l-2.8 2.8|M9.1 14.9l-2.8 2.8",list:"M8 6h13|M8 12h13|M8 18h13|M3 6h.01|M3 12h.01|M3 18h.01",doc:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z|M14 2v6h6",search:"M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16z|M21 21l-4.35-4.35",pencil:"M12 20h9|M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z",image:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z|M9 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z|M21 15l-3.1-3.1a2 2 0 0 0-2.8 0L6 21",headset:"M3 11v5a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3a9 9 0 0 1 18 0h-3a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h3v-7",repeat:"M17 2l4 4-4 4|M3 11v-1a4 4 0 0 1 4-4h14|M7 22l-4-4 4-4|M21 13v1a4 4 0 0 1-4 4H3"};function CmdChip({text:a,display:e,glow:t}){var[r,n]=useState(!1),l=()=>{try{navigator.clipboard.writeText(a)}catch(i){}n(!0),setTimeout(()=>n(!1),1400)},s=React.createElement("button",{className:"cmdchip",onClick:l,title:"Copy",style:{display:"inline-flex",alignItems:"center",gap:12,minHeight:42,padding:"8px 16px",maxWidth:"100%",borderRadius:t?10.5:10,border:"1px solid var(--border-strong)",background:"color-mix(in oklab, var(--bg-1) 75%, transparent)",fontFamily:"var(--font-mono)",fontSize:12.5,color:"var(--fg-2)"}},React.createElement("span",{style:{color:"var(--fg-dim)"}},"$"),React.createElement("span",{className:"cmdchip__t",style:{minWidth:0,overflowWrap:"anywhere"}}
131,e||a),React.createElement("span",{style:{color:r?"var(--success)":"var(--fg-dim)",display:"inline-flex"}},React.createElement(Ic,{d:r?IC.check:IC.copy,size:13})));return t?React.createElement("span",{className:"cmdglow"},s):s}function CountUp({to:a,prefix:e="",suffix:t="",decimals:r=0,dur:n=1100}){var l=useRef(null),[s,i]=useState(0);return useEffect(()=>{var o=l.current;if(o){var m,c=!1,d=new IntersectionObserver(u=>{if(!(!u[0].isIntersecting||c)){c=!0;var g=performance.now(),h=w=>{var f=Math.min(1,(w-g)/n),v=1-Math.pow(1-f,3);i(a*v),f<1&&(m=requestAnimationFrame(h))};m=requestAnimationFrame(h),d.disconnect()}},{threshold:.4});return d.observe(o),()=>{d.disconnect(),cancelAnimationFrame(m)}}},[a]),React.createElement("span",{ref:l},e,s.toFixed(r),t)}var LP_TWEAK_DEFAULTS={accent:"#a78bfa",theme:"dark",motion:!0,newLogo:!1},ACCENTS=["#a78bfa","#22d3ee","#f59e0b"];function applyLpTweaks(a){var e=document.documentElement;e.setAttribute("data-lp-theme",a.theme),e.style.setProperty("--lp-accent",a.accent);var t=`color-mix(in oklab, ${a.accent} 82%, black)`;e.style.setProperty("--lp-accent-2",t),e.style.setProperty("--lp-accent-fg",a.theme==="dark"&&a.accent==="#a78bfa"||a.accent==="#f59e0b"||a.accent==="#22d3ee"?"#0a090e":"#fff"),e.style.setProperty("--lp-accent-soft",`color-mix(in oklab, ${a.accent} 14%, transparent)`),e.style.setProperty("--lp-accent-glow",`color-mix(in oklab, ${a.accent} 30%, transparent)`);var r="images/electron-new.png";document.querySelectorAll("img, image").forEach(n=>{var l=n.tagName==="image"?"href":"src",s=n.getAttribute(l)||"";a.newLogo?/(^|\/)images\/electron\.png$/.test(s)&&(n.dataset.oldLogo=s,n.setAttribute(l,r)):n.dataset.oldLogo&&(n.setAttribute(l,n.dataset.oldLogo),delete n.dataset.oldLogo)})}function LpTweaks({t:a,setTweak:e,children:t}){return useEffect(()=>{applyLpTweaks(a)},[a.accent,a.theme,a.newLogo]),React.createElement(TweaksPanel,null,React.createElement(TweakSection,{label:"Brand"}),React.createElement(TweakColor,{label:"Accent",value:a.accent,options:ACCENTS,onChange:r=>e("accent",r)}),React.createElement(TweakRadio,{label:"Theme",value:a.theme,options:["dark","light"],onChange:r=>e("theme",r)}),React.createElement(TweakToggle,{label:"New logo (preview)",value:!!a.newLogo,onChange:r=>e("newLogo",r)}),t,React.createElement(TweakSection,{label:"Hidden pages"}),React.createElement(TweakButton,{label:"Rewards (watch-ad credits)",secondary:!0,onClick:()=>{window.location.href="/rewards#preview"}}))}function Framed({children:a}){return React.createElement("span",{className:"btnframe"},a,React.createElement("i",{className:"ctaframe__c ctaframe__c--tl"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--tr"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--bl"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--br"}))}function useReveal(){useEffect(()=>{var a=Array.from(document.querySelectorAll(".rv")),e=new IntersectionObserver(t=>{t.forEach(r=>{r.isIntersecting&&(r.target.setAttribute("data-in","true"),e.unobserve(r.target))})},{threshold:.12});return a.forEach(t=>e.observe(t)),()=>e.disconnect()})}var NAV_LINKS=[{label:"Models",href:"/models",key:"models"},{label:"Pricing",href:"/pricing",key:"pricing"},{label:"Integrations",href:"/integrations",key:"integrations"},{label:"Rankings",href:"/rankings",key:"rankings"},{label:"Docs",href:"https://docs.electronhub.ai"}];function Nav({active:a}){var[e,t]=useState(!1),[r,n]=useState(!1);return useEffect(()=>(document.body.style.overflow=e?"hidden":"",()=>{document.body.style.overflow=""}),[e]),useEffect(()=>{var l=()=>n(window.scrollY>12);return l(),window.addEventListener("scroll",l,{passive:!0}),()=>window.removeEventListener("scroll",l)},[]),React.createElement("header",{className:"nav","data-open":e?"true":void 0,"data-scrolled":r?"true":void 0},React.createElement("div",{className:"wrap nav__inner"},React.createElement("span",{className:"nav__brackets","aria-hidden":"true"},React.createElement("i",null),React.createElement("i",null),React.createElement("i",null),React.createElement("i",null)),React.createElement("a",{className:"nav__brand",href:"/"},React.createElement("img",{src:"images/electron.png",alt:""}),React.createElement("span",null,"Electron ",React.createElement("em",{className:"nav__brand-hub"},"Hub"))),React.createElement("nav",{className:"nav__links"},NAV_LINKS.map(l=>React.createElement("a",{key:l.label,className:"nav__link",href:l.href,"data-active":a===l.ke
131y?"true":void 0},l.label))),React.createElement("div",{className:"nav__right"},React.createElement("a",{className:"nav__ghost",href:EH_MAIL.sales},"Contact Sales"),React.createElement("span",{className:"ctaframe"},React.createElement("a",{className:"ctabtn",href:"https://app.electronhub.ai"},"Get started ",React.createElement(Ic,{d:IC.arrow,size:13})),React.createElement("i",{className:"ctaframe__c ctaframe__c--tl"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--tr"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--bl"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--br"}))),React.createElement("button",{className:"nav__burger","aria-label":"Toggle menu","aria-expanded":e?"true":"false",onClick:()=>t(l=>!l)},React.createElement("span",null),React.createElement("span",null))),React.createElement("div",{className:"nav__sheet","data-open":e?"true":"false"},React.createElement("nav",{className:"nav__sheetlinks"},NAV_LINKS.map(l=>React.createElement("a",{key:l.label,className:"nav__sheetlink",href:l.href,"data-active":a===l.key?"true":void 0,onClick:()=>t(!1)},l.label,React.createElement(Ic,{d:IC.arrow,size:16})))),React.createElement("div",{className:"nav__sheetcta"},React.createElement("a",{className:"btn btn--outline nav__sheetsignin",href:EH_MAIL.sales},"Contact Sales"),React.createElement("span",{className:"ctaframe"},React.createElement("a",{className:"ctabtn nav__sheetbtn",href:"https://app.electronhub.ai"},"Get started ",React.createElement(Ic,{d:IC.arrow,size:14})),React.createElement("i",{className:"ctaframe__c ctaframe__c--tl"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--tr"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--bl"}),React.createElement("i",{className:"ctaframe__c ctaframe__c--br"})))))}function LazyImg({src:a,alt:e="",imgStyle:t,imgClass:r,onLoad:n}){var[l,s]=useState(!1),i=useRef(null);return useEffect(()=>{i.current&&i.current.complete&&(s(!0),n&&n())},[]),React.createElement("span",{className:"lazyimg","data-loaded":l?"true":"false"},React.createElement("span",{className:"lazyimg__skel","aria-hidden":"true"}),React.createElement("img",{ref:i,src:a,alt:e,loading:"lazy",decoding:"async",className:r,style:t,onLoad:()=>{s(!0),n&&n()}}))}function Social({d:a,size:e=16,t}){return React.createElement("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true"},React.createElement("path",{d:a,transform:t}))}var SOCIAL={reddit:"M19.987 10.024a2.02 2.02 0 0 0-2.019-2.02c-.545 0-1.037.218-1.398.57-1.376-.985-3.271-1.62-5.377-1.696l1.147-5.13 3.613.816a1.69 1.69 0 1 0 .162-.786l-4.021-.908a.404.404 0 0 0-.483.306L10.33 7.15c-2.135.062-4.058.7-5.451 1.694a2.011 2.011 0 0 0-1.382-.548 2.02 2.02 0 0 0-.929 3.813 3.9 3.9 0 0 0-.048.61c0 3.092 3.599 5.598 8.04 5.598 4.44 0 8.04-2.506 8.04-5.599 0-.202-.016-.402-.046-.598a2.021 2.021 0 0 0 1.433-2.096ZM6.257 11.44a1.078 1.078 0 1 1 2.156 0 1.078 1.078 0 0 1-2.156 0Zm8.302 3.792c-.734.733-1.884 1.09-3.515 1.09l-.012-.002-.012.002c-1.632 0-2.781-.357-3.516-1.09a.404.404 0 1 1 .572-.571c.575.574 1.538.853 2.944.853l.012.002.012-.002c1.405 0 2.368-.28 2.943-.853a.404.404 0 1 1 .572.57Zm-.191-2.714a1.078 1.078 0 1 1 0-2.157 1.078 1.078 0 0 1 0 2.157Z",rss:"M4 11a9 9 0 0 1 9 9h-2.5A6.5 6.5 0 0 0 4 13.5V11zm0-5a14 14 0 0 1 14 14h-2.5A11.5 11.5 0 0 0 4 8.5V6zm2 11a2 2 0 1 0 0 4 2 2 0 0 0 0-4z",mail:"M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v.4l-10 5.6L2 6.4V6zm0 2.3V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8.3l-9.5 5.3a1 1 0 0 1-1 0L2 8.3z",discord:"M20.3 4.4A19.8 19.8 0 0 0 15.4 2.9a.07.07 0 0 0-.08.03c-.2.38-.44.87-.6 1.25a18.3 18.3 0 0 0-5.49 0 12.6 12.6 0 0 0-.62-1.25.08.08 0 0 0-.08-.03A19.7 19.7 0 0 0 3.68 4.4a.07.07 0 0 0-.03.02C.53 9.05-.32 13.58.1 18.06a.08.08 0 0 0 .03.05 19.9 19.9 0 0 0 6 3.03.08.08 0 0 0 .08-.03c.46-.63.87-1.3 1.23-2a.08.08 0 0 0-.04-.1 13.1 13.1 0 0 1-1.88-.9.08.08 0 0 1 0-.12l.37-.3a.07.07 0 0 1 .08 0 14.2 14.2 0 0 0 12.06 0 .07.07 0 0 1 .08 0l.37.3a.08.08 0 0 1 0 .12 12.3 12.3 0 0 1-1.87.9.08.08 0 0 0-.04.1c.36.7.77 1.36 1.22 2a.08.08 0 0 0 .09.02 19.8 19.8 0 0 0 6-3.03.08.08 0 0 0 .03-.05c.5-5.18-.84-9.67-3.55-13.66a.06.06 0 0 0-.03-.02ZM8.02 15.33c-1.18 0-2.16-1.08-2.16-2.42 0-1.33.96-2.42 2.16-2.42 1.2 0 2.18 1.1 2.16 2.42 0 1.34-.96 2.42-2.16 2.42Zm7.98 0c-1.18
1310-2.16-1.08-2.16-2.42 0-1.33.96-2.42 2.16-2.42 1.2 0 2.18 1.1 2.16 2.42 0 1.34-.95 2.42-2.16 2.42Z"},FOOT_COLS=[{head:"Product",links:[["Models","/models"],["Pricing","/pricing"],["Integrations","/integrations"],["Rankings","/rankings"]]},{head:"Developers",links:[["Docs","https://docs.electronhub.ai"],["Billing","https://docs.electronhub.ai/billing/overview"],["Status","https://status.electronhub.ai"],["Playground","https://app.electronhub.ai"]]},{head:"Legal",links:[["Privacy","https://privacy.electronhub.ai/"],["Terms","https://tos.electronhub.ai/"],["Security","https://docs.electronhub.ai/billing/privacy-security"],["Contact",EH_MAIL.contact]]}];function Footer(){return React.createElement("footer",{className:"footer2"},React.createElement("div",{className:"wrap footer2__inner"},React.createElement("div",{className:"footer2__grid"},FOOT_COLS.map(a=>React.createElement("div",{key:a.head,className:"footer2__col"+(a.head==="Product"?" footer2__col--product":"")},React.createElement("span",{className:"footer2__head"},a.head),a.links.map(([e,t])=>React.createElement("a",{key:e,className:"footer2__link",href:t},e)))),React.createElement("div",{className:"footer2__brand"},React.createElement("img",{className:"footer2__art",src:"images/gen-router-1.png",alt:"","aria-hidden":"true",loading:"lazy"}),React.createElement("div",{className:"footer2__brandinner"},React.createElement("span",{className:"footer2__wordmark"},"ELECTRON",React.createElement("br",null),"HUB"),React.createElement("span",{className:"footer2__tag"},"The unified API for LLM inference."))),React.createElement("div",{className:"footer2__social"},React.createElement("a",{href:"https://discord.com/invite/electronhub",target:"_blank",rel:"noopener","aria-label":"Discord"},React.createElement(Social,{d:SOCIAL.discord})),React.createElement("a",{href:"https://www.reddit.com/r/ElectronHubOfficial/",target:"_blank",rel:"noopener","aria-label":"Reddit"},React.createElement(Social,{d:SOCIAL.reddit,size:22,t:"translate(1.2 2.6)"})),React.createElement("a",{href:"https://status.electronhub.ai/",target:"_blank",rel:"noopener","aria-label":"Status"},React.createElement(Social,{d:SOCIAL.rss})))),React.createElement("div",{className:"footer2__meta"},React.createElement("span",null,"\xA9 2026 Electron Hub. All rights reserved."),React.createElement("span",{className:"footer2__status"},React.createElement("i",null)," All systems operational ",React.createElement("span",{className:"mono"},"99.9% uptime \xB7 30d")))))}var CODE_SAMPLES={Python:[["cm","# pip install openai"],["",""],["kw","from","plain"," openai ","kw","import","plain"," OpenAI"],["",""],["plain","client = ","fn","OpenAI","plain","("],["plain"," base_url=","hl",'"https://api.electronhub.ai/v1"',"plain",","],["plain"," api_key=","str",'"ek-..."',"plain",","],["plain",")"],["",""],["plain","r = client.chat.completions.","fn","create","plain","("],["plain"," model=","str",'"claude-sonnet-4-5"',"plain",","],["plain"," messages=[{","str",'"role"',"plain",": ","str",'"user"',"plain",", ","str",'"content"',"plain",": ","str",'"Hi"',"plain","}],"],["plain",")"]],TypeScript:[["kw","import","plain"," OpenAI ","kw","from","plain"," ","str",'"openai"',"plain",";"],["",""],["kw","const","plain"," client = ","kw","new","plain"," ","fn","OpenAI","plain","({"],["plain"," baseURL: ","hl",'"https://api.electronhub.ai/v1"',"plain",","],["plain"," apiKey: ","str",'"ek-..."',"plain",","],["plain","});"],["",""],["kw","const","plain"," r = ","kw","await","plain"," client.chat.completions.","fn","create","plain","({"],["plain"," model: ","str",'"gpt-5.4"',"plain",","],["plain"," messages: [{ role: ","str",'"user"',"plain",", content: ","str",'"Hi"',"plain"," }],"],["plain","});"]],curl:[["plain","curl ","hl","https://api.electronhub.ai/v1/chat/completions","plain"," \\"],["plain"," -H ","str",'"Authorization: Bearer $ELECTRONHUB_KEY"',"plain"," \\"],["plain"," -H ","str",'"Content-Type: application/json"',"plain"," \\"],["plain"," -d ","str","'{"],["str",' "model": "deepseek-v3.2",'],["str",' "messages": [{"role": "user", "content": "Hi"}]'],["str"," }'"]]},TOK_CLS={kw:"tok-kw",str:"tok-str",fn:"tok-fn",cm:"tok-cm",num:"tok-num",hl:"tok-hl",plain:""};function CodeLine({parts:a}){var n;for(var e=[],t=0;t<a.length;t+=2){var r=(n=TOK_CLS[a[t]])!=null?n:"";e.push(React.createElement("span",{key:t,className:r||void 0},a[t+1]))}return React.createElement("span",null,e,` 132`)}function CodePanel({langs:a=["Python","TypeScript","curl"],title:e}){var[t,r]=useState(a[0]),[n,l]=useState(!1),s=CODE_SAMPLES[t]||[],i=s.map(m=>{for(var c="",d=1;d<m.length;d+=2)c+=m[d];return c}).join(` 133`),o=()=>{try{navigator.clipboard.writeText(i)}catch(m){}l(!0),setTimeout(()=>l(!1),1400)};return React.createElement("div",{className:"codepanel"},React.createElement("div",{className:"codepanel__bar"},e&&React.createElement("span",{className:"panel__title",style:{marginRight:6}},e),a.map(m=>React.createElement("button",{key:m,className:"codepanel__tab","data-active":m===t?"true":void 0,onClick:()=>r(m)},m)),React.createElement("button",{className:"codepanel__copy",onClick:o},React.createElement(Ic,{d:n?IC.check:IC.copy,size:12})," ",n?"copied":"copy")),React.createElement("pre",null,s.map((m,c)=>React.createElement("span",{key:t+c},React.createElement("span",{className:"ln"},String(c+1).padStart(2," ")),React.createElement(CodeLine,{parts:m.length&&m[0]===""?[]:m})))))}function LogoWall(){return React.createElement("div",{className:"logowall"},PROVIDERS.map(a=>React.createElement("span",{key:a.name,className:"logowall__item"},React.createElement("img",{className:a.inv?"inv":void 0,src:lobe(a.slug),alt:"",loading:"lazy"}),a.name)))}function Faq({items:a}){var[e,t]=useState(0);return React.createElement("div",{className:"faq"},a.map((r,n)=>React.createElement("div",{key:n,className:"faq__item","data-open":e===n?"true":"false"},React.createElement("button",{className:"faq__q",onClick:()=>t(e===n?-1:n)},r.q,React.createElement("span",{className:"chev"},React.createElement(Ic,{d:IC.chev,size:16}))),React.createElement("div",{className:"faq__a"},React.createElement("p",null,r.a)))))}window.__lpSpotlight||(window.__lpSpotlight=!0,document.addEventListener("pointermove",a=>{var e=a.target.closest&&a.target.closest(".card--hover");if(e){var t=e.getBoundingClientRect();e.style.setProperty("--mx",a.clientX-t.left+"px"),e.style.setProperty("--my",a.clientY-t.top+"px")}},{passive:!0})),Object.assign(window,{Ic,IC,lobe,PROVIDERS,CmdChip,CountUp,Lazy
133Img,Social,SOCIAL,LP_TWEAK_DEFAULTS,ACCENTS,applyLpTweaks,LpTweaks,Framed,useReveal,Nav,Footer,CodePanel,LogoWall,Faq});var{useState:useStateP,useEffect:useEffectP,useMemo:useMemoP}=React,PLANS=[{id:"free",name:"Free",m:0,y:0,blurb:"Start building with no commitment.",credits:"$0.25/wk",rpm:5,keys:10},{id:"starter",name:"Starter",m:10,y:96,blurb:"Getting started with AI-powered development.",credits:"$8/wk",rpm:10,keys:15},{id:"plus",name:"Plus",m:19,y:182,blurb:"Growing projects with increased usage.",credits:"$15/wk",rpm:15,keys:20},{id:"core",name:"Core",m:39,y:374,blurb:"Professional developers and small studios.",credits:"$30/wk",rpm:20,keys:30,rec:!0},{id:"pro",name:"Pro",m:69,y:662,blurb:"Advanced users needing ultimate model access.",credits:"$50/wk",rpm:30,keys:50},{id:"business",name:"Business",m:129,y:1238,blurb:"High-volume requirements, serious workloads.",credits:"$100/wk",rpm:60,keys:75},{id:"enterprise",name:"Enterprise",m:249,y:2390,blurb:"Large teams with maximum requirements.",credits:"$200/wk",rpm:100,keys:100},{id:"custom",name:"Custom",m:null,y:null,blurb:"Custom solutions for your specific needs.",credits:"Custom",rpm:"\u2014",keys:"\u2014"}],TABLE=[{section:"Credits",icon:"wallet"},{row:"Weekly credits",v:["$0.25/wk","$8/wk","$15/wk","$30/wk","$50/wk","$100/wk","$200/wk","Custom"]},{row:"Free models (200/day)",v:["via ads","ad-free","ad-free","ad-free","ad-free","ad-free","ad-free","ad-free"]},{row:"Flex Wallet cap",v:["$0.13","$4","$7.50","$15","$25","$50","$100","Custom"]},{row:"Permanent credits",v:["\u2014","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713"]},{section:"Limits",icon:"gauge"},{row:"Requests / minute",v:["5","10","15","20","30","60","100","100"]},{row:"Proxy keys",v:["10","15","20","30","50","75","100","100"]},{section:"Features",icon:"sparkle"},{row:"150+ premium models",v:["\u2014","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713"]},{row:"Agents mode",v:["\u2014","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713"]},{row:"Image / video generation",v:["\u2014","\u2014","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713"]},{row:"Priority support",v:["\u2014","\u2014","\u2713","\u2713","\u2713","\u2713","\u2713","\u2713"]},{section:"Security & platform",abbr:"Security",icon:"shield"},{row:"Multi-provider routing + fallback",v:["\u2014","\u2014","\u2014","\u2713","\u2713","\u2713","\u2713","\u2713"]},{row:"Guardrails (policies, PII)",v:["\u2014","\u2014","\u2014","Basic","Standard","Advanced","Advanced","Custom"]},{row:"Audit logs + RBAC",v:["\u2014","\u2014","RBAC","RBAC","\u2713","\u2713","\u2713","\u2713"]},{row:"SSO / SCIM",v:["\u2014","\u2014","\u2014","\u2014","\u2014","SSO","\u2713","\u2713"]},{row:"Enterprise SLA",v:["\u2014","\u2014","\u2014","\u2014","\u2014","\u2713","\u2713","\u2713"]}],PACKS=[10,25,50,100,250,500,1e3,2500];function creditsFor(a){var e=a*2,t=Math.min(Math.floor(a/500)*.05,.2);return{base:e,pct:t,bonus:e*t,total:e*(1+t)}}var SCALE=[["Base","$0","1\xD7"],["Tier 1","$100","2\xD7"],["Tier 2","$250","3\xD7"],["Tier 3","$500","5\xD7"],["Tier 4","$1,000","7\xD7"],["Tier 5","$2,500","10\xD7"]],DP=[{id:"lite",name:"Lite",price:10,conc:2,rpm:8,burst:4,tag:"Built for solo builders"},{id:"turbo",name:"Turbo",price:40,conc:5,rpm:20,burst:8,tag:"Built for developers who move fast",headroomX:"6\xD7"}],DP_TOOLS=[{name:"Claude Code",icon:"claudecode"},{name:"Codex CLI",icon:"codex"},{name:"Cursor",icon:"cursor"},{name:"Cline",icon:"cline"},{name:"OpenCode",icon:"opencode"},{name:"Windsurf",icon:"windsurf"},{name:"Amp",icon:"amp"},{name:"Trae",icon:"trae"},{name:"Goose",icon:"goose"},{name:"Kilo Code",icon:"kilocode"},{name:"Zed",icon:"zed",ext:"png",color:!0},{name:"Continue",icon:"continue",ext:"png",color:!0},{name:"Hermes Agent",icon:"hermes",ext:"png",color:!0}],DP_TOOLS_MORE=20,PRICING_FAQ=[{q:"When do weekly credits refill?",a:"Every Sunday at 21:00 UTC, for every tier. Unused weekly credits can flow into your Flex Wallet: save up to 20% of a week, capped at 50% of your weekly amount."},{q:"Do pay-as-you-go credits expire?",a:"No. Permanent credits never expire and work with every model. They also raise your rate-limit scale tier, since lifetime purchases multiply your plan's base RPM up to 10\xD7."},{q:"Can I combine a subscription with pay-as-you-go?",a:"Yes, and most heavy users do: the subscription covers steady weekly usage, permanent credits absorb spikes. Requests draw from weekly credits first."}
133,{q:"What exactly does the Coding Plan include?",a:"Flat-rate access to a curated set of frontier coding models with 2 (Lite) or 5 (Turbo) concurrent slots and 8 or 20 requests per minute (burst 4 or 8). Heavy models use 2 slots per request. Full speed under normal use. Sustained heavy use continues at reduced speed, never a hard stop."},{q:"How do I pay?",a:"Card via Creem, Ko-fi, or crypto. Yearly billing saves about 20% versus monthly."}],FREE_MODELS_FREE={ic:"zap",b:"Up to 200 free-model requests daily",t:" via ad rewards"},FREE_MODELS_PAID={ic:"zap",b:"Up to 200 free-model requests daily"},PLAN_FEATS={free:[{ic:"wallet",b:"$0.25 weekly credits",t:", refilled every Sunday"},FREE_MODELS_FREE,{ic:"layers",b:"600+ AI models",t:" behind one key"},{ic:"agent",t:"Build custom bots & apps"},{ic:"headset",b:"Basic support"},{ic:"gauge",b:"5 requests / minute"}],starter:[{ic:"wallet",b:"$8 weekly credits",t:", save up to 3\xD7 vs direct API rates (up to $32/month)"},FREE_MODELS_PAID,{ic:"layers",b:"150+ premium models",t:": GPT, Claude, Gemini, Grok, DeepSeek"},{ic:"sparkle",b:"Reasoning models",t:" with chain-of-thought"},{ic:"headset",b:"Priority support"},{ic:"gauge",b:"10 requests / minute"}],plus:[{ic:"wallet",b:"$15 weekly credits",t:", save up to 3\xD7 vs direct API rates (up to $60/month)"},FREE_MODELS_PAID,{ic:"check",t:"Everything in Starter"},{ic:"image",b:"Image & video generation",t:": Flux, Recraft & more"},{ic:"headset",b:"Priority support"},{ic:"gauge",b:"15 requests / minute"}],core:[{ic:"wallet",b:"$30 weekly credits",t:", save up to 3\xD7 vs direct API rates (up to $120/month)"},FREE_MODELS_PAID,{ic:"check",t:"Everything in Plus"},{ic:"route",b:"Multi-provider routing",t:" with automatic fallback"},{ic:"headset",b:"Priority support"},{ic:"gauge",b:"20 requests / minute"}],pro:[{ic:"wallet",b:"$50 weekly credits",t:", save up to 3\xD7 vs direct API rates (up to $200/month)"},FREE_MODELS_PAID,{ic:"check",t:"Everything in Core"},{ic:"sparkle",b:"Early access",t:" to cutting-edge models"},{ic:"headset",b:"Higher priority support"},{ic:"gauge",b:"30 requests / minute"}],business:[{ic:"wallet",b:"$100 weekly credits",t:", save up to 3\xD7 vs direct API rates (up to $400/month)"},FREE_MODELS_PAID,{ic:"check",t:"Everything in Pro"},{ic:"shield",b:"Advanced guardrails",t:" + SSO"},{ic:"headset",b:"Highest priority support"},{ic:"gauge",b:"60 requests / minute"}],enterprise:[{ic:"wallet",b:"$200 weekly credits",t:", save up to 3\xD7 vs direct API rates (up to $800/month)"},FREE_MODELS_PAID,{ic:"check",t:"Everything in Business"},{ic:"shield",b:"Enterprise SLA",t:" + SCIM provisioning"},{ic:"headset",b:"VIP support",t:" with dedicated assistance"},{ic:"gauge",b:"100 requests / minute"}],custom:[{ic:"wallet",b:"Custom weekly credits"},FREE_MODELS_PAID,{ic:"gauge",b:"Custom rate limits",t:" & proxy keys"},{ic:"shield",t:"Compliance & data-retention controls"},{ic:"headset",b:"Dedicated support channel"}]},PLAN_PROVIDERS=["openai","claude-color","gemini-color","meta-color","grok","deepseek-color"],PLAN_PROV_INV={openai:!0,grok:!0},DP_ICON_RULES=[[/kimi|moonshot/,{icon:"images/moonshot.svg",inv:!0}],[/minimax/,{icon:"images/minimax-color.svg"}],[/glm|zhipu|z\.ai/,{icon:"images/zhipu-color.svg"}],[/qwen|alibaba/,{icon:"images/qwen-color.svg"}],[/gemma|gemini|google/,{icon:"images/gemini-color.svg"}],[/deepseek/,{icon:"images/deepseek-color.svg"}],[/mimo|xiaomi/,{icon:"images/xiaomi.png"}],[/\bhy\d|hunyuan|tencent/,{icon:"images/hunyuan-color.svg"}],[/mistral|codestral/,{icon:"images/mistral-color.svg"}],[/llama|meta/,{icon:"images/meta-color.svg"}]];function dpIcon(a,e){var t=(a+" "+(e||"")).toLowerCase();for(var[r,n]of DP_ICON_RULES)if(r.test(t))return n;return{icon:"images/openai.svg",inv:!0}}var DP_MODELS_FALLBACK=[{id:"deepseek-v4-flash:dev"},{id:"mimo-v2.5:dev"},{id:"qwen3.6-27b:dev"},{id:"hy3:dev"},{id:"kimi-k2.6:dev"},{id:"gemma-4-31b-it:dev"},{id:"glm-5.2:dev"},{id:"minimax-m2.7:dev"},{id:"gpt-oss-120b:dev"}].map(a=>({...a,...dpIcon(a.id)}));function useDevModels(){var[a,e]=useStateP(DP_MODELS_FALLBACK);return useEffectP(()=>{var t=!1;return(async()=>{try{var r=await fetch("https://api.electronhub.ai/v1/models",{mode:"cors",credentials:"omit",cache:"default"});if(!r.ok)return;var n=await r.json(),l=(n&&n.data||[]).filter(s=>/:dev$/.test(s.id)).map(s=>({id:s.id,ctx:s.tokens||0,...dpIcon(s.id,s.owned_by)})).sort((s,i)=>(i.ctx||0)-(s.ctx||0));!t&&l.length&&e(l)}catch(s){}})(),()=>{t=!0}},[]),a}var dpClean=a=>a.replace(/:dev$/,"");function PlanCarousel({yearly:a}){var[e,t]=useStateP(3),[r,n]=useStateP(()=>typeof window!="undefined"&&window.innerWidth<=900?344:396),l=React.useRef(null),s=PLANS.length,i=c=>
133t(d=>Math.min(s-1,Math.max(0,d+c))),o=c=>{l.current=c.clientX},m=c=>{if(l.current!=null){var d=c.clientX-l.current;l.current=null,Math.abs(d)>40&&i(d<0?1:-1)}};return useEffectP(()=>{var c=()=>n(window.innerWidth<=900?344:396);return window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)},[]),React.createElement("div",{className:"carousel"},React.createElement("button",{className:"carousel__nav carousel__nav--l",onClick:()=>i(-1),"aria-label":"Previous plan",disabled:e===0,style:{opacity:e===0?.35:1}},React.createElement(Ic,{d:"M15 18l-6-6 6-6",size:17})),React.createElement("button",{className:"carousel__nav carousel__nav--r",onClick:()=>i(1),"aria-label":"Next plan",disabled:e===s-1,style:{opacity:e===s-1?.35:1}},React.createElement(Ic,{d:"M9 6l6 6-6 6",size:17})),React.createElement("div",{className:"carousel__stage",onPointerDown:o,onPointerUp:m,style:{touchAction:"pan-y"}},PLANS.map((c,d)=>{var u=d-e,g=u===0,h=Math.abs(u)<=2,w=PLAN_FEATS[c.id]||[],f=c.m===null?null:a?c.y/12:c.m;return React.createElement("div",{key:c.id,className:"carousel__card","aria-hidden":!g,style:{transform:`translateX(${u*r}px) scale(${g?1:.88})`,opacity:h?g?1:.32:0,pointerEvents:h?"auto":"none",zIndex:10-Math.abs(u),cursor:g?"default":"pointer"},onClick:()=>{g||t(d)}},React.createElement("div",{className:"card pcard"+(c.rec?" plan--rec":"")},c.rec&&React.createElement("span",{className:"plan__rec"},"Recommended"),React.createElement("span",{className:"plan__name",style:{fontSize:16,color:g?"var(--lp-accent)":void 0}},c.name),React.createElement("span",{className:"plan__price"},f===null?"Let's talk":f===0?"$0":`$${a?Math.round(f):f}`,a&&c.m>0&&React.createElement("span",{className:"pcard__strike"},"$",c.m),a&&c.m>0&&React.createElement("span",{className:"pcard__save mono"},"save $",(c.m*12-c.y).toLocaleString(),"/yr")),React.createElement("span",{className:"pcard__note"},c.m===null?"custom terms":c.m===0?"forever":a?`per month, billed annually ($${c.y.toLocaleString()}/y)`:"per month"),React.createElement("span",{className:"plan__blurb",style:{minHeight:0,marginTop:2}},c.blurb),React.createElement("div",{style:{height:1,background:"var(--border)",margin:"10px 0"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10}},w.map((v,p)=>React.createElement("span",{key:p,className:"pcard__feat"},React.createElement("span",{className:"ic"},React.createElement(Ic,{d:IC[v.ic]||IC.check,size:13.5})),React.createElement("span",null,v.b&&React.createElement("b",{style:{fontWeight:600,color:"var(--fg)"}},v.b),v.t)))),c.id!=="custom"&&React.createElement("div",{className:"pcard__prov"},React.createElement("span",{className:"pcard__prov-l mono"},c.id==="free"?"600+ models included":"600+ models, 150+ premium"),React.createElement("div",{className:"pcard__prov-row"}
133,PLAN_PROVIDERS.map(v=>React.createElement("span",{key:v,className:"pcard__prov-i",title:v.replace("-color","")},React.createElement("img",{src:lobe(v),className:PLAN_PROV_INV[v]?"inv":void 0,alt:"",loading:"lazy"}))),React.createElement("span",{className:"pcard__prov-more mono"},"+40 more"))),React.createElement("a",{className:"btn "+(c.rec?"btn--primary":"btn--outline"),style:{marginTop:"auto"},href:c.id==="custom"?EH_MAIL.custom:"https://app.electronhub.ai#subscription"},c.id==="free"?"Get started":c.id==="custom"?"Contact us":`Get ${c.name}`)))})),React.createElement("div",{className:"carousel__dots"},PLANS.map((c,d)=>React.createElement("button",{key:c.id,className:"carousel__dot","data-active":d===e?"true":"false",onClick:()=>t(d),"aria-label":c.name}))))}function CompareTable(){return React.createElement("div",{style:{overflowX:"auto",border:"1px solid var(--border)",borderRadius:14,background:"var(--bg)"}},React.createElement("table",{className:"cmptable"},React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",
133null),PLANS.map(a=>React.createElement("th",{key:a.id,className:a.rec?"col-rec":void 0},a.name,React.createElement("div",{className:"mono",style:{fontSize:10.5,color:"var(--fg-dim)",fontWeight:400,marginTop:2}},a.m===null?"custom":`$${a.m}/mo`))))),React.createElement("tbody",null,TABLE.map((a,e)=>a.section?React.createElement("tr",{key:e,className:"sec"},React.createElement("td",{colSpan:9},React.createElement("span",{className:"cmptable__sec"},a.icon&&React.createElement("span",{className:"cmptable__sec-ic"},React.createElement(Ic,{d:IC[a.icon],size:12})),React.createElement("span",{className:"cmptable__sec-full"},a.section),React.createElement("span",{className:"cmptable__sec-abbr"},a.abbr||a.section)))):React.createElement("tr",{key:e},React.createElement("td",null,a.row),a.v.map((t,r)=>React.createElement("td",{key:r,className:PLANS[r].rec?"col-rec":void 0},t==="\u2713"?React.createElement("span",{className:"ok"},React.createElement(Ic,{d:IC.check,size:14})):t==="\u2014"?React.createElement("span",{className:"dash"},"\u2014"):t)))))))}function PaygCalc(){var[a,e]=useStateP(250),t=creditsFor(a);return React.createElement("div",{className:"calc"},React.createElement("div",{className:"card calc__pad",style:{display:"flex",flexDirection:"column",gap:18}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline"}},React.createElement("span",{className:"h3"},"Buy credits"),React.createElement("span",{className:"mono",style:{fontSize:11.5,color:"var(--fg-dim)"}},"$1 = 2 credits")),React.createElement("div",{className:"calc__big"},"$",a.toLocaleString()),React.createElement("input",{type:"range",min:"10",max:"2500",step:"10",value:a,onChange:r=>e(parseInt(r.target.value,10)),"aria-label":"Credit amount"}),React.createElement("div",{className:"calc__packs"},PACKS.map(r=>React.createElement("button",{key:r,className:"calc__pack","data-active":a===r?"true":void 0,onClick:()=>e(r)},"$",r>=1e3?r/1e3+"K":r))),React.createElement("p",{style:{margin:0,fontSize:12.5,color:"var(--fg-dim)"}},"Volume bonus: +5% per $500 of lifetime purchases, capped at +20%. Shown for a first purchase.")),React.createElement("div",{className:"card calc__pad",style:{display:"flex",flexDirection:"column"}},React.createElement("span",{className:"h3",style:{marginBottom:10}},"You receive"),React.createElement("div",{className:"calc__line"},React.createElement("span",null,"Base credits"),React.createElement("span",{className:"v"},t.base.toLocaleString())),React.createElement("div",{className:"calc__line"},React.createElement("span",null,"Volume bonus"),React.createElement("span",{className:"v"},t.pct>0?`+${Math.round(t.pct*100)}% (${t.bonus.toLocaleString()})`:"none yet")),React.createElement("div",{className:"calc__line"},React.createElement("span",null,"Expiry"),React.createElement("span",{className:"v"},"never")),React.createElement("div",{className:"calc__line calc__line--total"},React.createElement("span",null,"Total credits"),React.createElement("span",{className:"v"},t.total.toLocaleString())),React.createElement("a",{className:"btn btn--primary",style:{marginTop:"auto"},href:"https://app.electronhub.ai#payg"},"Top up ",React.createElement(Ic,{d:IC.arrow,size:13}))))}function ScaleLadder(){return React.createElement("div",{className:"card",style:{padding:24,marginTop:14}},React.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",marginBottom:16}},React.createElement("span",{className:"h3"},"Buying credits raises your rate limits"),React.createElement("span",{className:"mono",style:{fontSize:11,color:"var(--fg-dim)"}},"lifetime purchases \xD7 base RPM")),React.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(6, 1fr)",gap:8},className:"scalegrid"},SCALE.map(([a,e,t],r)=>React.createElement("div",{key:a,style:{padding:"13px 14px",borderRadius:10,border:"1px solid var(--border)",background:r===5?"var(--lp-accent-soft)":"var(--bg-2)",display:"flex",flexDirection:"column",gap:2}},React.createElement("span",{className:"mono",style:{fontSize:10.5,color:"var(--fg-dim)",textTransform:"uppercase",letterSpacing:"0.08em"}},a),React.createElement("span",{style:{fontSize:18,fontWeight:600,color:r===5?"var(--lp-accent)":"var(--fg)"}},t),React.createElement("span",{style:{fontSize:11.5,color:"var(--fg-muted)"}},e,"+")))))}function DevPass(){var a=useDevModels();return React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:40}},React.createElement("div",{style:{textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:10}},React.createElement("h2",{className:"h2",style:{fontSize:"clamp(26px, 3vw, 36px)"}},"Unlimited tokens. ",React.createElement("span",{className:"accent"},"One flat rate.")),React.createElement("p",{className:"lede",style:{maxWidth:560,fontSize:15}}
133,"No token counting, no per-request billing. Frontier coding models behind one key, built for agents and IDEs that never stop.")),React.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:14,maxWidth:880,width:"100%",margin:"0 auto"},className:"dpgrid"},DP.map(e=>React.createElement("div",{key:e.id,className:"card plan rv"+(e.id==="turbo"?" plan--rec":""),style:{padding:28,gap:6}},e.id==="turbo"&&React.createElement("span",{className:"plan__rec"},"Most popular"),React.createElement("div",{style:{display:"flex",alignItems:"center",gap:12}},React.createElement("span",{className:"feat__icon",style:{width:38,height:38,borderRadius:10}},React.createElement(Ic,{d:IC.term,size:17})),React.createElement("div",{style:{display:"flex",flexDirection:"column"}},React.createElement("span",{className:"plan__name",style:{fontSize:16}},e.name," DevPass"),React.createElement("span",{style:{fontSize:12,color:"var(--fg-dim)"}},e.tag))),React.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:4,marginTop:12}},React.createElement("span",{className:"plan__price",style:{fontSize:38}},"$",e.price),React.createElement("span",{style:{fontSize:13,color:"var(--fg-dim)"}},"/month, flat")),React.createElement("div",{style:{height:1,background:"var(--border)",margin:"12px 0"}}),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:11,marginBottom:2}},React.createElement("span",{className:"pcard__feat"},React.createElement("span",{className:"ic"},React.createElement(Ic,{d:IC.inf,size:15})),React.createElement("span",null,React.createElement("b",{style:{fontWeight:600,color:"var(--fg)"}},"Unlimited tokens"),", no metering, no overages")),React.createElement("span",{className:"pcard__feat"},React.createElement("span",{className:"ic"},React.createElement(Ic,{d:IC.zap,size:14})),React.createElement("span",null,React.createElement("b",{style:{fontWeight:600,color:"var(--fg)"}},e.conc," concurrent slots")," for parallel agent sessions \xB7 ",e.rpm," requests/min (burst ",e.burst,")")),React.createElement("span",{className:"pcard__feat"},React.createElement("span",{className:"ic"},React.createElement(Ic,{d:IC.speed,size:15})),React.createElement("span",null,e.headroomX?React.createElement(React.Fragment,null,React.createElement("span",{style:{color:"var(--lp-accent)",fontWeight:600}},e.headroomX)," the full-speed headroom of Lite. Under heavy load it slows, never stops"):React.createElement(React.Fragment,null,"Full-speed headroom for a day\u2019s work. Under heavy load it slows, never stops"))),React.createElement("span",{className:"pcard__feat"},React.createElement("span",{className:"ic"},React.createElement(Ic,{d:IC.sparkle,size:15})),React.createElement("span",null,"Frontier coding models, always up to date"))),React.createElement("a",{className:"dp-limits",href:"https://docs.electronhub.ai/billing/coding-plan#fair-use",target:"_blank",rel:"noopener noreferrer"},"How limits work"),React.createElement("a",{className:"btn "+(e.id==="turbo"?"btn--primary":"btn--outline"),href:"https://app.electronhub.ai#devpass",style:{marginTop:"auto"}},"Get ",e.name," ",React.createElement(Ic,{d:IC.arrow,size:13}))))),React.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:14,maxWidth:880,width:"100%",margin:"0 auto"},className:"dpgrid"},React.createElement("div",{className:"card",style:{padding:22,display:"flex",flexDirection:"column",gap:12}},React.createElement("span",{className:"kicker",style:{fontSize:10.5}},"// included models"),React.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},a.map(e=>React.createElement("span",{key:e.id,className:"chip"},React.createElement("img",{className:e.inv?"inv":void 0,src:e.icon,alt:"",loading:"lazy"}),dpClean(e.id))))),React.createElement("div",{className:"card",style:{padding:22,display:"flex",flexDirection:"column",gap:12}},React.createElement("span",{className:"kicker",style:{fontSize:10.5}},"// works with"),React.createElement("div",{style:{display:"flex",gap:8,flexWrap:"wrap"}},DP_TOOLS.map(e=>React.createElement("span",{key:e.name,className:"chip",style:{fontFamily:"var(--font-sans)",fontSize:12.5}},React.createElement("img",{className:e.color?void 0:"inv",src:e.ext?"images/"+e.icon+"."+e.ext:lobe(e.icon),alt:"",loading:"lazy",style:e.ext?{borderRadius:3}:void 0}),e.name)),React.createElement("a",{className:"chip",href:"/integrations",style:{fontFamily:"var(--font-sans)",fontSize:12.5,color:"var(--lp-accent)",textDecoration:"none"}},"+",DP_TOOLS_MORE," more")),React.createElement("span",{style:{fontSize:12,color:"var(--fg-dim)"}},"Plus any OpenAI-compatible agent. One key, drop-in."))))}var TABS=[{id:"subscriptions",label:"Subscriptions"},{id:"payg",label:"Pay-as-you-go"},{id:"devpass",label:"Coding Plan"}];function PricingPage(){var a=(()=>{var o=(window.location.hash||"").replace("#","");return TABS.some(m=>m.id===o)?o:"subscriptions"})(),[e,t]=useStateP(a),[r,n]=useStateP(!1),[l,s]=useTweaks(LP_TWEAK_DEFAULTS);useReveal(),useEffectP(()=>{var o=()=>{var m=(window.location.hash||"").replace("#","");TABS.some(c=>c.id===m)&&t(m)};return window.addEventListener("hashchange",o),()=>window.removeEventListener("hashchange",o)},[]);var i=o=>{t(o);try{history.replaceState(null,"","#"+o)}catch(m){}};return React.createElement("div",null,React.createElement(Nav,{active:"pricing"}),React.createElement("section",{style:{padding:"40px 0 24px",textAlign:"center"}},React.createElement("div",{className:"wrap",style:{display:"flex",flexDirection:"column",alignItems:"center",gap:18}},React.createElement("span",{className:"kicker"},"Pricing"),React.createElement("h1",{className:"h1",style:{fontSize:"clamp(36px, 4.6vw, 56px)"}},"Pay how you build."),React.createElement("p",{className:"lede",style:{maxWidth:520}},"Steady weekly credits, permanent top-ups, or a flat-rate coding plan. Same models, same key."),React.createElement("div",{className:"pillswitch",role:"tablist",style:{marginTop:10}},TABS.map(o=>React.createElement("button",{key:o.id,role:"tab","aria-selected":e===o.id,className:"pillswitch__btn","data-active":e===o.id?"true":void 0,onClick:()=>i(o.id)},o.label))))),e==="subscriptions"&&React.createElement("section",{className:"section--tight",id:"subscriptions"},React.createElement("div",{className:"wrap",style:{display:"flex",flexDirection:"column",gap:40}},React.createElement("div",{style:{display:"flex",justifyContent:"center"}},React.createElement("div",{className:"billtoggle"},React.createElement("span",{style:{color:r?void 0:"var(--fg)"}},"Monthly"),React.createElement("button",{className:"billtoggle__track","data-on":r?"true":"false",onClick:()=>n(!r),"aria-label":"Toggle yearly billing"},React.createElement("span",{className:"billtoggle__knob"})),React.createElement("span",{style:{color:r?"var(--fg)":void 0}},"Yearly"),React.createElement("span",{className:"save"},"save ~20%"))),React.createElement(PlanCarousel,{yearly:r}),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16,marginTop:24}},React.createElement("h2",{className:"h2",style:{fontSize:26}},"Compare plans"),React.createElement(CompareTable,null),React.createElement("p",{style:{margin:0,fontSize:12.5,color:"var(--fg-dim)"}}
133,"Weekly credits refill every Sunday 21:00 UTC. Unused credits roll into your Flex Wallet (up to 20%/week, capped at 50% of weekly).")))),e==="payg"&&React.createElement("section",{className:"section--tight",id:"payg"},React.createElement("div",{className:"wrap",style:{display:"flex",flexDirection:"column",gap:14}},React.createElement(PaygCalc,null),React.createElement(ScaleLadder,null),React.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:14},className:"payg3"},[["Never expires","Permanent credits sit alongside weekly credits and are spent only when weekly runs out."],["Every model","Same rates as subscription credits: text, image, video, and embeddings."],["Hard caps","Set a monthly spend cap from $1 to $10,000. Requests stop at the cap, not your card."]].map(([o,m])=>React.createElement("div",{key:o,className:"card feat"},React.createElement("h4",{className:"h3",style:{fontSize:14.5}},o),React.createElement("p",null,m)))))),e==="devpass"&&React.createElement("section",{className:"section--tight",id:"devpass"},React.createElement("div",{className:"wrap"},React.createElement(DevPass,null))),React.createElement("section",{className:"section section--divide"},React.createElement("div",{className:"wrap",style:{maxWidth:820}},React.createElement("div",{className:"section__head"},React.createElement("span",{className:"kicker"},"FAQ"),React.createElement("h2",{className:"h2",style:{fontSize:30}},"Billing questions")),React.createElement(Faq,{items:PRICING_FAQ}))),React.createElement(Footer,null),React.createElement(LpTweaks,{t:l,setTweak:s}))}ReactDOM.createRoot(document.getElementById("root")).render(React.createElement(PricingPage,null));
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.