1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4182,5629,5889],{1951:(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var r=s(66352);s(95132);var n=s(39517),a=s(14284);let i=e=>{let{content:t,size:s=14,className:i,ariaLabel:o="More info"}=e;return(0,r.jsx)(n.A,{content:t,children:(0,r.jsx)("span",{role:"img","aria-label":o,onClick:e=>e.stopPropagation(),children:(0,r.jsx)(a.A,{size:s,className:i})})})}},14284:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(91163).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},36704:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>D});var r=s(66352),n=s(95132),a=s(94092),i=s.n(a),o=s(38441),l=s(56331),c=s(56900),d=s(72766),u=s(75271),m=s(97238);let x="text-fg-200 underline decoration-white/25 underline-offset-2 transition-colors duration-150 hover:text-fg-100 hover:decoration-white/60",h=[{id:"pay-for-vela",q:"Do I need to pay to use Vela⢠commercially?",a:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{className:"font-medium text-fg-100",children:"No."})," The core is Apache-2.0, free forever at any company size."]})},{id:"grow-past-500k",q:"What happens when we grow past $500k?",a:"Finish your current term, renew on Business. We never claw back mid-term."},{id:"who-is-a-developer",q:"Who counts as a developer?",a:"Anyone writing or maintaining code against Pro or PineTS commercial APIs. Your end users never need seats."},{id:"engine-only-cheaper",q:"Is the engine-only license cheaper?",a:"No, because there is no engine-only license. Every seat is the same three things: Vela⢠Pro, the PineTS commercial license, and the LuxAlgo Library commercial license. Headless products simply never use the chart."},{id:"pinets-free-commercial",q:"Is PineTS free for commercial use?",a:"PineTS is AGPL-3.0: free for anyone who open-sources their stack. Closed-source commercial use requires a seat. Thatâs the entire dual-license deal, from dollar one."},{id:"library-in-product",q:"Can I use LuxAlgo Library indicators in my product?",a:"With a seat, yes: every paid seat includes full commercial rights to the LuxAlgo Library. Without one, Library scripts remain available only under their published non-commercial terms."},{id:"remove-attribution",q:"Can I remove the attribution?",a:(0,r.jsxs)(r.Fragment,{children:["Yes: any paid license removes it, at every tier. The code is Apache so forks are legal, but the Vela name and branding aren't (",(0,r.jsx)(i(),{href:"/licensing#trademark",className:x,children:"TRADEMARK.md"}),"). A paid product should carry ",(0,r.jsx)("em",{children:"your"})," logo, not your vendor's."]})},{id:"talk-to-sales",q:"Do we need to talk to sales?",a:(0,r.jsxs)(r.Fragment,{children:["Not for seats or Business: both are fully self-serve, and the"," ",(0,r.jsx)(i(),{href:"/licensing",className:x,children:"legal hub"})," ","has the standard terms and procurement documents, right next to the buy button. Enterprise is the one tier that starts with a conversation."]})},{id:"need-enterprise",q:"When do we need Enterprise instead of Business?",a:(0,r.jsxs)(r.Fragment,{children:["When your platform has 100,000 or more end users, your company does $25M or more in annual revenue, you are a broker, exchange, or prop firm, or procurement needs your own MSA, a DPA, or a written SLA before anyone can pay. Everything else is Business."," ",(0,r.jsx)(i(),{href:"/licensing#enterprise",className:x,children:"Talk to us"}),"."]})}];function p(e){let{entries:t=h,heading:s="Questions, answered."}=e;return(0,r.jsx)("section",{id:"faq",className:"scroll-mt-24 border-t border-white/[0.06] px-6 py-24 sm:py-28",children:(0,r.jsxs)("div",{className:"mx-auto max-w-3xl space-y-12",children:[(0,r.jsx)(u.A,{children:(0,r.jsx)("div",{className:"text-center",children:(0,r.jsx)(d.w,{children:s})})}),(0,r.jsx)(u.A,{delay:100,children:(0,r.jsx)("div",{className:"border-t border-white/10",children:t.map((e,t)=>(0,r.jsx)("div",{className:"border-b border-white/10",children:(0,r.jsx)(m.A,{buttonTitle:(0,r.jsx)("span",{className:"text-base text-fg-100",children:e.q}),containerClassName:"py-5",defaultOpen:0===t,children:(0,r.jsx)("p",{className:"pt-3 text-sm leading-relaxed text-fg-300 sm:text-base",children:e.a})})},e.id))})})]})})}var f=s(5937),g=s(79591),b=s(40515);function j(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,b.PS)("/account/checkout/developer-enterprise",{payment:e,...t.customTerms?{customTerms:"true"}:{}})}function v(e){let{seats:t,onChange:s}=e,a=(0,n.useId)(),i=e=>Math.max(1,Math.min(999,Math.round(e)||1)),o="flex size-8 items-center justify-center rounded-md border border-white/10 text-fg-200 transition-colors duration-150 hover:border-white/25 hover:text-fg-100 disabled:cursor-not-allowed disabled:opacity-40";return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,r.jsx)("label",{htmlFor:a,className:"text-sm text-fg-200",children:"Developer seats"}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("button",{type:"button","aria-label":"Fewer seats",className:o,disabled:t<=1,onClick:()=>s(i(t-1)),children:(0,r.jsx)(f.A,{className:"size-3.5"})}),(0,r.jsx)("input",{id:a,type:"number",inputMode:"numeric",min:1,max:999,value:t,onChange:e=>
1s(i(Number(e.target.value))),className:"h-8 w-14 rounded-md border border-white/10 bg-black/40 text-center font-mono text-sm text-fg-100 focus:border-white/30 focus:outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"}),(0,r.jsx)("button",{type:"button","aria-label":"More seats",className:o,onClick:()=>s(i(t+1)),children:(0,r.jsx)(g.A,{className:"size-3.5"})})]})]}),t>20&&(0,r.jsxs)("p",{className:"text-xs leading-relaxed text-fg-300",children:["That's a lot of seats. Business covers unlimited developers at $20,000/yr flat. You can still check out with"," ",(0,r.jsx)("span",{className:"font-mono",children:t})," seats if you prefer."]})]})}var y=s(767),w=s(71987),N=s(44297);function k(e){let{trigger:t}=e,[s,a]=(0,n.useState)(!1),i=(0,n.useId)(),o="group flex w-full items-center gap-4 rounded-xl border border-white/10 bg-black/40 p-4 text-left transition-colors duration-150 hover:border-white/25 hover:bg-white/[0.04] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white";return(0,r.jsxs)(N.lG,{children:[(0,r.jsx)(N.zM,{asChild:!0,children:t}),(0,r.jsxs)(N.Cf,{className:"border-white/10 bg-surface-100 text-fg-100 sm:max-w-md",children:[(0,r.jsxs)(N.c7,{children:[(0,r.jsx)(N.L3,{className:"text-lg font-medium tracking-tight text-fg-100",children:"Business â $20,000/yr"}),(0,r.jsx)(N.rr,{className:"text-sm text-fg-300",children:"Fully self-serve, either way: no approval step, no waiting. Pick how your finance team pays. For companies under 100,000 end users and $25M revenue; above that, Enterprise."})]}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("button",{type:"button",className:o,onClick:()=>j("card",{customTerms:s}),children:[(0,r.jsx)("span",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg border border-white/10 text-fg-200",children:(0,r.jsx)(y.A,{className:"size-4"})}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsx)("span",{className:"block text-sm font-medium text-fg-100",children:"Pay by card"}),(0,r.jsx)("span",{className:"block text-xs text-fg-300",children:"Instant checkout. Licensed the moment payment clears."})]}),(0,r.jsx)(l.A,{className:"size-4 shrink-0 text-fg-300 transition-transform duration-200 ease-out-quart group-hover:translate-x-0.5"})]}),(0,r.jsxs)("button",{type:"button",className:o,onClick:()=>j("invoice",{customTerms:s}),children:[(0,r.jsx)("span",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg border border-white/10 text-fg-200",children:(0,r.jsx)(w.A,{className:"size-4"})}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsx)("span",{className:"block text-sm font-medium text-fg-100",children:"Pay by invoice"}),(0,r.jsx)("span",{className:"block text-xs text-fg-300",children:"Stripe generates it instantly: ACH / wire, PO number field, net-30."})]}),(0,r.jsx)(l.A,{className:"size-4 shrink-0 text-fg-300 transition-transform duration-200 ease-out-quart group-hover:translate-x-0.5"})]})]}),(0,r.jsxs)("label",{htmlFor:i,className:"flex cursor-pointer items-start gap-3 rounded-lg border border-white/[0.06] p-3",children:[(0,r.jsx)("input",{id:i,type:"checkbox",checked:s,onChange:e=>a(e.target.checked),className:"mt-0.5 size-4 shrink-0 accent-white"}),(0,r.jsxs)("span",{className:"min-w-0",children:[(0,r.jsx)("span",{className:"block text-sm text-fg-100",children:"Add custom terms (+$10k, one-time)"}),(0,r.jsx)("span",{className:"block text-xs text-fg-300",children:"Bespoke legal review. Our standard terms need no signature and cover most procurement reviews."})]})]})]})]})}var A=s(1951);let P="text-xs text-fg-300 underline decoration-white/20 underline-offset-2 transition-colors duration-150 hover:text-fg-100 hover:decoration-white/50",_="group relative inline-flex w-full items-center justify-center gap-2 rounded-full bg-white px-6 py-2.5 text-sm font-medium text-black transition-[transform,background-color] duration-[160ms] ease-out-quart hover:bg-fg-100 active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white";function C(){return(0,r.jsx)("span",{className:"rounded-full border border-white/15 px-2 py-0.5 text-[10px] font-medium text-fg-200",children:"Popular"})}function L(e){let{children:t,info:s}=e;return(0,r.jsxs)("p",{className:"flex items-center gap-2 text-[13px] leading-relaxed text-fg-200",children:[(0,r.jsx)(o.A,{"aria-hidden":!0,
1className:"size-3.5 shrink-0 text-fg-300"}),(0,r.jsx)("span",{children:t}),s&&(0,r.jsx)(A.A,{content:s,size:13,className:"text-fg-300/70 hover:text-fg-100"})]})}function S(e){let{amount:t,unit:s}=e;return(0,r.jsxs)("p",{className:"text-3xl font-medium tracking-tight text-fg-100",children:[t,(0,r.jsx)("span",{className:"pl-1.5 text-sm font-normal text-fg-300",children:s})]})}function D(){let[e,t]=(0,n.useState)(1);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.A,{title:"Commercial Licensing Pricing: Vela⢠Pro, PineTS & Library | LuxAlgo",description:"Vela⢠core is free forever under Apache-2.0. One Developer License seat at $1,199/dev/yr covers Vela⢠Pro, the PineTS commercial license, and the LuxAlgo Library commercial license. Business is $20,000/yr flat. Enterprise for brokers, exchanges, prop firms, and platforms with 100,000+ end users.",canonicalUrl:"".concat("https://www.luxalgo.com","/vela/pricing"),markdownPath:"/vela/pricing.md"}),(0,r.jsx)("section",{className:"px-6 pt-20 pb-12 sm:pt-24",children:(0,r.jsxs)("div",{className:"mx-auto max-w-2xl space-y-5 text-center",children:[(0,r.jsx)(d.w,{children:"One license. Chart, engine, Library."}),(0,r.jsx)(u.A,{delay:150,children:(0,r.jsx)(d.Y0,{children:(0,r.jsxs)("span",{className:"mx-auto block",children:["Vela⢠core is free forever. One paid seat covers Vela⢠Pro, the PineTS commercial license, and the LuxAlgo Library commercial license. Published pricing,"," ",(0,r.jsx)(i(),{href:"/licensing",className:"underline decoration-white/25 underline-offset-4 transition-colors duration-150 hover:text-fg-100 hover:decoration-white/60",children:"standard terms"}),", checkout in minutes."]})})})]})}),(0,r.jsx)("section",{className:"px-6 pb-6",children:(0,r.jsxs)("div",{className:"mx-auto grid max-w-5xl gap-4 md:grid-cols-3",children:[(0,r.jsx)(u.A,{className:"h-full",children:(0,r.jsxs)(d.Zk,{className:"flex h-full flex-col p-5",children:[(0,r.jsx)("div",{className:"flex items-baseline justify-between gap-2",children:(0,r.jsx)("h2",{className:"text-base font-medium text-fg-100",children:"Open source"})}),(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)(S,{amount:"$0",unit:"forever"}),(0,r.jsx)("p",{className:"mt-1 min-h-9 text-xs leading-relaxed text-fg-300",children:"No account, no ceiling."})]}),(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsxs)("a",{href:"https://github.com/luxalgo",target:"_blank",rel:"noopener noreferrer",className:"inline-flex w-full items-center justify-center gap-2 rounded-full border border-white/15 bg-surface-100 px-6 py-2.5 text-sm font-medium text-fg-100 transition-[transform,background-color,border-color] duration-[160ms] ease-out-quart hover:border-white/30 hover:bg-surface-200 active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",children:["Get started",(0,r.jsx)(l.A,{"aria-hidden":!0,className:"size-4 transition-transform duration-200 ease-out-quart group-hover:translate-x-0.5"})]})}),(0,r.jsxs)("div",{className:"mt-5 flex-1 space-y-2.5 border-t border-white/[0.06] pt-4",children:[(0,r.jsx)(L,{info:"Apache-2.0: any use, including closed-source commercial products. Official builds carry a small LuxAlgo attribution.",children:"Vela⢠charting library"}),(0,r.jsx)(L,{info:"AGPL-3.0: free at any size if your stack is open source (copyleft). Closed-source use needs a seat.",children:"PineTS engine"}),(0,r.jsx)(L,{info:"Library scripts stay under their published non-commercial terms without a seat.",children:"LuxAlgo Library, non-commercial"}),(0,r.jsx)(L,{children:"Community support"})]})]})}),(0,r.jsx)(u.A,{delay:80,className:"h-full",children:(0,r.jsxs)(d.Zk,{className:"flex h-full flex-col p-5",children:[(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,r.jsx)("h2",{className:"text-base font-medium text-fg-100",children:"Developer License"}),(0,r.jsx)(C,{})]}),(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)(S,{amount:"$1,199",unit:"/dev/yr"}),(0,r.jsxs)("p",{className:"mt-1 flex min-h-9 items-start gap-1.5 text-xs leading-relaxed text-fg-300",children:[(0,r.jsx)("span",{children:"Self-serve under $500k annual revenue."}),(0,r.jsx)(A.A,{content:"Trailing twelve-month revenue, self-certified at checkout. Cross it mid-term and nothing changes until renewal, which moves to Business.",size:13,className:"mt-0.5 text-fg-300/70 hover:text-fg-100"})]})]}),(0,r.jsxs)("div",{className:"mt-4 space-y-4",children:[(0,r.jsx)(v,{seats:e,onChange:t}),(0,r.jsxs)("button",{type:"button",className:_,onClick:()=>(function(e,t){let s=Math.max(1,Math.min(999,Math.round(t)||1));(0,b.PS)("/account/checkout/developer-seat",{door:e,seats:String(s)})})("vela",e),children:["Buy now",(0,r.jsx)(l.A,{"aria-hidden":!0,
1className:"size-4 transition-transform duration-200 ease-out-quart group-hover:translate-x-0.5"})]})]}),(0,r.jsxs)("div",{className:"mt-5 flex-1 space-y-2.5 border-t border-white/[0.06] pt-4",children:[(0,r.jsx)(L,{info:"Footprint and TPO charts, the orderflow suite, a built-in Pine Script\xae editor, and watermark-free official builds.",children:"Vela⢠Pro"}),(0,r.jsx)(L,{info:"Ship PineTS closed-source, in-chart or headless on your servers. No copyleft, no source disclosure.",children:"PineTS commercial license"}),(0,r.jsx)(L,{info:"Run and ship LuxAlgo Library indicators inside your product. Scripts written for TradingView\xae port in on day one.",children:"LuxAlgo Library commercial license"}),(0,r.jsx)(L,{info:"Embed in your products with no per-end-user fees. A seat is per developer writing code against the APIs; end users never need one.",children:"Royalty-free distribution"}),(0,r.jsx)(L,{info:"Email support, two-business-day first response. Details in the Support & SLA Schedule.",children:"Priority support"})]})]})}),(0,r.jsx)(u.A,{delay:160,className:"h-full",children:(0,r.jsxs)(d.Zk,{className:"flex h-full flex-col p-5",children:[(0,r.jsx)("div",{className:"flex items-baseline justify-between gap-2",children:(0,r.jsx)("h2",{className:"text-base font-medium text-fg-100",children:"Business License"})}),(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)(S,{amount:"$20,000",unit:"/yr"}),(0,r.jsxs)("p",{className:"mt-1 flex min-h-9 items-start gap-1.5 text-xs leading-relaxed text-fg-300",children:[(0,r.jsx)("span",{children:"Flat. Self-serve, card or invoice."}),(0,r.jsx)(A.A,{content:"For companies above $500k revenue with fewer than 100,000 end users and under $25M annual revenue. Above either, see Enterprise below.",size:13,className:"mt-0.5 text-fg-300/70 hover:text-fg-100"})]})]}),(0,r.jsxs)("div",{className:"mt-4 space-y-2.5",children:[(0,r.jsx)(k,{trigger:(0,r.jsxs)("button",{type:"button",className:_,children:["Buy now",(0,r.jsx)(l.A,{"aria-hidden":!0,className:"size-4 transition-transform duration-200 ease-out-quart group-hover:translate-x-0.5"})]})}),(0,r.jsxs)("p",{className:"flex flex-wrap items-center justify-center gap-x-3 gap-y-1 text-center",children:[(0,r.jsx)(i(),{href:"/licensing#procurement-pack",className:P,children:"Procurement Pack"}),(0,r.jsx)("span",{"aria-hidden":!0,className:"text-fg-300/40",children:"\xb7"}),(0,r.jsx)(i(),{href:"/licensing#quote",className:P,children:"Quote PDF"})]})]}),(0,r.jsxs)("div",{className:"mt-5 flex-1 space-y-2.5 border-t border-white/[0.06] pt-4",children:[(0,r.jsx)(L,{children:"Everything in Developer License"}),(0,r.jsx)(L,{info:"No seat counting. Add and remove developers from your account at any time.",children:"Unlimited developers"}),(0,r.jsx)(L,{info:"Zero LuxAlgo branding, and the right to redistribute the software as a component of your own SDKs and OEM offerings.",children:"White-label & OEM rights"}),(0,r.jsx)(L,{info:"Priority email with a named escalation contact, one-business-day first response.",children:"Business support tier"}),(0,r.jsx)(L,{info:"Bespoke legal review of your paper, one-time, from +$10k. Our standard terms need no signature and cover most procurement reviews.",children:"Custom terms available"})]})]})})]})}),(0,r.jsx)("section",{className:"px-6 pt-10 pb-4 sm:pt-14",children:(0,r.jsx)("div",{className:"mx-auto max-w-5xl",children:(0,r.jsx)(u.A,{children:(0,r.jsx)(d.Zk,{className:"p-6 sm:p-10",children:(0,r.jsxs)("div",{className:"grid gap-8 md:grid-cols-[1.2fr_1fr] md:items-center",children:[(0,r.jsxs)("div",{className:"space-y-5",children:[(0,r.jsx)("h2",{className:"text-2xl font-medium tracking-tight text-fg-100 sm:text-4xl",children:"Brokers, exchanges, prop firms, platforms."}),(0,r.jsx)("p",{className:"max-w-prose text-sm leading-relaxed text-fg-300 sm:text-base",children:"Everything in Business, on your paper: your MSA and data-processing terms, the Enterprise Support & SLA tier with a Slack Connect channel to the engineers, and rights across every entity and brand in your group. Priced to your platform, never published."}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4",children:[(0,r.jsxs)(i(),{href:"/lice
1nsing#enterprise",className:"group inline-flex items-center gap-2 rounded-full bg-white px-7 py-3 text-sm font-medium text-black transition-[transform,background-color] duration-[160ms] ease-out-quart hover:bg-fg-100 active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",children:["Talk to us",(0,r.jsx)(l.A,{"aria-hidden":!0,className:"size-4 transition-transform duration-200 ease-out-quart group-hover:translate-x-0.5"})]}),(0,r.jsx)("span",{className:"text-xs text-fg-300",children:"Reply within one business day."})]})]}),(0,r.jsxs)("div",{className:"rounded-xl border border-white/[0.08] bg-black/30 p-5",children:[(0,r.jsx)("p",{className:"text-xs font-medium text-fg-300",children:"You need Enterprise if"}),(0,r.jsxs)("ul",{className:"mt-3 space-y-2.5",children:[(0,r.jsxs)("li",{className:"flex gap-2 text-sm text-fg-200",children:[(0,r.jsx)(o.A,{"aria-hidden":!0,className:"mt-0.5 size-3.5 shrink-0 text-fg-300"}),"You are a broker, exchange, prop firm, or regulated firm."]}),(0,r.jsxs)("li",{className:"flex gap-2 text-sm text-fg-200",children:[(0,r.jsx)(o.A,{"aria-hidden":!0,className:"mt-0.5 size-3.5 shrink-0 text-fg-300"}),"Your platform has 100,000+ end users or $25M+ revenue."]}),(0,r.jsxs)("li",{className:"flex gap-2 text-sm text-fg-200",children:[(0,r.jsx)(o.A,{"aria-hidden":!0,className:"mt-0.5 size-3.5 shrink-0 text-fg-300"}),"Procurement needs your MSA, a DPA, a written SLA, or a security review first."]})]})]})]})})})})}),(0,r.jsx)(p,{}),(0,r.jsx)("div",{className:"border-t border-white/[0.06] px-6 py-8",children:(0,r.jsx)("p",{className:"mx-auto max-w-3xl text-center text-xs leading-relaxed text-fg-300",children:"Vela⢠is a trademark of LuxAlgo Global, LLC. Vela runs Pine Script\xae through the independently developed PineTS engine and is not affiliated with, sponsored by, endorsed by, or in any way officially associated with TradingView, Inc. âPine Scriptâ and âTradingViewâ are trademarks or registered trademarks of TradingView, Inc."})})]})}},38441:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(91163).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},39517:(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var r=s(66352),n=s(95132),a=s(81514);function i(e){let{children:t,content:s,clickContent:i,placement:o="bottom",interactive:l=!0,disabled:c}
1=e,[d,u]=(0,n.useState)(s);return(0,n.useEffect)(()=>{u(s)},[s]),(0,r.jsx)(a.Ay,{content:(0,r.jsx)("div",{className:"bg-black/60 backdrop-blur-xs border border-black/70 text-white px-2 py-1 rounded-lg text-xs text-center text-balance",children:d}),onShow:e=>{u(s)},placement:o,duration:100,animation:"shift-away-subtle",delay:[0,0],offset:[0,5],hideOnClick:!1,interactive:l,disabled:c,appendTo:()=>document.body,children:(0,r.jsx)("div",{className:i?"cursor-pointer":"",onClick:()=>{i&&u(i)},children:t})})}s(98595)},44297:(e,t,s)=>{"use strict";s.d(t,{Cf:()=>u,Es:()=>x,L3:()=>h,c7:()=>m,lG:()=>o,rr:()=>p,zM:()=>l});var r=s(66352);s(95132);var n=s(60944),a=s(53041),i=s(91666);function o(e){let{...t}=e;return(0,r.jsx)(n.bL,{"data-slot":"dialog",...t})}function l(e){let{...t}=e;return(0,r.jsx)(n.l9,{"data-slot":"dialog-trigger",...t})}function c(e){let{...t}=e;return(0,r.jsx)(n.ZL,{"data-slot":"dialog-portal",...t})}function d(e){let{className:t,...s}=e;return(0,r.jsx)(n.hJ,{"data-slot":"dialog-overlay",className:(0,i.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s})}function u(e){let{className:t,children:s,showCloseButton:o=!0,...l}=e;return(0,r.jsxs)(c,{"data-slot":"dialog-portal",children:[(0,r.jsx)(d,{}),(0,r.jsxs)(n.UC,{onCloseAutoFocus:e=>{var t,s,r;(null==(r=document)||null==(s=r.body)||null==(t=s.style)?void 0:t.pointerEvents)&&(e.preventDefault(),document.body.style.pointerEvents="")},"data-slot":"dialog-content",className:(0,i.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg","max-w-10/12 max-h-10/12 overflow-y-auto z-[99999]",t),...l,children:[s,o&&(0,r.jsxs)(n.bm,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,r.jsx)(a.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function m(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"dialog-header",className:(0,i.cn)("flex flex-col gap-2 text-left",t),...s})}function x(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"dialog-footer",className:(0,i.cn)("flex flex-col-reverse gap-2 sm:flex-row ",t),...s})}function h(e){let{className:t,...s}=e;return(0,r.jsx)(n.hE,{"data-slot":"dialog-title",className:(0,i.cn)("text-lg leading-none font-semibold",t),...s})}function p(e){let{className:t,...s}=e;return(0,r.jsx)(n.VY,{"data-slot":"dialog-description",className:(0,i.cn)("text-muted-foreground text-sm",t),...s})}},50888:(e,t,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/vela/pricing",function(){return s(36704)}])},56900:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var r=s(66352),n=s(28806),a=s.n(n),i=s(34597);function o(e){let t=e.split("?")[0].split("#")[0];return""===t||"/"===t?"/":t.endsWith("/")?t:"".concat(t,"/")}function l(e){var t;let{title:s,description:n,openGraphTitle:l,openGraphImageInnerImageUrl:c,openGraphImageUrl:d,canonicalUrl:u,twitterTitle:m,twitterDescription:x,twitterImage:h,twitterUrl:p,pathname:f,markdownPath:g,children:b}=e,j=(0,i.useRouter)(),v="https://www.luxalgo.com",y=o(null!=(t=null!=f?f:j.asPath)?t:"/"),w="".concat(v).concat(y),N=u?function(e,t){if(!e.startsWith(t))return e;let s=e.slice(t.length);return"".concat(t).concat(o(s))}(u,v):w,k="",A=null;if(d)(k=d.startsWith("/")?"".concat(v).concat(d):d).includes("/api/og/")&&(A="image/png");else if(y.includes("/library/indicator")){let e=new URL("".concat(v,"/api/library/generate-image/"));e.searchParams.append("title",l||s),c&&e.searchParams.append("imageUrl",c),k=e.toString(),A="image/png"}else k="".concat(v,"/images/logo/luxalgo_og_default.jpg"),A="image/jpeg";return(0,r.jsxs)(a(),{children:[(0,r.jsx)("title",{children:s}),(0,r.jsx)("meta",{name:"description",content:n}),(0,r.jsx)("link",{rel:"canonical",href:N}),g&&(0,r.jsx)("link",{rel:"alternate",type:"text/markdown",href:"".concat(v).concat(g)}),(0,r.jsx)("meta",{property:"og:locale",content:"en_US"}),(0,r.jsx)("meta",{property:"og:url",content:w}),(0,r.jsx)("meta",{property:"og:type",content:"website"}),(0,r.jsx)("meta",{property:"og:title",content:l||s}),(0,r.jsx)("meta",{property:"og:site_name",content:"LuxAlgo"}),(0,r.jsx)("meta",{property:"og:description",content:n}),(0,r.jsx)("meta",{property:"og:image",content:k}),(0,r.jsx)("meta",{property:"og:image:alt",content:l||s}),A&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("meta",{property:"og:image:type",content:A}
1),(0,r.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,r.jsx)("meta",{property:"og:image:height",content:"630"})]}),(0,r.jsx)("meta",{property:"og:logo",content:"".concat(v,"/external/open-graph/luxalgo_logo_full_white.png")}),(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("meta",{name:"twitter:site",content:"@LuxAlgo"}),(0,r.jsx)("meta",{name:"twitter:title",content:m||s}),(0,r.jsx)("meta",{name:"twitter:description",content:x||n}),(0,r.jsx)("meta",{name:"twitter:image",content:h||k}),(0,r.jsx)("meta",{name:"twitter:image:alt",content:l||s}),(0,r.jsx)("meta",{name:"twitter:url",content:p||w}),b]})}s(81686)},60944:(e,t,s)=>{"use strict";s.d(t,{UC:()=>q,VY:()=>$,ZL:()=>S,bL:()=>k,bm:()=>W,hE:()=>B,hJ:()=>E,l9:()=>P});var r=s(95132),n=s(49998),a=s(28525),i=s(36191),o=s(58918),l=s(38896),c=s(98199),d=s(85481),u=s(22931),m=s(25093),x=s(55161),h=s(94260),p=s(3929),f=s(60644),g=s(42030),b=s(66352),j="Dialog",[v,y]=(0,i.A)(j),[w,N]=v(j),k=e=>{let{__scopeDialog:t,children:s,open:n,defaultOpen:a,onOpenChange:i,modal:c=!0}=e,d=r.useRef(null),u=r.useRef(null),[m,x]=(0,l.i)({prop:n,defaultProp:a??!1,onChange:i,caller:j});return(0,b.jsx)(w,{scope:t,triggerRef:d,contentRef:u,contentId:(0,o.B)(),titleId:(0,o.B)(),descriptionId:(0,o.B)(),open:m,onOpenChange:x,onOpenToggle:r.useCallback(()=>x(e=>!e),[x]),modal:c,children:s})};k.displayName=j;var A="DialogTrigger",P=r.forwardRef((e,t)=>{let{__scopeDialog:s,...r}=e,i=N(A,s),o=(0,a.s)(t,i.triggerRef);return(0,b.jsx)(x.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":Y(i.open),...r,ref:o,onClick:(0,n.mK)(e.onClick,i.onOpenToggle)})});P.displayName=A;var _="DialogPortal",[C,L]=v(_,{forceMount:void 0}),S=e=>{let{__scopeDialog:t,forceMount:s,children:n,container:a}=e,i=N(_,t);return(0,b.jsx)(C,{scope:t,forceMount:s,children:r.Children.map(n,e=>(0,b.jsx)(m.C,{present:s||i.open,children:(0,b.jsx)(u.Z,{asChild:!0,container:a,children:e})}))})};S.displayName=_;var D="DialogOverlay",E=r.forwardRef((e,t)=>{let s=L(D,e.__scopeDialog),{forceMount:r=s.forceMount,...n}=e,a=N(D,e.__scopeDialog);return a.modal?(0,b.jsx)(m.C,{present:r||a.open,children:(0,b.jsx)(T,{...n,ref:t})}):null});E.displayName=D;var z=(0,g.TL)("DialogOverlay.RemoveScroll"),T=r.forwardRef((e,t)=>{let{__scopeDialog:s,...r}=e,n=N(D,s),i=(0,c.e0)(),o=(0,a.s)(t,i);return(0,b.jsx)(p.A,{as:z,allowPinchZoom:!0,shards:[n.contentRef],children:(0,b.jsx)(x.sG.div,{"data-state":Y(n.open),...r,ref:o,style:{pointerEvents:"auto",...r.style}})})}),O="DialogContent",q=r.forwardRef((e,t)=>{let s=L(O,e.__scopeDialog),{forceMount:r=s.forceMount,...n}=e,a=N(O,e.__scopeDialog);return(0,b.jsx)(m.C,{present:r||a.open,children:a.modal?(0,b.jsx)(F,{...n,ref:t}):(0,b.jsx)(M,{...n,ref:t})})});q.displayName=O;var F=r.forwardRef((e,t)=>{let s=N(O,e.__scopeDialog),i=r.useRef(null),o=(0,a.s)(t,s.contentRef,i);return r.useEffect(()=>{let e=i.current;if(e)return(0,f.Eq)(e)},[]),(0,b.jsx)(R,{...e,ref:o,trapFocus:s.open,disableOutsidePointerEvents:s.open,onCloseAutoFocus:(0,n.mK)(e.onCloseAutoFocus,e=>{e.preventDefault(),s.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.mK)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,s=0===t.button&&!0===t.ctrlKey;(2===t.button||s)&&e.preventDefault()}),onFocusOutside:(0,n.mK)(e.onFocusOutside,e=>e.preventDefault())})}),M=r.forwardRef((e,t)=>{let s=N(O,e.__scopeDialog),n=r.useRef(!1),a=r.useRef(!1);return(0,b.jsx)(R,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||s.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let r=t.target;s.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),R=r.forwardRef((e,t)=>{let{__scopeDialog:s,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:a,...i}=e,o=N(O,s);return(0,h.Oh)(),(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(d.n,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:a,children:(0,b.jsx)(c.qW,{role:"dialog",id:o.c
1ontentId,"aria-describedby":o.descriptionId,"aria-labelledby":o.titleId,"data-state":Y(o.open),...i,ref:t,deferPointerDownOutside:!0,onDismiss:()=>o.onOpenChange(!1)})})})}),I="DialogTitle",B=r.forwardRef((e,t)=>{let{__scopeDialog:s,...r}=e,n=N(I,s);return(0,b.jsx)(x.sG.h2,{id:n.titleId,...r,ref:t})});B.displayName=I;var V="DialogDescription",$=r.forwardRef((e,t)=>{let{__scopeDialog:s,...r}=e,n=N(V,s);return(0,b.jsx)(x.sG.p,{id:n.descriptionId,...r,ref:t})});$.displayName=V;var G="DialogClose",W=r.forwardRef((e,t)=>{let{__scopeDialog:s,...r}=e,a=N(G,s);return(0,b.jsx)(x.sG.button,{type:"button",...r,ref:t,onClick:(0,n.mK)(e.onClick,()=>a.onOpenChange(!1))})});function Y(e){return e?"open":"closed"}W.displayName=G},69626:(e,t,s)=>{"use strict";s.d(t,{Ib:()=>a,T9:()=>c,Wx:()=>i,gN:()=>o,tG:()=>l});var r=s(66352),n=s(95132);function a(){let[e,t]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)");t(e.matches);let s=e=>t(e.matches);return e.addEventListener("change",s),()=>e.removeEventListener("change",s)},[]),e}function i(e){let t=(0,n.useRef)(null),[s,r]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{var s,n;let a=t.current;if(!a)return;let i=new IntersectionObserver(e=>{let[t]=e;t.isIntersecting&&(r(!0),i.disconnect())},{rootMargin:null!=(s=null==e?void 0:e.rootMargin)?s:"0px 0px -12% 0px",threshold:null!=(n=null==e?void 0:e.threshold)?n:.15});return i.observe(a),()=>i.disconnect()},[]),[t,s]}function o(e){let{children:t,delay:s=0,y:n=16,blur:o=10,immediate:l=!1,className:c=""}=e,d=a(),[u,m]=i(),x=m||d;return l?(0,r.jsx)("div",{className:"animate-[reveal-in_700ms_cubic-bezier(0.16,1,0.3,1)_both] motion-reduce:animate-none ".concat(c),style:{animationDelay:"".concat(s,"ms")},children:t}):(0,r.jsx)("div",{ref:u,className:"transition-[opacity,transform,filter] duration-700 ease-[cubic-bezier(0.16,1,0.3,1)] will-change-transform motion-reduce:transition-none ".concat(c),style:{transitionDelay:x?"".concat(s,"ms"):"0ms",opacity:+!!x,transform:d?void 0:x?"translateY(0)":"translateY(".concat(n,"px)"),filter:d?void 0:x?"blur(0)":"blur(".concat(o,"px)")},children:t})}function l(e){let{text:t,className:s="",delay:n=0,step:o=70,immediate:l=!1}=e,c=a(),[d,u]=i(),m=l||u,x=t.split(" ");return(0,r.jsx)("span",{ref:d,className:s,children:x.map((e,t)=>(0,r.jsxs)("span",{className:"inline-block whitespace-pre will-change-[filter,transform] motion-reduce:animate-none",style:c?void 0:m?{animation:"vela-word 640ms ".concat("cubic-bezier(0.16, 1, 0.3, 1)"," ").concat(n+t*o,"ms both")}:{opacity:0},children:[e,t<x.length-1?" ":""]},t))})}function c(e){let{value:t,decimals:s=0,prefix:o="",suffix:l="",locale:c=!1,start:d}=e,u=a(),[m,x]=i(),[h,p]=(0,n.useState)(0),f=null!=d?d:x;return(0,n.useEffect)(()=>{let e;if(!f)return;if(u)return void p(t);let s=performance.now(),r=n=>{let a=Math.min(1,(n-s)/1400);p(t*(1-Math.pow(1-a,3))),a<1&&(e=requestAnimationFrame(r))};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[f,u,t]),(0,r.jsxs)("span",{ref:m,children:[o,c?Math.round(h).toLocaleString("en-US"):h.toFixed(s),l]})}},72766:(e,t,s)=>{"use strict";s.d(t,{Bk:()=>m,MA:()=>b,Y0:()=>c,Zk:()=>p,fy:()=>f,gV:()=>g,iq:()=>d,jD:()=>h,pq:()=>x,vu:()=>u,w:()=>l});var r=s(66352),n=s(94092),a=s.n(n),i=s(56331),o=s(69626);function l(e){let{children:t,as:s="h2"}=e;return(0,r.jsx)(s,{className:"text-[clamp(32px,4vw,52px)] leading-[1.08] font-medium tracking-tight text-fg-100 text-pretty",children:"string"==typeof t?(0,r.jsx)(o.tG,{text:t,step:55,immediate:"h1"===s}):t})}function c(e){let{children:t}=e;return(0,r.jsx)("p",{className:"text-lg sm:text-xl text-fg-200 text-pretty max-w-prose",children:t})}function d(e){let{children:t}=e;return(0,r.jsx)("p",{className:"text-base leading-relaxed text-fg-300 text-pretty max-w-prose",children:t})}function u(e){let{children:t}=e;return(0,r.jsx)("span",{className:"inline-flex items-center rounded-full border border-white/10 px-3 py-1 text-xs text-fg-200 whitespace-nowrap",children:t})}function m(e){let{children:t,onClick:s,href:n,withArrow:o=!0}=e,l=(0,r.jsxs)(r.Fragment,{children:[t,o&&(0,r.jsx)(i.A,{"aria-hidden":!0,
1className:"size-4 transition-transform duration-200 ease-out-quart group-hover:translate-x-0.5"})]}),c="group relative inline-flex items-center gap-2 rounded-full bg-white px-6 py-2.5 text-sm font-medium text-black transition-[transform,background-color] duration-[160ms] ease-out-quart hover:bg-fg-100 active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white";return n?(0,r.jsx)(a(),{href:n,className:c,children:l}):(0,r.jsx)("button",{type:"button",onClick:s,className:c,children:l})}function x(e){let{children:t,onClick:s,href:n,external:i}=e,o="inline-flex items-center gap-2 rounded-full border border-white/15 bg-surface-100 px-6 py-2.5 text-sm font-medium text-fg-100 transition-[transform,background-color,border-color] duration-[160ms] ease-out-quart hover:border-white/30 hover:bg-surface-200 active:scale-[0.97] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white";return n&&i?(0,r.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:o,children:t}):n?(0,r.jsx)(a(),{href:n,className:o,children:t}):(0,r.jsx)("button",{type:"button",onClick:s,className:o,children:t})}let h="bg-[linear-gradient(90deg,transparent,color-mix(in_srgb,var(--color-sky-400)_40%,transparent)_28%,color-mix(in_srgb,var(--color-purple-500)_40%,transparent)_55%,color-mix(in_srgb,var(--color-pink-500)_35%,transparent)_74%,transparent)]";function p(e){let{children:t,className:s="",accent:n="none"}=e;return(0,r.jsxs)("div",{className:"relative overflow-hidden rounded-xl border border-white/10 bg-surface-100 ".concat(s),children:["prism"===n&&(0,r.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-6 top-0 h-px ".concat(h)}),t]})}function f(e){let{title:t,right:s,children:n,className:a=""}=e;return(0,r.jsxs)(p,{className:a,accent:"prism",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 border-b border-white/[0.06] px-5 py-3",children:[(0,r.jsx)("div",{className:"min-w-0 flex-1 truncate font-mono text-xs text-fg-300",children:t}),s&&(0,r.jsx)("div",{className:"shrink-0",children:s})]}),n]})}function g(e){let{alpha:t=.03}=e,s="rgba(255,255,255,".concat(t,")");return(0,r.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 bg-[size:72px_72px] [mask-image:radial-gradient(ellipse_at_center,black_35%,transparent_80%)]",style:{backgroundImage:"linear-gradient(".concat(s," 1px, transparent 1px), linear-gradient(90deg, ").concat(s," 1px, transparent 1px)")}})}function b(e){let{className:t="",alpha:s=.09}=e;return(0,r.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute motion-safe:animate-breathe ".concat(t),style:{background:"radial-gradient(closest-side, rgba(255,255,255,".concat(s,"), transparent 70%)")}})}},75271:(e,t,s)=>{"use strict";s.d(t,{A:()=>r.gN});var r=s(69626)},97238:(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var r=s(66352),n=s(49493),a=s(5937),i=s(79591);function o(e){let{children:t,buttonTitle:s,containerClassName:o,buttonClassName:l,defaultOpen:c}=e;return(0,r.jsx)(n.EN,{defaultOpen:c,children:e=>{let{open:c}=e;return(0,r.jsxs)("div",{className:"overflow-hidden ".concat(o),children:[(0,r.jsxs)(n._q,{className:"w-full flex justify-between items-center text-left cursor-pointer ".concat(l),children:[s,c?(0,r.jsx)(a.A,{className:"size-5 shrink-0"}):(0,r.jsx)(i.A,{className:"size-5 shrink-0"})]}),(0,r.jsx)(n.kS,{className:"origin-top transition duration-75 ease-in data-closed:opacity-0 data-closed:-translate-y-1",transition:!0,unmount:!1,children:t})]})}})}}},e=>{e.O(0,[5543,3524,636,6593,8792],()=>e(e.s=50888)),_N_E=e.O()}]);
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.