PageSourceSearch

https://vaulticks.com/assets/Pricing-DKjGQXMI.js

js vaulticks.com collected 2026-09-24 14:56:00 UTC 16,635 bytes, 1 lines download raw bytes

1import{r as o,j as e}from"./ui-vendor-efoDfjla.js";import{y as te,c as g,i as ae}from"./index-Dy-yis_s.js";import{a as se}from"./router-vendor-CSWcbrtA.js";import{Z as G,a9 as re,q as V,aj as le,H as L,X as ie,T as ne,F as oe,i as O,L as Y,A as I,S as ce}from"./utils-vendor-BXji2ymy.js";import"./query-vendor-BYBWvLyW.js";const de=15e3,xe=500,ue=2e4;async function R(y){const j=Date.now()+ue;for(;Date.now()<j;){try{const p=await g.apiCall.invoke({url:`/api/v1/payment/payment_session_status/${y}`,method:"GET"}),n=p==null?void 0:p.data;if((n==null?void 0:n.status)==="ready"&&(n!=null&&n.checkout_url))return{url:n.checkout_url};if((n==null?void 0:n.status)==="error")return{detail:(n==null?void 0:n.error_detail)||""}}catch{}await new Promise(p=>setTimeout(p,xe))}return{detail:"The request timed out. Please try again."}}const q=[{id:"pro",name:"Manual Mode",price:29,priceNote:"/month",icon:G,iconColor:"text-[#8B949E]",badgeColor:"text-[#8B949E]",badgeBg:"bg-[#21262D]",badgeText:"Starter",borderColor:"border-[#21262D]",glowColor:"",features:["Floating risk panel + Chrome extension","Real-time position sizing","Trade journal with combined account view","Group mode","Up to 3 connected accounts","Manual trade logging"]},{id:"payout",name:"Payout Mode",price:99,priceNote:"/month",icon:re,iconColor:"text-[#A855F7]",badgeColor:"text-[#A855F7]",badgeBg:"bg-[#A855F7]/10",badgeText:"Payouts",borderColor:"border-[#A855F7]/40",glowColor:"shadow-[0_0_40px_-12px_rgba(168,85,247,0.2)]",features:["Everything in Auto Mode","Per-account payout eligibility from your firm's rules","Fleet payout board","Payout log + CSV export","Payout Mode risk profiles"]},{id:"premium",name:"Auto Mode",price:69,priceNote:"/month",icon:V,iconColor:"text-[#22C55E]",badgeColor:"text-[#22C55E]",badgeBg:"bg-[#22C55E]/10",badgeText:"Most Popular",borderColor:"border-[#22C55E]/40",glowColor:"shadow-[0_0_40px_-12px_rgba(34,197,94,0.2)]",features:["Everything in Manual","Unlimited connected accounts","Auto-sync from Tradovate","Auto-journal (trades log themselves)","Live drawdown floor tracking","4-tier risk warnings","Priority support"],popular:!0}];function be(){const y=se(),j=te(),[p,n]=o.useState(null),[S,x]=o.useState(""),[F,_]=o.useState(null),[H,W]=o.useState(!1),[N,z]=o.useState(""),[c,k]=o.useState(null),[B,A]=o.useState(!1),[M,v]=o.useState(""),[a,K]=o.useState(null),[w]=o.useState(()=>{try{return(localStorage.getItem("vaulticks_ref")||"").trim().toUpperCase()}catch{return""}});o.useEffect(()=>{let t=!1;async function s(){const d=localStorage.getItem("token");if(d)try{const u=ae(),r=await fetch(`${u}/api/v1/subscription/status`,{headers:{Authorization:`Bearer ${d}`,Accept:"application/json"}});r.ok&&!t&&K(await r.json())}catch{}}return s(),()=>{t=!0}},[]),o.useEffect(()=>{let t=!1;async function s(){var d,u;try{const r=await g.apiCall.invoke({url:"/api/v1/payment/config_status",method:"GET"});t||(_(((d=r==null?void 0:r.data)==null?void 0:d.configured)===!0),W(((u=r==null?void 0:r.data)==null?void 0:u.payout_plan_available)===!0))}catch{t||_(!1)}}return s(),()=>{t=!0}},[]);const Z=H||(a==null?void 0:a.payout_plan_available)===!0,D=q.filter(t=>t.id!=="payout"||Z),X=o.useCallback(async()=>{if(N.trim()){v(""),A(!0);try{const t=await g.apiCall.invoke({url:"/api/v1/affiliate/validate_code",method:"POST",data:{code:N.trim()}}),s=t==null?void 0:t.data;
1s!=null&&s.valid?(k({code:s.code,percent:s.discount_percent}),v("")):(k(null),v((s==null?void 0:s.message)||"Invalid discount code"))}catch{k(null),v("Could not validate code. Try again.")}finally{A(!1)}}},[N]),J=t=>{if(!c)return t;const s=Math.min(c.percent,25);return Math.round(t*(1-s/100)*100)/100},E=!!(a!=null&&a.trial_used),P=((a==null?void 0:a.plan)||"").toLowerCase();function C(t){var d;const s=t==="premium"?{text:"Start Free Trial",includeTrial:!0}:{text:null,includeTrial:!1};if(!a||!j)return s;switch(a.access){case"admin":return{text:"Manage Subscription",includeTrial:!1};case"paid":case"trial":return t===P?{text:"Current plan",includeTrial:!1}:{text:`Switch to ${((d=q.find(r=>r.id===t))==null?void 0:d.name)||t}`,includeTrial:!1};case"trial_not_started":return E?{text:"Subscribe",includeTrial:!1}:s;case"expired":default:return{text:"Subscribe Now",includeTrial:!1}}}const $=o.useCallback(async t=>{var u,r,f;if(x(""),!j){try{await g.auth.toLogin()}catch{y("/")}return}const s=(a==null?void 0:a.access)==="paid"||(a==null?void 0:a.access)==="trial";if((a==null?void 0:a.access)==="admin"||s&&t===P){try{const l=await g.apiCall.invoke({url:"/api/v1/payment/customer_portal",method:"POST",data:{return_url:window.location.href}}),i=l==null?void 0:l.data;if(i!=null&&i.pending&&(i!=null&&i.checkout_id)){const b=await R(i.checkout_id);b.url?g.utils.openUrl(b.url):x("Could not open billing portal. Please try again.")}else i!=null&&i.url?g.utils.openUrl(i.url):x("Could not open billing portal. Please try again.")}catch{x("Could not open billing portal. Please try again.")}return}if(!F){x("Payments are not configured yet. Please try again later.");return}n(t);const d=setTimeout(()=>{n(null),x("The request timed out. Please try again.")},de);try{const l=window.location.origin,{includeTrial:i}=C(t),b=await g.apiCall.invoke({url:"/api/v1/payment/create_payment_session",method:"POST",data:{plan:t,discount_code:(c==null?void 0:c.code)||"",referral_code:c!=null&&c.code?"":w,include_trial:i,success_url:`${l}/payment-success?session_id={CHECKOUT_SESSION_ID}`,cancel_url:`${l}/pricing`}});clearTimeout(d);const m=b==null?void 0:b.data;if(m!=null&&m.pending&&(m!=null&&m.checkout_id)){const T=await R(m.checkout_id);T.url?g.utils.openUrl(T.url):x(T.detail||"Failed to create checkout session. Please try again.")}else m!=null&&m.url?g.utils.openUrl(m.url):x("Failed to create checkout session. Please try again.")}catch(l){clearTimeout(d),console.error("Stripe checkout error:",l);const i=((r=(u=l==null?void 0:l.response)==null?void 0:u.data)==null?void 0:r.detail)||((f=l==null?void 0:l.data)==null?void 0:f.detail)||(l==null?void 0:l.message)||"";typeof i=="string"&&i.toLowerCase().includes("not configured")?(x("Payments are not configured yet. Please try again later."),_(!1)):x(typeof i=="string"&&i.length>0?i:"Failed to start checkout. Please try again.")}finally{n(null)}},[j,y,F,c,a,w,P]),Q=F===!1,[U,ee]=o.useState("");o.useEffect(()=>{const t=sessionStorage.getItem("trial_expired_banner");t&&(ee(t),sessionStorage.removeItem("trial_expired_banner"))},[]);const h=(a==null?void 0:a.access)==="paid"||(a==null?void 0:a.access)==="admin";return e.jsx("div",{className:"min-h-screen bg-[#0D1117] text-[#F0F6FC] flex flex-col",children:e.jsx("div",{className:"flex-1 flex flex-col items-center px-4 py-8 sm:py-12",children:e.jsxs("div",{className:"w-full max-w-5xl space-y-10",children:[U&&e.jsx("div",{className:"w-full rounded-lg border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-center text-sm font-medium text-amber-300",children:U}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("button",{onClick:()=>y(-1),className:"text-[#8B949E] hover:text-[#F0F6FC] text-xs font-semibold transition-colors",children:"← Back"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("img",{src:"/assets/vaulticks_mark.png",alt:"Vaulticks",className:"h-7 w-auto"}),e.jsx("span",{className:"text-lg font-extrabold tracking-tight text-[#F0F6FC]",children:"Vaulticks"})]})]}),e.jsxs("div",{className:"text-center space-y-4",children:[e.jsx("h2",{className:"text-2xl sm:text-3xl font-extrabold tracking-tight leading-tight",children:h?"Manage Your Subscription":"Choose Your Trading Edge"}),e.jsx("p",{className:"text-[#8B949E] text-sm sm:text-base font-medium max-w-lg mx-auto",children:h?"You have full access. Manage your billing and subscription below.":"Stop blowing funded accounts. Pick the plan that matches your trading style."})]}),((a==null?void 0:a.access)==="trial_not_started"||!a)&&!h&&!E&&e.jsx("div",{className:"flex justify-center",children:e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[#22C55E]/10 border border-[#22C55E]/20",children:[e.jsx(le,{className:"w-4 h-4 text-[#22C55E]"}),e.jsx("span",{className:"text-[#22C55E] text-xs font-bold",children:"3-trading-day free trial — card required, cancel before it ends and pay nothing."})]})}),E&&!h&&(a==null?void 0:a.access)!=="trial"&&e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[#21262D] border border-[#30363D]",children:e.jsx("span",{className:"text-[#8B949E] text-xs font-medium",children:"You’ve already used your free trial — subscribing starts billing right away."})})}),(a==null?void 0:a.access)==="expired"&&e.jsx("div",{className:"flex justify-center",children:e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[#EF4444]/10 border border-[#
1EF4444]/20",children:[e.jsx(L,{className:"w-4 h-4 text-[#EF4444]"}),e.jsx("span",{className:"text-[#EF4444] text-xs font-bold",children:"Your trial has ended. Subscribe to regain full access — no second free trial."})]})}),Q&&e.jsxs("div",{className:"rounded-lg px-4 py-3 flex items-center gap-2.5 bg-[#F59E0B]/10 text-[#F59E0B] border border-[#F59E0B]/20",children:[e.jsx(L,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("p",{className:"text-xs font-medium",children:"Payments are not configured yet. You can still browse plans — checkout will be available soon."})]}),S&&e.jsxs("div",{className:"rounded-lg px-4 py-3 flex items-center justify-between bg-[#EF4444]/10 text-[#EF4444] border border-[#EF4444]/20",children:[e.jsx("p",{className:"text-xs font-medium",children:S}),e.jsx("button",{onClick:()=>x(""),className:"ml-2 hover:opacity-70",children:e.jsx(ie,{className:"w-3.5 h-3.5"})})]}),!h&&e.jsxs("div",{className:"bg-[#161B22] rounded-xl p-4 border border-[#21262D]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(ne,{className:"w-4 h-4 text-[#22C55E]"}),e.jsx("span",{className:"text-sm font-bold text-[#F0F6FC]",children:"Have a discount code?"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text",value:N,onChange:t=>z(t.target.value.toUpperCase()),placeholder:"Enter code",className:"flex-1 h-10 px-3 rounded-lg bg-[#0D1117] border border-[#21262D] text-sm text-[#F0F6FC] placeholder:text-[#484F58] focus:outline-none focus:border-[#22C55E]/50"}),e.jsx("button",{onClick:X,disabled:B||!N.trim(),className:"px-4 h-10 rounded-lg font-bold text-xs bg-[#22C55E] hover:bg-[#16A34A] text-[#0D1117] transition-all disabled:opacity-50",children:B?"...":"Apply"})]}),c&&e.jsxs("p",{className:"mt-2 text-xs text-[#22C55E] font-medium",children:['✓ Code "',c.code,'" applied — ',c.percent,"% off!"]}),M&&e.jsx("p",{className:"mt-2 text-xs text-[#EF4444] font-medium",children:M}),!c&&w&&e.jsxs("p",{className:"mt-2 text-xs text-[#22C55E] font-medium",children:["Code ",w," applied — discount included"]})]}),e.jsx("div",{className:`grid grid-cols-1 gap-6 mx-auto ${D.length>=3?"md:grid-cols-3 max-w-6xl":"md:grid-cols-2 max-w-4xl"}`,children:D.map(t=>{const s=t.price,d=J(s),u=c&&d<s,{text:r}=C(t.id),f=r==="Current plan";return e.jsxs("div",{className:`relative bg-[#161B22] rounded-2xl p-7 border ${t.borderColor} space-y-5 flex flex-col ${t.glowColor}`,children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("span",{className:`inline-flex items-center gap-1 px-2.5 py-1 rounded-full ${t.badgeBg} ${t.badgeColor} text-[10px] font-bold uppercase tracking-wider`,children:[t.popular&&e.jsx(oe,{className:"w-3 h-3"}),t.badgeText]})}),e.jsx("div",{children:e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(t.icon,{className:`w-5 h-5 ${t.iconColor}`}),e.jsx("h3",{className:"text-lg font-extrabold",children:t.name})]})}),e.jsxs("div",{className:"flex items-baseline gap-2",children:[u&&e.jsxs("span",{className:"text-lg font-bold text-[#484F58] line-through",children:["$",s]}),e.jsxs("span",{className:"text-3xl font-extrabold text-[#F0F6FC]",children:["$",u?d:s]}),e.jsx("span",{className:"text-[#8B949E] text-sm font-medium",children:t.priceNote})]}),e.jsx("ul",{className:"space-y-2.5 flex-1",children:t.features.map(l=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-[#8B949E]",children:[e.jsx(O,{className:`w-4 h-4 mt-0.5 flex-shrink-0 ${t.popular?"text-[#22C55E]":"text-[#8B949E]"}`}),e.jsx("span",{children:l})]},l))}),t.id==="premium"&&((a==null?void 0:a.access)==="trial_not_started"||!a)&&!h&&!E&&e.jsx("div",{className:"bg-[#0D1117] rounded-lg p-3 border border-[#21262D]",children:e.jsxs("p",{className:"text-[10px] text-[#8B949E] leading-relaxed",children:[e.jsx("span",{className:"text-[#22C55E] font-bold",children:"3-trading-day free trial"})," — full access to all features. Weekends don’t count, so a trial that starts Friday still gets three full market days. Card required at checkout and charged when the trial ends unless you cancel first."]})}),r===null?e.jsx("div",{className:"w-full h-12 rounded-xl border border-dashed border-[#30363D] flex items-center justify-center px-3",children:e.jsx("p",{className:"text-[11px] text-[#8B949E] text-center leading-snug",children:"Start with the free trial — you can switch down to Manual anytime from Settings."})}):e.jsx("button",{onClick:()=>$(t.id),disabled:p===t.id||f,className:`w-full h-12 rounded-xl font-bold text-sm transition-all flex items-center justify-center gap-2 disabled:opacity-60 ${f?"bg-transparent border border-[#30363D] text-[#8B949E] curs
1or-default":t.popular?"bg-[#22C55E] hover:bg-[#16A34A] text-[#0D1117]":"bg-transparent border border-[#30363D] text-[#F0F6FC] hover:bg-[#21262D]"}`,children:p===t.id?e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"w-4 h-4 animate-spin"}),"Processing..."]}):f?e.jsxs(e.Fragment,{children:[e.jsx(O,{className:"w-4 h-4"}),r]}):e.jsxs(e.Fragment,{children:[r,e.jsx(I,{className:"w-4 h-4"})]})}),r==="Start Free Trial"&&e.jsx("p",{className:"text-[10px] text-[#8B949E] text-center mt-2 leading-relaxed",children:"You won’t be charged until your trial ends — cancel anytime."})]},t.id)})}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[{icon:ce,title:"Protect Your Capital",desc:"Your drawdown is your real account. Manage risk, not balance."},{icon:G,title:"Discipline, Automated",desc:"Remove emotional decisions under pressure with structured rules."},{icon:V,title:"Built for Funded Traders",desc:"Structure your trading like a professional. Never blow another account."}].map(t=>e.jsxs("div",{className:"flex items-start gap-3 bg-[#161B22] rounded-xl px-4 py-3.5 border border-[#21262D]",children:[e.jsx("div",{className:"flex-shrink-0 w-9 h-9 rounded-lg bg-[#22C55E]/10 flex items-center justify-center mt-0.5",children:e.jsx(t.icon,{className:"w-4 h-4 text-[#22C55E]"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-[#F0F6FC] text-sm font-bold",children:t.title}),e.jsx("p",{className:"text-[#8B949E] text-xs mt-0.5 leading-relaxed",children:t.desc})]})]},t.title))}),e.jsxs("div",{className:"bg-[#161B22] rounded-2xl p-5 border border-[#21262D] text-center space-y-2",children:[e.jsx("p",{className:"text-[#8B949E] text-xs leading-relaxed",children:e.jsx("span",{className:"text-[#EF4444] font-bold",children:"One blown account: $100–$300+"})}),e.jsx("p",{className:"text-[#8B949E] text-xs leading-relaxed",children:e.jsx("span",{className:"text-[#22C55E] font-bold",children:"Manual Mode subscription: $29/mo — pays for itself in one saved trade"})})]}),e.jsxs("div",{className:"bg-[#161B22] rounded-2xl p-6 border border-[#22C55E]/15 text-center space-y-3",children:[e.jsx("h3",{className:"text-lg font-extrabold",children:h?"You're Protected.":"Trade Smarter. Protect Your Capital."}),!h&&e.jsx("button",{onClick:()=>$(C("premium").includeTrial?"premium":"pro"),disabled:p!==null,className:"inline-flex items-center gap-2 px-6 h-11 rounded-xl font-bold text-sm bg-[#22C55E] hover:bg-[#16A34A] text-[#0D1117] transition-all disabled:opacity-60",children:p!==null?e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"w-4 h-4 animate-spin"}),"Processing..."]}):e.jsxs(e.Fragment,{children:[C("premium").includeTrial?"Start Free Trial":C("pro").text,e.jsx(I,{className:"w-4 h-4"})]})}),h&&e.jsx("p",{className:"text-[#8B949E] text-sm",children:"Your subscription is active. Use the buttons above to manage or change plans."})]}),e.jsx("p",{className:"text-center text-[#30363D] text-[10px] pb-4",children:"For educational purposes only. Always verify with your prop firm."})]})})})}export{be as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.